ZAP의 새로운 Import/Export Addon, 그리고 미래에 대한 뇌피셜

최근에 ZAP 내 여러가지 Import, Save 관련 기능들이 “Import/Export”란 이름의 새로운 Addon으로 통합되었습니다. 사용자 Interface 상에선 변화가 없어서 크게 달라진 건 없지만 이를 통해 앞으로의 ZAP에서 Import/Export 기능에 대한 방향성을 엿볼 수 있어서 글로 작성해봅니다 😎

  • Import files containing URLs
  • Log File Importer
  • Save Raw Message
  • Save XML Message

새로 추가된 Import/Export의 실제 Addon 이름은 exim입니다. EXIM은 EXport & IMport의 약자로 웹에서도 동일한 의미로 많이 쓰이는 말입니다. ZAP의 Addon은 API를 제공하도록 어느정도 강제하고 있는 사항이라 exim도 API로 제공되고 있습니다.

http://127.0.0.1:8090/UI/exim/

저는 솔직히 처음에 통합 내용을 봤을 때 굳이 하나의 Addon으로 합칠 필요가 있을까? 란 생각이 들었었습니다. 그래서 Github 이슈를 모두 찾아보기 시작헀죠. exim에 관련된 이슈 중 볼만한건 아래 2개입니다.

  • https://github.com/zaproxy/zaproxy/issues/5776
  • https://github.com/zaproxy/zaproxy/issues/6579

6579는 트래킹 관련 부분이고, 5776 이슈는 여러 Scan, Fuzz의 Request/Response를 하나의 File로 Save 하고 싶은 니즈가 있어 등록된 이슈입니다. 제 생각엔 이 이슈로 인해서 여러 기능들이 exim으로 통합되기 시작한 것 같습니다.

여기서부턴 뇌피셜입니다 🧐

ZAP의 큰 방향성은 Automation이 가지고 있습니다. ZAP은 보안 엔지니어가 테스팅을 위해서 사용하기에도 정말 좋은 도구이지만 DevSecOps, CI/CD Pipeline 등 DAST 엔진으로서의 역할도 높다고 생각합니다.

현재 Core team이 DevSecOps를 추구하는 경향 상 이번 업데이트는 스캔을 시작하는 지점을 넓히기 위한 초석이지 않을까 싶습니다. 현재는 URL을 입력 받거나 OpenAPI, Log 파일 등을 기반으로 스캔을 구성할 수 있을텐데요. EXIM 기능을 넓히게 된다면 다른 도구와의 Interaction이나 Intergration의 범위를 넓힐 수 있어서 ZAP을 좀 더 다양한 방법으로 사용할 수 있도록 만들어줄 것 같습니다.

아마 비슷한 예시로는 db_import 기능이 있는 Metasploit이 있을 것 같네요 :D

db_export         Export a file containing the contents of the database
db_import         Import a scan result file (filetype will be auto-detected)

3o7WIxrN6q5S2xMVZ6

EXIM 내 기능이 계속 추가된다면 현재 타겟 정보 입력 > 스캔 > 리포트 결과 란 고정된 형태의 플로우가 아니라 특정 부분만 체크해서 다시 다른 도구로 전달하기 위한 Pipeline등 여러가지 형태로 쓰일 수 있을 것 같습니다.

그래서 제 짧은 추리의 결론은 ZAP이 다른 도구와의 접점을 늘리려고 하는 것 같습니다 😁