Gömülü yazılım-I2C protokol analizi ile oynamak

Lei Feng'in web sitesine göre: Gömülü ürünler için bilgisayar korsanlığı her zaman bir endişe konusu olmuştur ve giderek daha fazla sayıda saldırgan gömülü IoT cihazlarını hedef almaktadır. Önceki saf yazılım güvenliği araştırmalarının aksine, bu tür araştırmalar genellikle ilgili donanım bilgisi ve ekipmanın bir kombinasyonunu gerektirir. Gömülü sistemlere nasıl hızlı bir şekilde başlayabilirim? Leifeng.com, Wang Wang'ı I2C protokolünün gerçek vakalarını ve ilgili araçların kullanımını paylaşmaya davet etti. Tüm Şeyleri Hackleyerek bir araya gelmeyi umuyoruz.

Bu makale, Alibaba Cloud Prophet Community'den Xiaobing tarafından önerilmektedir.

0x01 I2C protokol temeli

Gömülü sistemlerle temas halinde olan hiç kimse I2C protokolüne aşina olmayacaktır. UART, SPI ve JTAG ile birlikte en yaygın hata ayıklama protokolü olarak listelenmiştir. I2C, Philips tarafından tasarlanan multi-master-slave mimarisine sahip bir seri iletişim protokolü olan Inter-Integrated Circuit olarak adlandırılır.

I2C protokolü çok basittir, sadece iki veri yolu, Clock ve Data, artı Ground ile.Genellikle bir master cihaz ve birden fazla slave cihaz içeren bir mimaridir. İletişim hızı 100khz, 400khz, 1Mhz, 3.2Mhz'dir. Uygulamada yüksek hız gereksinimi yoksa iletişim için I2C kullanılabilir. Örneğin, PC fanının sıcaklığı ve pilin voltajı toplanır.Her I2C cihazının bir okuma ve yazma adresi vardır.Sadece okuma ve yazma adresi bilindiğinde onunla iletişim kurabilir.

Ek olarak, sistem yapılandırmasını ve parametrelerini depolamak için kullanılan birçok EEPROM yongası da I2C protokolünü destekler Örneğin, IBM Thinkpad serisindeki BIOS parolalarını depolamak için kullanılan EEPROM, MCU ve EEPROM arasında I2C protokolü aracılığıyla etkileşim kurar.

0x02 Artefakt BusPirate

İşinizi iyi yapmak istiyorsanız, önce aracınızı keskinleştirmelisiniz.Mihirli bir araca sahip olmak, gömülü cihaz korsanlığı için daha azıyla daha fazlasını yapacaktır. BusPirate, Dangerous prototipleri tarafından tasarlanmış, donanım hackleyen bir İsviçre çakısıdır. Birden çok yaygın protokolü destekler ve çapraz platform Windows / Linux / MAC'dir ve çok sayıda yardım dosyasına sahiptir.

BusPirate, I2C ve diğer protokolleri koklayabilir ve okuyabilir ve yazabilir ve ayrıca AVR ve diğer çipleri programlayabilir.İşlem çok basittir, 115200 baud hızında BusPirate'e bağlanmak için minicom kullanın.

BusPirate, anlaşmayı şu şekilde destekler:

BusPirate arayüz bağlantısının şematik diyagramı:

BusPirate komutlarının listesi:

0x03 Saldırı Durumu - Dijital Parola Kilidi

Daha sonra, I2C protokolünü analiz ederek kapı kilidi şifresini kırmanın pratik bir durumuna bakalım.Amacımız bu dijital şifre kilidi modeli YL99. Bu şifreli kilit tamamen kullanıcı tarafından belirlenen dijital şifreye dayanmaktadır.Belki bazı insanlar için bir sürü anahtar getirmeye ihtiyaç duymamak çok daha uygundur.

YL99 tam elektronik bir kapı kilidi olduğu için sıradan mekanik kilitlerin sahip olmadığı fonksiyonları sağlar. Örneğin, YL99'un farklı işlevlere sahip birden fazla hesabı vardır Ana hesap: yönetim kullanıcı şifresini ayarlamak için kullanılabilir (varsayılan 0123 #). Ortak hesap: ortak kullanıcı şifrelerini saklamak için kullanılır. YL99 ayrıca düşünceli bir anti-parola sızıntısı işlevi de sağlar Çalışma yöntemi: başlangıç kodunu girin (0) + gizleme için kullanılan herhangi bir sayıdaki basamağı izleyin + doğru parolayı izleyin + # (onay sonu). Bazı insanlar doğru şifreyi görmekten korkmazlar.

Ama bir karınca yuvasına bin millik bir set çöktü. YL99'un tasarım kusuru, kişilerin dahili PCB ana kartına erişmek için kilidin klavye kısmını dışarıdan ayırmalarına olanak tanır. Donanım hackleme oynayan arkadaşlar, dahili PCB anakartından kolayca erişmenin bir tabu olduğunu bilirler.

YL99 açıldıktan sonra ana kart yapısı ortaya çıkar. YL99 tarafından kullanılan bileşenlere ek olarak, anakart üzerinde bir Reset kontağı olduğunu açıkça görebiliyoruz. Şu anda, baypas amacını elde etmek için sıfırlama kontağını ve Topraklamayı kısa devre yaparak şifreyi fabrika ayarına geri yükleyebiliriz. Ancak bu yöntemin eksiklikleri de çok açık, her baypas ettiğinizde vidaları çıkarmanız gerekiyor ve fabrika değerine geri dönerseniz keşfedilmesi kolay.

Demo videosu aşağıdaki gibidir: https://www.youtube.com/watch?v=4sqDXkUQbqM

Ama gösteri daha yeni başladı. Ayrıca YL99 tarafından kullanılan MCU em78p156e'yi ve ana kartta şifre bilgilerini saklamak için kullanılan EEPROM 24C02'yi bulduk. 24C02'nin veri sayfasını okuyarak, MCU ile iletişim kurmak için I2C protokolünü kullandığını biliyoruz ve veri sayfası, I2C tarafından kullanılan SCL (saat frekansı) ve SDA (veri yolu) gibi çip pinlerinin amacını da açıkça belirtiyor.

Son olarak, yapıtımız BusPirate kullanışlı olmak üzere. Önce 24C02'nin I2C pinini ve ilgili BusPirate arayüzünü bir veri hattı ile bağlarız.

Ardından minicom veya diğer seri araçlar aracılığıyla Buspirate'in I2C hata ayıklama moduna girin.

I2C hata ayıklama modunda, çok kullanışlı bir I2C algılayıcı işlevi vardır. Bu sayede I2C verilerini izleyebiliriz ve WIRESHARK kullanan arkadaşlar tanıdık gelmeyecek.

I2C Sniffer modu açıldıktan sonra, MCU ile EEPROM arasındaki şifre etkileşimini gözlemlemeye başlayabiliriz. Örneğin, YL99'un parola giriş işlemi başlangıç kodu (0) + doğru parola + bitiş onayıdır (#).

Gözlem yoluyla, son onaya (#) basıldıktan sonra, MCU'nun 24C02'ye bir şifre doğrulama talebi gönderdiği bulunmuştur. Ancak daha sonra önemli bir tasarım hatası oluştu EPPROM 24C02, şifre doğrulama sürecini tamamlamak için doğru şifreyi MCU'ya düz metin olarak geri gönderdi ve bu işlem BusPirate'in I2C algılayıcısı aracılığıyla açıkça görülebilir.

Şekilde gösterildiği gibi: küçük endian kullanıldığı için, 123 ve 456 şifreleri ters olarak görüntülenecektir.

0X04 özeti

Bu makaledeki giriş ve pratik örnekler aracılığıyla, herkesin I2C protokolü ve kullanım yöntemleri hakkında belirli bir anlayışa sahip olduğuna inanıyorum. Kılıç eğilir, ancak tersi doğrudur. Saldırganlar genellikle sistemin eksikliklerini saldırı noktası olarak alırlar.Eğer belirli bir gömülü sistemin tasarımcısı yalnızca yazılımın güvenliğini düşünürse ve saldırgan fiziksel erişim sağlayabilirse, bu savunma yöntemleri işe yaramaz. Aynı zamanda, gömülü ürünler piyasaya çıktıktan sonra yükseltmenin zor olmasının zorluğu ile karşı karşıyadır.Saldırı modu açığa çıktığında üründeki kayıp çok büyüktür, bu nedenle güvenlik ürünleri tasarımının başında güvenlik dikkate alınmalıdır.

0x05 referansları

https://learn.sparkfun.com/tutorials/i2c

https://code.google.com/archive/p/the-bus-pirate/

Dağ şehri yoğun sisle dolu ve yerel görüş mesafesi 100 metreden az
önceki
Ruixue uçuyor, Sichuan-Tibet Demiryolunun Lalin bölümü karla dolu
Sonraki
"Şeytan Kedinin Efsanesi", 1222'de muhteşem bir gösteri sunmak için nihai posteri ortaya çıkarır ve sizi Tang Hanedanlığı'nın harikalarını keşfetmeye davet eder
Üç büyük çoklu bulut güvenlik sorunu Şirketler "oyunu nasıl kırmalı"?
İnternet ünlüleri halka açılan ilk kişilerdir, "Zhang Dayi" İnternet ünlüleri ekonomisinin ikinci yarısını hala yönlendirebilir mi?
Bu hafta ev aletleri döngüsü: PPTV "HEPSİ" yeni ürünleri tam ekranda piyasaya sürüyor, TCL yeniden düzenleme brifingi düzenliyor
Bu hayran mangası, "The Curse of Blood" daki en üzücü hikayelerden birini geri getiriyor
Yeraltı yer değiştirme ölçüm sensörü dizisi için kablosuz bir güç aktarım cihazının tasarımı
Yerel CPU platformlarında Go dilinin uygulama olasılıklarını keşfetme ve düşünme
"Game of the Brave" becerileri açıldı, Dashi Johnson, bir Jedi kaçışını aşmak ve sahnelemek için bir ekibi yönetiyor
"Tavuk çok güzelsin" Cai Xukun
Google, Çinli cep telefonu satıcıları, Huawei, Xiaomi vb. Veya kendi geliştirdiği sistemleri ücretlendirir.
Roadstar.ai Tong Xianqiao: Şirketin nedeni bir veya iki kişi değil Titanium Haberleri
"Endüstrinin Etkin Noktaları" 2050'ye kadar, yeni enerji enerjisi üretiminin küresel payı% 50'ye ulaşacak
To Top