“Kötü Amaçlı” RJ45 Dongle’ının İncelenmesi
(lcamtuf.substack.com)- Çin’den satın alınan bir Ethernet-to-USB adaptörünün yerleşik kötü amaçlı yazılım içerdiği iddiası yayıldı; ancak doğrulanan ipuçları daha çok eski bir RJ45-to-USB çipinin sürücü dağıtım yöntemine işaret ediyordu
- CrowdStrike Falcon taramasındaki “Rusça unsurlar”, Igor Pavlov’un 7-Zip kendiliğinden açılan EXE özellikleriyle örtüşüyordu; dosya içeriği de CoreChips Shenzhen’in SR9900 için yayımladığı açık sürücüyle uyumlu görünüyordu
- SR9900 hakkında çok az bilgi bulunan bir çip olsa da Realtek RTL8152B’nin doğrudan klonu gibi görünüyor; USB 2.0 ve 100BASE-TX cihazlarının sürücüyü kendi depolama alanı üzerinden sunduğu Windows 7 dönemi bağlamıyla da uyumlu
- PCB üzerindeki 25x40 tip 512 kB SPI flash, paket yakalama deposu değil; üretim aracının ISO 9660 imajını ve Windows sürücüsünü olduğu gibi yazarak sanal CD-ROM gibi kullandığı bir yapı olarak doğrulandı
- SR9900 içindeki USB ve Ethernet mikrodenetleyici kodu hâlâ tam doğrulanmamış bir alan; ancak bu vaka tek başına “tuhaf donanımı” doğrudan kötü amaçlı saymak için yeterli kanıt sunmuyor
Tedarik zinciri kötü amaçlı donanım şüphesinin çıkış noktası
- Bilgi güvenliği alanında büyük ölçekli tedarik zinciri sabotajı iddialarının sık ortaya atıldığı, ancak pratikte çoğunun yanlış çıktığı varsayımıyla başlanıyor
- Bunun nedeni bu tür saldırıların imkânsız olması değil; uygulanmasının karmaşık, uzun süreli ve riskli olması
- Gerçekte kimlik bilgilerini çalmak ya da kötü amaçlı bir dosya indirtmek daha basit bir yöntem
- Genç bir girişimcinin Çin’den satın aldığı Ethernet-to-USB adaptörüne kötü amaçlı yazılımın önceden yüklendiğini sosyal medyada iddia etmesiyle tartışma büyüdü
- İddiada sanal makineden kaçınma, tuş vuruşlarını yakalama ve Rusça unsurlar kullanma gibi ifadeler yer aldı
- İlgili gönderiler milyonlarca görüntüleme aldı, ancak somut teknik bilgiler belirsizdi
Açık tarama ve sürücü dosyasının doğrulanması
- Gönderiyi paylaşan kişinin yayımladığı CrowdStrike Falcon tarama raporu muğlaktı; kesin kanıttan çok kafa karıştırıcı bir ipucu niteliğindeydi
- Analiz edilen ikili dosya, Igor Pavlov’un geliştirdiği açık kaynak sıkıştırma programı 7-Zip tabanlı kendiliğinden açılan bir EXE idi
- Rusça unsurlar, yazarın uyruğundan kaynaklanan izler olarak görülebilir
- Bir sürücüyü kuran kendiliğinden açılan arşiv olması, şüpheli görünen davranışların çoğunu açıklıyor
- Arşiv içeriği, CoreChips Shenzhen’in RJ45-to-USB çipi için hazırladığı imzalı açık sürücü 2.0.7.0 ile eşleşiyor gibi görünüyordu
- Birlikte gelen
.infdosyasında şirketin Corechip Semiconductor adını da kullandığı görülüyor
- Birlikte gelen
SR9900 çipi ve eski tasarım bağlamı
- Sürücü, SR9900 adlı bir çipe referans veriyor
- Çip ve üretici hakkında kamuya açık bilgi çok az
- İnceleme sonucunda SR9900’ün Realtek RTL8152B’nin doğrudan klonu gibi göründüğü anlaşıldı
- İngilizce ürün tanıtımında “SR”nin “Supereal” anlamına geldiği ima ediliyor; Supereal marka adı geçmişte sektörde sorun yaratan sahte FTDI FT232RL çipleri bağlamında da karşımıza çıkıyor
- Bu soy hattının önemli olmasının nedeni, özgün Realtek tasarımının 2013 tarihli veri sayfasına dayanan eski bir tasarım olması
- Cihaz 100BASE-TX ve USB 2.0 destekliyor
- Windows 7 dönemindeki çevre birimi uygulamalarıyla örtüşüyor
- O dönemde CD-ROM sürücüler ortadan kalkmaya başlamıştı; ancak tüm bilgisayarların her zaman çevrimiçi olduğu da varsayılamazdı
- Bazı çevre birimlerinin kendilerini, kendi sürücülerini içeren yığın depolama aygıtı olarak göstermesi o dönemin bağlamında doğaldı
- Güvenlik açısından da sürücü dosyasını iletmek için kullanılan diğer geçici yöntemlerden özellikle daha iyi ya da daha kötü olduğu söylenemezdi
SPI flash’ın gerçek amacı
- Söküm fotoğraflarında SR9900’ün yanında 25x40 tip seri flash IC takılı basit bir PCB görülüyordu
- 512 kB flash’ın firmware için mi yoksa ele geçirilen paketleri depolamak için mi kullanıldığı temel soruydu
- SR9900 ve RTL8152B belgeleri, eşlik eden flash IC’nin amacını yeterince açıklamıyordu; devre şeması görsel aramalarında da özgün Realtek çipinin seri pinlerine bir şey bağlanan bir tasarım bulunamadı
- SPI veri yolu yapısı basittir
- Host, istediği hızda saat sinyali sağlar
- Her saat yükselen kenarında çevre birimi “serial in” hattından 1 bit okur, host ise “serial out” hattından 1 bit okur
- El sıkışma, header, parity bit veya akış kontrolü yoktur
- Tipik bir seri flash okuma işlemi, READ komutu 0x03 ve 3 bayt adres gönderildikten sonra verinin kesintisiz alınması şeklindedir
- Bu nedenle gerçek dongle’ı satın alıp bellek içeriğini dump etmek de mümkündü
- CoreChips web sitesinde Çince orijinal metni bulup aradıktan sonra “SR9900 series chip Windows system mass production tool” ile ilgili eski Çince forum yazıları ve parola korumalı/ücretli indirme arşivleri bulundu
- “SR9900(A)设计资料1018.rar” dosyası 2,99 dolara indirilip incelendi
- Arşivde retro görünümlü arayüze sahip SR9900Efuse üretim aracı yer alıyordu
- Birlikte gelen 168 kB’lık ISO 9660 dosya sistemi imajı, kendiliğinden açılan Windows sürücüsünü içeriyordu
- Üretim aracı
.isodosyasını SPI flash’a olduğu gibi yazıyor - Çip, fiziksel CD-ROM’un yerini alan “yazılım tanımlı” bir CD-ROM gibi davranıyor
- Disk imajı buradan indirilebilir; parola
rj45
- Üretim aracı
- CD-ROM imajı “ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS” ile oluşturulmuştu
- UltraISO, Windows XP dönemini hatırlatan bir araç olarak tanıtılıyor
- Çalışma koşulu olarak Intel Pentium 166MHz veya üzeri gerekiyor
İsteğe bağlı sanal CD-ROM işlevi ve kalan sınırlamalar
- Ana arşivde “SR9900(A)设计前必看.docx” belgesi de vardı
- Otomatik çevrilmiş ifadeye göre, SR9900 bir USB ağ kartı olarak kullanılırken SPI, Windows sürücüsü kurulumu için sanal optik sürücü olarak kullanılabiliyor
- SPI flash’a Windows için SR9900 sürücüsü önceden yazılabiliyor
- Flash çip kullanımının isteğe bağlı olduğu açıkça belirtilmişti
- Bu vakadaki tuhaflığın kötü amaçlı davranıştan değil, eski çevre birimi sürücüsü dağıtım yönteminden kaynaklandığı sonucuna varıldı
- Donanım laboratuvarı olmadan da açık kaynaklı materyal araması ve sabırla temel soru işaretleri giderilebildi
- Tam olarak doğrulanmayan alan, SR9900 IC içindeki iki küçük mikrodenetleyici çekirdeği
- İçeride USB ve Ethernet çekirdekleri var ve her biri kendi dahili kodunu çalıştırıyor
- Çip üreticisinin işin içinde olduğu varsayılırsa, içeriyi incelemek mümkün olabilir
- Realtek, RTL8152 için açık kaynaklı Linux sürücüsü sağlıyor; bu sürücü firmware’i bellekte yamalıyor
- Görünüşe göre şifreleme ya da imza uygulanmış gibi durmuyordu
- Kötü amaçlı bir USB dongle olasılığı tamamen dışlanamaz
- İran nükleer programında çalışan bir bilim insanı olsaydınız endişelenebileceğiniz ifade ediliyor
- Stratejik öneme sahip bir özel şirketin CISO’suysanız belirli bir dikkat gerekebilir
- Ev ağı kullanımında ise bu vaka tek başına acil bir tehdit olarak değerlendirmek için yeterli dayanak sunmuyor
1 yorum
Hacker News görüşleri
Bu ifade yanıltıcı. Sorun sahte çipin kendisinden çok, FTDI resmi sürücüsünün sahtesini algıladığında çalışmakta olan donanımın PID’sini 0000’a çevirip artık tanınmaz hale getirmesiydi: http://www.rei-labs.net/changing-ftdi-pid/
“Intel Pentium 166MHz veya üzeri gerekir” ifadesine güldüm. Yazı da eğlenceli ve “zeki birinin can sıkıntısından, sağduyu açısından zaten belli olan bir sonucun peşine sonuna kadar düşmesi ama bunu kanıtlamak için beklenmedik ölçüde yaratıcılık ve inat gerekmesi” türünü gerçekten seviyorum
Bellek çipinin içeriğini dump etmek için Dark Web’e (amazon.com) gidip bir dongle satın almaya hazırdımkısmı da unutulmazKendini kurban ilan edip bir komployu ortaya çıkardığını söylemek, bunun aslında mühendislikte sık görülen bir yama işi sonuç olduğunu kabul etmekten daha rahat geliyor. Yazara alkış
Bu, Çin casus yazılımının bir sorun olmadığı anlamına gelmiyor. Ama bunu ayırt edecek temel teknik yetkinliğiniz yoksa “Çin! Çin! Çin!” diye ortalıkta koşturamazsınız. Politikacıların sahte haberleri alıp aptalca politikalar için bahane üretme biçimi bu ve topluma zararlı
Bu “kötücül” dongle tweet’ini görür görmez, bunun eskiden uğraştığım şeyle tamamen aynı ürün olduğunu anladım. Kötücül olmaktan çok sadece sinir bozucu bir şey
https://blog.brixit.nl/making-a-usb-ethernet-adapter-work-sr...
Benim durumumda CD sürücüsü gibi görünmemesi için SPI flash modülünü devre dışı bırakmıştım, bu yazının yazarıysa SPI’nin isteğe bağlı olduğunu söyleyen belgeleri bile bulmuş. İşin komiği, artık bu yazı yeniden flash’layarak gerçek bir kötücül RJ45 dongle yapmaya yarayan araçları da sunuyor
Görünüşe bakılırsa 3 pinli SOT23 paket için diyot footprint’i koymuşlar, sonra özel parçanın stoğu olmayınca SOD323 diyodu iki pin arasına yaklaşık 30 derece eğik şekilde lehimlemişler
Eğer bu istenmeyen bir sonuçsa, en başta olsa olsa gizlilik yoluyla güvenlikten ibaretti; insanların buna bel bağlamaması için açığa çıkması daha doğru
autorun.infeklemek mümkün mü?USB cihazlarının depolama aygıtı gibi davranıp kendi sürücülerini sunma yöntemini epey seviyorum. Günümüzde “doğru” yöntem herhâlde Microsoft sunucularına bir şeyler yükleyip cihaz takılınca gerekenleri oradan indirtmek olurdu ama elle sürücü kurmak gereken aygıtlarla yeterince uğraştım; bunun göründüğü kadar kolay olmadığını biliyorum. Örneğin benim hâlâ çok sık üreticiye özel ADB sürücülerini indirmem gerekiyor
Her neyse, çevre biriminin ilk kuruluma yardımcı olması akıllıca bir yaklaşım ve sürücü cihazın içinde olduğunda resmî indirme kaynağını aramaktan biraz daha kolay oluyor
Ama birden fazla çalışma modu, 4G/LTE USB dongle’lar gibi cihazları yapılandırmayı zorlaştırdı. Bazen USB depolama aygıtı gibi görünüyorlar, bazen bir tür seri aygıt, bazen de CDC-ACM modem benzeri bir şey; doğru moda geçirmek için araçlarla üreticiye özel AT komutlarını birleştirmek gerekiyor. Yalnızca takınca hemen işini yapan basit cihazlara geri dönmek istiyorum
Şu anda en ileri uygulamanın ne olduğunu bilmiyorum ama uzun süre boyunca USB çevre birimi IC’lerine küçük bir flash ekleyip VID/PID ve diğer USB yapılandırma bilgilerini orada tutmak yaygındı. Çünkü cihaz takıldığında düzgün şekilde enumerate edilmesi ve doğru sürücüyle eşleşmesi gerekiyordu. Tasarımın yapıldığı döneme bağlı olarak tedarik zincirinde kolay bulunan en küçük kapasite 512kB olabilir, bu yüzden birkaç düzine bayt saklamak için böyle bir çip kullanmak da tuhaf sayılmazdı
ISO kısmı biraz garip ama dürüst olmak gerekirse bu, kurumsal BT güvenlik politikalarının USB yığın depolama aygıtlarına koyduğu kısıtlamaları aşmak için yaratıcı bir yol. Optik sürücüler farklı bir aygıt sınıfı kullandığı için çoğu kısıtlamayı atlatma ihtimalleri yüksek ve optik sürücü ile ağ adaptörü birleşik bir aygıt olarak enumerate edilirse “USB sürücü” kilitli bir bilgisayarda bile kendi sürücüsünü kurabilir gibi görünüyor
Tuhaf olan, flash ekleyip maliyet çıkarmış olmalarına rağmen manyetik izolasyon bileşenlerini atlamış olmaları. Sadece seri kapasitörler var ve jak da entegre manyetikler içeriyor gibi görünmeyecek kadar küçük; ayrıca seri kapasitörleri de birlikte koymaları pek mantıklı değil
Satın aldığım USB ethernet dongle’da manyetik izolasyon olmadığını öğrensem gerçekten sinirlenirdim
“Kötü amaçlı” USB Ethernet dongle’ları var mı? Elbette var. Ama bu ürün onlardan biri değil
https://hak5.org/products/lan-turtle
RJ45 katıları açısından buna 8P8C demek gerekir. Ben artık çıkayım
Örneğin birçok ağ cihazında konsol portu için USB’yi RS232 seri bağlantısına çeviren bir “RJ45 dongle” da görmüştüm
USB-1000BASE-T ve bugünlerde 2.5GBaseT dongle’larında genel olarak performansı önemseyenler için, USB aygıtı ile PCI Express aygıtı arasındaki farkı bilmek iyi olur
Bunu, güncel Linux çekirdeği kullanan bir dizüstünde hot-plug yaptıktan sonra
sudo lsusb -vile mi yoksasudo lspci -vile mi göründüğüne bakarak anlayabilirsinizYerel PCIe aygıtları çok daha iyi performans verir, 2.5GBASE-T hat hızına ulaşabilir ve host ile USB üzerinden Thunderbolt uygulaması aracılığıyla haberleşir. Yalnızca USB aygıtları da fena çalışmayabilir ama ucuz olmalarının bir nedeni var. Tabii bazı düşük maliyetli dizüstülerde Thunderbolt desteğinin kendisi olmayabilir; bunu da hesaba katmak gerekir
Yine de sonuçta bir dongle ve Mac’te iperf3 ile 9.4Gbit/s görüyorum. Doğal olarak PCIe aygıtı olarak görünüyor
[1] https://www.amazon.com/gp/product/B0DHSWSSBY
Sadece USB portunuz varsa ve performans önemliyse, daha büyük fark muhtemelen USB Ethernet aygıtının CDC-NCM mi yoksa yalnızca CDC-ECM mi uyguladığıdır. CDC-ECM çerçeveleri sürücüye tek tek gönderir ve sürücünün bunları tek tek kontrol edip işlemesi gerekir; bu da ciddi CPU yükü oluşturur. Daha yeni CDC-NCM ise çerçeveleri paketleyerek gönderir
Benim dizüstümde 1Gbit ECM dongle ile gigabit hıza çıkılabiliyor ama bir CPU çekirdeği %100 kullanılıyor; 1Gbit NCM dongle’da ise CPU kullanımı neredeyse yok
Ethernet portu üzerinden zararlı bir bağlantı oluşturmak son derece zordur, ama USB portu üzerinden zararlı bir bağlantı oluşturmak çok kolaydır. Buna olduğu gibi demek gerekir. Bu, üzerinde Ethernet soketi de bulunan kötü amaçlı bir USB dongle