Securityadvancedarticle25 min read

Kiểm Toán Bảo Mật DeFi: Phương Pháp, Công Cụ & Phân Loại Lỗ Hổng | VCC

DeFi An ninh kiểm tra đã trở thành một cơ sở hạ tầng quan trọng để bảo vệ hàng tỷ đô la tiền của người dùng. Chỉ trong năm 2022, 3,8 tỷ đô la đã bị đánh cắp từ các DeFi Protocols – một con số vượt quá GDP của nhiều quốc gia nhỏ. Đến năm 2023, tổng số thiệt hại từ năm 2020 đã vượt qua 10 tỷ đô

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 14 tháng 9, 2026
Mục lục (42 mục)

DeFi An ninh kiểm tra đã trở thành một cơ sở hạ tầng quan trọng để bảo vệ hàng tỷ đô la tiền của người dùng. Chỉ trong năm 2022, 3,8 tỷ đô la đã bị đánh cắp từ các DeFi Protocols – một con số vượt quá GDP của nhiều quốc gia nhỏ. Đến năm 2023, tổng số thiệt hại từ năm 2020 đã vượt qua 10 tỷ đô la, với các cầu nối xuyên chuỗi chiếm 70% số tiền bị đánh cắp. Sau mỗi vụ tấn công lớn đều có sự thất bại của Process: mã không được kiểm tra, các giai đoạn kiểm tra bị bỏ qua hoặc các phát hiện bị bỏ qua.

Đây là một hướng dẫn chi tiết về DeFi kiểm toán bảo mật — từ mô hình năm giai đoạn được các công ty hàng đầu sử dụng cho đến hệ thống phân loại lỗ hổng liên quan đến các vector tấn công đặc thù, khu vực công cụ với các cân nhắc chiến thuật, và bảo mật hoạt động sau kiểm tra giúp phân biệt các giải pháp an ninh linh hoạt với những tin tức nổi bật.

Flowchart - Five-phase DeFi audit methodology from reconnaissance to continuous monitoring

Flowchart - Five-phase DeFi audit methodology from reconnaissance to continuous monitoring


Tại sao DeFi kiểm toán bảo mật khác với các kiểm tra phần mềm truyền thống

An ninh phần mềm truyền thống tuân theo một mô hình quen thuộc: kiểm thử xâm nhập, xem xét mã, triển khai bản vá, giám sát. DeFi phá vỡ mọi giả định.

Không thể thay đổi như mặc định Các hợp đồng thông minh, một khi được triển khai, không thể được sửa chữa. Các cơ chế Upgrade (proxies, diamond) chính là điểm tấn công — cầu nối Nomad đã mất 190 triệu USD do lỗi khởi tạo trong logic Upgrade. Một kiểm toán phải xác minh không chỉ mã hiện tại, mà cả các bước tiến hành của nó.

Môi trường kinh tế Mỗi lỗi đều có một giá trị. Các kẻ tấn công là những người hành động theo lý trí, họ tính toán ROI: chi phí gas + chi phí đầu tư + rủi ro so với việc khai thác dự kiến. Sự khai thác năm 2022 (182 triệu USD) đã sử dụng một Beanstalk để mua lại quyền bầu cử, thông qua một flash loan độc hại, và cạn kiệt hệ thống Protocol – tất cả trong một giao dịch duy nhất. Không có chương trình bug bounty nào trên Web2 có thể cung cấp ROI như vậy.

Chính sách minh bạch của mempool công khai Các giao dịch có thể được nhìn thấy trước khi thực hiện. Điều này cho phép MEV (giá trị có thể thu được tối đa) — Front-running, Sandwich tấn công, liquidation racing. Một kiểm toán phải mô hình mempool như một môi trường đối thủ, nơi bất kỳ chức năng thay đổi trạng thái nào cũng có thể được quan sát và tận dụng trước khi đưa ra quyết định.

Composability = Shared Fate Protocol A tích hợp Protocol B's oracle. oracle của Protocol B đã bị tác động. Protocol A liquidates người dùng dựa trên các giá không chính xác. Cách tấn công Mango Markets năm 2022 (117 triệu USD) đã tác động đến oracle trên Mango Markets, dẫn đến các Protocol phụ thuộc. Các kiểm tra phải theo dõi các giả định trust xuyên qua các giới hạn của Protocol.

Không có môi trường thử nghiệm thực tế environment testnets lack mainnet liquidity, MEV cuộc cạnh tranh, và hành vi của người dùng thực tế. Một Protocol hoạt động hoàn hảo trên Goerli có thể sụp đổ trên mainnet khi một con cá voi tương tác với nó. audit methodology phải phù hợp với mô hình kinh tế và mô phỏng adversarial.

Diagram - DeFi vs Traditional Software Audit comparison: immutability, financial stakes, mempool, co

Diagram - DeFi vs Traditional Software Audit comparison: immutability, financial stakes, mempool, co


Five-Phase DeFi audit methodology: Từ khám phá đến báo cáo

Top audit fIRms (Trail of Bits, OpenZeppelin, ConsenSys Diligence, Spearbit) hội tụ vào một mô hình mETHodology có năm giai đoạn. Mỗi giai đoạn có các tiêu chí nhập/ra, công cụ và sản phẩm hoàn thành riêng.

Giai đoạn 1 – Phân tích đánh giá và mối đe dọa (3-5 ngày)

Mục tiêu: DeFi: xác định phạm vi, kiến trúc bản đồ, liệt kê các điểm tấn công và mô hình hóa các mối đe dọa.

Hoạt động:

  • Thông tin về phạm vi: Địa chỉ hợp đồng, phụ thuộc (thư viện, giao diện), các thành phần ngoài chuỗi (relayers, indexers, frontends), hợp đồng quản trị, khóa quản trị viên.

Tài liệu cung cấp: tài liệu mô tả phạm vi, sơ đồ kiến trúc, sổ ghi nhận các giả định, mô hình mối đe dọa, kế hoạch kiểm tra với các ước tính giai đoạn.

Căn cứ vào điều kiện tham gia: Thư cam kết đã ký, quyền truy cập vào kho lưu trữ, địa chỉ triển khai. Căn cứ vào điều kiện kết thúc: Tham gia ___PR__ESERVE_56____ đồng ý về phạm vi và mô hình mối đe dọa.

Giai đoạn 2 – Phân tích tĩnh và quét tự động (2-3 ngày)

Mục tiêu: Tìm kiếm rộng rãi các mẫu lỗ hổng đã biết; phát triển quy tắc tùy chỉnh cho logic đặc trưng của Protocol.

**Công cụ tổ chức:

_PRESERVE_59_ESERVE_16_ . --detect _PRESERVE_59_ESERVE_6_, chuyển dữ liệu không kiểm tra, gửi dữ liệu tùy ý, _PRESERVE_64_, trạng thái không sử dụng --_PRESERVE_105_ _PRESERVE_59_ESERVE_16_-output._PRESERVE_105_

_PRESERVE_59_ESERVE_17_ analyze --mode deep --timeout 3600

Semgrep --config=p/Solidity --config=custom-rules.YAML

SOLhint -- formatter checkstyle

Tạo quy tắc tùy chỉnh: PR các mẫu đặc trưng cho otocol mà các công cụ chung bỏ qua:

  • "Tất cả các phép tính phí sử dụng mulDiv từ PRBMath" (_Precision loss Prevention)
  • "Không có transfer/send - chỉ có call với reentrancy bảo vệ" (reentrancy hygiene)
  • "governance functions requIRe onlytimelock modifier" (governance attack Prevention)

Triage WorkFlow:

  1. Lọc mức độ tự động (chỉ giữ mức cao/Medium)
  2. Xem xét thủ công từng kết quả – phân loại thành True Positive, False Positive hoặc Informational
  3. Tài liệu về False Positive với rEASoning (PR sự kiện được xem lại trong giai đoạn 4)
  4. Kết quả còn lại → hàng chờ xem xét thủ công trong giai đoạn 4 với ngữ cảnh

Chìa khóa: Phân tích tĩnh phát hiện được ~30-35% các kết quả quan trọng (Trail of Bits). Giá trị của nó là sự "chiều rộng" và "tốc độ" – nó ensure quá trình kiểm tra thủ công không mất thời gian trên các mẫu đã biết.

Giai đoạn 3 – phân tích động và kiểm tra lỗi (5-10 ngày)

Mục tiêu: Các lỗi Discover yêu cầu thực hiện trạng thái, các tính chất không thay đổi phức tạp hoặc khám phá các đường dẫn sâu.

Chọn công cụ theo nhu cầu:

Công cụLoạiTốt nhất choKênh học tập
EchidnaPRoperty-Based fuzzingCác biến số trạng thái phức tạp, tái sử dụng bộ dữ liệuTốc độ cao (DSL Haskell)
Foundry ForgeCoverage-guided lỗi dựa trên độ tuổiLặp FAST, công việc của nhà phát triển Flow, mã cheatThấp (Solidity-native)
HalmosSymbol biểu tượng có giới hạnCác chức năng quan trọng, chính xác về toán học, các ví dụ đối lậpMedium
MedusaFuzzing song songMã lớn Base, chiến dịch hiệu quả caoMedium (Go-Based)

Các thuộc tính không thay đổi CateGories để mã hóa:

Solidity // Accounting cố định function invariant_totalSupplyEqualsBalances() public view returns (bool) { return totalSupply() == sum(accountBalances); }

// Các biến cố kiểm soát truy cập function invariant_onlytimelockCanExecute() public view returns (bool) { return governance.timelock() == address(this); // Giản hóa

// oracle integrity function invariant_oracleNotStale() public view returns (bool) { return block.timestamp - oracle.lASTUpdate() < STALE_THRESHOLD; }

// PR otocol-specific function invariant_liquidationRatioSafe() public view returns (bool) { return getliquidationRatio() >= MIN_LiquidATION_RATIO; }

Thực hiện chiến dịch:

  • Chạy 24-72 giờ cho mỗi chiến dịch với nhiều hạt giống
  • Tối ưu hóa bộ dữ liệu và gieo hạt từ các lần chạy trước đó PR
  • Phân tích độ phức tạp: dòng, chi nhánh và độ phức tạp của một biến đổi Cover (có phải các thử nghiệm đã giết chết các biến đổi không?)
  • Xử lý sự cố: loại bỏ trùng lặp, tối ưu hóa các trường hợp thử nghiệm, phân loại mức độ nghiêm trọng

Pro Tip: Cơ sở dữ liệu tái sử dụng của Echidna cho phép thực hiện các chiến dịch tăng dần. Mã cheat của Foundry như vm.warp, vm.PRank và vm.deal cho phép thiết lập các kịch bản phức tạp không thể thực hiện trong các thử nghiệm Solidity thuần túy.

Giai đoạn 4 – Xem xét mã thủ công (10-20 ngày)

Mục tiêu: Đánh giá sâu sắc về logic kinh doanh, kiểm soát truy cập, an toàn và tương tác giữa các hợp đồng.

Xem đánh giá của Approaches (tổng hợp tất cả):

  1. Checklist-driven: SWC Registry + DeFi-specific checklist (xem Taxonomy về lỗ hổng dưới đây)

Lưu ý: Các khu vực với DeFi-Specific Lens:

Khu vựcKiểm tra truyền thống__PR__ESERVE_0____ Kiểm tra kiểm toán
Lý thuyết kinh doanhTính toán chính xácTính toán phí dưới sự can thiệp; thưởng trong quá trình flash loan; giới hạn slippage
Kiểm soát truy cậponlyOwner / RBACtimelock thực thi; multisig threshHOLd; Go trì hoãn quản lý; Emergency Pause phạm vi
UpgrADAbilityThiết kế lưu trữSự va chạm của mẫu diamond; khởi tạo UUPS; PRoxy admin comPRomise; sai sử dụng initializer
oracle Tích hợpXác minh dữ liệu đầu vàoKiểm tra độ cứng; khả năng chống biến đổi (TWAP so với điểm); nguồn dự phòng; xác thực Proof giữa các chuỗi
Hợp đồng cắt ngangTuân thủ giao diệnAn toàn khi gọi lại (reentrancy guards); các giả định về đối tượng gọi; sự phụ thuộc không thể thay đổi vs Upgrade
governancePRthực hiện lệnh oposalVote chống lại việc mua; flash loan bỏ phiếu; PR xác nhận phản đối; sự trì hoãn thực hiện; Veto các cơ chế

Tài liệu trong quá trình đánh giá: Mỗi phát hiện được ghi lại với: vị trí (tệp: dòng), loại lỗ hổng, mức độ nghiêm trọng, Proof của khái niệm (mã hoặc đường dẫn giao dịch), đánh giá tác động, cách khắc phục được đề xuất, các tham chiếu (SWC, CWE, Prior art).

Giai đoạn 5 – Báo cáo, đánh giá giảm thiểu và giám sát liên tục (3-5 ngày + liên tục)

Mục tiêu: Gửi báo cáo có thể thực hiện, kiểm tra các sửa đổi, thiết lập trạng thái bảo mật trên hệ thống _PRESERVE_100_.

Cấu trúc báo cáo:

  1. Tóm tắt điều hành — Tổng quan về các rủi ro phi kỹ thuật dành cho lãnh đạo
  2. Mô hình và phạm vi — Những gì được kiểm toán, những gì không, phiên bản công cụ, ngày tháng
  3. Kết quả theo mức độ nghiêm trọng — Nghiêm trọng / Cao / Trung bình / Dưới trung bình / Thông tin
  4. Chi tiết theo kết quả kiểm toán: Mô tả, ảnh hưởng, Proof của khái niệm, đề xuất, tham khảo

Độ nghiêm trọng của sự cố (Tiêu chuẩn ngành):

Quy trình đánh giá giảm thiểu PR: 1. Đội ngũ Protocol gửi các sửa đổi (sửa đổi hoặc triển khai mới) 2. Kiểm tra viên xác nhận từng sửa đổi – không chỉ "đã sửa" mà còn "đã sửa đúng" 3. Kiểm tra lùi: Sửa đổi có gây ra các vấn đề mới không? 4. Khoản mục của quá trình kiểm tra lại: Đối tượng (chỉ các chức năng đã sửa) so với toàn bộ (nếu có thay đổi kiến trúc) 5. Các đề xuất theo dõi: Forta cảnh báo cho các chức năng quan trọng, Tenderly thông báo cho các hành động của người quản trị, các bot tùy chỉnh cho các vi phạm không thay đổi

An toàn liên tục: Báo cáo kiểm toán là một Snapshot. Các Protocols có khả năng thích ứng thực hiện:

  • CI/CD cổng: Slither + Semgrep + Foundry kiểm tra trên mỗi PR
  • Kiểm tra không thay đổi: Echidna/Halmos chiến dịch GNS trên các ứng viên relEAS
  • Kiểm tra trên chuỗi: Forta, Tenderly, hoặc các bot tùy chỉnh theo dõi các mẫu bất thường
  • Kế hoạch phản ứng trong CIDent: các vai trò PRESERVE_0__ned, các kênh truyền thông, các Pause Procedures, quá trình sau khi chết (post-mortem) Process
  • Chuyển đổi Bug Bounty: Immunefi/ tương đương PRogram với phạm vi phù hợp với kết quả kiểm toán
Sequence - Code review workflow: static analysis → fuzzing → manual review → finding documentation →

Sequence - Code review workflow: static analysis → fuzzing → manual review → finding documentation →


_PRESERVE_59_ESERVE_0_ Khả năng bị lợi dụng: Ngoài ra khỏi _PRESERVE_59_ESERVE_12_ Dữ liệu đăng ký

Danh mục phân loại các điểm yếu của hợp đồng thông minh (SWC Registry) PRnêu ra một nền tảng, nhưng DeFi yêu cầu một hệ thống phân loại phản ánh các cơ chế độc đáo của nó. Dưới đây là một bản đồ phân loại các điểm yếu đặc trưng cho DeFi đối với SWC khi áp dụng được.

1. Lỗi kiểm soát truy cập

SWC Mapping: SWC-104 (Unchecked Call), SWC-121 (Missing Protection), SWC-131 (Float PRagma) DeFi Context: Key của admin, multisig thresHOLds, timelock bypass, sự nhầm lẫn về vai trò, PRivilege escalation thông qua governance. Các sự cố nổi bật: Beanstalk ($182M, 2022) — flash loan bỏ phiếu thông qua Proposal độc hại; Tornado Cash governance attack (2023) — PRoposer khai thác sự chậm trễ trong việc bỏ phiếu. Kiểm tra kiểm toán: Tất cả các chức năng thay đổi trạng thái có các biến PRoPRiate; các sự chậm trễ timelock được thực thi trên chuỗi; multisig thresHOLds yêu cầu >50% người ký có thiện chí; không có các chức năng chỉ dành cho người sở hữu mà không có timelock.

2. reentrancy (Tất cả các biến thể)

SWC Mapping: SWC-107 (reentrancy) DeFi Các biến thể:

  • Một chức năng duy nhất: call → callback → re-enter cùng một chức năng
  • Chức năng cắt ngang: call → callback → re-enter chức năng thay đổi trạng thái khác nhau
  • Tự đọc chỉ: Chức năng view được re-enter trong quá trình thay đổi trạng thái (vi phạm các bảo vệ nonReentrant)
  • cross-chain: Callback trên chuỗi đích re-enter logic của chuỗi nguồn (Wormhole-style)

Các dự án nổi bật: Curve Finance ($570k, 2023) — reentrancy chỉ đọc trong Vyper; Fei/Rari ($80M, 2022) — reentrancy chức năng cắt ngang.

3. oracle Manipulation

DeFi Mapping: DeFi-126 (Manipulable oracle) — but DeFi requires deeper classification DeFi Variants:

  • Spot PRice Manipulation: Large swap moves pool PRice; Protocol uses spot PRice for liquidation/PRicing
  • TWAP Manipulation: Sustained manipulation over TWAP window (expENSive but possible on low-liquidity pools)
  • Multi-Source Aggregation Failure: Median/mean of corrupted sources; outlier removal bypassed
  • cross-chain PRice Feed: Relayer comPRomise; merkle Proof validation gaps; finality assumption violations

Notable InCIDents: Mango Markets ($117M, 2022) — spot PRice manipulation on low-liquidity market; Eisenberg's "highly Profitable trading strategy." Audit Checks: TWAP with sufficient window; manipulation cost modeling; multiple independent sources; staleness checks; cIRcuit breakers on PRice deviation.

4. Sai lầm về toán học

SWC Mapping: SWC-101 (số nguyên lớn hơn Flow/nhỏ hơn Flow) — được SOLvơ lựa chọn nhiều bởi Solidity 0.8 trở lên, nhưng Precision/rounding vẫn còn tồn tại

5. GoCác cuộc tấn công về quản trị

SWC Mapping: SWC-104, SWC-121, SWC-133 (Hash Collision) — but governance is a meta-layer DeFi Variants:

  • flash loan Voting: Borrow governance tokENS, Vote, return in same transaction
  • Proposal Manipulation: Malicious calldata in Proposal; Executor validates differently than PRoposer
  • timelock Bypass: DIRect execution via Emergency path; timelock admin comPRomise
  • delegation Abuse: Delegated Votes used aGainst delegator's interest; Vote buying markets

Notable InCIDents: Beanstalk ($182M); Build Finance ($470k, 2022) — attacker Seized governance via Proposal. Audit Checks: Vote Snapshot before execution; timelock on all governance actions; Proposal validation on-chain; Emergency multisig separate from governance; delegation with expIRy.

6. MEV & Front-run

SWC Mapping: SWC-114 (Transaction Order Dependence), SWC-115 (Authorization via tx.Origin) DeFi Variants:

  • Sandwich Attacks: Thay đổi nạn nhân Front-run và Back-run; phí Protocol được thu thập

7. Rủi ro về khả năng nâng cấp

SWC Mapping: SWC-112 (delegatecall), SWC-113 (Lỗi xung đột bộ nhớ) DeFi Các biến thể:

  • Lỗi xung đột bộ nhớ: Mẫu diamond / UUPS - thực hiện mới ghi vào slot không đúng
  • Lỗi khởi tạo: initializer không được gọi, hoặc được gọi nhiều lần; thực hiện chưa được khởi tạo
  • PRoxy Admin ComPRomise: Chìa khóa quản trị kiểm soát Upgrade; điểm rủi ro duy nhất
  • Lỗi chọn hàm: Kim cương - hai mặt phẳng có cùng một chọn lựa

8. Các lỗ hổng liên quan đến các chuỗi / cầu

SWC Mapping: New category — bridges introduce off-chain trust assumptions DeFi Variants:

  • merkle Proof Validation: Incomplete verification (Wormhole $325M — missing signature verification)
  • Relayer ComPRomise: off-chain relayer siGNS malicious messages; thresHOLd not enforced
  • Finality Assumptions: Protocol assumes source chain finality; reorg invalidates Proof
  • Replay Protection: Nonce/sequence gaps; Chain ID validation missing
  • Upgrade Mismatch: Source chain Upgrades; destination chain verification logic outdated

Notable InCIDents: Wormhole ($325M), Ronin ($625M), Nomad ($190M), Harmony ($100M), Multichain ($126M) — total >$1.3B in the top 5 alone. Audit Checks: on-chain verification of all Proof components; relayer thresHOLd enforcement on-chain; finality depth configurable; replay Protection with strict Nonce; Upgrade coordination Procedure documented.

Diagram - Vulnerability classification taxonomy: 8 DeFi-specific categories with sub-classes, SWC ma

Diagram - Vulnerability classification taxonomy: 8 DeFi-specific categories with sub-classes, SWC ma


Khảo sát các công cụ: So sánh chiến thuật PR

Không có công cụ nào đủ. Kiểm toán hiệu quả kết hợp các công cụ một cách chiến lược trong các giai đoạn.

Mô hình so sánh

Công cụLoạiCác điểm mạnhNhược điểmTốt nhất choChi phí
SlitherTĩnh (AST)100+ thiết bị phát hiện, PR cặp, Python API, fAST (<30s)Không có hợp đồng cắt ngang, không có kết quả sai, không có lệnh thực thi biểu tượngGiai đoạn 2 Base dòng, các thiết bị phát hiện tùy chỉnhMiễn phí (OSS)
MythXSymbolic + FuzzingTìm kiếm đường sâu, API CI/CD, hỗ trợ VyperChi phí cho mỗi lần quét, thời gian chờ, black-box_ cổng, các ứng viên relEASMiễn phí
EchidnaPRoperty-Based fuzzingCó trạng thái, tái sử dụng bộ dữ liệu, giảm thiểu các trường hợp, DSL mạnh mẽHaskell rào chắn, thời gian thiết lập, chậm hơnKiểm tra biến số không đổi phức tạpMiễn phí (OSS)
Foundry ForgeCoverage-guided lỗi dựa trên độ tuổiRất fAST, cheatcodes, các bài kiểm tra tích hợpDSL không trưởng thành, bộ dữ liệu thủ côngPhát triển bằng cách sử dụng công cụ fuzzing, tích hợp CIMiễn phí (OSS)
HalmosSymbol biểu tượng có giới hạnCác ví dụ đối lập, bộ phận Solidity, tích hợp FoundryChiều sâu giới hạn (bằng mặc định là 3), giới hạn bộ phận nhỏXác minh chức năng quan trọngMiễn phí (OSS)
MedusaFuzzing song songMulti-core, hiệu suất cao, Go-Base dHệ sinh thái trẻ hơn, số tài liệu ít hơnMã lớn, quy mô CIMiễn phí (OSS)
SemgrepPhân tích mẫuYAML quy tắc, nhiều ngôn ngữ, fAST, quy tắc tùy chỉnhKhông có hiểu biết ngữ nghĩaCác mẫu Protocol tùy chỉnhMiễn phí (OSS)
Certora PRoverXác minh chính thứcXác minh đầy đủ, CVL tiêu chuẩn, được sử dụng bởi Uniswap/AaveKỹ thuật viên - ive, CVL đường cong học tập, chi phíCore Accounting, governance, các cầu nốiMiễn phí

Khi nào nên sử dụng gì: Khung quyết định

Phương pháp 2 (tĩnh):

Giai đoạn 3 (Dynamic):

Giai đoạn 4 (tự động):

Kiểm Toán Bảo Mật DeFi: Phương Pháp, Công Cụ & Phân Loại Lỗ Hổng Mẫu tích hợp (PR sẵn sàng sản xuất)

YAML

name: Security Checks on: [push, pull_request] jobs: static-analysis: runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v4
  • name: Slither

uses: crytic/Slither-action@v1 with: args: --detect reentrancy,unchecked-transfer,arbitrary-send,delegatecall

  • name: Semgrep

uses: returntocorp/Semgrep-action@v1 with: config: p/Solidity config: .Semgrep-rules.YAML

  • name: SOLhint

run: SOLhint contracts/*/.SOL

fuzzing: runs-on: ubuntu-latest timeout-minutes: 120 steps: - uses: actions/checkout@v4 - uses: Foundry-rs/Foundry-toolchain@v1 - name: Forge Fuzz - run: Forge test --fuzz-runs 50000 - name: Echidna - run: Docker run --rm -v $(pwd):/src trailofbits/Echidna /src/contracts/Invariants.SOL --contract InvariantSuite --corpus-dIR /src/Echidna-corpus --test-mode assertion

formal-verification: nếu: GitHub.ref == 'refs/heads/main' # Chỉ trên branch chính runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Halmos run: Halmos verify --function "verifyMinting()" --bound 5


Khi nào và cách nào áp dụng xác minh chính thức trong kiểm toán

Xác minh chính thức không phải là một sân khấu học thuật – nó là một công cụ chiến thuật cho các đường đi quan trọng (critical paths) nơi lỗi có thể phát sinh và thử nghiệm không thể kiểm soát được không gian trạng thái.

Dải xác minh

ApproachKhu vựcChi phíThời gianCông việc sử dụng
Kiểm tra mô hình giới hạn (Halmos)Chức năng đơn, độ sâu ≤ 10ThấpGiờTính phí, tạo/thải, Liquid
Xác minh suy luận (Certora, CVL)Hợp đồng/nguyên mẫu, không gian trạng thái đầy đủCaoTuầnCore Accounting, governance, các cầu nối
Hypothesis PRoving (K Framework, Coq, Isabelle)Tất cả Protocol, toán học ProofRất caoThángConsENSus, chính xác của VM, ZK cIRuít

PRTích hợp hoạt động kiểm toánFlow

  1. Tìm mục tiêu xác minh: Các chức năng mà bất kỳ lỗi nào cũng dẫn đến sự chết của Protocol (mint, burn, Liquidate, governance execute, bridge verify)
  2. Xác định các tính chất không thay đổi trong CVL/Halmos: Không phải là "có hoạt động không?" mà là "một điều gì đó luôn luôn phải đúng?"

Case Study: Uniswap v4 Hooks Uniswap v4 giới thiệu các hook – logic tùy chỉnh tại các điểm thay đổi. Đội ngũ đã sử dụng Certora để xác minh:

Tính toán ROI: Nếu một chức năng kiểm soát $100M+ TVL và có logic phức tạp, chi phí xác minh từ $50k đến $200k là <0,2% của giá trị được bảo vệ. Đối với một TVL Protocol có giá trị $1M, kiểm tra giới hạn (Halmos) với chi phí bằng 0 tại Near là lựa chọn đúng đắn.


Các thách thức trong kiểm toán giữa các chuỗi: cầu nối, giao tiếp và tính cuối cùng

Hàng cầu là mục tiêu bị tấn công nhiều nhất. Kiểm tra chúng đòi hỏi một mô hình đe dọa hoàn toàn khác.

Mô hình mối đe dọa cầu độc đáo

Traditional DeFi: Chỉ trên chuỗi → Kiểm tra hợp đồng thông minh

TRust giả định để xác minh:

  1. Set Relayer/Validator: Ai gửi tin nhắn? Threshold là bao nhiêu? Đổi mạch? Cắt mạch?

Danh sách kiểm tra đánh giá mẫu cầu

MẫuVí dụNhững điểm tập trung kiểm toán quan trọng
Khóa / MintWormhole, MultichainAn ninh hợp đồng quản lý; ủy quyền in/nhào; trung gian tháo gỡHOLd
Burn/MintLayerZero, AxelarXác minh tin nhắn; bảo mật điểm kết thúc; mô hình DVN/Executor trust
Khóa/mở khóa (cấu hình gốc)Hàng cầu bản địa (PolyGon, Arbitrum)An toàn hợp đồng L1; thời hạn hợp lệ của trò chơi; thời gian thử thách
liquidity NetworkSynapse, Celerliquidity pool Accounting; bảo mật router; quản lý phí

Wormhole Dịch vụ sau khi chết (được áp dụng cho kiểm toán)

Thương vụ $325M Wormhole (2022) đã khai thác lỗi thiếu xác nhận chữ ký trong verifySignatures. Các bài học kiểm tra: - Xác nhận tất cả các kiểm tra Crypto - không chỉ "gọi thư viện" - Kiểm tra các trường hợp tiêu cực - điều gì xảy ra khi không có chữ ký nào? 1 trong N? Cấu trúc bảo vệ sai? - Kiểm tra mã của trung gian ngoài chuỗi - cập nhật cấu trúc bảo vệ, tập hợp chữ ký - Chiều sâu cuối cùng - Wormhole sử dụng chiều sâu cuối cùng 1 khối đối với SOLana; có nguy cơ tái tổ chức


Sau kiểm tra: Xem xét giảm thiểu và bảo vệ an ninh

Báo cáo kiểm toán không phải là kết thúc – đó là khởi đầu của an ninh hoạt động.

Sửa lỗi xác minh Protocol

Đối với mỗi phát hiện:

  1. RePRoduce — Xác nhận PoC hoạt động trên commit được kiểm tra
  2. Review Fix — Đọc diff; nó giải quyết nguyên nhân gốc hay triệu chứng?
  3. Test Fix — Chạy PoC với mã đã được sửa; phải thất bại
  4. Regression — Chạy bộ kiểm tra đầy đủ; chạy Slither/Echidna trên mã đã được sửa

Theo dõi Stack (Production)

LayerCông cụNó bắt được những gì
Nền tảng chức năngKiểm Toán Bảo Mật DeFi: Phương Pháp, Công Cụ & Phân Loại Lỗ Hổng / Tenderly Cảnh báoCác cuộc gọi của quản trị viên, Pause/unPause, thay đổi tham số, chuyển khoản lớn
Nível không thay đổiBot tùy chỉnh / HypernativeAccounting drift, oracle sự già nua, liquidation tỷ lệ vi phạm
Nível MempoolFlashbots / MEV-Chia sẻLiên kết tấn công nhắm vào Protocol; Front-running
governanceTally / Boardroom / Theo yêu cầuPRtạo đề xuất, các sai lệch trong quá trình bỏ phiếu, giám sát thực hiện

Trong Runbook phản ứng sự cố (tối thiểu)

  • Phát hiện → Phân loại (5 phút): Cảnh báo tự động → on-call xác nhận

Lựa chọn kiểm toán F_PRESERVE_61_m so với phát triển năng lực nội bộ

Công thức lựa chọn kiểm toán Fm

Tiêu chíCách xác minh
Lịch sử thành côngCác báo cáo đã được công bố (không chỉ là các khách hàng loGos); tìm kiếm 3+ cuộc kiểm tra phức tạp tương tự
METHodology Chống trànĐề nghị tài liệu kiểm tra IR; từ chối độ trong suốt của "Proprietary mETHodology"
Thành phần đội ngũCác kiểm toán viên được chỉ định (không phải là "nhóm cao cấp"); kiểm tra IR GitHub, CTF, các tài liệu công bố
Thông tin liên lạcTích hợp hàng tuần? Slack chuyên dụng? Tìm kiếm các cuộc gọi phân loại?
Chính sách tái kiểm toánKiểm toán lại mục tiêu miễn phí? Khung thời gian? Quy mô DeFinition?
Thiết bị chế tạoCác thiết bị phát hiện tùy chỉnh? khả năng xác minh chính thức? cấu trúc Fuzzing infrAST?

Biểu hiệu cảnh báo: Không có báo cáo công khai; "chúng tôi sử dụng các công cụ Proprietary mà chúng tôi không thể trình bày"; các dịch vụ kiểm toán đơn cho các quy trình phức tạp; không có đánh giá giảm thiểu.

Đội an ninh nội bộ: Khi nào và như thế nào

Tạo nội bộ khi:

  • Protocol phức tạp > 50 hợp đồng / thường xuyên cập nhật (tháng +)
  • TVL > 50 triệu USD (chi phí kiểm toán > chi phí của nhóm nội bộ)

Mô hình hỗn hợp (đề nghị sử dụng):

Cơ cấu ngân sách:

  • Ngân sách kiểm toán hàng năm = 0,5-1% của TVL (thước đo ngành)

Các câu hỏi thường gặp về DeFi Kiểm tra bảo mật

Giá của một kiểm toán DeFi là bao nhiêu?

Tầm giá: 25.000 USD – 500.000 USD trở lên Base phụ thuộc vào mức độ phức tạp (số hợp đồng, địa điểm, tính mới mẻ, các thành phần ngoài chuỗi), chứ không phải số dòng mã. Một cầu nối dài 500 dòng có giá cao hơn một Standard ERC dài 5.000 dòng. Các dự án hàng đầu: 50.000 – 150.000 USD cho các DeFi Protocol thông thường; 200.000 USD trở lên cho các cầu nối, L2 và các hệ thống Cryptography mới.

Thời gian thực hiện kiểm toán là bao lâu?

Thông thường: 2-8 tuần theo lịch. Giai đoạn 1: 1 tuần. Giai đoạn 2-3: 1-2 tuần song song. Giai đoạn 4: 2-3 tuần. Giai đoạn 5: 1 tuần + giảm thiểu. Các hợp đồng gấp (1-2 tuần) sẽ có mức phí 50-100% PRemium và phạm vi giảm.

Các công cụ tự động có thể thay thế việc kiểm tra thủ công không?

Không. Các công cụ tìm thấy ~30-40% các vấn đề quan trọng (reentrancy, kiểm soát truy cập, toán học cơ bản). Chúng không thể tìm thấy: lỗi logic kinh doanh, các vectơ tác động oracle, các đường đi tấn công __governance, các thất bại trong khả năng kết hợp của giao thức Protocol, các lỗ hổng kinh tế. Xét duyệt thủ công bởi các kiểm toán viên có kinh nghiệm là __Irreplaceable.

Các chứng chỉ quan trọng đối với các kiểm toán viên là gì?

Không có ngành công nghiệp nào Standard tồn tại. Hãy tìm kiếm: báo cáo kiểm toán đã công bố (không phải là bản tóm tắt), chiến thắng của CTF (Paradigm CTF, Damn Vulnerable DeFi), bài thuyết trình tại hội nghị Presentations (Devcon, ETHCC, Security summits), đóng góp về nguồn mở (Slither phát hiện, Foundry, Echidna), các công trình nghiên cứu. Thương hiệu FIRm không đồng nghĩa với chất lượng kiểm toán viên.

Tôi nên kiểm toán trước hay sau khi thử nghiệm?

Trước mainnet; testnet để tích hợp. Kiểm tra code liên quan đến mainnet trên một triển khai testnet đã hoàn thiện tính năng. testnet xác nhận việc tích hợp (trình giao diện người dùng, các công cụ tạo chỉ mục, các relay); kiểm tra xác nhận an toàn hợp đồng. Cả hai đều cần thiết.

Làm thế nào để xác minh một báo cáo kiểm toán là thật?

  1. Kiểm tra trang web của nhà kiểm toán – một số fIRms công bố báo cáo (hoặc tổng hợp được khách hàng áp dụng)

Xây dựng văn hóa bảo mật - st DeFi

DeFi kiểm toán bảo mật không phải là một tùy chọn – đó là một khoản đầu tư liên tục. Các Protocols tồn tại là những thứ coi bảo mật như một phần của Product infrastructure, chứ không phải là chi phí tuân thủ.

An toàn như một quá trình liên tục:

  • Chương trình thiết kế: mô hình hóa các mối đe dọa trước khi viết mã; các đặc tả chính thức cho các mô-đun quan trọng
  • Chương trình phát triển: các cổng an ninh; các kiểm thử bất biến như tài liệu; xem xét mã với bảo mật Lens
  • PRe-Launch: Kiểm toán toàn diện + xác minh chính thức cho lõi + testnet công cộng + bug bounty
  • Sau khi ra mắt: giám sát, phản hồi nhanh chóng, kiểm toán lại định kỳ, kiểm toán nâng cấp
  • Hệ sinh thái: chia sẻ kết quả (được ẩn danh); đóng góp cho công cụ; hướng dẫn thế hệ tiếp theo

10 tỷ USD tổn thất do các cuộc tấn công của DeFi không phải là điều không thể tránh khỏi. Đó là chi phí của việc coi bảo mật như yếu tố phụ. Mỗi Protocol tích hợp an ninh từ giai đoạn thiết kế, kiểm toán liên tục và hoạt động với giám sát và phản ứng sự cố sẽ giảm thiểu diện tích tấn công cho hệ sinh thái.

An toàn của Protocol chỉ mạnh như yếu nhất trong các phụ thuộc của bạn - hãy kiểm tra theo đó.

Comparison - Audit tools comparison matrix: Slither, MythX, Echidna, Foundry, Halmos, Medusa, Semgre

Comparison - Audit tools comparison matrix: Slither, MythX, Echidna, Foundry, Halmos, Medusa, Semgre

Flowchart - Post-audit continuous security loop: audit → fix verification → monitoring → incident re

Flowchart - Post-audit continuous security loop: audit → fix verification → monitoring → incident re


Cập nhật lần cuối: 2026-09-02 | Tác giả: Nhà văn kỹ thuật (Cardano chuyên gia) | Phương pháp Based ngày Trail of Bits, OpenZeppelin, ConsenSys Tận tâm, Spearbit Practices

Tags:

defi security auditingwhat is defi security auditingdefi security auditing guide