
목표
- 퍼블릭 클라우드(AWS, Azure, GCP 등) 상의 서비스에 대해
- 네트워크·시스템·웹·클라우드 설정 레벨 취약점을 체계적으로 식별
- 침투 테스트 관점에서 “공격자가 실제로 노릴 수 있는 경로”를 검증
- 그 결과를 정책/운영/탐지체계 개선으로 연결
대상 도구 역할 (요약)
| 층위 | 도구 | 역할 |
|---|---|---|
| 네트워크·OS·미들웨어 취약점 | Nessus / Tenable.io | 범용 취약점 스캐너 (Credentialed Scan 포함) |
| 네트워크·OS·클라우드 구성 | Qualys Cloud Platform | 에이전트+CloudView 기반 취약점 + 클라우드 설정 점검 |
| 네트워크 취약점(오픈소스) | OpenVAS(GVM) | 내부망·PoC·비용 최소화를 위한 스캐너 |
| 웹·API 취약점 | Burp Suite Enterprise | Web/App/API 자동 스캔, CI/CD 연동 |
클라우드 침투 테스트 전체 프로세스
1. 거버넌스·정책 프레임
- 테스트 승인 범위 정의
- 테스트 계정, 테스트 대상 계정(Prod/Stage/Dev), 리전, VPC, 서비스 목록
- CSP 별 침투 테스트 정책 준수 (DoS, 리소스 소진 공격 금지 등)
- 역할과 책임 (R&R)
- 보안팀: 범위 정의, 도구 운영, 정책 수립, 결과 분석 및 조치 요구
- 인프라팀/DevOps: 방화벽 예외 적용, 시스템 영향 모니터링, 패치 수행
- 서비스팀: 서비스 영향 모니터링, 특정 스캔 차단 설정(필요 시 조정)
- 테스트 유형 분류
- 외부 침투 테스트(External PT)
- 내부 침투 테스트(Internal PT – VPC 내부, VPN 환경)
- 웹·API 침투 테스트(Web PT)
- 클라우드 설정·구성 리뷰(Cloud Security Posture Review)
2. 기술적 단계 (End-to-End)
(1) 자산 식별·분류 (Discovery & Scoping)
(2) 공격 표면 분석 (Attack Surface Mapping)
(3) 자동화 스캔 수행 (Vuln Scan / Web Scan)
(4) 수동·침투 테스트 확장 (필요 시)
(5) 결과 분석·우선순위화·재점검 (Remediation & Re-test)
(6) 탐지·로깅·프로세스 개선 (Detection & Governance)
아래에서 이 흐름에 따라 도구별로 끼워 넣어 설명하겠습니다.
자산 식별 및 스코핑 (Discovery & Scoping)
1. CSP API 기반 자산 수집
예: AWS 기준
# EC2 인스턴스 목록
aws ec2 describe-instances \
--query 'Reservations[].Instances[].[InstanceId,PrivateIpAddress,PublicIpAddress,State.Name,Tags]' \
--output table
# ELB 목록
aws elbv2 describe-load-balancers \
--query 'LoadBalancers[*].[LoadBalancerName,DNSName,Scheme]' \
--output table
# Security Group
aws ec2 describe-security-groups \
--query 'SecurityGroups[*].[GroupId,GroupName,IpPermissions]' \
--output json
- 이런 정보로 “어디가 외부에 노출되어 있는지”,
“어떤 포트가 열려 있는지”를 1차 정리.
2. Qualys / Tenable Cloud Connector 활용
- Qualys CloudView
- AWS/GCP/Azure 계정에 ReadOnly Role 부여 →
인스턴스, 보안 그룹, 스토리지, DB, LB 등을 자동 인벤토리화
- AWS/GCP/Azure 계정에 ReadOnly Role 부여 →
- Tenable.io Cloud Connector
- 비슷하게 클라우드 계정에 접근해 자산·구성 정보를 수집
보안 관점 체크 포인트
자산 인벤토리가 “스캐너에 보이는 것”과 일치하는가?
→ Shadow Resource(무단 생성 서버, 테스트용 인스턴스 등)가 있으면 우선 관리 대상으로 편입
- “인터넷에서 접근 가능한 자산 목록(공개 IP/ALB/프록시)”을 별도 목록화 → 외부 침투 테스트 스코프로 확정
공격 표면 분석 (Attack Surface Mapping)
1. 외부 네트워크 공격 표면
- nmap + 스캐너 조합
# 예: 공개 IP(예: 203.0.113.10)에 대한 포트 스캔
nmap -sS -sV -O 203.0.113.10
- 출력된 포트/서비스 목록을 기준으로
- Nessus/Qualys/OpenVAS에서 스캔 타겟으로 등록
- 80/443 → Burp Enterprise에서 웹 스캔 대상으로 등록
- 로드밸런서 및 WAF 고려
- ALB/WAF 뒤에 있는 서비스는,
- WAF 룰에 의해 스캔이 차단될 수 있음 → 테스트 모드/화이트리스트 고려
- 공격 패턴이 실제 WAF 탐지 이벤트로 올라오는지 확인 가능 (SIEM과 연계)
2. 내부 네트워크 공격 표면
- VPC 간 피어링, 온프레미스와의 VPN/DirectConnect,
Kubernetes 노드/Pod 네트워크, 내부 DB, 캐시, 메시지 큐 등
예: 내부 서브넷 스캔
# VPC 내부에서 10.0.2.0/24 대역 스캔
nmap -sT 10.0.2.0/24
보안 체크 포인트
“인터넷에서는 막혀 있지만, 내부망에서는 너무 허술한 서비스” 존재 여부
- Bastion 서버나 관리용 Jump 서버에서 내부 자원으로의 lateral movement 가능성
- 보안 그룹/Security Group이
0.0.0.0/0혹은 전체 서브넷에 대해 과도하게 열려 있는지
취약점 스캐닝 설계 (Nessus / Qualys / OpenVAS)
1. Nessus / Tenable.io 활용
아키텍처
- Tenable.io (SaaS) + On-Prem Scanner / Cloud Scanner
- 퍼블릭 클라우드 내부에 스캐너 어플라이언스(EC2, VM) 배치
- 필요한 경우 Nessus Agent를 각 인스턴스에 설치해 Agent 기반 스캔
# Nessus Agent 링크 예시
nessuscli agent link \
--key=<TENANT_KEY> \
--groups="Cloud-Servers" \
--host=cloud.tenable.com \
--port=443
Credentialed Scan 예시
- Linux: SSH key 또는 ID/PW
- Windows: WinRM / SMB 계정
Nessus 정책 설정 시
- “SSH credentials” 탭에
- Username:
scanuser - Auth method:
Public key
- Username:
- 해당 계정은
- sudo 권한은 필요하지만, 최소 권한으로 제한
- 계정 패스워드/키는 Vault(예: HashiCorp Vault, AWS Secrets Manager)에 저장 후, 스캐너에서 호출 (가능 시)
보안 관점 가이드
- 스캔 계정은 로그인 이력 남김 + MFA 불필요 계정으로 분리
스캔 완료 후 계정 비활성화 또는 키 변경 주기 설정
- Credentialed Scan이 실제로 패치 상태·설정 상태까지 정확히 가져오는지 샘플 검증
2. Qualys Cloud Platform 활용
Qualys Cloud Agent 설치 예시 (Linux)
sudo rpm -Uvh QualysCloudAgent.rpm
sudo /usr/local/qualys/cloud-agent/bin/qualys-cloud-agent.sh ActivationId=<ACTIVATION_ID> CustomerId=<CUSTOMER_ID> ServerUri="https://qagpublic.qg2.apps.qualys.com/CloudAgent"
- 에이전트 설치 후, Qualys 콘솔 상에서 Tag를 이용해 그룹 관리
- 예:
Environment:Prod,App:Payment,Zone:AP-Northeast-2등
- 예:
CloudView (AWS 예시)
- AWS 계정에 IAM Role 생성 → Qualys에서 External ID 기반 AssumeRole
- 이후:
- S3/GCS/Azure Blob 공개 여부
- Security Group, NACL, Route Table, IAM, CloudTrail 설정 이상 여부 점검
보안 관점 가이드
CloudView와 같은 구성 점검 결과를 취약점 스캔 결과와 함께 Risk Ranking
예: “퍼블릭 IP + 취약한 포트 + EOL OS” → Top Priority
- 자산 태깅 정책과 연계해 “중요도 기준” 자동 분류
3. OpenVAS (Greenbone) 활용
배포 예시 (Docker)
docker run -d -p 9392:9392 --name openvas greenbone/gvm
- 브라우저에서
https://<scanner_ip>:9392접속 - 초기 계정 설정 후, Targets / Tasks 생성
클라우드 내부용 활용 시나리오
- 비용 걱정 없이, Dev/Stage 환경에서 적극 사용
- CI/CD 이후 배포된 새 서버/컨테이너에 대해 정기 스캔
- 자체 스크립트/플러그인으로 특정 취약점 커스터마이징도 가능
보안 관점 가이드
OpenVAS 자체는 오픈소스라 편리하지만, Rule Tuning과 FP(오탐) 정리가 중요
- 운영환경(Prod)에는 강도 높은 스캔은 피크 시간대에 피하거나 사전 협의 필수
웹·API 침투 테스트 (Burp Suite Enterprise)
1. 아키텍처 개념
- Burp Enterprise Server + 여러 개의 스캔 전용 노드(Worker)
- CI/CD (Jenkins, GitLab CI 등)에 연동 가능
- 타겟 사이트 목록(Site List)에 URL/Domain 등록 후 자동 스캔
2. 웹·API 스캔 시나리오
단순 웹 애플리케이션
- 대상:
https://app.example.com - 설정
- Scope에
https://app.example.com/*등록 - 로그인 필요 시 로그인 스크립트(Recorded Login 또는 사용자 정의 Macro) 등록
- 스캔 프로파일: “Audit only” 또는 “Crawl and Audit”
- Scope에
REST API / OpenAPI 기반 서비스
- OpenAPI/Swagger JSON 파일 활용
- 예:
https://api.example.com/openapi.json
- 예:
- Burp Enterprise에서 API Definition으로 등록
- API Key, OAuth Token 등 인증 헤더 설정
예: 헤더 설정 예시
Authorization: Bearer <ACCESS_TOKEN>
X-API-KEY: <YOUR_API_KEY>
보안 관점 가이드
테스트용 Client ID/Secret, Access Token 사용
- 토큰이 로그나 스캔 결과에 남지 않도록 마스킹 설정 고려
- API Rate Limit, WAF 차단 룰과의 상호작용을 고려해 스캔 속도 조정
침투 테스트 관점 확장 (자동 스캔 → 침투 시나리오)
자동 도구의 결과를 기반으로, 실제 침투 테스트 관점에서 다음을 시도할 수 있습니다.
1. 예시 시나리오: 퍼블릭 Web 서버
- 외부 스캔 결과
- 443 포트에서 Nginx + PHP-FPM 동작
- Nessus/Qualys에서 PHP 취약점 및 CMS Plugin 취약점 발견
- Burp에서 SQL Injection/IDOR 취약점 의심 리포트
- 침투 테스트 단계
- Burp에서 감지한 파라미터에 대해 수동으로 SQLi/IDOR 확인
- 세션 토큰 고정(Session Fixation) 여부, Access Control Bypass 검증
- 취약점이 실제로 민감정보 접근으로 이어지는지 PoC 수준에서 검증
- OS 레벨 취약점과 연결(예: WebShell 업로드 → 내부 VPC로 lateral movement 가능?)
보안 관점 가이드
PoC는 “데이터를 실제 변경/파괴하지 않는 선”에서 제한
- 민감정보를 덤프하거나, 서비스 중단을 유발하는 공격은 사전 합의 없이는 금지
- 테스트 중 생성한 계정/파일/토큰은 후속 정리
결과 분석·우선순위·조치 프로세스
1. 취약점 분류 기준 (예시)
- 기술적 심각도 (CVSS, 도구 자체 Severity)
- 비즈니스 영향도
- 영향 시스템이 결제, 회원 정보, ERP, 쇼핑몰인지 등
- 노출 범위
- 인터넷 공개 vs 내부망 한정
- 악용 가능성 (PoC 성공 여부, Exploit 공개 여부)
Risk Score 예시
Risk Score = (CVSS Base * 노출계수 * 비즈니스계수 * Exploit계수)
노출계수: 외부 2.0 / 내부 1.0
비즈니스계수: 핵심업무 2.0 / 일반 1.0
Exploit계수: PoC 성공 2.0 / PoC 미시도 1.0
2. 보고서 예시 구조
- 개요
- 테스트 범위 및 방법 (Nessus / Qualys / OpenVAS / Burp 사용 기술)
- 요약 (상위 Risk Top 10)
- 상세 취약점 리스트
- 취약점별 재현 방법(스크린샷, Burp Request/Response)
- 조치 권고 사항
- 향후 개선 과제 (WAF 룰, 네트워크 세분화, DevSecOps 연계 등)
클라우드 환경 특화 보안 가이드
1. 책임 공유 모델 고려
- 하이퍼바이저, 물리 네트워크, 스토리지는 CSP 책임
- OS, 런타임, 애플리케이션, 계정·데이터는 고객 책임
따라서 침투 테스트의 초점
우리가 통제 가능한 영역(네트워크 정책, IAM, OS, App) 최대 활용
- 하이퍼바이저 탈출 같은 영역은 명백히 금지
2. 네트워크·IAM 모범 사례와 연계
- Security Group 최소 허용 (특히 22, 3389, DB 포트)
- Bastion Host 또는 Session Manager 사용
- IAM Role 기반 인스턴스 접근, Access Key 장기 사용 금지
- S3/GCS/Azure Blob 퍼블릭 공개 차단, Presigned URL 등으로 대체
도구의 구성 점검 결과(CloudView/Tenable Cloud Connector)를 활용해
- “침투 테스트 + 설정 점검”의 결과를 통합 Risk View로 관리하는 것이 중요합니다.
보안팀 운영용 표준 절차(SOP) 예시
1. 정기 취약점 진단 SOP
- 분기별(또는 월간) 스캔 계획 수립
- 대상 자산 목록 확정 (Prod/Stage/Dev 구분)
- 방화벽 예외(스캐너 IP 허용), 테스트 계정 준비
- Nessus/Qualys/OpenVAS/Burp 스캔 수행
- 결과 통합/중복 제거
- 위험도 평가 및 조치 요청 티켓 발행
- 조치 완료 후 재스캔
- 결과 리포팅 및 경영진 보고
2. 신규 서비스 오픈 전 Pre-Production PT
- Dev/Stage 환경에서 Burp Enterprise + OpenVAS/Nessus 스캔
- 주요 취약점 (중요도 High 이상) 모두 해소 후 Prod 오픈 승인
- 오픈 후 일정 기간 강화 모니터링 (WAF, SIEM 룰 유효성 확인)
예시로 묶어본 “종합 시나리오”
시나리오: 클라우드 상 쇼핑몰 서비스 신규 런칭 전/후
- Dev/Stage 인프라 구성 완료
- OpenVAS로 Stage VPC 내부 서비스 네트워크 스캔
- Burp Enterprise로 Stage 웹·API 침투 테스트
- 취약점 보완 후 → Prod로 승격
- Prod 오픈 전/후
- Nessus/Tenable.io 또는 Qualys로 Prod 퍼블릭 IP/ALB 대상 스캔
- CSP API 연동으로 보안 그룹, 스토리지, IAM 구성 점검
- 오픈 후 1주일 동안
- SIEM(Wazuh/Elastic/Chronicle 등)으로 WAF/방화벽/시스템 로그 모니터링
- Burp/Nessus/Qualys 스캔 이벤트가 탐지 가능한지 확인 (탐지 공백이 있으면 룰 보완)
정리하면,
- Nessus / Qualys / OpenVAS는 주로 네트워크·OS·미들웨어·클라우드 구성 취약점을 스캔하는 역할,
- Burp Suite Enterprise는 웹/모바일/API 애플리케이션 취약점을 심층 분석하는 역할,
- 이 둘을 클라우드 자산 인벤토리, IAM, 네트워크 설계, 로그/탐지 체계와 함께 하나의 프레임워크로 묶어야
“클라우드 네트워크 침투 테스트”가 완전한 형태가 됩니다.
댓글