의견.png

ZAP

위키원
dlensk99 (토론 | 기여)님의 2021년 1월 8일 (금) 09:50 판
이동: 둘러보기, 검색
ZAP
ZAP

ZAP(잽)이란 "Zed Attack Proxy"의 약자로서, 오픈 소스 웹 애플리케이션 보안 스캐너이다.[1] OWASP ZAP이라고도 한다. 간단히 요약하면 개발단계에서 손쉽게 보안 취약점을 발견하고 조치할 수 있도록 하는 오픈소스 제품이다.[2] 이 프로젝트는 OWASP(Open Web Application Security Project) 프로젝트 중 하나이고, 플래그 십 상태를 받았다.[1]

개요

OWASP ZAP는 세계에서 가장 인기있는 무료 보안 도구 중 하나이며 오픈소스로 공개되어 있으며 깃허브에서 해당 파일을 받을 수 있다. 여러 국가에서 프로그래머들이 자발적으로 유지보수를 지원하고 있기 때문에 유연성과 확장성이 뛰어나다는 장점이 있다. ZAP는 브라우저와 웹 애플리케이션 사이에 전송된 메시지를 가로채고 검사할 수 있도록 테스터의 브라우저와 웹 애플리케이션 사이에 있으며 중간자 역할을 수행한다. 필요한 경우 내용을 수정한 다음 그 패킷들을 목적지에 전달할 수 있다. 2010년에 1.0.0 버전이 처음 출시됐으며 2020년 현재는 2.9.0 버전이 출시되었다. 출시된 이래로 ZAP 사용량은 꾸준하게 증가해 왔으며 2020년 3월 기준 ZAP는 85,000회 이상 다운로드 되었고 ZAP Docker 이미지는 220,000회 이상 받아졌으면 100만번 이상 실행되었다. ZAP 데스크탑의 국가별 사용량 순위는 1위가 미국, 2위가 인도, 3위가 일본이며, ZAP 데몬의 국가별 사용량 순위는 1위가 미국, 2위가 호주, 3위가 독일이다.[3]

2011년에는 올해의 툴 스미스 툴로 뽑혔다.ToolsWatch.org 독자가 2013년에는 최고의 보안도구로, 2014년 최고의 보안도구 2위로 뽑았다. 2015년 Bossie Award에서 오픈 소스 네트워킹 및 보안 소프트웨어로 언급 된 OWASP 도구 중 하나이다.[1]

기능

프록시

애플리케이션과 브라우저간의 HTTP 통신 내용을 저장한다.
보안 진단을 위해 요청을 보내면 응답 데이터를 시각화 한다.[2]

스파이더

전체 웹 애플리케이션에 대한 정보를 수집한다.
비공개 파일이나 디렉토리의 유무를 확인한다.[2]

정적/동적 검색

다양한 취약점을 자동으로 감지한다.[2]

Fuzzer

기본적인 정적/동적 스캔으로는 검출이 어려운 취약점을 수동으로 검색한다.[2]

애드온 Script

애플리케이션 고유의 기능에 대응하는 진단 도구를 작성한다.[2]

ZAP API

검색과 스파이더 등 외부에서 다양한 기능을 조작하여 진단 작업을 완벽하게 자동화 한다.[2]

특징

  • 유연성 & 확장성 :

웹 애플리케이션의 취약점

SQL이나 운영체제 명령을 주입하는 등 서버를 목표로 하는 입력 기반 취약점
크로스 사이트 스크립트(XSS)같은 클라이언트 측을 목표로 하는 입력 기반 취약점
웹 애플리케이션과 브라우저 중간에서 비밀번호나 쿠키를 암호화하지 않고 전송하는 등 요청과 응답 주기를 조사해서 식별할 수 있는 취약점[4]

스캐너가 발견하지 못하는 취약점

  • 취약한 비밀번호
  • 의미있는 매개변수 이름
  • 저장된 SQL Injection(2차 SQL Injection)
  • 여러 단계의 저장된 XSS
  • 강제 브라우징(디렉토리와 파일을 무작위로 공격한다.)
  • 세션 공격
  • 논리 결함[4]

OWASP ZAP 사용법

간단 사용법

  • 빠른 시작에 대상 사이트 URL을 넣어서 실행한다.
  • Sites 탭에 탐색된 페이지 주소가 나타난다.
  • Alert 탭에 사이트의 취약점 종류와 해당 페이지 정보가 나타난다.[5]

기본 사용법

  • 브라우저 프록시 설정을 통해 방문하는 사이트의 취약점을 분석한다.
  • 로그인 세션이 필요한 페이지를 설정할 수 있다.
프록시 설정
ZAP Tools에서 Options에 들어가고, Local proxy에서 Port를 8082로 설정한다.
브라우저와 ZAP의 프록시 설정을 마치면, 브라우저에서 호출되는 모든 URL에 대해 보안 취약점을 분석한다.[5]
로그인 설정
ZAP에서 새로운 세션을 시작한다.
브라우저에서 로그인 페이지로 이동한 후 로그인을 한다.
세션을 위해서 컨텍스트를 설정한다.
대상 사이트를 선택하고 Include in Context에서 1을 선택한다.
확인을 한 후 닫는다.
로그인 처리 주소 선택을 한다. Flag as Context > 1:Form-based Auth Login request 선택
Authentication 메뉴에서 Username, Password의 파라미터를 지정한다.
User 메뉴에 로그인 할 사용자의 정보를 입력한다.
Authentication 메뉴로 돌아가면 파라미터의 값이 변경된 것을 확인할 수 있다.[5]
취약점 스캔
브라우저에서 가능한 모든 링크를 클릭한다.
ZAP에 사이트 주소들이 수집되고, 수집된 URL을 기준으로 취약점을 스캔한다. Attack > Active Scan all in Scope
Active Scan 탭이 열리면, 대상 사이트를 선택하고, Start Active Scan 아이콘을 누른다.
Show scan progress details 아이콘을 누르면 현재 진행상황을 볼 수 있다.[5]
취약점 리포트
취약점이 있는 경우, URL 앞에 4단계의 깃발이 표시된다.
깃발이 붉은색일수록 위험한 취약점을 뜻한다.
Alerts 탭에 종류별로 취약점과 해당 페이지 목록이 나타난다.
항목 선택시에 보여지는 매개변수와 공격값, 설명과 해결방법, 참조 사이트 등을 통해서 취약점을 보완한다.[5]

OWASP ZAP 웹 취약점 점검 기준

Information Gathering

  • Backup File Disclosure
  • Cookie Slack Detector
  • Directory Browsing
  • ELMAH Information Leak
  • Heartbleed OpenSSL Vulnerability[6]

...

Miscellaneous

  • An example active scan rule which loads data from a file
  • Example Active Scanner: Denial of Service
  • External Redirect
  • Generic Padding Oracle
  • GET for POST

...

Injection

  • Advanced SQL Injection
  • Buffer Overflow
  • CRLF Injection
  • Cross Site Scripting(Persistent)
  • Cross Site Scripting(Persistent) - Prime
  • Cross Site Scripting(Persistent) - Spider
  • Cross Site Scripting(Reflected)

...

각주

  1. 1.0 1.1 1.2 OWASP ZAP 위키피디아 - https://en.wikipedia.org/wiki/OWASP_ZAP
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 OWASP ZAP - DevOps를 위한 Self웹취약점 점검 도구 소개〉, 《오픈나루》
  3. zaproxy, 〈zaproxy / zaproxy〉, 《깃허브》
  4. 4.0 4.1 사이테일, 〈웹 애플리케이션 사전조사 및 스캐닝(2) - ZAP(Zed Attack Proxy)〉, 《티스토리》, 2015-04-14
  5. 5.0 5.1 5.2 5.3 5.4 Zed Attack Proxy(ZAP)〉, 《OKdevTV》
  6. [1]〉, 《OKdevTV》

참고자료

같이 보기


  의견.png 이 ZAP 문서는 보안에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.