Hello Caido 👋🏼


최근 Rust 기반의 분석도구인 Caido가 드디어 Public Beta로 전환되었습니다. 기존 Private Beta 당시 수려한 UI와 빠르다고 알려진 속도 덕분에 일부 BugBountyHunter 들에게 선택되어 사용되었고 많은 관심을 받고 있던 도구입니다.

오늘은 Caido가 어떤 도구인지, 어떻게 사용하면 좋을지 살펴보고 공유해봅니다.

Overview

Caido는 Manual Testing에 초점이 맞춰진 도구로 빠른 속도를 장점으로 내세우고 있습니다. Rust 기반이다 보니 데이터가 많아지고 연산이 복잡해질 수록 이점을 많이 가져갈 것 같습니다.

테스팅에 필요한 기본적인 기능은 아래와 같이 제공하고 있습니다. 물론 테스팅 방법론에 따라 안맞을 수도 있지만, 기본적으로 메뉴얼 테스팅에 필요한 기능들은 얼추 다 갖추고 있습니다.

  • Sitemap
  • Forward
  • Intercept
  • Replay
  • Automate
  • Tamper
  • Convert
  • History
  • Scope

모든 걸 다 작성하긴 불필요할 것 같고 Sitemap, Replay, Automate의 중점적인 특징을 살펴볼게요.

Take a look

Sitemap

sitemap의 경우 ZAP의 구조와 유사합니다. 기본적으로 Site에 대한 tree와 해당 History 그리고 Req/Res를 볼 수 있는 창을 제공합니다. 전반적으로 굉장히 깔끔하네요.

우클릭하면 Send to 로 Replay나 Automate로 보낼 수 있습니다.

Replay

Replay는 Burp의 repeater, ZAP의 Requester/Manual Request와 비슷한 기능입니다. 요청을 편집하고 재 전송해볼 수 있습니다. 재미있는건 기본적으로 Collection 단위의 정리를 지원합니다. 각각의 Collection에 원하는 요청을 넣어서 확인할 수 있습니다.


Burpsutie의 Repeater와 닮았고, Stepper와도 살짝 닮았네요

또 재미있는건 Replay에서 전송한 데이터는 이력을 가지고 있습니다. 아래 화살표 버튼으로 이전 요청과 Res를 확인할 수 있습니다.


이건 진짜 괜찮네요 👍🏽

Automate

Automate는 Fuzzing을 위한 기능으로 Burp의 Intruder, ZAP의 Fuzzer와 같은 결의 기능이며 모습은 ZAP Fuzzer를 닮았지만 직관적이고 대신 기능이 살짝 모자랍니다.

파일이나 리스트 기반으로 테스팅할 수 있고, Attack Strategy로 지정할 수 있어서 용도에 맞게 여러가지 형태로 테스트해볼 수 있습니다.

GraphQL Endpoint

Caido는 GraphQL Endpoint를 제공합니다. 쿼리할 수 있는 부분이 상당히 디테일해서 연결된 다른 도구들을 만들고 이용하기 좋을 것 같습니다.

개인적인 추측으로는 Burp, ZAP에서 고수하고 있는 Java 기반(또는 Jruby, Jython 등을 이용한 스크립팅)의 Addon의 불편함을 인지하고 API를 좀 더 쉽게 제공하려는 목적이 아닐까 싶습니다. ZAP 또한 REST API를 굉장히 디테일하게 주고 있어서 Addon이 아니여도 API를 활용한 방법들로 쓸 수 있었는데, 크게는 비슷한 그림으로 가지 않을까 싶네요.

Roadmap

https://github.com/orgs/caido/projects/4/views/20

Caido 팀은 Github Project를 잘 쓰고 있습니다. 참고하면 어떤 방향으로 도구가 만들어지고 다듬어질지 미리 예측해볼 수 있습니다 😀

Conclusion

지금 단계에선 절대 Burpsuite이나 ZAP 보다 좋을 수 없습니다. 프로젝트의 기간과 규모가 다르기 때문에 기본적으로 이 둘은 늦게 시작한 프로젝트에서 따라가기 힘든 정도의 기술과 쌓여있는 노하우가 많다고 생각합니다.

Burpsuite의 Scanning Engine, ZAP의 Scripting Engine. 
다른 기능들은 제외하고 단순히 엔진 하나씩만 꺼내도 이 둘은 엄청난 장점을 가지고 있죠.

다만 작더라도 이러한 경쟁자의 출현은 모든 도구의 발전에 큰 영향을 주기 때문에 항상 반갑습니다. 저 또한 제가 가지고 있는 여러 목표 중 하나가 MITMProxy 기반의 분석 도구를 만드는 것인데, Caido에서도 많은 영감을 얻어간 것 같네요.

일단은 서브로 좀 더 사용해보고 괜찮다면 Caido를 사용하기에 좋은 팁들을 공유해보도록 할게요 😀





Source link