Son günlerde, çok zincirli etkileşim protokolü Poly Network, bir Hacker saldırısına uğradı ve bu durum sektörde geniş bir dikkat çekti. Güvenlik ekibi, bu olaya derinlemesine bir analiz yaptı ve saldırganın belirli yöntemlerini ve saldırı sürecini ortaya çıkardı.
Saldırı Prensibi
Saldırının özü, EthCrossChainManager sözleşmesindeki bir açığı kullanmaktadır. Saldırgan, verifyHeaderAndExecuteTx fonksiyonu aracılığıyla özenle hazırlanmış verileri geçirerek, EthCrossChainData sözleşmesinin keeper'ını belirlenen bir adrese başarıyla değiştirmiştir. Bu, daha önce dolaşan keeper özel anahtarının sızması iddialarıyla çelişmektedir.
Saldırı Detayları
EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu, _executeCrossChainTx fonksiyonu aracılığıyla belirli bir çapraz zincir işlemi gerçekleştirebilir.
EthCrossChainData sözleşmesinin sahibi EthCrossChainManager sözleşmesidir, bu nedenle ikincisi birincinin putCurEpochConPubKeyBytes fonksiyonunu çağırarak keeper'ı değiştirebilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonunu kullanarak özel verileri geçirir ve _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çalıştırmasını sağlar, böylece keeper'ı saldırganın kontrolündeki adrese değiştirir.
keeper rolü değiştirildiğinde, saldırgan istediği gibi işlemler oluşturabilir ve sözleşmeden herhangi bir miktarda fon çekebilir.
Saldırı Süreci
Saldırgan önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu aracılığıyla putCurEpochConPubKeyBytes fonksiyonunu çağırarak keeper'ı değiştirdi.
Ardından, saldırgan bir dizi saldırı işlemi gerçekleştirerek sözleşmeden fonları çekti.
Saldırı tamamlandıktan sonra, keeper değiştirildiği için diğer kullanıcıların normal işlemleri reddedildi.
Benzer saldırı yöntemleri Ethereum ağı üzerinde de uygulanmıştır, saldırganlar aynı işlem adımlarını kullanmıştır.
Sonuç
Bu saldırının anahtarı, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir ve bu sözleşmenin verifyHeaderAndExecuteTx fonksiyonu, kullanıcı tarafından sağlanan verileri yürütme yeteneğine sahiptir. Saldırganlar, belirli verileri oluşturarak bu açığı kullanmış ve EthCrossChainData sözleşmesinin keeper'ını başarıyla değiştirmiş, böylece fonların çalınmasını gerçekleştirmiştir.
Bu olay, bize çapraz zincir protokollerinin tasarımı ve uygulanmasında, benzer saldırıların gerçekleşmesini önlemek için yetki yönetimi ve güvenlik doğrulama mekanizmalarına özellikle dikkat edilmesi gerektiğini bir kez daha hatırlatıyor. Aynı zamanda, akıllı sözleşmelerin denetimi ve açık tespiti de daha kapsamlı ve derinlemesine olmalıdır, özellikle kritik roller ve yetki değişiklikleri ile ilgili fonksiyonlarda.
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.
Poly Network, Hacker saldırısına uğradı. EthCrossChainManager sözleşmesindeki açık, fon kaybına yol açtı.
Poly Network'in Hacker Saldırısı Olayı Analizi
Son günlerde, çok zincirli etkileşim protokolü Poly Network, bir Hacker saldırısına uğradı ve bu durum sektörde geniş bir dikkat çekti. Güvenlik ekibi, bu olaya derinlemesine bir analiz yaptı ve saldırganın belirli yöntemlerini ve saldırı sürecini ortaya çıkardı.
Saldırı Prensibi
Saldırının özü, EthCrossChainManager sözleşmesindeki bir açığı kullanmaktadır. Saldırgan, verifyHeaderAndExecuteTx fonksiyonu aracılığıyla özenle hazırlanmış verileri geçirerek, EthCrossChainData sözleşmesinin keeper'ını belirlenen bir adrese başarıyla değiştirmiştir. Bu, daha önce dolaşan keeper özel anahtarının sızması iddialarıyla çelişmektedir.
Saldırı Detayları
EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu, _executeCrossChainTx fonksiyonu aracılığıyla belirli bir çapraz zincir işlemi gerçekleştirebilir.
EthCrossChainData sözleşmesinin sahibi EthCrossChainManager sözleşmesidir, bu nedenle ikincisi birincinin putCurEpochConPubKeyBytes fonksiyonunu çağırarak keeper'ı değiştirebilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonunu kullanarak özel verileri geçirir ve _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çalıştırmasını sağlar, böylece keeper'ı saldırganın kontrolündeki adrese değiştirir.
keeper rolü değiştirildiğinde, saldırgan istediği gibi işlemler oluşturabilir ve sözleşmeden herhangi bir miktarda fon çekebilir.
Saldırı Süreci
Saldırgan önce EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu aracılığıyla putCurEpochConPubKeyBytes fonksiyonunu çağırarak keeper'ı değiştirdi.
Ardından, saldırgan bir dizi saldırı işlemi gerçekleştirerek sözleşmeden fonları çekti.
Saldırı tamamlandıktan sonra, keeper değiştirildiği için diğer kullanıcıların normal işlemleri reddedildi.
Benzer saldırı yöntemleri Ethereum ağı üzerinde de uygulanmıştır, saldırganlar aynı işlem adımlarını kullanmıştır.
Sonuç
Bu saldırının anahtarı, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir ve bu sözleşmenin verifyHeaderAndExecuteTx fonksiyonu, kullanıcı tarafından sağlanan verileri yürütme yeteneğine sahiptir. Saldırganlar, belirli verileri oluşturarak bu açığı kullanmış ve EthCrossChainData sözleşmesinin keeper'ını başarıyla değiştirmiş, böylece fonların çalınmasını gerçekleştirmiştir.
Bu olay, bize çapraz zincir protokollerinin tasarımı ve uygulanmasında, benzer saldırıların gerçekleşmesini önlemek için yetki yönetimi ve güvenlik doğrulama mekanizmalarına özellikle dikkat edilmesi gerektiğini bir kez daha hatırlatıyor. Aynı zamanda, akıllı sözleşmelerin denetimi ve açık tespiti de daha kapsamlı ve derinlemesine olmalıdır, özellikle kritik roller ve yetki değişiklikleri ile ilgili fonksiyonlarda.