Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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 Unifying 6 cihaza kadar bağlanmanıza olanak tanıyan evrensel bir donanım kilidi alıcısıdır. Logitech Unifying teknolojisiyle uyumlu tüm cihazlar Logitech Unifying teknolojisi logosuyla işaretlenmiştir. Kullanımı kolay uygulama Kablosuz klavyelerin bilgisayarınıza bağlantısını yönetmenizi sağlar. Klavyeyi Logitech alıcı donanım kilidine bağlama işleminin yanı sıra teknolojinin kendisi de ele alınmaktadır, örneğin: burada.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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ı mesaj Logitech USB dongle'larının eski donanım yazılımındaki bir güvenlik açığının keşfedilmesi hakkında. Cihazlara fiziksel erişimi olan saldırganların radyo şifreleme anahtarları almasına ve tuş vuruşlarını enjekte etmesine olanak tanır (CVE-2019-13054).

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) burada).

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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 işten kısa menzilli cihazlar tarafından kullanım için frekans aralığı 2400–2483,5 MHz'dir. Bu, içinde hiçbir şey bulamayacağınız çok "kalabalık" bir aralıktır: Wi-Fi, Bluetooth, her türlü uzaktan kumanda, güvenlik sistemleri, kablosuz dedektörler, klavyeli fareler ve diğer kablosuz dijital cihazlar.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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. özellikler NRF24 Nordic Semiconductor - frekans ızgarasında toplam 84 kanal. Logitech'in eş zamanlı kullandığı frekans kanallarının sayısı elbette daha az. En az dört tanesinin kullanımını belirledik. Kullanılan sinyal spektrum analizörünün sınırlı bant genişliği nedeniyle, kullanılan frekans konumlarının tam listesi belirlenemedi ancak bu gerekli değildi. Klavyeden alıcı donanım kilidine gelen bilgiler, 1 Mbaud sembol hızında iki konumlu frekans modülasyonu GFSK kullanılarak Burst modunda (vericiyi kısa süre açar) iletilir:

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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 kaynaklarda Bir saldırganın klavyeden girilen verilere erişmesini sağlamak yerine, tuş vuruşlarını enjekte etme yeteneği olarak konumlandırılmıştır. Açıkçası, kablosuz klavyenin radyo arayüzü oldukça karmaşıktır ve 2,4 GHz bandında zor girişim koşullarında Logitech cihazları arasında güvenilir radyo iletişimi sağlar.

Soruna içeriden bir bakış

Çalışmamız için mevcut Logitech K330 klavyelerimizden birini ve Logitech Unifying dongle'ı seçtik.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

Logitech K330

Klavyenin içine bir göz atalım. Kartta üzerinde çalışılacak ilginç bir unsur da Nordic Semiconductor'ın SoC NRF24 çipidir.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

Muhafazasız Logitech donanım kilidi

Firmware'i güncellemek için standart bir mekanizma olduğundan Firmware Güncelleme Aracı uygulamaları (güncellenmiş donanım yazılımı sürümünü buradan çıkarabilirsiniz), donanım kilidinin içinde donanım yazılımını aramanıza gerek yoktur.

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ı ChipProg-48 programcısına:

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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) burada).

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ı NRF24 Geliştirilmiş ShockBurst protokolünün organik olarak entegre edildiği bir durum grafiğine dayanmaktadır. HID verilerini ana bilgisayar USB arayüzüne aktarmadan hemen önce alıcı-vericinin IDLE durumunda olduğunu bulduk. Bu, onu bir yan kanalda çalışacak şekilde güvenli bir şekilde yeniden yapılandırmayı mümkün kılar. Enjekte edilen kod kontrolü keser, orijinal alıcı-verici konfigürasyonunu tam olarak korur ve onu yan kanalda yeni bir iletim moduna geçirir. Geliştirilmiş ShockBurst onay mekanizması bu modda devre dışı bırakılır; HID verileri kablosuz olarak net bir biçimde iletilir. Yan kanaldaki paketin yapısı aşağıdaki şekilde gösterilmiştir, sinyal diyagramları demodülasyondan sonra ve veri saati senkronizasyonunun geri yüklenmesinden önce elde edilmiştir. Adres değeri paketin görsel olarak tanımlanmasını kolaylaştırmak için seçilmiştir.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik ç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:

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

Logitech kablosuz klavye radyo sinyali yakalama devresi

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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:

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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.

Donanım kilitlerinize dikkat edin: Logitech klavye alıcısı güvenlik çalışması

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

Yorum ekle