Son zamanlarda, BNB Chain ekosistem projesi MobiusDAO saldırıya uğradı. Saldırganlar, projenin sözleşmesindeki mantık açığını kullanarak çok sayıda MBU tokeni basıp satmaktan kazanç sağladı. Beosin güvenlik ekibi, bu olayla ilgili olarak bir açık analizi ve fon takibi gerçekleştirdi ve sonuçları aşağıda paylaşıyor:
Ayrıntılı saldırı adımları
(1) Saldırgan öncelikle saldırı sözleşmesini dağıttı (0x631adFF068D484Ce531Fb519Cda4042805521641)
ve bu sözleşmeyi kullanarak Mobius proxy sözleşmesi 0x95e92B09b89cF31Fa9F1Eca4109A85F88EB08531'in depo fonksiyonunu çağırdı, ardından Mobius sözleşmesi 9.7x10^15'ten fazla MBU token'ı basarak saldırı sözleşmesine gönderdi.
Saldırı işlem hash'i: 0x2a65254b41b42f39331a0bcc9f893518d6b106e80d9a476b8ca3816325f4a150
(2) Saldırı sözleşmesi, MBU tokenlerini aldıktan sonra PancakeSwap ile ilgili sözleşmeyi çağırarak MBU tokenlerini satarak kar elde eder.
Açık Analizi
Mobius sözleşmesinin depozit fonksiyonu, depozito alındıktan sonra eşit miktarda MBU tokeni basarak depozito sahibine gönderir. Bu fonksiyonda, kullanıcı WBNB yatırdığında, fonksiyon BNB'nin fiyatını alır ve basılıp transfer edilecek MBU tokeni miktarını hesaplar.
BNB fiyatı, 18 ondalık basamağa kadar fiyat döndüren getBNBPriceInUSDT fonksiyonundan gelmektedir. Yukarıdaki resimde görüldüğü gibi, dönen fiyat yaklaşık 656 dolardır.
Mobius'un mantıksal sözleşmesi açık kaynak olmadığı için, dekompile ederek, fonksiyonun 18 ondalık basamaklı bir sonuç döndürdüğünde, sözleşmenin bu değeri tekrar 10^18 ile çarptığını ve normal sonuca göre 10^18 kat daha fazla MBU token miktarı ürettiğini keşfettik.
Çalınan Fonların Takibi
Beosin Trace, çalınan fonları takip ederek şunları buldu: Çalınan fonlar, saldırganlar tarafından yaklaşık 2.15 milyon USDT tokenine dönüştürüldü. Bunların 1.35 milyon USDT'si BNB'ye dönüştürülerek Tornado Cash'e yatırıldı, geri kalan 800 bin USDT ise Ethereum ağı üzerindeki ETH'ye çapraz zincir değişimi yapılarak Tornado Cash'e yatırıldı. Beosin Trace, hacker ile ilgili adresleri kara listeye ekledi ve takip etmeye devam edecek.
Beosin Trace analizine göre, çalınan tüm fonlar Tornado Cash'e yatırılmıştır.
Özet
Bu saldırının temelinde, saldırganların proje sözleşmesindeki bir aritmetik hatayı kullanarak büyük miktarda token basıp kar elde etmeleri yatıyor. Bu aslında oldukça kolay tespit edilebilen bir kod hatasıydı, ancak Mobius proje ekibi sözleşmeyi detaylı bir şekilde test etmedi ve bu hatayı bulamadı, ayrıca bir denetim de yapılmadı; bu da 2,15 milyon dolardan fazla kayba yol açtı. Beosin güvenlik ekibi, proje ekiplerine sözleşme kodlarının denetimini ve güvenlik testlerini güçlendirmelerini önerdi, böylece benzer durumların yaşanmasını önleyebilirler.
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
215 milyon dolar kayıp! MobiusDAO olayı açık analizi ve çalınan fonların takibi
Yazı: Beosin
Son zamanlarda, BNB Chain ekosistem projesi MobiusDAO saldırıya uğradı. Saldırganlar, projenin sözleşmesindeki mantık açığını kullanarak çok sayıda MBU tokeni basıp satmaktan kazanç sağladı. Beosin güvenlik ekibi, bu olayla ilgili olarak bir açık analizi ve fon takibi gerçekleştirdi ve sonuçları aşağıda paylaşıyor:
Ayrıntılı saldırı adımları
(1) Saldırgan öncelikle saldırı sözleşmesini dağıttı (0x631adFF068D484Ce531Fb519Cda4042805521641)
ve bu sözleşmeyi kullanarak Mobius proxy sözleşmesi 0x95e92B09b89cF31Fa9F1Eca4109A85F88EB08531'in depo fonksiyonunu çağırdı, ardından Mobius sözleşmesi 9.7x10^15'ten fazla MBU token'ı basarak saldırı sözleşmesine gönderdi.
Saldırı işlem hash'i: 0x2a65254b41b42f39331a0bcc9f893518d6b106e80d9a476b8ca3816325f4a150
(2) Saldırı sözleşmesi, MBU tokenlerini aldıktan sonra PancakeSwap ile ilgili sözleşmeyi çağırarak MBU tokenlerini satarak kar elde eder.
Açık Analizi
Mobius sözleşmesinin depozit fonksiyonu, depozito alındıktan sonra eşit miktarda MBU tokeni basarak depozito sahibine gönderir. Bu fonksiyonda, kullanıcı WBNB yatırdığında, fonksiyon BNB'nin fiyatını alır ve basılıp transfer edilecek MBU tokeni miktarını hesaplar.
BNB fiyatı, 18 ondalık basamağa kadar fiyat döndüren getBNBPriceInUSDT fonksiyonundan gelmektedir. Yukarıdaki resimde görüldüğü gibi, dönen fiyat yaklaşık 656 dolardır.
Mobius'un mantıksal sözleşmesi açık kaynak olmadığı için, dekompile ederek, fonksiyonun 18 ondalık basamaklı bir sonuç döndürdüğünde, sözleşmenin bu değeri tekrar 10^18 ile çarptığını ve normal sonuca göre 10^18 kat daha fazla MBU token miktarı ürettiğini keşfettik.
Çalınan Fonların Takibi
Beosin Trace, çalınan fonları takip ederek şunları buldu: Çalınan fonlar, saldırganlar tarafından yaklaşık 2.15 milyon USDT tokenine dönüştürüldü. Bunların 1.35 milyon USDT'si BNB'ye dönüştürülerek Tornado Cash'e yatırıldı, geri kalan 800 bin USDT ise Ethereum ağı üzerindeki ETH'ye çapraz zincir değişimi yapılarak Tornado Cash'e yatırıldı. Beosin Trace, hacker ile ilgili adresleri kara listeye ekledi ve takip etmeye devam edecek.
Beosin Trace analizine göre, çalınan tüm fonlar Tornado Cash'e yatırılmıştır.
Özet
Bu saldırının temelinde, saldırganların proje sözleşmesindeki bir aritmetik hatayı kullanarak büyük miktarda token basıp kar elde etmeleri yatıyor. Bu aslında oldukça kolay tespit edilebilen bir kod hatasıydı, ancak Mobius proje ekibi sözleşmeyi detaylı bir şekilde test etmedi ve bu hatayı bulamadı, ayrıca bir denetim de yapılmadı; bu da 2,15 milyon dolardan fazla kayba yol açtı. Beosin güvenlik ekibi, proje ekiplerine sözleşme kodlarının denetimini ve güvenlik testlerini güçlendirmelerini önerdi, böylece benzer durumların yaşanmasını önleyebilirler.