웹 애플리케이션 모의해킹(Web Application Penetration Testing)은 단순히 도구를 실행하는 것이 아니라, 체계적인 방법론(Methodology)에 따라 수행됩니다. 

가장 널리 통용되는 국제 표준인 PTES(Penetration Testing Execution Standard)와 OWASP(Open Web Application Security Project) 가이드를 기반으로 한 단계별 이론을 정리해 드립니다.

 

◎ 실무에서는 보통 다음 7단계 프로세스를 따릅니다.

1. 사전 계약 및 범위 설정 (Pre-engagement Interactions)

 - 기술적인 해킹을 시작하기 전, 고객(또는 회사)과 수행 범위를 명확히 합의하는 법적, 행정적 단계입니다.

  • 목표 설정: 모의해킹의 목적이 단순 취약점 진단인지, 실제 침투(Red Teaming)인지 결정.
  • 범위(Scope) 확정: 테스트할 도메인, IP 주소, 제외할 중요 서비스(Production 서버 등) 지정.
  • 규칙(RoE - Rules of Engagement) 수립: 테스트 가능 시간, 금지된 공격 기법(예: DDoS 금지), 비상 연락망 등을 정의합니다.

 

2. 정보 수집 (Intelligence Gathering / Reconnaissance)

 - 대상에 직접적인 공격을 가하지 않고, 공격 표면(Attack Surface)을 넓히기 위한 정보를 수집하는 단계입니다. 

 - 앞서 언급한 spyhunt.py, paramspider, gobuster 등이 여기서 활약합니다.

  • OSINT (Open Source Intelligence): 검색 엔진(Google Dorking), Whois, SNS, GitHub 등을 통해 노출된 정보 수집.
  • 인프라 식별: IP 대역, 도메인/서브도메인, 사용 중인 클라우드 서비스(AWS, Azure 등) 파악.
  • 기술 스택 파악(Fingerprinting): 웹 서버 종류(Apache/Nginx), 프레임워크(React/Django), WAF(웹 방화벽) 사용 여부 확인.

 

3. 위협 모델링 (Threat Modeling)

 - 수집된 정보를 바탕으로 "어떻게 공격할 것인가?" 시나리오를 구상하는 단계입니다.

  • 자산 식별: 이 서비스에서 가장 중요한 데이터(개인정보, 결제정보 등)가 무엇인지 파악.
  • 공격 벡터 선정: 인증 로직, 관리자 페이지, 파일 업로드 기능 등 취약할 것으로 예상되는 지점을 도출.
  • 위협 시나리오 수립: "관리자 페이지 우회 후 DB 덤프를 시도하겠다"와 같은 구체적인 공격 전략을 세웁니다.

 

4. 취약점 분석 (Vulnerability Analysis)

 - 실제 테스트를 통해 이론상의 위협이 실제로 존재하는지 확인하는 단계입니다.

 - 이 단계에서 nf (NucleiFuzzer), nikto, nmap 등의 스캐너와 수동 분석이 병행됩니다.

  • 자동화 스캔: 취약점 스캐너를 이용해 알려진 보안 결함(CVE)을 빠르게 탐색.
  • 수동 진단(Manual Verification): 스캐너가 놓친 논리적 오류(Business Logic Flaw)나 권한 상승 취약점을 직접 분석.
  • 검증: 스캐너가 탐지한 내용이 오탐(False Positive)인지 실제 취약점인지 검증합니다.

 

5. 익스플로잇 (Exploitation)

 - 확인된 취약점을 이용해 시스템에 침투하거나 권한을 획득하는 "실제 해킹" 단계입니다. 

 - sqlmap, wfuzz, curl(페이로드 전송) 등이 사용됩니다.

  • 접근 권한 획득: SQL 인젝션으로 관리자 계정 탈취, RCE(원격 코드 실행)로 셸 획득.
  • 권한 상승(Privilege Escalation): 일반 사용자에서 관리자(Root/Admin) 권한으로 격상 시도.
  • 데이터 유출 시연: 중요 데이터에 접근 가능하다는 것을 증명(실제 대량 유출은 금지).

 

6. 포스트 익스플로잇 (Post Exploitation)

 - 시스템 장악 후, 공격자가 추가로 무엇을 할 수 있는지 파급력을 평가하는 단계입니다.

  • 지속성 유지(Persistence): 재접근을 위한 백도어 설치 가능성 확인(모의해킹에서는 주로 가능성만 타진).
  • 내부망 이동(Lateral Movement): 장악한 웹 서버를 교두보로 삼아 내부 데이터베이스나 다른 서버로 이동 가능 여부 확인.
  • 흔적 제거(Cleaning Up): 테스트 과정에서 생성한 파일, 계정, 로그 등을 삭제하여 시스템을 원상 복구.

 

7. 보고서 작성 (Reporting)

 - 기술적인 발견 사항을 경영진과 개발자가 이해할 수 있는 문서로 정리하는 가장 중요한 단계입니다.

  • 경영진 요약(Executive Summary): 비즈니스 관점에서의 위험도와 영향도 설명.
  • 기술적 세부 사항: 발견된 취약점의 종류, 위치, 재현 방법(PoC), 증거 스크린샷.
  • 대응 방안(Remediation): 취약점을 패치하거나 완화하기 위한 구체적인 가이드라인(소스 코드 수정 예시 등) 제공.

 

◎ 요약 비교

단계 핵심 활동 관련 도구 예시
1. 범위 설정 계약, 범위 확정 (문서 작업)
2. 정보 수집 IP/도메인 식별, 기술 스택 파악 nmap, gobuster, spyhunt.py
3. 위협 모델링 공격 시나리오 구상 (분석 작업)
4. 취약점 분석 결함 탐지, 스캐닝 nikto, paramspider, nf
5. 익스플로잇 침투, 권한 탈취 sqlmap, wfuzz, curl
6. 포스트 익스플로잇 내부 이동, 파급력 평가 (쉘 스크립트, 프록시 도구)
7. 보고서 작성 결과 정리 및 대응책 제시 (문서 작업)

 

반응형

+ Recent posts