
Khóa học an toàn Cobo DeFi (Phần 1): Tổng hợp lại các sự cố an toàn DeFi lớn năm 2022
Tuyển chọn TechFlowTuyển chọn TechFlow

Khóa học an toàn Cobo DeFi (Phần 1): Tổng hợp lại các sự cố an toàn DeFi lớn năm 2022
Theo thống kê của SlowMist, năm 2022 đã xảy ra hơn 300 sự cố an ninh blockchain, với tổng số tiền liên quan lên tới 4,3 tỷ USD.
Tác giả: Max, Giám đốc An ninh Cobo
Theo lời mời từ Moledao, Giám đốc An ninh Cobo Max gần đây đã chia sẻ một buổi học về an toàn DeFi tới cộng đồng qua hình thức trực tuyến. Max đã điểm lại các sự cố an ninh nghiêm trọng xảy ra trong ngành Web3 hơn một năm trở lại đây, tập trung phân tích nguyên nhân dẫn đến các sự cố này và cách phòng tránh, tóm tắt những lỗ hổng bảo mật thông dụng trong hợp đồng thông minh cùng các biện pháp phòng ngừa, đồng thời đưa ra một số khuyến nghị an toàn cho cả đội ngũ phát triển dự án lẫn người dùng thông thường. Ở đây, nội dung chia sẻ của Max sẽ được chia thành hai phần để đăng tải, phục vụ mục đích lưu trữ cho những người yêu thích DeFi.
Theo thống kê của SlowMist, năm 2022 đã xảy ra hơn 300 sự cố an ninh blockchain, với tổng giá trị liên quan lên tới 4,3 tỷ USD.

Bài viết này phân tích chi tiết tám trường hợp điển hình sau đây, trong đó giá trị thiệt hại của hầu hết đều vượt quá 100 triệu USD. Dù vụ việc liên quan đến Ankr có mức thiệt hại nhỏ hơn nhưng cũng là một ví dụ điển hình đáng chú ý.

Ronin Bridge
Tổng quan sự kiện:
-
Ngày 23 tháng 3 năm 2022, mạng lưới sidechain Ronin Network của trò chơi NFT Axie Infinity thông báo rằng các nút xác thực Ronin của Sky Mavis và nút xác thực Axie DAO đã bị xâm nhập, dẫn đến việc rút khỏi cầu nối 173.600 ETH (trị giá hiện tại hơn 590 triệu USD) và 25,5 triệu USD trong hai giao dịch.
-
Bộ Tài chính Hoa Kỳ cho biết nhóm tin tặc Triều Tiên Lazarus có liên quan đến vụ tấn công trị giá 625 triệu USD vào mạng Ronin Network của AxieInfinity.
-
Theo truyền thông dẫn nguồn tin thân cận, tin tặc đã liên hệ với một nhân viên của Sky Mavis – nhà phát triển Axie Infinity – qua LinkedIn, sau vài vòng phỏng vấn thì thông báo tuyển dụng với mức lương cao. Nhân viên này sau đó tải về một thư mời nhận việc giả dạng tài liệu PDF, khiến phần mềm gián điệp thâm nhập vào hệ thống Ronin. Tin tặc từ đó tấn công và chiếm quyền kiểm soát bốn trong số chín nút xác thực trên mạng Ronin, chỉ còn thiếu một nút nữa là đủ quyền kiểm soát hoàn toàn. Sau đó, tin tặc tiếp tục khai thác quyền hạn chưa bị thu hồi của Axie DAO để hoàn tất cuộc xâm nhập.
Nhóm tin tặc Triều Tiên đã tồn tại từ lâu, ngay cả khi công nghệ Web3 chưa phổ biến, đã có nhiều báo cáo về việc họ xâm nhập vào các ngân hàng hoặc tổ chức thương mại lớn. Hiện nay, ngày càng nhiều nhóm tin tặc truyền thống, kể cả các lực lượng cấp quốc gia, đã chuyển từ hành vi đánh cắp dữ liệu và thông tin thẻ tín dụng sang tấn công các dự án blockchain để thu lợi trực tiếp.
Phương thức tấn công trong sự kiện này rất điển hình, trong lĩnh vực an ninh truyền thống gọi là APT (Advanced Persistent Threat - Mối đe dọa bền vững nâng cao). Khi đã xác định mục tiêu, nhóm tin tặc sẽ sử dụng các phương pháp như kỹ thuật xã hội để trước tiên kiểm soát một máy tính trong tổ chức mục tiêu làm bàn đạp, từ đó tiếp tục thâm nhập sâu hơn nhằm đạt được mục đích tấn công.
Sự việc này cũng lộ rõ mức độ nhận thức an ninh yếu kém của nhân viên Axie Infinity và những vấn đề tồn tại trong hệ thống an ninh nội bộ công ty.
Wormhole
Tổng quan sự kiện:
-
Theo báo cáo của Wormhole về sự cố này, lỗ hổng cụ thể nằm ở mã xác minh chữ ký trong hợp đồng cốt lõi phía Solana của Wormhole, cho phép kẻ tấn công giả mạo tin nhắn từ "người giám hộ" để鑄 (mint) ETH đóng gói qua Wormhole, gây thiệt hại khoảng 120.000 ETH.
-
Jump Crypto đã đầu tư 120.000 ETH để bù đắp tổn thất bị đánh cắp tại cầu nối Wormhole, hỗ trợ Wormhole tiếp tục phát triển.
Vấn đề mà Wormhole gặp phải chủ yếu nằm ở cấp độ mã nguồn, do sử dụng một số hàm đã bị loại bỏ. Ví dụ với Ethereum, trong phiên bản ban đầu của Solidity, một số hàm thiết kế chưa hoàn thiện dần bị loại bỏ theo các bản cập nhật sau này. Tình trạng tương tự cũng xảy ra ở các hệ sinh thái khác. Vì vậy, khuyến nghị các nhà phát triển nên sử dụng phiên bản mới nhất để tránh các vấn đề tương tự.
Nomad Bridge
Tổng quan sự kiện:
-
Giao thức tương tác đa chuỗi Nomad Bridge bị tin tặc tấn công do hợp đồng Replica của Nomad Bridge trong quá trình khởi tạo đặt gốc tin cậy (trusted root) là 0x0, và khi thay đổi gốc tin cậy không vô hiệu hóa gốc cũ, dẫn đến việc kẻ tấn công có thể cấu trúc tin nhắn tùy ý để rút tiền từ cầu nối, lấy đi hơn 190 triệu USD giá trị.
-
Chính nhờ khai thác lỗ hổng này, tin tặc tìm một giao dịch hợp lệ rồi gửi đi nhiều lần dữ liệu giao dịch đã được cấu trúc sẵn để rút tiền từ các khoản tiền bị khóa trên cầu nối, dẫn đến gần như toàn bộ tiền bị khóa trên Nomad bị đánh cắp sạch.
-
Theo dõi từ PeckShield cho thấy, trong vụ tấn công Nomad, khoảng 41 địa chỉ thu lợi khoảng 152 triệu USD (chiếm 80%), bao gồm khoảng 7 robot MEV (khoảng 7,1 triệu USD), hacker Rari Capital (khoảng 3,4 triệu USD) và 6 hacker mũ trắng (khoảng 8,2 triệu USD), khoảng 10% địa chỉ ENS kiếm được 6,1 triệu USD.
Sự kiện Nomad Bridge rất điển hình, về bản chất là do thiết lập lúc khởi tạo có vấn đề. Nếu tin tặc tìm được một loạt giao dịch từng hợp lệ rồi phát lại (re-broadcast), thì số tiền liên quan trong giao dịch hợp lệ đó sẽ được thực thi lại và lợi nhuận trả về cho tin tặc. Trong toàn bộ hệ sinh thái Ethereum, có rất nhiều người tham gia, ngoài đội ngũ phát triển và người dùng còn có rất nhiều robot MEV. Trong trường hợp này, khi robot tự động phát hiện giao dịch tấn công này, bất kỳ ai phát đi đều sẽ nhận được lợi ích. Chỉ cần chi phí gas được bù đắp, mọi người đều đua nhau phát lại, nên toàn bộ sự kiện trở thành một cuộc tranh giành tiền. Sự việc liên quan đến rất nhiều địa chỉ, mặc dù sau đó đội ngũ dự án tìm được một số địa chỉ ENS và một số hacker mũ trắng để thu hồi một phần vốn, nhưng phần lớn tiền không thể lấy lại. Nếu tin tặc dùng thiết bị sạch, địa chỉ sạch thì rất khó để truy tìm danh tính qua dữ liệu liên kết.
Dù Google, Microsoft, Facebook, Alibaba, Tencent... đều từng bị tấn công, nhưng phần mềm của họ đều mã nguồn đóng; trong khi hệ sinh thái Ethereum hay toàn bộ hệ sinh thái hợp đồng thông minh, nhiều chương trình đều mã nguồn mở, đối với tin tặc thì phân tích mã nguồn mở tương đối đơn giản. Do đó, khi dự án có lỗ hổng, cơ bản là đã tuyên bố thất bại của dự án đó.
Beanstalk
Tổng quan sự kiện:
-
Dự án stablecoin thuật toán Beanstalk Farms trên Ethereum bị mất khoảng 182 triệu USD trong vụ tấn công vay chớp nhoáng (flash loan), bao gồm 79.238.241 BEAN3CRV-f, 1.637.956 BEANLUSD-f, 36.084.584 BEAN và 0,54 UNI-V2_WETH_BEAN. Kẻ tấn công thu lợi hơn 80 triệu USD, bao gồm khoảng 24.830 ETH và 36 triệu BEAN.
-
Nguyên nhân chính của vụ tấn công là do không có khoảng cách thời gian giữa hai giai đoạn biểu quyết và thực thi đề xuất, khiến kẻ tấn công sau khi hoàn tất biểu quyết có thể thực thi đề xuất ác ý mà không cần xét duyệt của cộng đồng.
-
Quá trình tấn công:
-
Mua token trước một ngày và stake để có tư cách đề xuất, tạo hợp đồng đề xuất ác ý;
-
Sử dụng flash loan để có lượng lớn token biểu quyết cho hợp đồng ác ý;
-
Hợp đồng ác ý thực thi, hoàn tất chênh lệch giá.
-
Beanstalk cũng là một ví dụ điển hình, tin tặc không dùng bất kỳ lỗ hổng nào, chỉ khai thác một cơ chế của dự án. Cơ chế của dự án này là bất kỳ ai stake token đều có thể nộp đề xuất, và đề xuất cũng là một hợp đồng. Kẻ tấn công đã mua một lượng token trước một ngày, sau đó nộp một đề xuất ác ý, đề xuất này có thể biểu quyết sau 24 giờ, và sau khi biểu quyết xong thì không có bất kỳ cửa sổ thời gian nào, không có khóa thời gian (time lock), nếu biểu quyết thông qua thì có thể thực thi ngay lập tức.
Hiện nay nhiều dự án nói về tự trị cộng đồng, dùng cách thức hoàn toàn phi tập trung, điều này sẽ dẫn đến nhiều vấn đề. Ví dụ như đề xuất, mỗi đề xuất có cơ chế xét duyệt không? Một đề xuất là đề xuất bình thường hay ác ý? Nếu đề xuất được thông qua, liệu việc dùng flash loan để stake và biểu quyết có hiệu lực, hay cần thiết lập cơ chế bắt buộc staking trong một khoảng thời gian nhất định, thậm chí phải phân phối token biểu quyết mới được? Và giữa giai đoạn thông qua đề xuất và thực thi, có nên có khóa thời gian hay không? Về lý thuyết thì nên có, như vậy mọi người chỉ cần theo dõi hoạt động trong thời gian khóa, tạo cơ hội để rút lui; nếu không có, khi thực thi thao tác ác ý thì ai cũng không chạy thoát được.
Wintermute
Tổng quan sự kiện:
-
Sáng ngày 21 tháng 9 năm 2022, Evgeny Gaevoy đăng tiến triển vụ việc bị đánh cắp trên Twitter, thừa nhận Wintermute từng dùng Profanity và một công cụ nội bộ để tạo địa chỉ ví vào tháng 6. Lý do là để tối ưu phí giao dịch, không chỉ để tạo địa chỉ đẹp, và cho biết sau khi biết Profanity có lỗ hổng vào tuần trước, Wintermute đã đẩy nhanh việc ngừng dùng khóa cũ. Tuy nhiên do lỗi nội bộ (con người), gọi nhầm hàm, nên Wintermute không xóa được thao tác ký và thực thi ở các địa chỉ bị nhiễm.
Ta có thể thấy trên mạng rất nhiều địa chỉ bắt đầu bằng tám số 0, trong địa chỉ Ethereum càng nhiều số 0 thì phí giao dịch càng thấp, nên nhiều bot MEV và đội ngũ dự án thích dùng, đặc biệt là những thao tác tần suất cao.
Wintermute là một nhà tạo lập thị trường, lúc đó họ gửi nhiều token vào một hợp đồng, dùng chương trình tạo địa chỉ đẹp để sinh địa chỉ hợp đồng. Chủ sở hữu (Owner) của hợp đồng này cũng là một địa chỉ đẹp, không may là khóa riêng của địa chỉ Owner này đã bị người khác tính toán ép buộc ra, toàn bộ tiền trong hợp đồng bị chuyển sạch.
Khi chúng ta dùng một công cụ mã nguồn mở trên mạng, nhất định phải chuẩn bị tinh thần chấp nhận những hậu quả xấu có thể xảy ra. Khi dùng một chương trình bên ngoài, rất khuyến nghị nên thực hiện đánh giá an ninh tương đối đầy đủ đối với nó.
Harmony Bridge
Tổng quan sự kiện:
-
Cầu nối Horizon bị mất hơn 100 triệu USD, bao gồm hơn 13.000 ETH và 5.000 BNB.
-
Người sáng lập Harmony cho biết, cuộc tấn công Horizon là do rò rỉ khóa riêng.
-
Theo Bloomberg, theo phân tích mới nhất từ công ty nghiên cứu blockchain Elliptic, nhóm tin tặc nghi là Lazarus Group của Triều Tiên được cho là đứng sau vụ đánh cắp 100 triệu USD tại cầu nối đa chuỗi Horizon của Harmony. Phân tích của Elliptic nhấn mạnh các yếu tố then chốt liên kết đến Lazarus Group trong vụ hack này, bao gồm việc tự động gửi vào Tornado.Cash để mô phỏng chương trình rửa tiền trong sự kiện Ronin Bridge, cũng như thời điểm vụ trộm.
Sự kiện Harmony không công bố chi tiết cụ thể, nhưng các báo cáo cuối cùng cho rằng có thể vẫn là nhóm tin tặc Triều Tiên. Nếu đúng là tổ chức tin tặc Triều Tiên thì thủ pháp tấn công giống với Ronin Bridge. Những năm gần đây nhóm tin tặc Triều Tiên rất năng động, đặc biệt là nhắm vào thị trường tiền mã hóa, gần đây nhiều công ty đã bị tấn công lừa đảo钓鱼 bởi họ.
Ankr
Tổng quan sự kiện:
-
Ankr: Hợp đồng Deployer update.
-
Ankr: Deployer chuyển BNB cho Ankr Exploiter.
-
Ankr Exploiter鑄 (mint) token bằng phương pháp鑄 trong hợp đồng đã cập nhật.
-
Đã鑄 trái phép 10 nghìn tỷ aBNBc, tin tặc A dùng PancakeSwap đổi được 5 triệu USDC, rút sạch thanh khoản, khiến aBNBc gần như về 0; sau đó tin tặc A chuyển token sang Ethereum và gửi vào Tornado Cash.
-
Khoảng nửa tiếng sau khi tin tặc A鑄 token, aBNBc giảm mạnh, tạo cơ hội chênh lệch giá, người khai thác B tận dụng thiết lập trọng số trung bình 6 giờ của oracle trên giao thức Helio, dùng chênh lệch giá aBNBc trên thị trường và trong hệ thống Helio để đổi lấy hBNB, sau đó stake hBNB để nhận stablecoin HAY, rồi đổi sang BNB và USDC, tổng cộng thu lợi hơn 17 triệu USD giá trị stablecoin và BNB, gần như rút sạch thanh khoản cặp giao dịch HAY.
-
Ankr sẽ điều chỉnh vốn từ quỹ phục hồi 15 triệu USD để mua HAY bị phát hành thêm nhằm bồi thường cho nạn nhân sự kiện tấn công.
Tổng thể thiệt hại của Ankr không lớn, chúng tôi đề cập riêng ở đây. Bởi vì hiện nay nhiều dự án DeFi giống như các khối xếp hình Lego, A phụ thuộc B, B phụ thuộc C, lắp ráp đủ kiểu, nên khi một mắt xích nào đó trong chuỗi gặp vấn đề, cả chuỗi thượng nguồn và hạ nguồn có thể đều bị ảnh hưởng.

Sau đó Ankr đăng bài giải thích nguyên nhân sự việc: quy kết do một nhân viên nội bộ nghỉ việc cố tình phá hoại. Các vấn đề lộ ra: thứ nhất, Owner của hợp đồng Staking là tài khoản EOA chứ không phải ví đa ký, về bản chất ai nắm giữ khóa riêng thì người đó kiểm soát hợp đồng thông minh, điều này rất không an toàn; thứ hai, khóa riêng của Deployer lại bị "nhân viên cốt lõi" kiểm soát, thậm chí sau khi nghỉ việc vẫn còn dùng được; nghĩa là toàn bộ hệ thống an ninh nội bộ cơ bản không phát huy tác dụng gì.
Mango
Tổng quan sự kiện:
-
Tin tặc sử dụng hai tài khoản với tổng vốn khởi điểm 10 triệu USDT.
-
Bước đầu, tin tặc lần lượt chuyển 5 triệu USD vào địa chỉ A và B trên sàn giao dịch Mango.
-
Bước hai, tin tặc dùng địa chỉ A trên Mango short hợp đồng vĩnh viễn MNGO token nền tảng, giá mở lệnh 0,0382 USD, vị thế short 483 triệu cái; đồng thời, tin tặc dùng địa chỉ B long MNGO, giá mở lệnh 0,0382 USD, vị thế long 483 triệu cái. (Lý do long-short kép là do độ sâu thị trường Mango kém, nếu không tự làm đối tác giao dịch với chính mình thì khó mở được vị thế lớn như vậy)
-
Bước ba, tin tặc tăng giá mạnh MNGO trên nhiều sàn (FTX, Ascendex), khiến giá tăng 5-10 lần, giá này được oracle Pyth truyền về sàn Mango, tiếp tục đẩy giá tăng, cuối cùng giá MNGO trên Mango từ 0,0382 USD tăng lên đỉnh 0,91 USD.
-
Bước bốn, lợi nhuận từ vị thế long của tin tặc là 483 triệu * (0,91 USD - 0,0382 USD) = 420 triệu USD, tin tặc sau đó dùng tài sản ròng tài khoản để vay từ Mango. May mắn là do thanh khoản nền tảng không đủ, tin tặc cuối cùng chỉ vay được khoảng 115 triệu USD.
-
Sau khi xảy ra vụ tấn công, tin tặc đưa ra một đề xuất mới, mong muốn đội ngũ chính thức dùng vốn kho bạc (70 triệu USD) để trả nợ xấu của giao thức. Được biết hiện nay vốn kho bạc khoảng 144 triệu USD, bao gồm 88,5 triệu USD giá trị token MNGO và gần 60 triệu USD USDC. Tin tặc nói nếu chính thức đồng ý phương án trên, sẽ hoàn trả một phần vốn bị đánh cắp, đồng thời mong muốn không bị điều tra hình sự hay đóng băng vốn. "Nếu đề xuất này được thông qua, tôi sẽ gửi MSOL, SOL và MNGO trong tài khoản này tới địa chỉ do đội ngũ Mango công bố. Kho bạc Mango sẽ dùng để bù đắp nợ xấu còn lại trong giao thức, tất cả người dùng có nợ xấu sẽ được bồi thường đầy đủ... Ngay khi token được gửi về như mô tả trên, sẽ không có bất kỳ điều tra hình sự hay đóng băng vốn nào."
-
Theo CoinDesk, Avraham Eisenberg - tin tặc Mango từng công khai danh tính - đã bị bắt tại Puerto Rico ngày 26 tháng 12 năm 2022, ông này đang đối mặt với cáo buộc gian lận hàng hóa và thao túng thị trường, có thể bị phạt tiền và tù giam.
Sự kiện Mango có thể định nghĩa là sự cố an ninh, cũng có thể coi là hành vi chênh lệch giá, vì vấn đề không nằm ở lỗ hổng an ninh mà là lỗ hổng mô hình kinh doanh. Danh mục giao dịch của nó bao gồm các đồng vốn hóa lớn như BTC, ETH, cũng có đồng nhỏ như MNGO, và đồng nhỏ này khi thị trường gấu thanh khoản kém, chỉ cần tốn ít tiền có thể đẩy giá lên, hành vi thao túng giá này khiến việc quản lý vị thế trên các nền tảng hợp đồng vĩnh viễn trở nên cực kỳ khó khăn.
Vì vậy, với tư cách là đội ngũ phát triển, cần cân nhắc đầy đủ mọi kịch bản, khi thử nghiệm phải bao gồm tất cả các tình huống vượt quá dự kiến trong bộ test case.
Còn với tư cách người dùng thông thường, khi tham gia một dự án không thể chỉ chăm chăm vào lợi nhuận, mà cần dành thời gian suy xét an toàn vốn gốc. Ngoài các lỗ hổng an ninh, cần xem xét kỹ mô hình kinh doanh của dự án có lỗ hổng nào có thể bị khai thác hay không.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














