28 Ocak'ta QBridge saldırıya uğradı ve yaklaşık 80 milyon USD değerindeki varlıklar çalındı. Analizin ardından, koddaki temel nedenin safeTransfer (ve safeTransferFrom) fonksiyonunun uygulaması olduğunu tespit ettik.
Temel Neden
İlk olarak, proje token transferi için popüler OpenZeppelin SafeERC20 kütüphanesini kullanmamaktadır. Bunun yerine SafeToken adlı bir kütüphane uygulamışlardır.
İkinci olarak, uygulama hedefin geçerli bir sözleşme olup olmadığını (veya sıfır adres olup olmadığını) kontrol etmemektedir.
Üçüncü olarak, EVM'nin düşük seviyeli çağrısı, hedef sözleşme sıfır olduğunda false döndürmez. Bu durum, geliştiricilerin genel kanısıyla çelişmektedir.

Elbette, olayın başka nedenleri de vardır; örneğin, sıfır adresin beyaz listeye alınması. Ancak kod bu özel durumu doğru şekilde ele alsaydı, güvenlik açığı oluşmazdı.
Not: Benzer kodu kullanan başka projeler de mevcuttur. Bu projeler benzer sorunlara karşı savunmasız olabilir.
Deney
VM'nin hedef sözleşme sıfır olduğunda false döndürmediğine dair üçüncü nedeni doğrulamak için aşağıda gösterilen bir test sözleşmesi geliştirdik.

TestSafeTransfer.test() fonksiyonunun çalıştırılması geri dönmeyecektir.

Dersler ve Riski Azaltma Yöntemleri
Şunları öneririz:
- Çok çok iyi bir nedeniniz olmadıkça kendi çözümünüzü icat etmek yerine popüler kütüphaneleri kullanın,
- transfer edilen varlık miktarının beklentiyle uyuştuğunu doğrulamak için varlık transferinden önce ve sonra bakiyeyi kontrol edin. Bu, deflasyon ve enflasyon token sorununu da önleyebilir.
BlockSec Hakkında
BlockSec, 2021 yılında dünya genelinde tanınan bir grup güvenlik uzmanı tarafından kurulmuş öncü bir blok zinciri güvenlik şirketidir. Şirket, kitlesel benimsenmesini kolaylaştırmak amacıyla gelişmekte olan Web3 dünyasının güvenliğini ve kullanılabilirliğini artırmaya adanmıştır. Bu doğrultuda BlockSec; akıllı sözleşme ve EVM zinciri güvenlik denetim hizmetleri, tehditleri proaktif olarak güvenli kılmak ve engellemek için Phalcon platformu, fon takibi ve soruşturma için MetaSleuth platformu ve kripto dünyasında verimli gezinen web3 geliştiricileri için MetaDock eklentisi sunmaktadır.
Bugüne kadar şirket, MetaMask, Uniswap Foundation, Compound, Forta ve PancakeSwap gibi 300'den fazla seçkin müşteriye hizmet vermiş ve Matrix Partners, Vitalbridge Capital ve Fenbushi Capital gibi önde gelen yatırımcılardan iki finansman turunda on milyonlarca ABD doları almıştır.
Resmi web sitesi: https://blocksec.com/
Resmi Twitter hesabı: https://twitter.com/BlockSecTeam



