Son günlerde, çapraz zincir etkileşim protokolü Poly Network, bir Hacker saldırısına uğradı ve geniş bir dikkat çekti. Güvenlik ekibinin derinlemesine analizinin ardından, saldırganların keeper özel anahtarı sızıntısı yoluyla saldırı gerçekleştirmediği, bunun yerine sözleşmedeki bir açığı kullandığı belirlendi.
Saldırı Prensibi
Saldırının özü, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunun _executeCrossChainTx fonksiyonu aracılığıyla belirli bir çapraz zincir işlemi gerçekleştirebilmesidir. EthCrossChainData sözleşmesinin sahibi EthCrossChainManager sözleşmesi olduğundan, bu sonuncusu, sözleşmenin keeper'ını değiştirmek için öncekisinin putCurEpochConPubKeyBytes fonksiyonunu çağırabilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonuna özenle hazırlanmış veriler geçirerek, _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesindeki putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağladı ve böylece keeper rolünü saldırganın belirttiği adrese değiştirdi. Keeper rolü değiştirildikten sonra, saldırgan istediği gibi işlem oluşturabilir ve sözleşmeden her türlü miktarda fon alabilir.
Saldırı Süreci
Saldırgan, önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu çağırarak putCurEpochConPubKeyBytes fonksiyonunu kullanarak keeper'ı değiştirdi.
Ardından, saldırgan değiştirilen yetkileri kullanarak bir dizi saldırı işlemi gerçekleştirdi ve sözleşmeden fonları çekti.
Keeper'ın değiştirilmesi nedeniyle diğer kullanıcıların normal işlemleri reddedildi.
Bu saldırı modeli yalnızca BSC zincirinde değil, Ethereum ağı üzerinde de benzer saldırı operasyonlarıyla karşılaştı.
Sonuç
Bu saldırı olayının temel nedeni, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir. Ayrıca, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu, kullanıcı tarafından girilen verileri _executeCrossChainTx fonksiyonu aracılığıyla çalıştırabilmektedir. Saldırgan, bu tasarım hatasından yararlanarak belirli veriler oluşturarak EthCrossChainData sözleşmesinin keeper'ını değiştirmiş ve böylece fonların çalınmasını sağlamıştır.
Bu olay, özellikle izin yönetimi ve fonksiyon çağrıları açısından, çapraz zincir protokollerinin güvenlik tasarımının önemini bir kez daha vurgulamaktadır. Merkeziyetsiz finans projeleri için sürekli güvenlik denetimi ve güvenlik açığı onarımları, benzer saldırı olaylarının gerçekleşmesini önlemek adına son derece önemlidir.
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.
18 Likes
Reward
18
6
Repost
Share
Comment
0/400
PanicSeller69
· 08-12 04:32
Açıklar hala ne yapıyor defi ile?
View OriginalReply0
BearMarketNoodler
· 08-11 11:12
Bir başka kurban, ücretsiz ders uyarısı
View OriginalReply0
HodlKumamon
· 08-10 15:50
Ah ah ah QA denetimi neden bu kadar belirsiz yapıldı~
View OriginalReply0
AirdropATM
· 08-10 15:49
Sözleşme açıkları gerçekten sinir bozucu.
View OriginalReply0
TokenCreatorOP
· 08-10 15:46
Yine likidasyona uğramış mı?
View OriginalReply0
PoolJumper
· 08-10 15:31
Bu kadar çok tüyü yolduktan sonra, sözleşme hala açıkları mı söylüyor?
Poly Network, Hacker saldırısına uğradı: Sözleşme açığı, keeper'ın değiştirilmesine neden oldu.
Poly Network saldırı analizi
Son günlerde, çapraz zincir etkileşim protokolü Poly Network, bir Hacker saldırısına uğradı ve geniş bir dikkat çekti. Güvenlik ekibinin derinlemesine analizinin ardından, saldırganların keeper özel anahtarı sızıntısı yoluyla saldırı gerçekleştirmediği, bunun yerine sözleşmedeki bir açığı kullandığı belirlendi.
Saldırı Prensibi
Saldırının özü, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunun _executeCrossChainTx fonksiyonu aracılığıyla belirli bir çapraz zincir işlemi gerçekleştirebilmesidir. EthCrossChainData sözleşmesinin sahibi EthCrossChainManager sözleşmesi olduğundan, bu sonuncusu, sözleşmenin keeper'ını değiştirmek için öncekisinin putCurEpochConPubKeyBytes fonksiyonunu çağırabilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonuna özenle hazırlanmış veriler geçirerek, _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesindeki putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağladı ve böylece keeper rolünü saldırganın belirttiği adrese değiştirdi. Keeper rolü değiştirildikten sonra, saldırgan istediği gibi işlem oluşturabilir ve sözleşmeden her türlü miktarda fon alabilir.
Saldırı Süreci
Saldırgan, önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu çağırarak putCurEpochConPubKeyBytes fonksiyonunu kullanarak keeper'ı değiştirdi.
Ardından, saldırgan değiştirilen yetkileri kullanarak bir dizi saldırı işlemi gerçekleştirdi ve sözleşmeden fonları çekti.
Keeper'ın değiştirilmesi nedeniyle diğer kullanıcıların normal işlemleri reddedildi.
Bu saldırı modeli yalnızca BSC zincirinde değil, Ethereum ağı üzerinde de benzer saldırı operasyonlarıyla karşılaştı.
Sonuç
Bu saldırı olayının temel nedeni, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir. Ayrıca, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu, kullanıcı tarafından girilen verileri _executeCrossChainTx fonksiyonu aracılığıyla çalıştırabilmektedir. Saldırgan, bu tasarım hatasından yararlanarak belirli veriler oluşturarak EthCrossChainData sözleşmesinin keeper'ını değiştirmiş ve böylece fonların çalınmasını sağlamıştır.
Bu olay, özellikle izin yönetimi ve fonksiyon çağrıları açısından, çapraz zincir protokollerinin güvenlik tasarımının önemini bir kez daha vurgulamaktadır. Merkeziyetsiz finans projeleri için sürekli güvenlik denetimi ve güvenlik açığı onarımları, benzer saldırı olaylarının gerçekleşmesini önlemek adına son derece önemlidir.