Zephyrnet Logosu

Yazılım cüzdanlarının güvenlik modeli hakkında | defter

Tarih:

İki yaygın cüzdan türü ayırt edebiliriz: yazılım ve donanım cüzdanları. Aynı işlevi yerine getirirler, ancak farklı bir şekilde. Yazılım cüzdanlarının kullanımı daha basit kabul edilir: işlemleri oluşturmak, doğrulamak ve imzalamak için tek bir program yeterlidir. Bir yazılım cüzdanı ile işlemin yazılım üzerinde oluşturulması ve bir donanım cihazında onaylanması gerekli değildir.

İki hafta önce, Yasak Hikayeler dünya çapında binlerce insana yönelik hedefli bir saldırıyı açıkladı. Bu saldırı, NSO Group: Pegasus tarafından geliştirilen casus yazılımları yüklemek için Android ve iOS'taki güvenlik açıklarından yararlandı. Bu kötü amaçlı yazılım, cihazın tüm etkinliğini izleyebilir ve kişisel bilgileri sızdırabilir: SMS, WhatsApp ve Signal konuşmaları, telefon görüşmeleri vb. yazılım cüzdanlarının sırları ve güvenlik açısından cep telefonları ve masaüstü bilgisayarlardaki yazılım cüzdanları arasındaki farklar.

Bu makalenin çok teknik olmaması amaçlanmıştır. Nispeten basit tutmak için, sadece temel özellikler tartışılacaktır.

Sırları korumak

Bir kripto cüzdanında neler saklanır?

Cüzdanlar aslında kullanıcıların kripto para birimlerini saklamaz: yalnızca kripto para birimlerine erişmeye ve onları harcamaya olanak tanıyan sırları, özellikle de özel anahtarları saklar. Bu özel anahtarlar çoğunlukla, blok zincirine bağlı olarak farklı eğrilerdeki ECC (eliptik eğri kriptografisi) özel anahtarlarıdır. En yaygın eğriler secp256k1 (Bitcoin, Ethereum…), Ed25519 (Monero) veya BLS12-381'dir (Ethereum 2).

Bu anahtarlar, işlemleri imzalamak ve daha genel olarak blockchain varlıklarıyla etkileşim kurmak için kullanılır.

Bu anahtarların saklanması, cüzdanın türüne bağlıdır: deterministik veya değil. Hiyerarşik Deterministik (HD) bir cüzdan, tohum adı verilen tek bir ana sırdan bir anahtar ağacı oluşturulmasına izin verir (bkz. BIP44). Bu tohum genellikle kullanıcı tarafından rasgele oluşturulan veya seçilen 12, 18 veya 24 kelimelik bir anımsatıcı diziden türetilir (cf.BIP39). Bu anımsatıcılar, depolanacak anahtar sayısını sınırlamaya izin verir: tohumdan herhangi bir zamanda yeniden hesaplanabilirler. HD cüzdanlar yalnızca bu anımsatıcıyı veya tohumu saklar.

Deterministik olmayan cüzdanlar, her kullanım için yeni bir anahtar üretir ve hepsini saklamalıdır. Deterministik olmayan cüzdanlar, yedekler uyumlu olmadığı için kolayca başka bir cüzdana taşınamaz.

Bir cüzdanın ana güvenlik özellikleri, bu sırları uygun şekilde oluşturmak, saklamak ve kullanmaktan oluşur. Farklı tehdit türlerine karşı farklı güvenlik seviyeleri vardır:

  • “Kötü hizmetçi” saldırılarına karşı koruma: Cüzdana geçici erişimi olan bir saldırgan, cüzdanın içine PIN'i veya şifreyi koruyan sırları çalmaya izin veren bir arka kapı ekleyememelidir.
  • Güvenli kriptografik malzeme: M-cüzdan tarafından oluşturulan anahtarlar ve nonce'lar asla tahmin edilebilir olmamalıdır. Ayrıca, zamanın bir noktasında üretilen sırların bilgisi (tohum hariç), gelecekte üretilecek sırrın tahmin edilmesine izin vermeyecektir.
  • Hareket halindeyken koruma: Bir saldırgan bir yazılım cüzdanının kalıcı verilerini elde ederse, anahtarları çıkaramaz.
  • Gizli kullanım sırasında koruma: M-cüzdan kilidi açıldığında, anahtarlara bir saldırgan veya kötü amaçlı yazılım tarafından erişilememesi gerekir.
Donanım cüzdanları

Bir donanım cüzdanının güvenlik modeli, bu güvenlik tehditlerini ortadan kaldırmayı amaçlar. Donanım cüzdanları, tasarım gereği kötü amaçlı yazılımlara karşı koruma sağlar. İşlemleri kendi başlarına imzalayan bağımsız cihazlardır. Kriptografik materyaller her zaman cihazın içinde kalır ve iletişim kurdukları yazılım uygulamasına asla gönderilmez. İletişim arayüzü her zaman basittir ve bu da saldırı yüzeyini büyük ölçüde azaltır. USB, Micro SD veya kamera + ekran (QR kodu aracılığıyla) veya Bluetooth Low Energy olabilir.

Ayrıca, donanım cüzdanları, kullanıcının gizli anahtarlarıyla etkileşime geçtiğinde yapmak üzere olduğu eylemleri doğrulamasına olanak tanıyan doğrudan cihaza bir ekran yerleştirir. Cihazlardaki bu manuel kontroller, bilgisayardaki/cepteki kötü amaçlı yazılımlara karşı çok etkili bir önlemdir. Bir bilgisayardaki/mobil cihazdaki kötü amaçlı yazılımın sırlara (çekirdek veya özel anahtarlar) erişebileceği veya hatta kullanıcı bir işlem gerçekleştirirken adresleri veya tutarları takas edebileceği/değiştirebileceği durumlarda, bu bir donanım cüzdanı ile mümkün değildir.

Donanım cüzdanları ayrıca "kötü hizmetçi" saldırılarına ve fiziksel erişime sahip bir saldırgana karşı koruma sağlamak için tasarlanmıştır. Donanım cüzdanına bağlı olarak, farklı güvenlik seviyelerine sahiptirler, ancak her durumda bu tehditlere karşı koruma sağlayacak şekilde tasarlanmışlardır. Ledger Nano tehdit modellerinin ayrıntılı bir açıklaması bulunabilir okuyun.

Yazılım Cüzdanları

Düzenli yazılım cüzdanları, sırları normal yollarla korur: üzerinde çalıştıkları işletim sisteminin güvenlik mekanizmaları ve bazen bir PIN veya parolaya dayalı bir erişim kontrolü.

Aşağıda masaüstü (Windows, macOS, Linux) cüzdanları ve mobil cüzdanlar ele alınmıştır. Aralarındaki temel farklar çoğunlukla işletim sisteminin sunduğu güvenlik mekanizmalarına dayanır.

Bilgisayardaki yazılım cüzdanları

Electrum, Exodus, Atomic veya Bitcoin core gibi birçok popüler cüzdan bilgisayarlarda çalışır.

Bir bilgisayarda, bir cüzdan işlemini diğer işlemlerden izole etmek için işletim sistemi tarafından sunulan güvenlik mekanizmaları sınırlıdır. Çoğu uygulama aynı kullanıcı tarafından çalıştırılır ve uygulamaların diğer uygulamaların verilerini okumasına izin verilir.

Bu yazılım cüzdanlarının güvenliği temel olarak onları koruyan parolanın güvenliğine ve ayrıca işletim sisteminde hiçbir kötü amaçlı yazılımın çalışmamasına bağlıdır (bunun garanti edilmesi oldukça zordur, Pegasus ile ilgili son haberlere bakın).

Çoğu zaman, tohum bir parola ile korunan şifreli bir kapta saklanır. Bir kötü amaçlı yazılım veya uzaktan yönetim aracı için basit bir saldırı, bu şifrelenmiş kabı alıp saldırgana göndermekten oluşur. Daha sonra parola ya kaba kuvvet kullanılarak elde edilebilir ya da bir keylogger.

Saldırganın yalnızca şifrelenmiş kaba erişmeyi başardığı bir senaryoda (saldırgan cüzdan içeren bir USB anahtarı bulur veya bilgisayara kötü amaçlı yazılım yükler, ancak kurban cüzdan uygulamasını asla açmaz), saldırganın parolayı kaba kuvvetle uygulaması gerekir.

Çoğu şifre kötü. İnternete sızan milyarlarca şifre var ve birçok kişi şifrelerini çeşitli hizmetler için yeniden kullanma eğiliminde. Hazır araçlar, kripto para cüzdanları için şifreleri almanıza olanak tanır, örneğin btcrecover or hashcat. Parolalar karmaşık olabilir, ancak her cüzdanın arkasında gerçek para vardır, bu nedenle saldırganlar bu tür parolaları kırmak için kaynak ayırmaktan çekinmezler.

Parolalarınızı güvende tutmanın iki temel güvenlik ilkesi, bir parola yöneticisi kullanmak ve parolanızı asla farklı amaçlar için tekrar kullanmamaktır.

Yazılım cüzdanları için en endişe verici tehdit, paranızı tüketmek için özel olarak geliştirilmiş özel kötü amaçlı yazılımlar ve hırsızlardır. KPOT veya ELEKTRORAT, parolanızı kaba kuvvetle zorlamanız bile gerekmez: parolanızı girdiğinizde doğrudan yakalayabilir, cüzdan yapılandırma verilerinin şifresini çözebilir ve çekirdeği sızdırabilirler.

İşte bu makale için geliştirilmiş, Electrum cüzdanını hedefleyen (başka bir yazılım cüzdanı da olabilirdi) bir oyuncak uygulaması. Kurban tarafından girildiğinde kullanıcı parolasını çalan bir kötü amaçlı yazılımı simüle eder. Parola daha sonra cüzdan verilerinin şifresini çözmek ve çekirdeği görüntülemek için kullanılır:

Gördüğünüz gibi, şifre karmaşık olsa bile, uygulama şifreyi doğrudan hafızada koklayarak geri alabilir.

Bu örnek, yakın zamandakine çok benzer. .SCR kötü amaçlı yazılımı kripto para birimlerini çalmak için kullanılan kampanyalar. Suçlular, kullanıcıları kötü amaçlı bir ekran koruyucu indirmeleri için kandırmak için sosyal mühendislik tekniklerini kullandı. Bu ekran koruyucu aslında bilgisayarın kurbanından cüzdan ve kripto para takas bilgileri de dahil olmak üzere bilgi çalıyordu.

Bilgisayarlarda çalışan yazılım cüzdanları hakkında sonuca varmak için:

  • Çoğu durumda, bilgisayarlarda çalışan yazılım cüzdanları, kullanıcının tohumunu bir parola kullanarak korur.
  • Bu cüzdan dosyaları için erişim kontrolü, esas olarak bilgisayarın güvenliğine bağlıdır. Uygulamada, bilgisayarları kötü amaçlı yazılımlardan korumak zordur ve kripto para birimleri yaygınlaştıkça, cüzdanlara yönelik saldırılar giderek daha karmaşık hale gelecektir.
  • Dijital varlıkları güvence altına almak için bu tür yazılım cüzdanlarını kullanmak iyi bir fikir değil. Herhangi bir özel kötü amaçlı yazılım, cüzdan dosyalarını alabilecek ve parolaları çevrimdışı olarak bulabilecek veya bir keylogger yoluyla parolayı alabilecektir.
Akıllı telefondaki yazılım cüzdanları

Android ve iOS akıllı telefonlar, varsayılan olarak masaüstü işletim sistemlerinde yaygın olarak kullanılmayan güvenlik özellikleri sunar.

Mobil işletim sistemleri, uygulama ve kullanıcı verileri koruması sunar. Özellikle, uygulama korumalı alanları tüm uygulamalar için zorunludur. Örneğin Windows'ta durum böyle değildir: varsayılan olarak herhangi bir uygulama kullanıcı verilerine erişebilir.

Bu nedenle, kötü amaçlı bir uygulama aşağıdaki durumlar dışında başka bir uygulamadan veri okuyamaz:

  • Bu uygulamada bir güvenlik açığı bulur.
  • Ya da ayrıcalıkları yükseltmeyi başarır, örneğin sisteme root erişimi kazanmasına izin veren bir çekirdek güvenlik açığından yararlanarak.

Ne yazık ki, bu tür saldırılar var. Android ve iOS'un eski sürümlerinde ve üçüncü taraf kodunun genellikle daha az güvenli olduğu eski veya ucuz cihazlarda çok daha kolaydır.

Güncel bir işletim sisteminde, bu saldırılar daha zordur, ancak uzaktan da gerçekleştirilemez değildir. Örneğin, Ian Beer bir son derece etkileyici sıfır tıklama saldırısı Aralık 13.5'de iOS 2020'te. Guang Gong, istismar zinciri Haziran 2020'de çok çeşitli Qualcomm tabanlı Android cihazlarını uzaktan köklendirmek için. Ve iki hafta önce, Yasak Hikayeler NSO Group'un 0 günlük güvenlik açıklarını kullanarak en yeni iOS ve Android cihazlarını hedeflemek için bir açıklardan yararlanma zinciri kullandığını açıkladı.

Daha az gelişmiş saldırganlar, kötü amaçlı bir uygulamadan cüzdan verilerini çıkarmalarına olanak tanıyan yerel güvenlik açıklarını kullanabilir. Zerodium ödemesi gibi güvenlik açığı aracıları için $ 200,000 kadar Android ve iOS'ta kök salmak için bir ayrıcalık yükseltmesi için, ancak uzaktan saldırılar için 1,500,000 ABD dolarına kadar.

Birkaç Android/iOS cüzdanı üzerinde çalıştık. Güvenlikleri, uygulamanın kendisine ve aynı zamanda temeldeki işletim sisteminin güvenlik özelliklerine de bağlıdır. Elbette işletim sisteminin güvenliği yenildiğinde uygulama artık güvenli değildir.

Tohumu korumak için yaygın olarak iki yöntem kullanılmaktadır:

  • Şifre koruma – cüzdan verileri, kullanıcı tarafından girilen bir parola ile korunur. Tasarım, masaüstü cüzdanlarla aynıdır. Uygulamada, yukarıda açıklanan nedenlerden dolayı kötü amaçlı bir uygulamadan uygulama verilerinin alınması teknik olarak daha zor olduğundan, verileri ayıklamak bilgisayardan çıkarmaktan daha zordur. Ancak, veriler çalındıktan sonra parolayı geri almak pratikte daha kolaydır: cep telefonlarında karmaşık parolaları girmek sıkıcıdır, bu nedenle kullanıcılar daha basit parolaları seçme eğilimindedir. Ayrıca, mobil cihazlardaki (paroladan anahtar oluşturmak için kullanılan) anahtar türetme mekanizmalarının kırılması genellikle daha kolaydır, çünkü performans nedenleriyle genellikle daha hafiftirler.
  • Coinomi ve Metamask bu tür cüzdanlara örnektir.

Aşağıdaki videoda, bu makale için geliştirilmiş başka bir oyuncak uygulamasını gösteriyoruz. Sahte bir Bitcoin ticker widget'ı kılığına girmiş bir kötü amaçlı yazılımdır. Kötü amaçlı yazılım, yama uygulanmamış bir cihazdaki bilinen bir güvenlik açığından yararlanarak cihazda kök erişimi elde eder ve şifrelenmiş çekirdeği uzak bir sunucuya sızdırır. Sunucu daha sonra tohumun şifresini çözmek için parolayı zorlar.

Bu yöntem bir cüzdana özgü değildir. Parola korumalı herhangi bir cüzdana (aşağı yukarı) kolayca uyarlanabilir. İşte Coinbase Wallet ile aynı örnek:

[Gömülü içerik]

  • Android Anahtar Deposuna (veya iOS Anahtar Zincirine) dayalı güvenlik – Bu durumda, cüzdan verileri Android Keystore'da (iOS Keychain) saklanan bir şifreleme anahtarı ile şifrelenir. Bu hizmetler başlangıçta şifreleme anahtarlarını güvenli bir şekilde depolamak için tasarlandı ve birçok uygulama bunları tüm hassas kullanıcı verilerini şifreleyecek bir anahtar oluşturmak için kullanıyor. Anahtar deposunu kullanan uygulamalar aşağıdaki mekanizmayı uygular:
    • Uygulama, Anahtar Deposundan belirli bir tanımlayıcı için bir şifreleme anahtarı oluşturmasını ister. Keystore, anahtarı oluşturur ve güvenli bir şekilde saklar.
    • Uygulama bir blobu şifrelemek veya şifresini çözmek istediğinde, blobu anahtar tanımlayıcıyla birlikte Anahtar Deposuna gönderir.
    • Son olarak, anahtar deposu, uygulamanın gerçekten bu anahtarı kullanma haklarına sahip olup olmadığını kontrol eder ve ardından verileri uygulamaya geri gönderir.

Bu model ile uygulama, anahtarın değerini bilemez ancak kullanabilir. Ek erişim kontrollerini anahtarla ilişkilendirmek de mümkündür: örneğin, anahtar erişimi bir kullanıcı kimlik doğrulamasına koşullandırılabilir (PIN veya kilit açma modeli isteği).

Bu mekanizma, parola tabanlı korumaya kıyasla ek güvenlik sağlayabilir. Gerçekten de, son telefonlarda Anahtar Deposu, Güvenilir Yürütme Ortamı (TEE) veya bazen Güvenli Öğe tarafından desteklenir.

Bu, kök ayrıcalıklarına sahip bir saldırganın anahtar deposundan şifreleme anahtarlarını çıkaramayacağı anlamına gelir. Yine de, Anahtar Deposunu bir şifre çözme kahini olarak kullanabilecekler ve istedikleri herhangi bir veriyi şifreleyebilecek veya şifresini çözebilecekler.

Keystore, şifrelemenin yanı sıra imzalama hizmetleri de sunar. Öyleyse, bir cüzdan şifreleme anahtarlarını koruyarak bunların çıkarılmasını zorlaştırabilir mi? Cevap ne yazık ki hayır: yazılım cüzdanları işlemleri imzalamak için Keystore'u kullanmaz, ve özel anahtarlar her zaman uygulama tarafından düz metin olarak işlenir.

Bunun basit bir nedeni var: KeyStore ve KeyChain genel imza ve şifreleme hizmetleri sunar, ancak kripto para birimlerinde kullanılan şifrelemeyi desteklemez. Örneğin, KeyStore, ECDSA İmzasını uygular, ancak yalnızca FIPS 186-4'te tanımlanan NIST eğrilerinde (P-224, P-256, P-384 ve P-521). Bitcoin başka bir eğri kullanır, secp256k1, henüz desteklenmiyor.

Özetlemek gerekirse, Keystore ve Keychain korumak için iyi hizmetlerdir. gizli ve özel anahtarlar. Hassas verileri şifreleyerek bir miktar güvenlik sunabilirler: bazı güvenlik açığı sınıfları (örneğin, rastgele dosya okuma) Keystore şifrelemesi tarafından ele alınacaktır. Ancak, donanım destekli bir Anahtar Deposundan anahtar değerleri ayıklamak için bir kök ayrıcalık yükseltmesi yeterli değilse, hassas verilerin şifresini çözmek yeterlidir. Uygulamayı çalabilen bir saldırgan, uygulamanın sırlarını alabilir.

Mobil cüzdanlarla ilgili sonuca varmak için:

  • iOS/Android tarafından sağlanan uygulamalar arasındaki yalıtım mekanizması, bilgisayarda çalışan bir yazılım cüzdanına kıyasla güvenlik çıtasını yükseltiyor. Saldırganın uygulama verilerine erişmek için önce bir ayrıcalık yükseltmesi yapması gerekir. Bu, eski cihazlarda mümkündür. Yetenekli saldırganlar (Ian Beer bunu tek başına 6 ayda yaptı ama… O Ian Beer) bunu son zamanlarda yamalı cihazlarda da yapabilir.
  • Anahtar koruma hizmetleri (KeyStore, KeyChain), bekleyen sırları korumak için ek bir güvenlik katmanı ekleyebilir. Bununla birlikte, kripto para birimi uygulamaları için kriptografik algoritmaları desteklemediklerinden, anahtar yine de çıkarılabilir.
  • Her durumda, kök erişimine sahip bir saldırgan, kullanıldığında bekleyen çekirdeği alabilir veya yazılım cüzdanını bir kahin olarak kullanarak kullanıcının cüzdanı boşaltma haklarından yararlanabilir.

İşte Blockchain.com cüzdanını hedefleyen bir oyuncak casus yazılımın son örneği (yine de bu, diğer birçok cüzdanda aynı kolaylıkla yapılabilir). Uzaktan kurulur ve cüzdanı izler. Kullanıcı, parmak izini kullanarak kimliğini doğruladığında, şifreleme anahtarının kilidi açılır ve cüzdan verilerinin şifresi çözülür. Casus yazılım, uygulamayı bu şifreleme anahtarını almak için kullanır. Daha sonra anahtarı ve cüzdan verilerini uzak bir sunucuya sızdırır:

[Gömülü içerik]

Sonuç

Sonuç olarak, yazılım cüzdanları farklı güvenlik seviyelerine sahiptir. Bununla birlikte, tehdit modelleri, işletim sisteminde ayrıcalık yükseltme ile çalışan bir kötü amaçlı yazılım durumunu kapsamaz. Bu tasarım gereğidir: cüzdan uygulaması üzerinde çalıştığı işletim sisteminden daha güvenli olamaz.

  • iOS/Android tarafından sağlanan uygulamalar arasındaki yalıtım mekanizması, bilgisayarda çalışan bir yazılım cüzdanına kıyasla güvenlik çıtasını yükseltir. Saldırganın uygulama verilerine erişmek için önce bir ayrıcalık yükseltmesi yapması gerekir.
  • Anahtar koruma hizmetleri (KeyStore, KeyChain), bekleyen sırları korumak için ek bir güvenlik katmanı ekleyebilir. Bununla birlikte, kripto para uygulamaları için kriptografik algoritmaları desteklemediklerinden, anahtarların doğrudan uygulamadan manipüle edilmesi gerekir, bu nedenle sınırlı bir koruma sunarlar.
  • Her durumda, kök erişimine sahip bir saldırgan, kullanıldığında beklemedeki çekirdeği alabilir veya yazılım cüzdanını bir kahin olarak kullanarak kullanıcının cüzdanı boşaltma haklarından yararlanabilir.
spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?