Nguồn bài viết gốc: Beosin
Vào ngày 9 tháng 6, Anthropic đã chính thức ra mắt phiên bản công khai của Mythos Claude Fable 5. Trước đó, Mythos đã nổi bật với khả năng phát hiện lỗ hổng bảo mật, có thể nhanh chóng tìm ra các lỗ hổng ẩn sâu bên trong hệ thống, thu hút sự chú ý cao độ trong lĩnh vực an ninh mạng.
Sự kiện Zcash gần đây là một ví dụ điển hình về việc AI khai thác lỗ hổng blockchain. Nhà nghiên cứu bảo mật Taylor Hornby với sự hỗ trợ của mô hình Anthropic Claude Opus 4.8, chỉ trong vài giờ đã phát hiện ra một lỗ hổng soundness trong bể riêng tư Orchard tiềm ẩn suốt bốn năm, mà trước đó nhiều cuộc kiểm toán thủ công đều không phát hiện ra. Lỗ hổng này về lý thuyết có thể tạo ra vô số ZEC giả không bị phát hiện, trực tiếp khiến giá ZEC giảm gần 40%.
Hiện tại, AI đã thể hiện hiệu quả đáng kinh ngạc trong việc so khớp mẫu mã, sàng lọc sơ bộ hàng loạt, việc tích hợp AI vào quy trình kiểm toán bảo mật blockchain và hợp đồng thông minh đang trở thành xu hướng trong ngành bảo mật Web3. Bài viết này sẽ kết hợp các ví dụ lỗ hổng thực tế và hiệu suất thực tế của Fable 5, phân tích ưu điểm và nhược điểm của AI trong kiểm toán hợp đồng thông minh.
Các tình huống ưu điểm của kiểm toán bằng AI
Phân tích trường hợp: Va chạm vị trí lưu trữ (Storage Slot Collision)
Một hợp đồng đồng thời sử dụng hai thành phần sau:
1. Rewards mapping tùy chỉnh (dùng để ghi lại phần thưởng người dùng có thể nhận)
2. Thư viện Solady ReentrancyGuard (ngăn chặn tấn công tái nhập)
Và bố cục lưu trữ của hai thành phần này xảy ra xung đột.
Trong đó, ReentrancyGuard của Solady nhằm tối ưu hóa gas tối đa, sử dụng một vị trí lưu trữ (slot) cố định, có số thứ tự thấp (thường được tính toán qua một phép tính cụ thể để đạt được một slot gần như hằng số). Logic điển hình của nonReentrant modifier là:
// Phiên bản đơn giản hóamodifier nonReentrant() { // khi bắt đầu, ghi giá trị slot bảo vệ là 0xff...ff (Giá trị Sentinel) assembly { if eq(sload(REENTRANCY_GUARD_SLOT), 2) { revert(...) } // 2 đại diện cho trạng thái khóa sstore(REENTRANCY_GUARD_SLOT, 2) // khóa } _; // khôi phục khi hàm kết thúc assembly { sstore(REENTRANCY_GUARD_SLOT, 1) }}
Rewards mapping tùy chỉnh:
mapping(address => uint256) public rewards;
Do quy tắc bố cục lưu trữ Solidity (slot đầu tiên của mapping được tính toán từ vị trí khai báo của nó), vị trí slot đầu tiên của rewards mapping hoàn toàn trùng với slot bảo vệ cố định của ReentrancyGuard.
Quy trình tấn công (các bước chi tiết):
1. Kẻ tấn công gọi hàm getReward()
2. NonReentrant modifier được kích hoạt, ghi giá trị 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff (toàn bộ là 1) vào guard slot
3. Mã hợp đồng sau đó đọc rewards[địa chỉ kẻ tấn công] —— nhưng do va chạm slot, thực tế nó đọc được giá trị 0xff...ff (giá trị rất lớn) trong guard slot
4. Hợp đồng cho rằng “có phần thưởng khổng lồ”, do đó chuyển số ETH này cho kẻ tấn công, đồng thời cố gắng đặt rewards[kẻ tấn công] về 0 (nhưng lại ghi trở lại vào chính guard slot đó)
5. Vì modifier sẽ khôi phục slot khi hàm kết thúc, khi kẻ tấn công gọi getReward() lần nữa, quy trình lặp lại
6. Kẻ tấn công gọi vòng lặp 200 lần, mỗi lần đều rút thành công một số ETH cố định, cho đến khi lượng ETH có thể rút trong hợp đồng bị rút cạn
Cần lưu ý rằng đây không phải là "tấn công tái nhập" (reentrancy attack) theo nghĩa truyền thống, mà chính cơ chế bảo vệ của ReentrancyGuard bị lợi dụng ngược thông qua va chạm lưu trữ, biến thành lỗ hổng nhận thưởng vô hạn. Trong kiểm toán thủ công, hiếm khi đi sâu từng dòng để phân tích bố cục lưu trữ của thư viện bên thứ ba, trong khi AI có thể hoàn thành ngay lập tức việc so sánh phiên bản thư viện + ánh xạ chính xác vị trí lưu trữ, trực tiếp phát hiện loại lỗ hổng "va chạm ẩn" này.
Các tình huống hạn chế của kiểm toán bằng AI
Fable 5 thể hiện xuất sắc trong việc phát hiện lỗ hổng trên hợp đồng đơn lẻ, lỗi cú pháp mã thuần túy, lỗ hổng liên quan đến lưu trữ cấp thấp, nhưng vẫn có những hạn chế rõ ràng khi đối mặt với ngữ nghĩa kết hợp đa giao thức, tấn công kết hợp nhiều hợp đồng. Chúng tôi sử dụng phiên bản công khai mới nhất Fable 5, tiến hành kiểm tra lại các hợp đồng liên quan đến sự kiện tấn công Curve LlamaLend sDOLA, kết quả xác nhận vấn đề này.
Lần kiểm toán này liên quan đến danh sách hợp đồng: crvUSD Controller.vy, sDOLA.sol, ERC4626.sol và các hợp đồng chuỗi khác. Và Fable 5 đã không thể xác định được rủi ro cốt lõi tương ứng với cuộc tấn công này:
Sự kiện này thuộc loại lỗ hổng kết hợp đa giao thức điển hình, mã cú pháp và logic của hợp đồng đơn lẻ đều không có vấn đề, nhưng kẻ tấn công lợi dụng sự tương tác của nhiều giao thức để xây dựng chuỗi tấn công:
1. Với sự hỗ trợ của công cụ flash loan (vay nhanh), thao túng giá của nhóm thanh khoản Curve, cố ý hạ thấp giá tài sản của sDOLA (cổ phần kho bạc ERC-4626);
2. Một số lượng lớn các vị thế cho vay sử dụng sDOLA làm tài sản thế chấp chạm ngưỡng thanh lý;
3. Kẻ tấn công thực hiện hàng loạt thao tác thanh lý, thu lợi từ đó.
Loại lỗ hổng này hình thành dựa trên sự kết hợp của nhiều giao thức DeFi, đòi hỏi AI/chuyên gia kiểm toán phải có khả năng phân tích tổng hợp toàn bộ nghiệp vụ, mô hình kinh tế của giao thức. Hiện tại, kiểm toán bằng AI vẫn còn thiếu sót trong việc hiểu ngữ nghĩa kết hợp đa giao thức.
Lời kết
Thông qua kiểm tra thực tế các trường hợp, có thể thấy Fable 5 trong các tình huống tiêu chuẩn hóa, chi tiết hóa như xung đột vị trí lưu trữ, lỗ hổng mẫu mã, lỗi logic hợp đồng đơn, sàng lọc sơ bộ mã hàng loạt, có thể khai thác hiệu quả các lỗ hổng ẩn dễ bị bỏ sót trong kiểm toán thủ công. Tuy nhiên, khi xử lý các lỗ hổng về ngữ nghĩa kết hợp đa giao thức, mô hình kinh tế DeFi, tấn công đa hợp đồng phối hợp, lỗ hổng logic nghiệp vụ phức tạp, nó khó có thể hiểu được bản chất nghiệp vụ của hệ sinh thái trên chuỗi, khai thác đường dẫn tấn công kết hợp. Phần này vẫn cần các chuyên gia kiểm toán bảo mật chuyên nghiệp dẫn dắt phân tích.
Trong công việc kiểm toán hàng ngày, Beosin đã thiết lập quy trình kiểm toán phối hợp AI + chuyên gia bảo mật trưởng thành, không chỉ nâng cao đáng kể hiệu quả kiểm toán, mà còn có thể phát hiện tốt hơn các rủi ro chi tiết tiềm ẩn và lỗ hổng logic nghiệp vụ phức tạp, khiến công việc kiểm toán trở nên hiệu quả, toàn diện và sâu sắc hơn.







