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 |
|---|