Vulnerability Management Report
작성 대상: CyberTech Solutions
작성자: Victoria Simon
날짜: 2024년 4월 10일
1. 개요
이 보고서는 Nessus를 사용하여 CyberTech Solutions의 Linux 인프라 및 웹 애플리케이션에 대해 수행된 포괄적인 취약점 평가 결과를 상세히 설명합니다. 평가에는 다음이 포함되었습니다:
- 인증된 스캔 (Linux 서버)
- 웹 애플리케이션 취약점 스캔
- 자동 보고 구성
- Ansible을 통한 패치 관리
주요 발견 사항으로는 Nginx의 심각한 취약점과 오래된 OpenSSH 버전이 있습니다. 즉각적인 패치 및 보안 강화 권장 사항이 제공됩니다.
2. 실습 목표
- Linux 시스템에서 인증된 취약점 스캔을 수행합니다.
- 웹 애플리케이션 취약점을 식별하고 분석합니다.
- 자동 이메일 보고를 위해 Nessus를 구성합니다.
- Ansible을 사용하여 취약점을 패치합니다.
- 이해관계자 검토를 위해 결과를 문서화합니다.
3. 사용된 도구 및 리소스
| 도구 | 목적 |
|---|
| Nessus | 취약점 스캔 및 보고 |
| Ansible | 자동화된 패치 관리 |
| Gmail SMTP | 자동 이메일 알림 |
| OpenSSH | 원격 서버 접속 |
| Nginx | 웹 애플리케이션 호스팅 |
4. 방법론
작업 1: 인증된 스캔 구성
- SSH 설정:
- OpenSSH 설치 (
sudo apt install openssh-server).
- SSH 자격 증명으로 Nessus 구성 (사용자 이름:
root, 비밀번호: kali).
su를 통한 권한 상승 활성화.

- 스캔 결과:

scanned ssh vulnerability score



권장 사항
Linux 서버 및 호스팅된 애플리케이션에 대한 인증된 스캔 및 취약점 평가에 따라, 조직의 보안 태세를 개선하기 위해 다음과 같은 수정 조치가 권장됩니다:
- 시스템 및 소프트웨어 패치:
• 알려진 취약점을 해결하기 위해 OpenSSH를 최신 보안 버전으로 업그레이드합니다.
• CVE-2022-0185와 같은 긴급 업데이트를 포함하여 최신 Linux 커널 패치를 적용합니다.
• 요청 스머글링, 안전하지 않은 무작위성, 메모리 관리 취약점(예: CVE-2024-27980, CVE-2024-21891, CVE-2024-21892)과 같은 위험을 완화하기 위해 Node.js를 버전 18.20.1 이상으로 업그레이드합니다.
• 보안 수정 사항을 적시에 적용할 수 있도록 자동 패치 업데이트를 활성화하거나 중앙 집중식 패치 관리 시스템과 통합합니다.
- SSH 서비스 강화
• 취약한 SSH 알고리즘, 암호(예: CBC, Arcfour) 및 MAC을 비활성화합니다.
• 키 기반 인증을 적용하고 가능한 경우 비밀번호 로그인을 비활성화합니다.
• 사용자 지정 SSH 포트를 구성하고 방화벽 규칙 또는 TCP 래퍼를 사용하여 SSH 액세스를 제한합니다.
• 특정 IP로 액세스를 제한하고 원격 연결에 대해 이중 인증(2FA)을 구현합니다.
- 사용자 및 액세스 제어
• SSH를 통한 루트 로그인을 비활성화하고 권한 상승에는 sudo를 사용합니다.
• 사용되지 않거나 레거시 사용자 계정을 제거하고 강력한 비밀번호 정책을 적용합니다.
• 무차별 대입 공격을 방지하기 위해 계정 잠금 메커니즘을 설정합니다.
• 최소 권한이 적용되도록 사용자 그룹 및 권한을 감사합니다.
- 호스트 및 네트워크 강화
• 불필요한 서비스를 비활성화하고 사용되지 않는 포트를 닫습니다.
• Lynis, OpenSCAP 또는 CIS 벤치마크와 같은 강화 도구를 사용하여 모범 사례를 적용합니다.
• 네트워크 노출을 제한하고 측면 이동을 방지하기 위해 방화벽 규칙을 구현합니다.
- 모니터링, 로깅 및 탐지
• SSH, sudo 및 시스템 이벤트에 대한 상세 로깅을 활성화합니다.
• 실시간 모니터링 및 알림을 위해 로그를 SIEM 플랫폼과 통합합니다.
• 의심스러운 동작 및 비정상적인 액세스 패턴을 모니터링합니다.
- 애플리케이션 및 종속성 보안
• npm audit 또는 yarn audit을 실행하여 Node.js 종속성을 스캔하고 수정합니다.
• 동적 및 정적 분석 도구(DAST/SAST)로 정기적으로 애플리케이션을 테스트합니다.
• 알려진 웹 기반 공격을 차단하기 위해 웹 애플리케이션 방화벽(WAF)을 사용합니다.
- 백업 및 복구
• 구성 및 중요 데이터의 정기적인 백업을 예약합니다.
• 재해 복구 및 백업 복원 절차를 정기적으로 테스트합니다.
- 보안 인식 및 거버넌스
• 시스템 관리자 및 개발자를 대상으로 정기적인 보안 교육을 실시합니다.
• 업데이트된 보안 정책, 절차 및 자산 문서를 유지합니다.
• 사전 예방적 대응을 위해 정기적인 취약점 평가 및 침투 테스트를 수행합니다.
작업 2: 웹 애플리케이션 스캔
- Nginx 취약점:






- 취약점 분석:
- 익스플로잇 용이성: 낮은 복잡성(공개 익스플로잇 있음).
- 패치 날짜:
- CVE-2021-23017: 2021년 6월 패치됨.
- CVE-2022-41741: 2022년 10월 패치됨.
작업 3: 자동 이메일 보고
- SMTP 구성:
- 호스트:
smtp.gmail.com (포트: 587, TLS).

- 인증을 위해 Gmail 앱 비밀번호 사용.


- 테스트 이메일이 이해관계자에게 성공적으로 전송됨.

Nessus가 이메일을 보냈습니다. 즉, 완벽하게 작동했습니다.
작업 4: 패치 관리
- Ansible Playbook:
- 오래된 Nginx 제거 (
/usr/local/nginx).
- 최신 Nginx 버전 설치 (
apt: name=nginx state=latest).

.yml 스크립트로 오래된 Nginx 버전 업데이트
- **결과**: Nginx 1.15.5에서 **1.26.3**으로 업그레이드됨.


5. 분석 및 발견 사항
식별된 주요 취약점
1. 오래된 NGINX 버전
- CVE-2021-23017: DNS 리졸버의 1바이트 메모리 덮어쓰기(위험: RCE/충돌).
- HTTP/2 익스플로잇:
- CVE-2019-9511, CVE-2019-9513, CVE-2019-9516: 프레임 조작을 통한 DoS.
- CVE-2018-16843, CVE-2018-16844, CVE-2018-16845: CPU/메모리 고갈 공격.
- CVE-2019-20372: HTTP 헤더를 통한 서버 버전 노출(정보 유출).
2. Nessus의 여러 플러그인 발견 사항
- 플러그인 ID: 150154, 127907, 118956, 134220에서 지원되지 않는/취약한 NGINX 버전 확인.
주요 위험:
- 패치되지 않은 시스템은 랜섬웨어 및 데이터 유출에 취약합니다.
- 웹 취약점으로 인해 클라이언트 데이터가 가로채기에 노출됩니다.
6. NGINX 보안 수정을 위한 중요 조치
- NGINX를 최신 안정 버전 (≥1.20.1)으로 업그레이드
- 이유? 완화:
- CVE-2021-23017 (DNS 리졸버 메모리 손상)
- HTTP/2 DoS 취약점 (CVE-2019-9511, CVE-2018-16843 등)
- 서버 버전 노출 (CVE-2019-20372).
- 조치:
- 구성 백업 (
nginx.conf), 그런 다음 공식 NGINX 저장소를 사용하여 업그레이드.
- 업그레이드 후 버전 확인:
nginx -v.
- HTTP/2 비활성화 또는 강화
- HTTP/2가 필요하지 않은 경우:
- NGINX 구성에서 비활성화 (
listen 443 ssl http2 대신 listen 443 ssl).
- 필요한 경우:
- NGINX가 패치되었는지 확인(업그레이드 후).
- 비정상적인 HTTP/2 트래픽(예: 빠른 스트림/프레임)에 대한 로그 모니터링.
- 패치 관리 구현
- 업데이트 자동화:
unattended-upgrades(Linux) 또는 Ansible과 같은 도구 사용.
- 감사 일정: NGINX/OS 패키지 업데이트에 대한 월별 점검.
- Nessus 재스캔으로 수정 사항 확인
- Nessus 재실행(플러그인 ID: 150154, 127907 등)하여 확인:
- NGINX 버전이 더 이상 플래그되지 않음.
- HTTP/2 CVE(활성화된 경우)가 패치됨.
추가 강화 단계
- NGINX 버전 숨기기:
nginx.conf에 server_tokens off; 추가.
- HTTP 메서드 제한: 해당되는 경우
GET, POST, HEAD만 허용.
- CVE 데이터베이스 모니터링: NGINX 보안 권고 구독.
일정:
- 즉시(24-48시간): NGINX 업그레이드, HTTP/2 비활성화(가능한 경우).
- 후속 조치(1주): 패치 관리 배포 + 재스캔.
수정 후: 변경 사항 문서화 및 HTTP/2/NGINX 익스플로잇 시나리오를 포함하도록 사고 대응 계획 업데이트.
7. 문제점 및 해결 방안