FrontEnd

Fortify 보안 점검 대응 : Dockerfile 보안 설정과 Trivy 활용하기

devOhzl 2025. 5. 2. 11:21

문제 상황

회사 보안 점검에서 Fortify 스캔을 진행한 결과, 내가 작성한 Dockerfile에서 다음과 같은 HIGH 레벨 보안 경고가 발생했다.

Default User Privilege HIGH Docker 컨테이너가 root 권한으로 실행됨

 

Fortify의 "Default User Privilege" 보안 경고는 Dockerfile 내에서 기본 사용자(root) 로 컨테이너를 실행할 경우 발생합니다.

이는 컨테이너가 해킹되거나 취약점이 발생했을 때, root 권한이 그대로 유지되므로 호스트 시스템까지 영향을 줄 수 있는 위험이 존재합니다. 따라서 root 대신 일반 사용자 권한을 사용하도록 설정하는 것이 권장됩니다.

 

해결 방법 및 적용 내용

기존 Dockerfile에는 사용자 설정이 없어서 기본적으로 root로 실행되고 있었습니다.

이를 아래와 같은 방식으로 수정하여 일반 사용자(appuser) 로 실행되도록 변경했습니다:

# 1. 사용자 및 그룹 생성
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# 2. 정적 파일 소유자 변경 (nginx 기준 예시)
RUN chown -R appuser:appgroup /usr/share/nginx/html

# 3. 이후 실행 사용자 권한을 일반 사용자로 변경
USER appuser
  1. 보안 스캔 도구(Fortify) 에서 Default User Privilege 경고가 감지됨
  2. Dockerfile 내 기본 root 사용자 사용으로 인해 발생한 것으로 분석
  3. adduser 및 addgroup 명령어를 통해 일반 사용자(appuser)와 그룹(appgroup) 생성
  4. 컨테이너 실행 시 일반 사용자 권한으로 실행되도록 USER 지시어 추가
  5. 정적 파일이 있는 디렉토리(/usr/share/nginx/html)에 접근 가능하도록 권한 변경

Trivy로 사전 점검하기 

1. trivy image - 컨테이너 이미지 취약점 점검

  • Docker 이미지 안에 있는 패키지(OS 기반, 언어별 라이브러리) 들을 스캔하여, 알려진 보안 취약점(CVE)을 탐지하는 명령어입니다.
  • 예: apk, apt, yum 기반 패키지 + Node.js, Python, Java, Ruby 등 애플리케이션 레벨 라이브러리까지 분석
  • CVE (Common Vulnerabilities and Exposures)는 전 세계적으로 공유되는 보안 취약점 데이터베이스입니다.

도커 로그인 후, 도커 이미지를 지정하고 테이너 이미지의 취약점을 분석합니다.

docker login registry.cloud.@
trivy image registry.cloud.@/myproject/myimage:latest

trivy image는 오직 이미지 내부의 패키지(CVE) 에만 집중합니다.
Dockerfile 내 USER, HEALTHCHECK 등 보안 설정 누락 여부는 감지하지 않습니다.

 

2. trivy config Dockerfile – Dockerfile 설정 점검

  • Dockerfile 자체에 포함된 설정(Security Best Practices 위반 여부) 을 점검합니다.
  • 일반적으로 "사용자 설정", "헬스 체크 누락", "불필요한 권한", "시크릿 노출" 등을 감지합니다.
  • Dockerfile이 보안적으로 안전하게 작성되었는지 확인하는 용도입니다.

단순히 Dockerfile 파일을 지정하면, 파일 내 보안 설정을 정적으로 분석합니다.

trivy config Dockerfile

 

문제 있는 Dockerfile - 유저 설정 없음

 

유저 설정 후 수정한 Dockerfile

Fortify (보안 정책 스캐너) vs Trivy (취약점 스캐너)

도구 목적 예시 특징
Fortify 정적 분석 보안 도구 Default User Privilege, Dependency Confusion 등 상업용, 규칙 기반
Trivy config 오픈소스 설정 분석 도구 USER, HEALTHCHECK, ADD 사용 등 CLI 기반, 빠름, 커스터마이징 가능
  • Fortify는 정책 기반으로 설정 누락, 보안 규칙 위반을 잘 잡아낸다.
  • Trivy는 실질적인 라이브러리 취약점 (CVE) 을 체크하는 데 매우 강력하다.
  • Fortify에 걸리는 보안 경고는 Trivy로는 감지되지 않을 수도 있고, 반대도 있다.
    Trivy는 이미지 & 설정을 나눠 검사해야 정확한 확인 가능
  • 두 도구를 보완적으로 함께 사용하는 게 가장 효과적이다.