Poly Network Güvenlik Açığı Analizi: Saldırganlar Sözleşme Açıklarını Nasıl Kullanarak Yetkiyi Değiştiriyor?
Son günlerde, çoklu zincirler arası etkileşim protokolü Poly Network önemli bir güvenlik olayıyla karşılaştı ve sektörde geniş bir ilgi uyandırdı. Güvenlik uzmanlarının analizine göre, bu saldırı özel anahtar sızıntısından kaynaklanmıyor, aksine saldırganlar akıllı sözleşmelerdeki bir açığı ustaca kullandı.
Olayın özü, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunda bir tasarım hatasının bulunmasıdır. Bu fonksiyon, kullanıcı tarafından belirlenen çapraz zincir işlemlerini gerçekleştirmek için içindeki _executeCrossChainTx fonksiyonu aracılığıyla çalıştırılabilir. Saldırganlar, belirli verileri oluşturarak _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağladılar ve böylece keeper rolünü saldırganın kontrolündeki bir adrese değiştirdiler.
Saldırı süreci aşağıdaki gibidir:
Saldırgan önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu çağırarak, özenle hazırlanmış verileri iletir.
Bu fonksiyon içinde _executeCrossChainTx çalıştırılır ve ardından EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonu çağrılır.
putCurEpochConPubKeyBytes fonksiyonu yürütüldü ve keeper rolü adresi saldırgan tarafından belirtilen adresle değiştirildi.
keeper değiştirildikten sonra, saldırgan işlem yetkisi kazanır ve sözleşmeden fonları çekmek için dilediği gibi işlem oluşturabilir.
Saldırı tamamlandıktan sonra, keeper değiştirildiği için diğer kullanıcıların normal işlemleri reddedilmeye başlandı.
Bu saldırı yöntemi hem BSC hem de Ethereum ağında kullanılmaktadır. Saldırının anahtarı, EthCrossChainData sözleşmesinin koruyucusunun EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir; bu da kullanıcı tarafından sağlanan herhangi bir verinin yürütülmesine izin verir. Bu tasarım ciddi güvenlik açıkları taşımakta ve saldırganlara fırsatlar sunmaktadır.
Bu olay, akıllı sözleşmelerin güvenliğinin son derece önemli olduğunu bir kez daha ortaya koyuyor. Geliştirme ekipleri, sözleşme tasarlarken çeşitli saldırı senaryolarını dikkate almalı, kritik işlevlerin çağrılma yetkilerini sıkı bir şekilde sınırlamalı ve kapsamlı bir güvenlik denetimi gerçekleştirmelidir. Aynı zamanda, merkeziyetsiz projelerin acil durumlarla başa çıkmak için daha iyi bir yönetim mekanizması kurması gerekmektedir.
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.
12 Likes
Reward
12
6
Share
Comment
0/400
blocksnark
· 07-18 15:43
Yine akıllı sözleşmelerin suçu
View OriginalReply0
NFT_Therapy
· 07-18 15:40
Dünyanın en güzeli, bir başka akıllı sözleşmelerin başarısızlığı
View OriginalReply0
BTCRetirementFund
· 07-18 15:37
Sözleşme yine bir güvenlik açığına mı maruz kaldı?
View OriginalReply0
MemeKingNFT
· 07-18 15:33
Yine bir hırsızın ziyaretine uğradığı bir gün, sular gibi akıp giden bir dünya, bakalım kimin sözleşmesi hala açık bir delik bulunduruyor.
Poly Network akıllı sözleşmelerinin güvenlik açığı analizi: Saldırganlar nasıl keeper rolünü değiştirip fonları alıyor
Poly Network Güvenlik Açığı Analizi: Saldırganlar Sözleşme Açıklarını Nasıl Kullanarak Yetkiyi Değiştiriyor?
Son günlerde, çoklu zincirler arası etkileşim protokolü Poly Network önemli bir güvenlik olayıyla karşılaştı ve sektörde geniş bir ilgi uyandırdı. Güvenlik uzmanlarının analizine göre, bu saldırı özel anahtar sızıntısından kaynaklanmıyor, aksine saldırganlar akıllı sözleşmelerdeki bir açığı ustaca kullandı.
Olayın özü, EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunda bir tasarım hatasının bulunmasıdır. Bu fonksiyon, kullanıcı tarafından belirlenen çapraz zincir işlemlerini gerçekleştirmek için içindeki _executeCrossChainTx fonksiyonu aracılığıyla çalıştırılabilir. Saldırganlar, belirli verileri oluşturarak _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağladılar ve böylece keeper rolünü saldırganın kontrolündeki bir adrese değiştirdiler.
Saldırı süreci aşağıdaki gibidir:
Saldırgan önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu çağırarak, özenle hazırlanmış verileri iletir.
Bu fonksiyon içinde _executeCrossChainTx çalıştırılır ve ardından EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonu çağrılır.
putCurEpochConPubKeyBytes fonksiyonu yürütüldü ve keeper rolü adresi saldırgan tarafından belirtilen adresle değiştirildi.
keeper değiştirildikten sonra, saldırgan işlem yetkisi kazanır ve sözleşmeden fonları çekmek için dilediği gibi işlem oluşturabilir.
Saldırı tamamlandıktan sonra, keeper değiştirildiği için diğer kullanıcıların normal işlemleri reddedilmeye başlandı.
Bu saldırı yöntemi hem BSC hem de Ethereum ağında kullanılmaktadır. Saldırının anahtarı, EthCrossChainData sözleşmesinin koruyucusunun EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir; bu da kullanıcı tarafından sağlanan herhangi bir verinin yürütülmesine izin verir. Bu tasarım ciddi güvenlik açıkları taşımakta ve saldırganlara fırsatlar sunmaktadır.
Bu olay, akıllı sözleşmelerin güvenliğinin son derece önemli olduğunu bir kez daha ortaya koyuyor. Geliştirme ekipleri, sözleşme tasarlarken çeşitli saldırı senaryolarını dikkate almalı, kritik işlevlerin çağrılma yetkilerini sıkı bir şekilde sınırlamalı ve kapsamlı bir güvenlik denetimi gerçekleştirmelidir. Aynı zamanda, merkeziyetsiz projelerin acil durumlarla başa çıkmak için daha iyi bir yönetim mekanizması kurması gerekmektedir.