ZAP 2.12 Review ⚡️

드디어 ZAP 2.12 버전이 릴리즈되었습니다. 🎉👏🏼🍾 10월 중순쯤에 릴리즈 예정이였지만, 이슈로 약간 늦어졌다고 하네요. 오늘은 ZAP 2.12 버전에서 바뀐 내용들을 리뷰해보도록 하겠습니다. 그럼 시작하죠.

UI

UI상으론 크게 바뀐게 없습니다. 물론 자세히 살펴보면 몇몇가지 정보들이 더 추가되긴 했네요.

Network

ZAP 2.12 버전의 핵심 변경 사항입니다. 바로 Modern Protocols를 지원하는 Network stack 으로 변경되었습니다. 이로 인해 기존에 ZAP의 한계점 중 하나였던 HTTP/2 등의 프로토콜 지원 이슈가 해소되었습니다. 그리고 아래와 같은 기능들이 더 추가되었다고 하네요.

  • Proxy/Local Server Aliases
  • Proxy and ZAP API are no longer tied together.
  • HTTPS pass-through
  • Certificate validity period configuration

이제 HTTP/2 요청이 가능합니다.

Proxy대한 Config에 Aliases나 pass-through 관련 메뉴가 생겼습니다.

그리고 이제 ZAP에서 생성한 Certificate의 유효기간을 사용자가 변경할 수 있도록 추가되었습니다. 예전에 Burp,ZAP 모두 1년이라는 기간을 가지도록 변경됬었는데 생각보다 불편함을 만들었었죠. 이제는 조금 나아질 것 같습니다.

Core to Addon

Spider, Database 등 Core 기능 중 일부가 AddOn으로 이동되었습니다. 이는 Core의 경우 ZAP 릴리즈를 따르기 때문에 쉽게 변경하기 어려웠단 문제가 있었고, 이제 AddOn으로 바뀌었기 떄문에 기능 개선이나 버그 픽스의 속도가 빨라질 것으로 예상됩니다.

Permanent Database

Database가 AddOn으로 변경되면서 Permanent database 지원이 추가되었습니다. 이제 ZAP에서 DB를 통해 데이터를 저장, 그리고 다른 AddOn에서도 이를 사용할 수 있기 때문에 좀 더 유연한 동작 구성이 가능할 것으로 보입니다. ZAP 팀에선 이런 예시로 이런 이야기를 하였습니다.

It is used by the OAST add-on to persist BOAST payloads that can be polled in future ZAP sessions to list out-of-band interactions made to the service while ZAP wasn’t running.

OAST를 ZAP 꺼진 상태에서도 수집할 수 있도록 구성하는 형태인데, Blind 계통의 취약점을 잡을 때 유용해보여서 개인적으로 되게 좋은 아이디어라고 생각합니다.

Scan Rule

기존 Beta, Alpha 스캔 룰 중 일부가 Release 룰로 승격되었습니다. 리스트는 여기서 확인해주세요!

Improve and Bugfix

여러가지 기능개선과 버그픽스가 있었습니다. 특히 2.11-2.12 사이에 Spidering 쪽은 Crawl Maze를 이용해 크게 개선을 한걸로 알고 있습니다.

API

False Positive

이제 Alert 결과에서 False Positive가 추가되었습니다. 스펙에서 추가되는거라 관련 API를 CI/CD 등 도구로 사용중이라면 참고하셔야할 것 같네요.

{
  "False Positive": 1,
  "High": 0,
  "Informational": 2,
  "Low": 3,
  "Medium": 0
}

New

  • ACTION pscan / clearQueue

Deprecated

Network 쪽에 크게 변경되면서 depreacted된 API가 많습니다.

  • Import/Export
    • OTHER core / messageHar
    • OTHER core / messagesHar
    • OTHER core / messagesHarById
    • OTHER core / sendHarRequest
  • Network
    • CTION core / addProxyChainExcludedDomain
    • ACTION core / disableAllProxyChainExcludedDomains
    • ACTION core / enableAllProxyChainExcludedDomains
    • ACTION core / enablePKCS12ClientCertificate
    • ACTION core / disableClientCertificate
    • ACTION core / generateRootCA
    • ACTION core / modifyProxyChainExcludedDomain
    • ACTION core / removeProxyChainExcludedDomain
    • ACTION core / setOptionDefaultUserAgent
    • ACTION core / setOptionDnsTtlSuccessfulQueries
    • ACTION core / setOptionHttpStateEnabled
    • ACTION core / setOptionProxyChainName
    • ACTION core / setOptionProxyChainPassword
    • ACTION core / setOptionProxyChainPort
    • ACTION core / setOptionProxyChainPrompt
    • ACTION core / setOptionProxyChainRealm
    • ACTION core / setOptionProxyChainSkipName
    • ACTION core / setOptionProxyChainUserName
    • ACTION core / setOptionSingleCookieRequestHeader
    • ACTION core / setOptionTimeoutInSecs
    • ACTION core / setOptionUseProxyChain
    • ACTION core / setOptionUseProxyChainAuth
    • ACTION core / setOptionUseSocksProxy
    • ACTION localProxies / addAdditionalProxy
    • ACTION localProxies / removeAdditionalProxy
    • OTHER core / proxy.pac
    • OTHER core / rootCaCert
    • OTHER core / setproxy
    • VIEW core / optionDefaultUserAgent
    • VIEW core / optionDnsTtlSuccessfulQueries
    • VIEW core / optionHttpState
    • VIEW core / optionHttpStateEnabled
    • VIEW core / optionProxyChainName
    • VIEW core / optionProxyChainPassword
    • VIEW core / optionProxyChainPort
    • VIEW core / optionProxyChainPrompt
    • VIEW core / optionProxyChainRealm
    • VIEW core / optionProxyChainUserName
    • VIEW core / optionSingleCookieRequestHeader
    • VIEW core / optionTimeoutInSecs
    • VIEW core / optionUseProxyChain
    • VIEW core / optionUseProxyChainAuth
    • VIEW core / optionUseSocksProxy
    • VIEW core / proxyChainExcludedDomains
    • VIEW localProxies / additionalProxies

Conclusion

먼저 제가 이야기한 내용 외에도 여러가지 업데이트 사항들이 있었습니다. 궁금하시면 2.12 Milestone 참고하시는거 추천드립니다.

뭔가 새로운 기능들이 나온건 아니지만 개인적으로 Network stack 바뀐건 정말 좋습니다. 그리고 저는 잘 몰랐었지만 Permanent Database 지원도 우리가 활용하기에 따라서 되게 좋은 결과를 가져다 줄 수 있지 않을까란 생각도 듭니다.

일단 저도 이것저것 사용해보면서 또 2.12만의 재미있는 트릭들을 만들면 한번 더 공유해드리도록 하겠습니다 :D

References