Move dilinin referans güvenlik modülünde tamsayı taşma açığı bulundu
Son zamanlarda, Move dilinde yeni bir tam sayı taşma açığı keşfeden derin bir araştırma yapıldı. Bu açık, referans güvenliği doğrulama sürecinde bulunmaktadır ve Move dilinin bazı temel kavramları ve mekanizmalarıyla ilgilidir.
Move dili, byte kodunu çalıştırmadan önce kod doğrulaması yapar ve bu dört adıma ayrılır. Bu yeni keşfedilen güvenlik açığı reference_safety adımında ortaya çıkmaktadır. Bu adım, referansların güvenliğini doğrulamaktan sorumludur; bu, askıda referansların varlığını kontrol etmeyi, değişken referansların erişim güvenliğini ve küresel depolama referanslarının erişim güvenliğini içerir.
Güvenlik doğrulamanın temel ilkesi, her fonksiyondaki temel blokların analizidir. Temel blok, giriş ve çıkış dışında hiçbir dallanma talimatı olmayan bir kod dizisidir. Move dili, bayt kodunu dolaşarak tüm dallanma ve döngü talimatlarını bulur ve temel blokları tanımlar.
Doğrulama sürecinde, sistem bir AbstractState yapısını koruyacak ve bu yapı borrow graph ve locals bilgilerini içerecektir; bu, işlev içinde yapılan referansların güvenliğini sağlamak için gereklidir. Doğrulama süreci temel blok kodunu çalıştıracak, ardından yürütme sonrası durumu üretecek, daha sonra yürütme öncesi ve sonrası durumları birleştirip blok durumunu güncelleyerek sonraki bloklara yayacaktır.
Hata, join_ fonksiyonunda ortaya çıkmaktadır. Fonksiyon parametre uzunluğu ile yerel değişken uzunluğu 256'yı aştığında, local değişkenleri temsil etmek için u8 tipi kullanıldığı için tamsayı taşması meydana gelmektedir. Move dilinin locals sayısını kontrol eden bir mekanizması bulunsa da, yalnızca yerel değişken sayısını kontrol etmekte, parametre uzunluğunu kapsamamaktadır.
Bu taşma açığı, hizmet reddi saldırısına yol açabilir. Saldırganlar, taşmayı kullanarak blok durumunu değiştirmek için döngü kod bloğu oluşturabilir. Temel blok tekrar çalıştırıldığında, eğer talimatın erişim gerektirdiği indeks yeni yerel haritada yoksa, sistem çökmesine neden olur.
Bu açığı göstermek için araştırmacılar bir kanıt-of-concept(PoC) sağladılar. Belirli parametreler ve yerel değişken sayısı ayarlanarak, tam sayı taşması tetiklenebilir ve sistem panic durumuna geçebilir.
Bu açık, sıkı bir şekilde tasarlanmış dillerin bile güvenlik riskleri taşıyabileceğini ortaya koyuyor. Bu, kod denetiminin önemini vurguluyor ve dil tasarımında daha fazla sınır durumu dikkate alınması gerektiğini gösteriyor. Move dili için, yalnızca doğrulama aşamasındaki güvenlik mekanizmalarına güvenmek yerine, çalışma zamanında daha fazla güvenlik kontrolü eklenmesi önerilmektedir.
Move dilinin Web3 alanında yaygın kullanımıyla birlikte, bu tür potansiyel açıkların derinlemesine incelenmesi ve keşfi, ekosistemin genel güvenliğini artırmak için son derece önemlidir. Geliştiricilerin ve güvenlik araştırmacılarının dikkatli olmaları, Move dilinin güvenlik performansını sürekli izlemeleri ve geliştirmeleri gerekmektedir.
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.
14 Likes
Reward
14
9
Repost
Share
Comment
0/400
GateUser-aa7df71e
· 08-19 18:48
Bir proje daha başarısız olacak, aşırıya kaçarsa çöküş kaçınılmaz.
View OriginalReply0
TokenVelocity
· 08-17 11:11
İki yıl çalışarak herkesi geçindirdim, tümüyle iflas ettim ve sadece ben 3000 gün boyunca girişimcilik hayalimin yükünü taşıdım.
View OriginalReply0
GateUser-0717ab66
· 08-16 22:28
Kim taşarsa, o s...
View OriginalReply0
ForumLurker
· 08-16 22:27
move yine bir şeyler mi yapıyor?
View OriginalReply0
TokenTaxonomist
· 08-16 22:23
istatistiksel olarak konuşursak, hareket için başka bir evrimsel çıkmaz... açıkçası şaşırmadım
Move dilinin referans güvenlik modülü, tam sayı taşma açığını tespit etti. Saldırı inşa edilirse sistem çökmesine yol açabilir.
Move dilinin referans güvenlik modülünde tamsayı taşma açığı bulundu
Son zamanlarda, Move dilinde yeni bir tam sayı taşma açığı keşfeden derin bir araştırma yapıldı. Bu açık, referans güvenliği doğrulama sürecinde bulunmaktadır ve Move dilinin bazı temel kavramları ve mekanizmalarıyla ilgilidir.
Move dili, byte kodunu çalıştırmadan önce kod doğrulaması yapar ve bu dört adıma ayrılır. Bu yeni keşfedilen güvenlik açığı reference_safety adımında ortaya çıkmaktadır. Bu adım, referansların güvenliğini doğrulamaktan sorumludur; bu, askıda referansların varlığını kontrol etmeyi, değişken referansların erişim güvenliğini ve küresel depolama referanslarının erişim güvenliğini içerir.
Güvenlik doğrulamanın temel ilkesi, her fonksiyondaki temel blokların analizidir. Temel blok, giriş ve çıkış dışında hiçbir dallanma talimatı olmayan bir kod dizisidir. Move dili, bayt kodunu dolaşarak tüm dallanma ve döngü talimatlarını bulur ve temel blokları tanımlar.
Doğrulama sürecinde, sistem bir AbstractState yapısını koruyacak ve bu yapı borrow graph ve locals bilgilerini içerecektir; bu, işlev içinde yapılan referansların güvenliğini sağlamak için gereklidir. Doğrulama süreci temel blok kodunu çalıştıracak, ardından yürütme sonrası durumu üretecek, daha sonra yürütme öncesi ve sonrası durumları birleştirip blok durumunu güncelleyerek sonraki bloklara yayacaktır.
Hata, join_ fonksiyonunda ortaya çıkmaktadır. Fonksiyon parametre uzunluğu ile yerel değişken uzunluğu 256'yı aştığında, local değişkenleri temsil etmek için u8 tipi kullanıldığı için tamsayı taşması meydana gelmektedir. Move dilinin locals sayısını kontrol eden bir mekanizması bulunsa da, yalnızca yerel değişken sayısını kontrol etmekte, parametre uzunluğunu kapsamamaktadır.
Bu taşma açığı, hizmet reddi saldırısına yol açabilir. Saldırganlar, taşmayı kullanarak blok durumunu değiştirmek için döngü kod bloğu oluşturabilir. Temel blok tekrar çalıştırıldığında, eğer talimatın erişim gerektirdiği indeks yeni yerel haritada yoksa, sistem çökmesine neden olur.
Bu açığı göstermek için araştırmacılar bir kanıt-of-concept(PoC) sağladılar. Belirli parametreler ve yerel değişken sayısı ayarlanarak, tam sayı taşması tetiklenebilir ve sistem panic durumuna geçebilir.
Bu açık, sıkı bir şekilde tasarlanmış dillerin bile güvenlik riskleri taşıyabileceğini ortaya koyuyor. Bu, kod denetiminin önemini vurguluyor ve dil tasarımında daha fazla sınır durumu dikkate alınması gerektiğini gösteriyor. Move dili için, yalnızca doğrulama aşamasındaki güvenlik mekanizmalarına güvenmek yerine, çalışma zamanında daha fazla güvenlik kontrolü eklenmesi önerilmektedir.
Move dilinin Web3 alanında yaygın kullanımıyla birlikte, bu tür potansiyel açıkların derinlemesine incelenmesi ve keşfi, ekosistemin genel güvenliğini artırmak için son derece önemlidir. Geliştiricilerin ve güvenlik araştırmacılarının dikkatli olmaları, Move dilinin güvenlik performansını sürekli izlemeleri ve geliştirmeleri gerekmektedir.