Context Technology로 ZAP 스캔 속도 올리기

ZAP의 Context(Scope)에는 Technology 라는 항목이 존재합니다. 이는 Context > Technology 경로에 존재하며 자세히 살펴보면 DB, Language, OS 등 여러가지 Technology 리스트와 체크박스가 존재합니다. 기본적으로 전부 체크되어 있습니다.

그럼 용도가 무엇일까요? 단순히 서비스에서 사용되는 기술을 작성하는 걸까요? 물론 그건 아닙니다. 이 Technology 항목은 ActiveScan 과 밀접한 영향이 있습니다. 하나 예시로 ActiveScan Rule의 SQL Injection 부분의 코드를 보면 이유를 알 수 있습니다.

https://github.com/zaproxy/zap-extensions/blob/main/addOns/ascanrules/src/main/java/org/zaproxy/zap/extension/ascanrules/SqlInjectionScanRule.java

코드 내 Tech.MySQL, Tech.MsSQL 같은 인자 값들이 존재하는데, 이게 바로 ActiveScan Rule과 Technology와의 매핑을 위한 값입니다. 결국 ActiveScan은 Technology에 명시된 항목을 대상으로 스캔을 진행하며, 적절히 값을 조정한다면 불필요한 스캔은 줄일 수 있어서 속도를 향상할 수 있습니다.

147개나..

그리고 API에서도 컨트롤할 수 있기 때문에 굳이 UI를 통하지 않고, 구성하기에 따라 자동으로도 처리할 수도 있습니다.

Name Method API Paramters
Get GET /JSON/context/view/technologyList/  
Exclude GET/POST /JSON/context/action/excludeContextTechnologies/ contextName=Target&technologyNames=MySQL
Include GET/POST /JSON/context/action/includeContextTechnologies/ contextName=Target&technologyNames=MySQL

ATTACK Mode를 자주 사용하거나 DevSecOps의 DAST로 사용하고 대상 시스템에 대해 잘 아는 경우 적절한 값 조정으로 스캔 속도를 조금 더 빠르게 바꿔보는 것도 좋은 시도라고 생각합니다 😊