본문 바로가기

Pen-Testing

Trivy 취약점 스캐너 사용법

1. 실습환경

VirtualBox(Ubuntu) & Termius

# 세팅 방법
# https://velvetviolet1024.tistory.com/14
# 우분투 설치 시 메모리(4096), 하드(30GB), CPU(2) 설정 추천

2. Trivy 설치 (Ubuntu 기준)

# https://trivy.dev/docs/latest/getting-started/installation/

mkdir /etc/apt/sources.list.d

sudo apt-get install wget gnupg
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

trivy --version


3. docker 설치

apt install -y docker.io
systemctl enable docker --now
docker --version


4. Trivy를 이용한 취약점 스캔

- 환경에 따른 스캔 방법
-- 도커 환경 X
1. 점검 대상 서버에 직접 Trivy 설치 후 점검
# 가장 정확하지만, 장애 발생 책임 리스크가 있으므로 비추천

2. 점검 대상 서버의 주요 파일 tar 압축 및 export > 전달 받아서 점검 
# 대상이 도커가 아닌 실제 운영 서버인 경우

-- 도커 환경 O
3. 도커 이미지를 전달 받아서 점검
# 고객사에 안내의 따라 docker pull 이용해서 이미지 수령

4. 도커 이미지 tar 압축 및 export > 전달 받아서 점검
# 보안상 외부 접근(docker pull)이 불가능한 경우

 

 

4.1. 로컬 시스템 스캔

# 로컬 시스템 스캔
trivy fs /

# 스캔 결과 저장 추가
trivy fs -f table -o trivy_result.txt /

# 위험도 필터링 추가
trivy fs --severity HIGH,CRITICAL -f table -o trivy_result.txt  /

로컬 시스템 취약점 스캔 결과 리포트 확인 가능

 

 

4.2. 압축된 로컬 시스템 스캔

# 로컬 시스템 주요 파일 압축 (고객사에 요청)
## RHEL / CentOS 계열 기준
tar czvf trivy_fs.tar.gz /etc /var/lib/rpm

## Debian / Ubuntu 계열 기준
tar czvf trivy_fs.tar.gz /etc /var/lib/dpkg

# 스캔
## 호스트별 디렉터리 생성
mkdir hostname

## 압축 해제
tar xzvf trivy_fs.tar.gz -C hostname

## 취약점 스캔
trivy fs hostname --severity HIGH,CRITICAL -f table -o trivy_result.txt

로컬 시스템 주요 파일 압축
압축 해제
스캔 및 결과 확인

 

 

4.3. 도커 이미지 스캔

# 고객사에 docker 이미지 Pull 안내 받기
ex )
docker login registry.company.local -u user -p 1234
docker pull registry.company.local/app/backend:1.4.2
docker images
trivy image registry.company.local/app/backend:1.4.2

# 실습용 docker 이미지
docker pull nginx:1.25
docker pull tomcat:9.0-jdk17
docker pull mysql:8.0
docker pull vulnerables/web-dvwa

# Target docker 이미지 확인
docker images

# 도커 이미지 스캔
trivy image mysql:8.0

# 위험도 필터링 및 스캔 결과 저장
trivy image --severity HIGH,CRITICAL -f table -o trivy_result.txt mysql:8.0

도커 이미지 스캔
스캔 결과 확인 가능

 

 

4.4. 압축된 도커 이미지 스캔

# 고객사에 요청 (도커 이미지를 tar 압축 파일로 Export)
docker save nginx:1.25 -o nginx_1.25.tar

 

# 압축된 도커 이미지 로드
docker load -i nginx_1.25.tar

# 로드됨을 확인
docker images

# 도커 이미지 스캔
trivy image nginx:1.25

# 위험도 필터링 및 스캔 결과 저장
trivy image --severity HIGH,CRITICAL -f table -o trivy_result.txt nginx:1.25


### 도커 이미지 삭제 방법
### docker rmi <이미지명>:<태그>

 

'Pen-Testing' 카테고리의 다른 글

[MITM] ARP Spoofing 실습  (0) 2025.12.10