Son zamanlarda, çoklu zincirler arası etkileşim protokolü Poly Network, bir hacker saldırısına uğradı ve geniş bir dikkat çekti. Güvenlik ekibi bu olayı derinlemesine analiz etti ve saldırganların, daha önce söylentilerde belirtildiği gibi keeper özel anahtarının sızdırılması nedeniyle değil, EthCrossChainData sözleşmesinin keeper rolünü dikkatlice yapılandırılmış verilerle değiştirdiğini düşündü.
Saldırı Çekirdek
Saldırının anahtarı, 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 sözleşme EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çağırarak sözleşmenin koruyucusunu değiştirebilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonu aracılığıyla özenle tasarlanmış verileri ileterek _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesindeki putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağlayabilir ve böylece keeper rolünü saldırganın belirlediği adrese değiştirebilir. Keeper rolü adresi değiştirildikten sonra, saldırgan istediği gibi işlem oluşturabilir ve sözleşmeden istedikleri kadar para çekebilir.
Saldırı Süreci
Saldırgan öncelikle EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu kullanarak putCurEpochConPubKeyBytes fonksiyonunu çağırır ve keeper rolünü değiştirir.
Ardından, saldırgan bir dizi saldırı işlemi gerçekleştirmeye başladı ve sözleşmeden fon çekti.
Saldırı tamamlandıktan sonra, keeper'in değiştirilmesi nedeniyle diğer kullanıcıların normal işlemleri reddedildi.
Benzer saldırı yöntemleri Ethereum ağında da uygulanmakta, süreç BSC üzerindeki saldırılarla benzerlik göstermektedir.
Sonuç
Bu saldırının temel nedeni, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir. EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu ise _executeCrossChainTx fonksiyonu aracılığıyla kullanıcı tarafından girilen verileri işleyebilmektedir. Saldırgan bu güvenlik açığını kullanarak, belirli veriler oluşturarak EthCrossChainData sözleşmesinin keeper'ını kontrol ettiği bir adrese değiştirmeyi başarmış ve böylece sözleşmenin fonlarını yasa dışı olarak çekmiştir.
Bu olay, akıllı sözleşme güvenlik denetiminin önemini bir kez daha vurguladı, özellikle de çapraz zincir işlemlerini ve kritik rol yönetimini içeren karmaşık sistemlerde. Geliştirme ekipleri, benzer güvenlik açıklarının istismarını önlemek için sözleşme yetki yönetim mekanizmalarını daha dikkatli bir şekilde tasarlayıp uygulamalı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.
Poly Network Hacker saldırısı derinlik analizi: EthCrossChainData sözleşmesi keeper rolü değiştirilmiş
Poly Network Hacker Saldırısı Detaylı Analiz
Son zamanlarda, çoklu zincirler arası etkileşim protokolü Poly Network, bir hacker saldırısına uğradı ve geniş bir dikkat çekti. Güvenlik ekibi bu olayı derinlemesine analiz etti ve saldırganların, daha önce söylentilerde belirtildiği gibi keeper özel anahtarının sızdırılması nedeniyle değil, EthCrossChainData sözleşmesinin keeper rolünü dikkatlice yapılandırılmış verilerle değiştirdiğini düşündü.
Saldırı Çekirdek
Saldırının anahtarı, 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 sözleşme EthCrossChainData sözleşmesinin putCurEpochConPubKeyBytes fonksiyonunu çağırarak sözleşmenin koruyucusunu değiştirebilir.
Saldırgan, verifyHeaderAndExecuteTx fonksiyonu aracılığıyla özenle tasarlanmış verileri ileterek _executeCrossChainTx fonksiyonunun EthCrossChainData sözleşmesindeki putCurEpochConPubKeyBytes fonksiyonunu çağırmasını sağlayabilir ve böylece keeper rolünü saldırganın belirlediği adrese değiştirebilir. Keeper rolü adresi değiştirildikten sonra, saldırgan istediği gibi işlem oluşturabilir ve sözleşmeden istedikleri kadar para çekebilir.
Saldırı Süreci
Saldırgan öncelikle EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonunu kullanarak putCurEpochConPubKeyBytes fonksiyonunu çağırır ve keeper rolünü değiştirir.
Ardından, saldırgan bir dizi saldırı işlemi gerçekleştirmeye başladı ve sözleşmeden fon çekti.
Saldırı tamamlandıktan sonra, keeper'in değiştirilmesi nedeniyle diğer kullanıcıların normal işlemleri reddedildi.
Benzer saldırı yöntemleri Ethereum ağında da uygulanmakta, süreç BSC üzerindeki saldırılarla benzerlik göstermektedir.
Sonuç
Bu saldırının temel nedeni, EthCrossChainData sözleşmesinin keeper'ının EthCrossChainManager sözleşmesi tarafından değiştirilebilmesidir. EthCrossChainManager sözleşmesinin verifyHeaderAndExecuteTx fonksiyonu ise _executeCrossChainTx fonksiyonu aracılığıyla kullanıcı tarafından girilen verileri işleyebilmektedir. Saldırgan bu güvenlik açığını kullanarak, belirli veriler oluşturarak EthCrossChainData sözleşmesinin keeper'ını kontrol ettiği bir adrese değiştirmeyi başarmış ve böylece sözleşmenin fonlarını yasa dışı olarak çekmiştir.
Bu olay, akıllı sözleşme güvenlik denetiminin önemini bir kez daha vurguladı, özellikle de çapraz zincir işlemlerini ve kritik rol yönetimini içeren karmaşık sistemlerde. Geliştirme ekipleri, benzer güvenlik açıklarının istismarını önlemek için sözleşme yetki yönetim mekanizmalarını daha dikkatli bir şekilde tasarlayıp uygulamalıdır.