ZAP Token Generation and Analysis 살펴보기

ZAP에는 Token Generation and Analysis란 Addon이 있습니다. 사실 이름만 보고 예전부터 설치는 해두었는데 한번도 사용하지 않았던 것 같네요.. 그래서 오늘 한번 사용해보고 정확히 어떤 도구인지, 어떤 용도로 사용할 수 있을지 글로 작성해봅니다.

Install Token Generation and Analysis

ZAP Addon은 ZAP 내부의 MarketPlace에서 쉽게 설치할 수 있습니다. Token Generation and Analysis란 이름을 찾아주세요.

이 Addon은 설명을 보면 아시겠지만, token에 대해 테스트하기 위해 랜덤한 토큰을 생성하고, 이를 기반으로 분석해주는 도구입니다.

Allows you to generate and analyze pseudo random tokens, such as those used for session handling or CSRF protection

설명대로 CSRF Token 등 주요 기능의 보안 토큰 등에 테스트를 진행할 수 있으며, 활용하기에 따라 세션 엔트로피 측정 등에도 사용할 수 있을 것 같네요. (전 보통 예전에 제가 만들어둔 웹 기반 도구를 쓰긴하는데, 진짜 딱 계산기 수준이라.. 컴플라이언스적인 측면이 아니라 실제로 강도나 약점을 측정하고 판단하기 위해선 이러한 도구들의 사용이 더 적합할 것 같아요.)

Generate Random token

History / Request / Response 탭 등에서 우클릭을 통해 Context Menu를 열면 아래쪽에 Generate Tokens 라는 버튼이 생깁니다. 이는 현재 수집된 웹 페이지에서 url, cookie, headers 등에 존재하는 값들을 기반으로 random token을 생성할 수 있도록 도와줍니다.

클릭하면 아래와 같이 어떤 타입인지? (cookie인지, url인지 등..), 값은 어떤 값을 쓸지, 갯수는 몇개정도 테스트할지 지정할 수 있습니다.

그래서 원하는 세팅으로 설정 후 Generate를 누르면 테스트가 진행됩니다. 이 때 테스팅 로그는 하단 Tab의 Token Gen에서 볼 수 있습니다.

Analysis report

분석이 끝나면 아래와 같이 간단하게 리포트를 제공해줍니다.

Test Desc
Maximum entropy token entropy를 체크합니다. 일반적으로 말하는 토큰의 강도입니다.
Character Uniformity 여러번 토큰을 생성하면서 uniformity, 즉 균일한 패턴을 가지는지 체크합니다.
Character Transitions 여러번 토큰을 생성하면서 transitions을 테스트합니다.
Count 1bit 1bit 체크
Count 2bit 2bit 체크
Count 3bit 3bit 체크
Count 4bit 4bit 체크
Count 8bit 8bit 체크
Count 16bit 16bit 체크