보안

[보안점검도구] OWASP ZAP (Zed Attack Proxy)

타우루스 2026. 2. 22. 20:25

OWASP ZAP (Zed Attack Proxy)은 웹 애플리케이션의 보안 취약점을 자동으로 찾아내고 모의 해킹(Penetration Testing)을 수행하는 데 사용되는 대표적인 오픈소스 보안 테스트 도구입니다. 국제 웹 보안 표준 기구인 OWASP(Open Web Application Security Project)에서 유지 및 관리하며, 개발자와 보안 전문가가 소프트웨어 개발 생명주기(SDLC) 전반에서 취약점을 식별하는 데 널리 활용됩니다.


작동 원리: 중간자(MitM) 프록시 방식

ZAP의 가장 핵심적인 작동 원리는 사용자의 웹 브라우저와 테스트 대상 웹 서버 사이에 위치하여 오고 가는 모든 통신을 중계하는 중간자 프록시(Man-in-the-Middle Proxy) 역할입니다.

  • 요청 가로채기(Intercept): 브라우저가 서버로 보내는 HTTP/HTTPS 요청을 서버에 도달하기 전에 ZAP이 일시 정지시키고 캡처합니다.
  • 변조 및 조작: 사용자는 ZAP 인터페이스를 통해 캡처된 요청의 파라미터, HTTP 헤더, 쿠키 등의 값을 임의의 악성 데이터로 변조할 수 있습니다.
  • 응답 분석: 변조된 공격 요청을 서버로 전송한 후, 서버가 반환하는 응답 코드와 데이터를 분석하여 취약점 존재 여부(예: 에러 메시지 노출, 비정상적인 동작)를 판단합니다.

주요 기능

OWASP ZAP은 웹 취약점 진단을 자동화하고 세밀하게 제어할 수 있는 다양한 도구를 제공합니다.

핵심 기능 상세 설명
Spider (크롤러) 웹 애플리케이션의 링크를 자동으로 추적하여 숨겨진 페이지와 전체 URL 구조를 파악합니다. 동적 페이지를 위한 'AJAX 스파이더' 기능도 함께 제공합니다.
Passive Scan (수동 스캔) 대상 서버로 전송되는 요청과 응답을 변경하지 않고 안전하게 관찰만 하여, 보안 헤더 누락이나 정보 노출 등 기본적인 취약점을 탐지합니다.
Active Scan (능동 스캔) 대상 서버에 공격 페이로드(SQL Injection, XSS 구문 등)를 실제로 전송하여 심각도 높은 취약점을 적극적으로 찾아냅니다. (운영 서버에는 영향을 줄 수 있으므로 테스트 환경에서 수행해야 합니다.)
Fuzzer (퍼저) 개발자가 예상치 못한 무작위 데이터나 대량의 문자열을 입력값에 지속적으로 주입하여, 애플리케이션의 예외 처리 결함이나 버퍼 오버플로우 등을 테스트합니다.
Alerts (경고 생성) 탐지된 취약점을 위험도(High, Medium, Low, Informational)에 따라 분류하고, 해당 취약점의 원인과 해결 방안을 리포트 형태로 제공합니다.

구체적인 활용 예시

게시판의 검색 기능에서 SQL Injection 취약점을 찾는 과정을 예로 들 수 있습니다.

  1. 정상 요청: 사용자가 웹 브라우저에서 검색어 apple을 입력하고 검색 버튼을 누릅니다.
  2. 프록시 개입: 서버로 날아가는 search=apple 이라는 파라미터 요청을 ZAP이 가로채어 화면에 띄워줍니다.
  3. 페이로드 삽입: 보안 담당자는 ZAP 툴을 조작하여 파라미터 값을 search=apple' OR '1'='1 과 같은 SQL 삽입 공격 구문으로 변조합니다.
  4. 공격 전송: 변조된 내용을 웹 서버로 전송합니다.
  5. 결과 확인: 서버의 응답 결과를 확인했을 때, 정상적인 'apple' 검색 결과가 아닌 데이터베이스 내부의 모든 게시글 목록이나 에러 구문이 반환된다면 SQL Injection 취약점이 존재함을 증명할 수 있습니다.