Giới thiệu
Từ lâu nay, khi nói đến công cụ chính mà các pentester sử dụng cho việc kiểm thử bảo mật thì chúng ta không thể không nhắc đến Burp Suite (và đặc biệt là bản Pro). Trải qua rất nhiều lần cập nhật từ phiên bản 1.7 cho đến khi thay đổi hoàn toàn giao diện, Burp đã được trang bị thêm rất nhiều tính năng mới như BCheck, Organizer, thay đổi toàn diện UI và cải thiện Burp Scanner, vân vân...
Tuy nhiên với lõi công nghệ là Java thì Burp vẫn còn đó vấn đề muôn thủa: ngốn RAM đến lag cả máy...
Hoặc đã bao giờ bạn vô tình click nhầm vào một file JS khoảng 10MB trong HTTP history và thấy giao diện Burp đóng băng và bạn không thể làm gì hơn là ngồi chờ...
Nếu Với một pentester thông thường chỉ quan tâm đến một vài tính năng chính như Proxy, Repeater, Intruder thì giờ đây, họ đã có thể tìm cho mình một người bạn mới, đó chính là Caido. Cùng xem thử xem Caido có gì cho chúng ta nhé:
Cài đặt
Sau một thời gian closed-beta thì Caido đã public beta và bạn có thể tải về từ:
Hiện tại phiên bản mới nhất đang là 0.29.0
Caido được chia thành 2 thành phần:
- CLI: đóng vai trò core engine, với các chức năng proxy, API,...Phần CLI này được viết bằng ngôn ngữ Rust, đảm bảo tốc độ cũng như tiêu tốn ít tài nguyên.
- Desktop App: Phần giao diện frontend (được viết bằng công nghệ web, hình như là VueJS) dùng để kết nối, giao tiếp, hiển thị dữ liệu từ CLI thông qua GraphQL. Do đó giao diện này có thể dễ dàng đóng gói và tương thích với nhiều hệ điều hành khác nhau.
Do kiến trúc như thế này thì hoàn toàn bạn có thể chạy CLI của Caido trên VPS rồi sau đó connect vào bằng Desktop App hoặc bằng browser, khá là tiện lợi.
Sau khi tải Desktop App về, tại giao diện ban đầu, ta có thể khởi chạy một instance CLI ở local hoặc connect đến remote instance thông qua cấu hình địa chỉ IP và port.
Create và Start. Lúc này chúng ta sẽ được yêu cầu login bằng tài khoản Caido. Mục đích của việc này là để xác thực người dùng trong trường hợp kết nối đến remote instance, tuy nhiên việc yêu cầu account này có thể sẽ được gỡ bỏ trong tương lai:
Giao diện chính
Phía trái là list các chức năng quen thuộc. Nhưng trước khi có thể bắt được request, chúng ta sẽ cần set up CA Certificate cho browser. Click vào avatar ở góc trên bên phải sẽ hiển thị menu cùng hướng dẫn này.
Sau khi đã setup chứng chỉ xong thì việc cần làm tiếp theo là tạo project. Cũng giống như Burp, Caido quản lý theo project và chúng ta có thể lưu tối đa 10 project ở trong phiên bản Community.
Chuyển project ở góc phải màn hình nhé:
Dạo quanh một vòng các tính năng chính nào
Sitemap
Phần sitemap với cấu trúc cây thư mục trực quan giúp chúng ta xem các request, đưa chia đến từng nhóm param khác nhau:
Scope
Cho phép chúng ta tạo nhiều scope khác nhau theo pattern và filter các host dựa trên scope này:
Intecept
Caido cũng cho phép intercept request. Các request này sẽ được liệt kê thành từng dòng, cho phép ta dễ dàng chọn xem cần chỉnh sửa request nào. Tuy nhiên phần intercept response có vẻ chưa hoạt động (hoặc có thể mình chưa biết dùng )
HTTP History
Giao diện khá tương tự với Burp. Nhưng điểm đặc biệt ở đây là khả năng filter của Caido. Caido cho phép chúng ta filter theo nhiều tiêu chí khác nhau từ HTTP Method cho đến File Extension hoặc một đoạn string trong request hoặc response. Các filter này có thể kết hợp lại theo logic AND hoặc OR cho phép khả năng tùy chỉnh cực kỳ lớn. Nếu Caido có thêm tính năng lưu sẵn các filter thành collection hoặc thư viện (VD filter các extension không cần thiết, vân vân) thì còn tuyệt vời hơn nữa 🤑
Replay (Burp Repeater)
Giao diện và chức năng hoàn toàn tương tự (chỉ thiếu phần Inspector). Ngoài ra các tab của Caido cũng đã được tổ chức sẵn thành các collection, dễ dàng trong việc quản lý và tìm kiếm.
Automate (Burp Intruder)
Caido cũng cho ta định nghĩa các payload và vị trí trong request, và cũng có các mode attack tương tự. Ta cũng có thể upload file vào workspace để sử dụng. Tuy nhiên vẫn còn nhiều hạn chế so với Burp về các tùy chỉnh cho payload và các thực hiện brute-force:
Match & Replace
Không có gì nhiều để nói ở đây, Caido hỗ trợ cơ bản chúng ta trong việc chỉnh sửa request và response theo pattern được định nghĩa. Caido có thêm phần test trực tiếp, khá trực quan cho việc debug (nhớ Save rồi mới test nhé):
Convert
Workflow là tính năng mới của Caido, gần giống như CyberChef vậy, cho phép chúng ta biến đổi các input đầu vào thông qua các node như Base64 decode, MD5 hash, vân vân.
Sau khi định nghĩa xong các workflow này rồi, chúng ta có thể sử dụng chúng ở các tab Replay, tiết kiệm được kha khá thời gian luôn:
Ở bản pro thì chúng ta có thể trực tiếp viết code javascript để thực hiện convert hoặc xử lý phức tạp hơn thông qua các node điều kiện if/else:
Tạm kết
Như vậy với các tính năng chính như trên (và còn nhiều tùy chỉnh nữa mình chưa kể đến) thì Caido đã hoàn toàn đảm bảo đáp ứng được các yêu cầu thông thường chặn bắt và chỉnh sửa request. Như dưới đây, Caido còn sử dụng khá ít tài nguyên, đặc biệt là phía backend. Có lẽ phần nặng nhất vẫn chính là giao diện web mà thôi
Hiện Caido cũng cung cấp nhiều phiên bản khác nhau, nhưng với bản Community cũng khá là đủ dùng rồi. Bạn nào đang là học sinh sinh viên có thể gửi mail để nhận được bản Pro miễn phí nữa nhé.
Với việc thực hiện release ít nhất một lần một tháng thì Caido hứa hẹn sẽ ngày càng hoàn thiện và hoàn toàn có khả năng trở thành công cụ thay thế "hoàn hảo" cho Burp mỗi khi dở chứng