"Güven ama doğrula" (güven ama doğrulamak için), "gerçekten sonra" yapma. En ciddi böcek, ışıkların altında siyahtır.
Sözleşmenin değişmezliği nedeniyle, proje zımnen yıllar önce yazılmış koda dayanacaktır.Hataları düzeltirken, bunun potansiyel etkisine daha fazla dikkat etmemiz gerekir.
Bu sefer böyle oldu.
zaman çizelgesi
Bu yazıda, bu etkinlikte çok çalışan herkese atıfta bulunmak için "biz" kullanacağım. Başlangıçta hatayı bulmaya biraz katkıda bulunsam da, süreç boyunca sayısız insanın çok daha fazla yardımcı olduğunu hissediyorum.
13:10 UTC pETH/ETH 11 milyon $ [1] boşaltmak.
13:19 UTC Michal, ETSecurity'de ani pETH fiyat düşüşü hakkında paylaşımda bulunuyor.
Bir şeylerin ters gittiğini ilk fark eden Igor oldu. Onun sayesinde daha fazla araştırmaya başladık.
Ancak robot, remove_liquidity() çağrısında add_liquidity()'ye nasıl yeniden giriyor?
14:01 UTC Konuyla ilgili bir acil durum ekibi oluşturdu.
14:07 UTC Favori derleyicimizi kullanıyoruz [2] JPEGd sözleşmesini kaynak koda dönüştürdü ve yeniden giriş koruma yuvalarının biraz farklı olduğunu fark etti.
// add_liquidity(uint256) için sevk tablosu girişi [2] ,uint256)
etiket_0057:
eğer (depolama [0x00] ) { geri al(bellek[0x00:0x00]); }
depolamak [0x00] = 0x01;
// remove_liquidity(uint256,uint256) için gönderme tablosu girişi [2] )
etiket_1AF3:
eğer (depolama [0x02] ) { geri al(bellek[0x00:0x00]); }
depolamak [0x02] = 0x01;
14:27 UTC Bu sorunu basit bir yerel test sözleşmesiyle onayladık.
@harici
@nonreentrant("kilit")
def testi(addr: adres) -> bool:
dönüş Doğru
@harici
@nonreentrant("kilit")
def test2(addr: adres) -> bool:
yanlış dönüş
Bu sadece başka bir yeniden giriş hatası değil.
Bu noktada, bunun ne kadar büyük bir etkisinin olacağını anladık. Mesajı engelle, bu güvenlik açığıyla ilgili genel mesajları kaldırdık.
14:37 UTC Wavey, savunmasız taahhüdün ve etkilenen sürümün belirlenmesine yardımcı oldu. Charles ve ben de Vyper derleyici çıktısını manuel olarak inceleyerek bunu doğruladık.
Bilgisayar korsanlarına karşı bir yarış.
Neyse ki, insanlar bunu salt okunur yeniden girişle de karıştırıyor. Web3 Security Alert kanalından alıntı - Alchemix ve Metronome DAO da salt okunur yeniden giriş hatası nedeniyle saldırıya uğradı [3]
Michael, 0.2.15 sürümünü çalıştıran alETH ve msETH havuzlarında da potansiyel güvenlik açıkları buldu.
14:50 UTC msETH/ETH tükendi [4] .
15:34 UTC alETH/ETH tükendi [5] .
15:43 UTC Vyper sürüm 0.3.0 ile derlenen CRV/ETH'de bir güvenlik açığı bulduk. [6] . Etkilenen sözleşmeleri mümkün olduğu kadar uzun süre gizli tutmamız çok önemlidir.
16:11 UTC Beyaz şapka güvenlik açıkları üzerinde çalışmaya başladık.
Ne yazık ki, çok fazla kuruluş aynı anda bağımsız araştırma yürütüyor ve çok sayıda söylenti var. 16:44 UTC'de, etkilenen sürümle ilgili bir genel açıklama yayınlamaya karar verdik. [7] .
18:32 UTC'ye kadar, potansiyel bir beyaz şapka kurtarması için kullanılabilecek bir kavram kanıtı istismarımız vardı. Chainlight'ın bpak'ı da aynı zamanda bir güvenlik açığı üzerinde çalışıyor ve bunu 19:06 UTC'de paylaştı.
Beş dakika sonra, 19:11 UTC'de biri parayı çaldı [8] .
Saldırı yapısı, kavram kanıtımızdan çok farklıdır ve ekibimizden bir sızıntı olması pek olası değildir. Her neyse, çok sinir bozucu.
Yine de yapılacak çok şey var.
21:26 UTC Addison, CRVETH havuzunda kalan varlıkları kurtarmak için iddialı bir plan yaptı.
crv/eth havuzuna 30k crv gönderirseniz,
Yönetici ücretini güncelleyebilirsiniz
ardından crv/eth oranını crv başına 0,15 eth civarında ayarlayın
Temel olarak havuzdaki yüzlerce K crv'nin tamamı çıkarılabilir
21:52 UTC bpak, 3100 ETH'yi kurtarabilecek çalışan bir kavram kanıtı yaptı.
On dakika sonra 22:02 UTC'de yine yenildik. Şaşırtıcı bir şekilde CRV, gider robotlarını yönetiyor [9] Fonlar alındı ve havuz boşaltıldı [10] .
suçlamak
suçlama (Balme) güçlü bir kelimedir. Parmakla işaret etmek işe yaramaz. Neyin daha iyi yapılabileceğini düşünmekte fayda olduğunu düşünüyorum.
Yarışma
Beyaz Şapka çabalarının tümü yarım saatten daha kısa bir sürede yenildi. Bazen her saniye önemlidir.
Belki de bu saldırılar daha iyi hazırlık ve kaynaklarla gerçekleştirilebilirdi. Aynı zamanda, bu iki ucu keskin bir kılıç gibi görünüyor. Bir hack'in nasıl gerçekleştirileceğine dair bilgileri bir araya getirmek gerçekten iyi bir fikir mi? Kime güvenmeliyiz?
Öte yandan, tüm sürecin çok etkili olduğunu düşünüyorum. İlk şüpheden 2 saat 4 dakikada kimin savunmasız olduğunu doğrulamaya gittik.
Bilgi Açıklama
Hem denetçi hem de beyaz şapkalı hacker'ım.
Denetim endüstrisi benzersiz bir yayıncılık kültürüne sahiptir. Teknik düşünce liderliğimiz ve güvenlik açıklarını derinlemesine anlamamız için para alıyoruz. Liderliklerini ve derinliklerini göstermenin bir yolu, [11] Bilgisayar korsanlığıyla ilgili "kepçe". Araştırmacılar pahalıdır ve yatırımın geri dönüşü tanıtımdır.
Öte yandan, etkilenen bir sürümün erken ifşa edilmesinin beyaz şapkalı bir kurtarma üzerinde önemli bir etkiye sahip olacağına dair ikna edici bir argüman var.
Fazladan yarım saat olsaydı, 18 milyon dolar tasarruf edilebilirdi.
Denetçiler raporlarının etkisi için ödeme yapmazlar. Bunun yerine, beğeniler, retweetler ve kapsama alanı alırlar. Bu bir sorun gibi görünüyor.
Sonraki adım
"Bu sorunu çözmek için resmi doğrulamaya ihtiyacımız var" ve benzerlerine katılmıyorum. Bu hata birim testi ile yakalanabilir. Resmi doğrulama, birçok hata türü için çok yararlıdır, ancak nispeten basit, optimize etmeyen derleyiciler için eşit derecede yararlı olduğuna inanmıyorum.
Bu hatanın Kasım 2021'de giderildiğini unutmayın. [12] .
Bence bu Vyper güvenlik açığı, Vyper ekibinin teknolojisi veya diliyle ilgili bir sorun değil, daha çok bir süreç sorunu. Bu hata, düzeltme sırasında potansiyel etkisi fark edilmeden uzun zaman önce giderildi.
Ne yazık ki, kamu malları kolayca gözden kaçırılıyor. Sözleşme değişmezliği nedeniyle, projeler dolaylı olarak yıllar önce yazılmış kodlara dayanır. Protokol geliştiricileri ve güvenlik uzmanları, yürütme yığınındaki en son güvenlik gelişmelerinden haberdar olmalıdır.
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.
Vyper hack'inin zaman çizelgesi ve yansımaları
"Güven ama doğrula" (güven ama doğrulamak için), "gerçekten sonra" yapma. En ciddi böcek, ışıkların altında siyahtır.
Bu sefer böyle oldu.
zaman çizelgesi
Bu yazıda, bu etkinlikte çok çalışan herkese atıfta bulunmak için "biz" kullanacağım. Başlangıçta hatayı bulmaya biraz katkıda bulunsam da, süreç boyunca sayısız insanın çok daha fazla yardımcı olduğunu hissediyorum.
13:10 UTC pETH/ETH 11 milyon $ [1] boşaltmak.
13:19 UTC Michal, ETSecurity'de ani pETH fiyat düşüşü hakkında paylaşımda bulunuyor.
Bir şeylerin ters gittiğini ilk fark eden Igor oldu. Onun sayesinde daha fazla araştırmaya başladık.
14:01 UTC Konuyla ilgili bir acil durum ekibi oluşturdu.
14:07 UTC Favori derleyicimizi kullanıyoruz [2] JPEGd sözleşmesini kaynak koda dönüştürdü ve yeniden giriş koruma yuvalarının biraz farklı olduğunu fark etti.
// add_liquidity(uint256) için sevk tablosu girişi [2] ,uint256) etiket_0057: eğer (depolama [0x00] ) { geri al(bellek[0x00:0x00]); } depolamak [0x00] = 0x01; // remove_liquidity(uint256,uint256) için gönderme tablosu girişi [2] ) etiket_1AF3: eğer (depolama [0x02] ) { geri al(bellek[0x00:0x00]); } depolamak [0x02] = 0x01;
14:27 UTC Bu sorunu basit bir yerel test sözleşmesiyle onayladık.
@harici @nonreentrant("kilit") def testi(addr: adres) -> bool: dönüş Doğru @harici @nonreentrant("kilit") def test2(addr: adres) -> bool: yanlış dönüş
Bu sadece başka bir yeniden giriş hatası değil.
Bu noktada, bunun ne kadar büyük bir etkisinin olacağını anladık. Mesajı engelle, bu güvenlik açığıyla ilgili genel mesajları kaldırdık.
14:37 UTC Wavey, savunmasız taahhüdün ve etkilenen sürümün belirlenmesine yardımcı oldu. Charles ve ben de Vyper derleyici çıktısını manuel olarak inceleyerek bunu doğruladık.
Bilgisayar korsanlarına karşı bir yarış.
Neyse ki, insanlar bunu salt okunur yeniden girişle de karıştırıyor. Web3 Security Alert kanalından alıntı - Alchemix ve Metronome DAO da salt okunur yeniden giriş hatası nedeniyle saldırıya uğradı [3]
Michael, 0.2.15 sürümünü çalıştıran alETH ve msETH havuzlarında da potansiyel güvenlik açıkları buldu.
14:50 UTC msETH/ETH tükendi [4] .
15:34 UTC alETH/ETH tükendi [5] .
15:43 UTC Vyper sürüm 0.3.0 ile derlenen CRV/ETH'de bir güvenlik açığı bulduk. [6] . Etkilenen sözleşmeleri mümkün olduğu kadar uzun süre gizli tutmamız çok önemlidir.
16:11 UTC Beyaz şapka güvenlik açıkları üzerinde çalışmaya başladık.
Ne yazık ki, çok fazla kuruluş aynı anda bağımsız araştırma yürütüyor ve çok sayıda söylenti var. 16:44 UTC'de, etkilenen sürümle ilgili bir genel açıklama yayınlamaya karar verdik. [7] .
18:32 UTC'ye kadar, potansiyel bir beyaz şapka kurtarması için kullanılabilecek bir kavram kanıtı istismarımız vardı. Chainlight'ın bpak'ı da aynı zamanda bir güvenlik açığı üzerinde çalışıyor ve bunu 19:06 UTC'de paylaştı.
Beş dakika sonra, 19:11 UTC'de biri parayı çaldı [8] .
Saldırı yapısı, kavram kanıtımızdan çok farklıdır ve ekibimizden bir sızıntı olması pek olası değildir. Her neyse, çok sinir bozucu.
Yine de yapılacak çok şey var.
21:26 UTC Addison, CRVETH havuzunda kalan varlıkları kurtarmak için iddialı bir plan yaptı.
21:52 UTC bpak, 3100 ETH'yi kurtarabilecek çalışan bir kavram kanıtı yaptı.
On dakika sonra 22:02 UTC'de yine yenildik. Şaşırtıcı bir şekilde CRV, gider robotlarını yönetiyor [9] Fonlar alındı ve havuz boşaltıldı [10] .
suçlamak
suçlama (Balme) güçlü bir kelimedir. Parmakla işaret etmek işe yaramaz. Neyin daha iyi yapılabileceğini düşünmekte fayda olduğunu düşünüyorum.
Yarışma
Beyaz Şapka çabalarının tümü yarım saatten daha kısa bir sürede yenildi. Bazen her saniye önemlidir.
Belki de bu saldırılar daha iyi hazırlık ve kaynaklarla gerçekleştirilebilirdi. Aynı zamanda, bu iki ucu keskin bir kılıç gibi görünüyor. Bir hack'in nasıl gerçekleştirileceğine dair bilgileri bir araya getirmek gerçekten iyi bir fikir mi? Kime güvenmeliyiz?
Öte yandan, tüm sürecin çok etkili olduğunu düşünüyorum. İlk şüpheden 2 saat 4 dakikada kimin savunmasız olduğunu doğrulamaya gittik.
Bilgi Açıklama
Hem denetçi hem de beyaz şapkalı hacker'ım.
Denetim endüstrisi benzersiz bir yayıncılık kültürüne sahiptir. Teknik düşünce liderliğimiz ve güvenlik açıklarını derinlemesine anlamamız için para alıyoruz. Liderliklerini ve derinliklerini göstermenin bir yolu, [11] Bilgisayar korsanlığıyla ilgili "kepçe". Araştırmacılar pahalıdır ve yatırımın geri dönüşü tanıtımdır.
Öte yandan, etkilenen bir sürümün erken ifşa edilmesinin beyaz şapkalı bir kurtarma üzerinde önemli bir etkiye sahip olacağına dair ikna edici bir argüman var.
Fazladan yarım saat olsaydı, 18 milyon dolar tasarruf edilebilirdi.
Denetçiler raporlarının etkisi için ödeme yapmazlar. Bunun yerine, beğeniler, retweetler ve kapsama alanı alırlar. Bu bir sorun gibi görünüyor.
Sonraki adım
"Bu sorunu çözmek için resmi doğrulamaya ihtiyacımız var" ve benzerlerine katılmıyorum. Bu hata birim testi ile yakalanabilir. Resmi doğrulama, birçok hata türü için çok yararlıdır, ancak nispeten basit, optimize etmeyen derleyiciler için eşit derecede yararlı olduğuna inanmıyorum.
Bu hatanın Kasım 2021'de giderildiğini unutmayın. [12] .
Ne yazık ki, kamu malları kolayca gözden kaçırılıyor. Sözleşme değişmezliği nedeniyle, projeler dolaylı olarak yıllar önce yazılmış kodlara dayanır. Protokol geliştiricileri ve güvenlik uzmanları, yürütme yığınındaki en son güvenlik gelişmelerinden haberdar olmalıdır.