ZAP 2.12 살펴보기 ⚡️


드디어 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

ZAP 2.12 살펴보기 ⚡️
이제 HTTP/2 요청이 가능합니다.

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

ZAP 2.12 살펴보기 ⚡️

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

ZAP 2.12 살펴보기 ⚡️

Core to Addon

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

ZAP 2.12 살펴보기 ⚡️

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만의 재미있는 트릭들을 만들면 한번 더 공유해드리도록 하겠습니다 😀

References



Source link