Security Study/Docker

오픈소스를 이용한 docker(container)취약점 스캔(trivy)

LuCeT3 2022. 11. 22.
728x90
반응형

해당 블로그는 해킹 및 보안 블로그로 공부 및 연구용으로 작성되어지고 있습니다. 아래의 내용을 기반으로 해킹 시도 및 실제 공격을 시도하여 일어나는 모든 책임은 본인(따라한자)에게 있음을 알려드리며, 글쓴이는 아무런 책임을 지지 않습니다. 꼭 공부 및 연구용으로만 사용하여 주시길 바랍니다. 감사합니다.

docker를 사용하다보면 많은 편리함이 존재한다. 가끔은 https://hub.docker.com/ 에서 제공되는 이미지들이 안전한가? 라는 의문을 가질수 있다. 다양한 취약점 스캐너들이 있지만 오늘은 trivy라는 취약점 스캐너를 소개 및 사용법을 작성할 예정이다.

 

trivy는 aquasecurity에서 제공하는 도구로 설치도 쉽고 사용하기도 싶다.
공식 github는 https://github.com/aquasecurity/trivy여기이다.

 

GitHub - aquasecurity/trivy: Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories

Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more - GitHub - aquasecurity/trivy: Find vulnerabilities, misconfigurations, secrets,...

github.com

이제 설치하는 법을 보자 사실 명령어 한줄이면 설치가 다되기 때문에 설치하는 방법이랄 것도 없다.

apt-get install trivy

yum install trivy

pacman -S trivy

brew install aquasecurity/trivy/trivy

sudo port install trivy

docker run aquasec/trivy

이렇게 OS별로 이제 설치하는 명령어들이다.

해당 trivy의 경우 지원되는 것들은 아래와 같다.

 

공식 github에 따르면 

Targets:

  • Container Image
  • Filesystem
  • Git repository (remote)
  • Kubernetes cluster or resource

Scanners:

  • OS packages and software dependencies in use (SBOM)
  • Known vulnerabilities (CVEs)
  • IaC misconfigurations
  • Sensitive information and secrets

이며, 사용법은 trivy -h 를 통하여 알수있지만 간단한 사용법들을 알아보면

이미지에 대한 CVE 취약점 스캔을 하고 싶을 경우

trivy image {image}

ex) hub.docker.com에서 ubuntu이미지를 기준으로 받아 확인하고 싶을 경우
trivy image ubuntu

결과는 아래와 같이 나오게 된다.

total 취약점과 low medium high critical 이렇게 나누어서 나타내어준다.

 

만약 high, critical만 보고 싶으면 아래의 명령어를 이용하여 필터가 가능하다.

trivy image --severity HIGH,CRITICAL ubuntu

repo에서 가져온 이미지가 아닌 docker에 있는 이미지를 점검하고 싶을 경우엔 이렇게하면 된다.

trivy images {이미지 ID}

결과는 동일하게 나오는 것을 알수 있다.

 

자 그럼 한편으로 생각해보면 docker환경에 접속해있을 경우엔?

예를 들어 cloud 환경에 설치해서 접속을 해서 컨테이너에 들어가 있는 상황에선 어떻게 해야할까?

 

그때는 해당 환경에 trivy가 설치되어있을 경우

아래의 명령어를 입력하면된다.

cd /
//root 경로로 이동
trivy fs .
//현재경로부터 취약점 검색
//fs(filesystem)명령어

그럼 결과는 동일하게 나오는 것을 확인 할 수있다.

728x90
반응형

댓글0