Geçmişte çoğu çalışan Logitech'in kablosuz klavyelerini ve farelerini kullanıyor. Raccoon Güvenlik ekibinin uzmanları olarak şifrelerimizi bir kez daha girerek kendimize şunu sorduk: Kablosuz klavyelerin güvenlik mekanizmalarını atlatmak ne kadar zor? Çalışma, girdi verilerine erişime izin veren mimari kusurları ve yazılım hatalarını ortaya çıkardı. Kesiğin altında elimizde olan şey var.
Neden Logitech?
Bize göre Logitech giriş cihazları en kaliteli ve en kullanışlı cihazlar arasında yer alıyor. Sahip olduğumuz cihazların çoğu Logitech çözümünü temel alıyor
Logitech Unifying desteğine sahip donanım kilidi alıcısı
Klavye, saldırganlar için bir bilgi kaynağı haline gelebilir. Logitech, olası tehdidi dikkate alarak güvenliği sağladı - kablosuz klavyenin radyo kanalında AES128 şifreleme algoritmasını kullandı. Bu durumda bir saldırganın aklına gelebilecek ilk düşünce, bağlama işlemi sırasında bir radyo kanalı üzerinden iletilen anahtar bilgiye müdahale etmektir. Sonuçta, eğer bir anahtarınız varsa, klavyenin radyo sinyallerini yakalayabilir ve şifrelerini çözebilirsiniz. Bununla birlikte, kullanıcının klavyeyi birleştirmesi nadiren (hatta hiç) gerekmiyor ve tarama radyosu olan bir bilgisayar korsanının uzun süre beklemesi gerekecek. Ayrıca, müdahale sürecinin kendisinde de her şey o kadar basit değil. Haziran 2019'daki son çalışmada, güvenlik uzmanı Markus Mengs çevrimiçi olarak yayınladı
Logitech dongle'ımızın Nordic Semiconductor firmasının NRF24 SoC tabanlı güvenlik çalışmamızdan bahsedeceğiz. Belki radyo kanalının kendisiyle başlayalım.
Veriler bir radyo kanalında nasıl “uçar”
Radyo sinyalinin zaman-frekans analizi için, spektrum analizörü modunda Blade-RF cihazını temel alan bir SDR alıcısı kullandık (bunun hakkında ayrıca bilgi edinebilirsiniz)
SDR Blade-RF Cihazı
Ayrıca, daha sonra dijital sinyal işleme teknikleri kullanılarak analiz edilebilecek radyo sinyalinin karelerini bir ara frekansta kaydetme olasılığını da düşündük.
Rusya Federasyonu'ndaki Radyo Frekansları Devlet Komisyonu
2,4 GHz bandının spektrumu
Menzildeki girişim ortamı oldukça karmaşıktır. Buna rağmen Logitech, NRF24 alıcı-vericisindeki Geliştirilmiş ShockBurst protokolünü frekans uyarlama algoritmalarıyla birlikte kullanarak güvenilir ve istikrarlı alım sağlamayı başardı.
Bir banttaki kanallar, şekilde tanımlandığı gibi tamsayı MHz konumlarına yerleştirilir.
Zaman gösteriminde klavye radyo sinyali
Alıcı, alımın korelasyon ilkesini kullanır, böylece iletilen paket bir giriş ve bir adres kısmı içerir. Gürültüye dayanıklı kodlama kullanılmaz; veri gövdesi AES128 algoritması ile şifrelenir.
Genel olarak Logitech kablosuz klavyenin radyo arayüzü, istatistiksel çoğullama ve frekans uyarlaması ile tamamen asenkron olarak nitelendirilebilir. Bu, klavye vericisinin her yeni paketi iletmek için kanalı değiştirdiği anlamına gelir. Alıcı, iletim zamanını veya frekans kanalını önceden bilmez, ancak yalnızca bunların listesi bilinir. Alıcı ve verici, koordineli frekans bypass ve dinleme algoritmalarının yanı sıra Geliştirilmiş ShockBurst bildirim mekanizmaları sayesinde kanalda buluşur. Kanal listesinin statik olup olmadığını araştırmadık. Muhtemelen değişimi frekans uyarlama algoritmasından kaynaklanmaktadır. Aralığın frekans kaynağının kullanımında frekans atlama yöntemine (çalışma frekansının sözde rastgele ayarlanması) yakın bir şey görülebilir.
Bu nedenle, zaman-frekans belirsizliği koşullarında, tüm klavye sinyallerinin garantili bir şekilde alınmasını sağlamak için, bir saldırganın 84 konumlu frekans ızgarasının tamamını sürekli olarak izlemesi gerekecektir ve bu da önemli miktarda zaman gerektirir. Burada USB anahtar çıkarma güvenlik açığının (CVE-2019-13054) neden olduğu açıklığa kavuşuyor
Soruna içeriden bir bakış
Çalışmamız için mevcut Logitech K330 klavyelerimizden birini ve Logitech Unifying dongle'ı seçtik.
Logitech K330
Klavyenin içine bir göz atalım. Kartta üzerinde çalışılacak ilginç bir unsur da Nordic Semiconductor'ın SoC NRF24 çipidir.
Logitech K24 kablosuz klavye kartında SoC NRF330
Ürün yazılımı dahili bellekte bulunur, okuma ve hata ayıklama mekanizmaları devre dışıdır. Ne yazık ki ürün yazılımı açık kaynaklarda yayınlanmadı. Bu nedenle soruna diğer taraftan yaklaşmaya karar verdik - Logitech dongle alıcısının dahili içeriğini incelemek.
Dongle alıcısının “iç dünyası” oldukça ilginç. Dongle kolayca sökülebilir, yerleşik bir USB denetleyicisi ile tanıdık NRF24 sürümünü taşır ve hem USB tarafından hem de doğrudan programlayıcıdan yeniden programlanabilir.
Muhafazasız Logitech donanım kilidi
Firmware'i güncellemek için standart bir mekanizma olduğundan
Ne yapıldı: RQR_012_005_00028.bin ürün yazılımı, Firmware Güncelleme Aracı uygulamasının gövdesinden çıkarıldı. Bütünlüğünü kontrol etmek için dongle denetleyicisi bir kabloyla bağlandı
Logitech dongle'ı ChipProg 48 programlayıcıya bağlamak için kablo
Ürün yazılımının bütünlüğünü kontrol etmek için denetleyicinin belleğine başarıyla yerleştirildi ve doğru şekilde çalıştı, klavye ve fare, Logitech Unifying aracılığıyla donanım kilidine bağlandı. Ürün yazılımı için herhangi bir kriptografik koruma mekanizması bulunmadığından, değiştirilmiş ürün yazılımını standart güncelleme mekanizmasını kullanarak yüklemek mümkündür. Araştırma amacıyla programcıyla fiziksel bir bağlantı kullandık, çünkü hata ayıklama bu şekilde çok daha hızlıdır.
Firmware araştırması ve kullanıcı girdisine saldırı
NRF24 yongası, geleneksel Harvard mimarisindeki Intel 8051 bilgi işlem çekirdeği temel alınarak tasarlanmıştır. Çekirdek için, alıcı-verici bir çevresel aygıt gibi davranır ve adres alanına bir dizi kayıt olarak yerleştirilir. Çipin belgeleri ve kaynak kodu örnekleri internette bulunabilir, bu nedenle bellenimin sökülmesi zor değildir. Tersine mühendislik sırasında, radyo kanalından tuş vuruşu verilerini alma ve bunu USB arayüzü aracılığıyla ana bilgisayara iletmek üzere HID formatına dönüştürme işlevlerini yerelleştirdik. Enjeksiyon kodu, işlevsel kodun yanı sıra kontrolü ele geçirmek, orijinal yürütme bağlamını kaydetmek ve geri yüklemek için araçlar içeren boş bellek adreslerine yerleştirildi.
Dongle tarafından radyo kanalından alınan bir tuşa basma veya bırakma paketinin şifresi çözülür, standart bir HID raporuna dönüştürülür ve normal bir klavyeden olduğu gibi USB arayüzüne gönderilir. Çalışmanın bir parçası olarak, HID raporunun bizi en çok ilgilendiren kısmı, HID raporunun bir bayt değiştirici bayrakları ve tuş vuruşu kodlarını içeren 6 baytlık bir diziyi içeren kısmıdır (referans için, HID hakkında bilgi)
HID rapor yapısı:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
HID yapısını ana bilgisayara aktarmadan hemen önce, enjekte edilen kod kontrolü ele alır, bellekteki 8 baytlık yerel HID verisini kopyalar ve bunu açık metin olarak radyo tarafı kanalına gönderir. Kodda şöyle görünür:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
Yan kanal, manipülasyon hızı ve paket yapısının belirli özelliklerine göre belirlediğimiz bir frekansta düzenlenir.
Çipteki alıcı-vericinin çalışması
Yan Kanalda Demodüle Edilmiş Burst Burst Sinyali
Paket yan kanala iletildikten sonra enjekte edilen kod alıcı-vericinin durumunu geri yükler. Artık orijinal ürün yazılımı bağlamında normal şekilde çalışmaya yeniden hazırdır.
Frekans ve zaman-frekans alanlarında yan kanal şöyle görünür:
Yan kanalın spektral ve zaman-frekans gösterimi
NRF24 çipinin değiştirilmiş ürün yazılımı ile çalışmasını test etmek için, değiştirilmiş ürün yazılımına sahip bir Logitech donanım kilidi, bir kablosuz klavye ve NRF24 çipli bir Çin modülü temelinde monte edilmiş bir alıcı içeren bir stand monte ettik.
Logitech kablosuz klavye radyo sinyali yakalama devresi
NRF24 tabanlı modül
Bankta, klavye normal şekilde çalışırken, Logitech dongle'a bağladıktan sonra, yan radyo kanalında tuş vuruşlarına ilişkin net verilerin iletildiğini ve ana radyo arayüzünde şifreli verilerin normal şekilde iletildiğini gözlemledik. Böylece, kullanıcı klavye girişinin doğrudan ele geçirilmesini sağlayabildik:
Klavye girişini yakalamanın sonucu
Enjekte edilen kod, donanım kilidi donanım yazılımının çalışmasında küçük gecikmelere neden olur. Ancak bunlar kullanıcının fark edemeyeceği kadar küçüktür.
Tahmin edebileceğiniz gibi Unifying teknolojisine uyumlu herhangi bir Logitech klavye bu saldırı vektörü için kullanılabilir. Saldırı, çoğu Logitech klavyede bulunan Unifying alıcıyı hedef aldığından, belirli klavye modelinden bağımsızdır.
Sonuç
Araştırmanın sonuçları, söz konusu senaryonun saldırganlar tarafından olası kullanımını ortaya koyuyor: Eğer bir bilgisayar korsanı kurbanı Logitech kablosuz klavye için bir dongle alıcısıyla değiştirirse, kurbanın hesaplarının şifrelerini takip eden tüm işlemlerle birlikte bulabilecek. sonuçlar. Tuş vuruşlarını enjekte etmenin de mümkün olduğunu unutmayın; bu, kurbanın bilgisayarında rastgele kod çalıştırmanın zor olmadığı anlamına gelir.
Peki ya bir saldırgan aniden herhangi bir Logitech dongle'ın donanım yazılımını USB aracılığıyla uzaktan değiştirebilirse? Daha sonra yakın aralıklı dongle'lardan tekrarlayıcılardan oluşan bir ağ oluşturabilir ve sızıntı mesafesini artırabilirsiniz. Her ne kadar "mali açıdan zengin" bir saldırgan, komşu bir binadan bile klavye girişini "dinleyebilecek" ve tuşlara basabilecek olsa da, son derece seçici sistemlere sahip modern radyo alım ekipmanı, kısa frekans ayarlama süreli hassas radyo alıcıları ve yüksek yönlü antenler bunlara izin verecektir. Komşu bir binadan bile klavye girişini “dinlemek” ve tuşlara basmak için.
Profesyonel radyo ekipmanları
Logitech klavyenin kablosuz veri aktarım kanalı oldukça iyi korunduğu için bulunan saldırı vektörü, alıcıya fiziksel erişim gerektiriyor ve bu da saldırganı büyük ölçüde sınırlıyor. Bu durumda tek koruma seçeneği, alıcı aygıt yazılımı için kriptografik koruma mekanizmalarının kullanılması, örneğin alıcı tarafında yüklenen aygıt yazılımının imzasının kontrol edilmesi olacaktır. Ancak ne yazık ki NRF24 bunu desteklemiyor ve mevcut cihaz mimarisi içerisinde korumanın uygulanması imkansız. Bu nedenle donanım kilitlerinize dikkat edin, çünkü açıklanan saldırı seçeneği onlara fiziksel erişim gerektirir.
Raccoon Security, pratik bilgi güvenliği, kriptografi, devre tasarımı, tersine mühendislik ve düşük seviyeli yazılım oluşturma alanında Vulcan Araştırma ve Geliştirme Merkezi'nden uzmanlardan oluşan özel bir ekiptir.
Kaynak: habr.com