Mühendisi Nasıl Nasıl Durdurulur Perrietary Network Storage Sistem Sistem Sistemi
Ters Mühendislik Ağı Depolama Vakfını Anlayın
Özel bir ağ depolama sistemi, donanım, bilgisayar ve ağ iletişim tabakalarını test etmek için bir yedek fayda inşa etmek, bir güvenlik denetimi yapmak veya bir yedek kontrol geliştirmek, gerekli olan beceriler her iki teknik ve yasal olarak çıplaktır. Bu kılavuz, gerçek dünya depolama mimarisinden çekilen pratik örneklerle bulgularınızı test etmek için tüm süreçten geçer.
Araçlara ve tekniklere girmeden önce, herkesin neden bir depolama sistemini ters çevireceğini sormaya değer. Ortak motivasyonlar şunları içerir: miras ekipmanlarla birlikte karşılıklılık elde etmek, eksik bir satıcıdan verileri kurtarmak veya hedefiniz için açık kaynaklı sürücülerin yaratılması, adımların farklı markalar ve modeller üzerinde oldukça tutarlı kalması.
Yasal ve Etik Sınırlar
Örneğin, ABD'de bir çok yargıda gri alan var. Dijital Millennium Copyright Yasası (DMCA) örneğin, teknolojik koruma önlemleri yasaklamak, güvenlik araştırma ve içebilirlik için var olmasına rağmen, sistemden ve yasal danışmandan izin almak için izin almak.
Etik düşünceler yasallığın ötesine uzanır. Bir güvenlik kırılganlığını keşfederseniz, sorumlu açıklama uygulamalarını takip edin. Satıcıya sorunu dengelemek için makul bir pencere vermeden açık bir şekilde serbest bırakmayın.Rektörlük sistemi tersine çevirmek için bir depolama sistemi geliştirmek ve yeniden kullanılabilirlik sağlamak, bilgilendiriciliği sağlamak için değil.
Ek olarak, birçok özel depolama sistemi kriptografik imzalar ve tamper-evident mühürleri içerir. Bu devreleri devre dışı bırakabilir veya cihazı çalışmayı durdurmanız için her zaman, aradığınız bilgilerin, mevcut belgeleri incelemek veya API erişimi için satıcıya ulaşmasının nasıl mümkün olduğunu düşünün.
Ters Mühendislik Toolkit'inizi bir araya getirin
Network depolamanın başarılı bir şekilde tersine mühendislik, belirli bir araç gerektirir. kesin liste, donanıma, bilgisayara veya ağ protokollerine odaklandığınız şeye bağlıdır, ancak çoğu proje aşağıdaki kombinasyonu talep eder.
Donanım Analizi Araçları
- [FONT:0)Multimeter ve oscilloskop[Dönetici:0)[Dönetici:0) - gerilim seviyelerini ölçmek için gerekli olan saat sinyalleri ve veri hattı aktivitesi. 4 kanal oscilloskopi en az 100 MHz genişlikte SPI ve I2C gibi seri protokollerin uygulanması önerilir.
- [FONT:0)Logic analizr[[[Dönetici:0)[Dönetici:0))[Döneticileri) [Döneticileri) aynı anda birden çok kanalda dijital sinyalleri yakalar.The ucuzurFLT:2).Saleae-ae-ae-ae-ae-uzay klon cihazları) çoğu protokol için iyi çalışır.
- [FONT=0)JTAG/SWD debugger) - gömülü işlemcilere düşük seviyeli erişim sağlar. Popüler modeller Segger J-Link ve Olimex ARM-USB-OCD içerir.
- [FONT:0]Hot hava rework istasyonu[[Dönetici: 1 ) - flaş hafızasını doğrudan okumak için cips kaldırmak için.
- [FONT=0]Flash programır[[Dönetici: 1 ) – CH341A veya depolama yongalarından programlamak için özel bir SPI programıcı.
Yazılım ve Şirketware Tools
- [FONT:0]IDA Pro[DÜT:1] - endüstri standart dislokatörü ve debugger. onun dekompiler, ARM ve MIPS Donanımı anlamak için özellikle yararlıdır.
- [FONT:0)Ghidra – NSA tarafından geliştirilen ücretsiz ve açık kaynaklı ters mühendislik çerçevesi. Birçok mimariyi destekler ve bir dekompiler içerir.
- [FONT:0]Binwalk[[[DÜT:1) – gömülü dosya sistemleri, çekirdekler ve bootloaders için bilgisayar görüntülerini analiz eder.
- [FONT:0] ve hexdump) – ikili blobs'te hızlı bir şekilde tanınma için basit ama etkili.
- [FONT=0)GDB[DK-1) – çalışan sisteme bir debugger ekleyebilseniz dinamik analiz için.
Network Watch Tools Tools
- [FONT=0)Wireshark[[Dönetici: 1) elektr|kriptler ve kodlar ağ paketleri.Özel muhalifler, Lua'da özel protokolleri için yazılabilir.
- [FONT:0]tcpdump – başsız sistemler için hafif komut satırı alternatif.
- [FONT:0)Ettercap[[Dönetici:2)Bettercap) - insan-in-orta saldırılar için ağ trafiğine şifreli seanslar yapmanız gerekiyorsa.
- [FONT:0]Scapy[Dönetici: 0:1) – Python kütüphanesi ağ paketlerini kullanarak programmatik olarak analiz etmek ve analiz etmek için.
İlk Donanım Reconnaissance
Depolama sistemini görsel olarak incelemeye başlayın. ( uygun ESD önlemleri ile) ve her büyük bileşeni belgeleyin. ana sistem-kap (SoC) veya CPU, DRAM çipleri, NAND flaş veya NOR flaşı, ve herhangi bir ASICdes, RAID veya şifreleme ile yüksek çözünürlüklü fotoğraflara bakın.
Seri konsol limanlarını tanımlayın. Çoğu gömülü depolama cihazı, genellikle silinen bir UART başlığı ortaya çıkarır, genellikle [[Üyetim:0)TX), [[Döneticileri yakalamaya çalışır.[Döneticileri, [[Döneticileri, [[Döneticileri, dosya sistemleri, bazen de bağlantı analizine yardımcı olacak şekilde ağ yapılandırma parametrelerini içerir.
Sistemin güç ayarını anlamak için bir oscilloskop ile kontrol etmek. Sıfırlama sinyalleri ve saat osilatörlere bakın. Bu bilgi, boot-time güvenlik kontrollerini analiz etmeyi planlıyorsanız veya donanım tabanlı şifrelemeyi atlamak için gereklidir.
Cihazın bir çıkarılabilir SPI flash çipi varsa, içeriği bir flaş programı kullanarak boşaltabilirsiniz.Egzersizin inekler inmetikaldir, ancak genellikle bir Pomona SOIC klibi ile çipe izleyebilirsiniz.
Firmaware Ekstraksiyon ve Analiz
Eldeki bir bilgisayar görüntüsü ile, bir sonraki adım yapısını tanımlamaktır. [FONTT:0)binwalk), bilinen imzaları taramak için. Örneğin, [[ENFLT:0) komut recursly ekstralar dosya sistemleri SquashFS gibi, JFFS2 veya UBIFS ağ depolama cihazlarında yaygın olan.
Encryption Keysini Bul
Satışçılar bazen bootloader'de veya ayrı bir yapılandırma blokunda sert kodlar.TPMT:1 olarak veya [[Dönetici:2) tarafından ikili çıktıda veya SPI otobüsleri arasında bir araya gelebilir.Birçok durumda, anahtar sadece tekrarlayıcı veya bir cihaz seri numarasından elde edilir.Eğer cihaz anahtar depolama için Trusted Platform Modül (TPM) kullanırsa, JTAG aracılığıyla anahtarları çıkarmak veya SPI otobüsleri izlemek için ihtiyacınız olabilir.
Eleştirel Şirketware Bileşenlerini Çözme
Bir NAS cihazı için, IPP veya Ghidra.C veya Ghidra'ya yüklenebilen rutinlere odaklanın.Bir NAS cihazı için, cihazın uzaktan taleplerin nasıl kabul ettiğini anlamak için anahtardır.
Giriş geçerliliği olan işlevlerin kırılma noktaları. Birçok özel depolama sistemi, pahalı donanım olmadan sömürülenebilecek CGI senaryolarında veya web arayüzlerinde açıklığa sahip olabilir. Sorgu parametresinde basit bir tampon bağlantı size kök erişim sağlayabilir.
Editörler QEMU[[Dönetici:0)[[Dönetici:0)) tarafından çıkarılan bir kullanıcı veya sistem-mode ortamda çalıştırılabilir ve fiziksel cihaz olmadan dinamik analize izin verir. Bu, test protokolleri uygulamaları için özellikle yararlıdır.
Ters Mühendislik Ağı Protokolü
Ağ depolama cihazları genellikle birden fazla protokol kullanır. Commons, Windows dosya paylaşımı için SMB/CIFS, Unix ve HTTP /HTTPS web yönetim arayüzleri için. Ancak satıcının müşteri yazılım kullanımlarının tamamen özel ve geri ödemesi olabileceğinin özel bir protokolü içerir.
Capturing Trafik
Cihazı izole bir VLAN'a yerleştirin ve tüm trafiği yakalamak için liman aynası veya bir merkez ile bir geçiş yapın. Runsha Wirerk, depolama cihazına odaklanmak için filtreyle.Persha Wirerk.
Protokol Yapısını Tanımlamak
Ödeme yüklerinde desenler arayın. Birçok satıcı, her paketin başında tekrarlanan bir sihirli sayı ve uzun alan ile basit bir ikili protokolleri kullanır. Örneğin, eğer bytesurFLT:5'i görürseniz, bu bir sihirli sayı ve uzun alan olabilir.
Kullanım:0)Scapy[Döneticileri değiştirmiş alanlara sahip ve cevabı gözlemleyebilmek için [Döneticileri kullanarak bir paket gönderseniz, bir işlem başlatınız.
Trafik şifreli görünüyorsa ancak her zaman aynı birkaç tane ile başlarsa, güvenlikten daha obfusing olarak bilinen bir başlıktan daha basit bir XOR cipher olabilir. Test by XORing the first 16 bytes with your tahmined key byte. Many tüketici NAS devices hala statik XOR anahtarlarını “encryption” için kullanabilir.
Bir Özel Telshark Dissector
Paket biçimini anladığınızda, Wireshark için bir Lua dissector yaz. Bu, kodlayıcının otomatik olarak yakalamanıza yardımcı olacaktır. Temel bir dissector şablonu gibi görünebilir:
local p_storage = Proto("storage", "Proprietary Storage Protocol")
local f_length = ProtoField.uint16("storage.length", "Length")
local f_cmd = ProtoField.uint16("storage.cmd", "Command ID")
p_storage.fields = { f_length, f_cmd }
function p_storage.dissector(buf, pkt, tree)
local subtree = tree:add(p_storage, buf(0, 4))
subtree:add(f_length, buf(0, 2))
subtree:add(f_cmd, buf(2, 2))
end
-- then register for your protocol
Wireshark'daki dissector'u yükleyin ve yakalamalarınızı tekrarla.Decoded alanlarının sistem davranışının anlayışını hızlandırdığını görme yeteneği.
Donanım Geri Kapılar ve Debug Interfaces
Birçok depolama sistemi PCB'de debug arabirimleri ortaya koyar. UART, önyükleme işlemi sırasında girişleri kabul edebilir.Sing the bootloader (U-Boot) by a key (oftenENFLT:0)))))))))))))
JTAG ve SWD daha invazivdir, ancak tam kontrol sağlar.CAMing teknikleri gibi bir araç kullanın.(0)OpenOCD) CPU'ya bağlanmak ve RAM içeriğine izin vermek için. Kilitli JTAG (örneğin, güvenlik kesintiye uğramak) ile cihazlar için, aydınlatma teknikleri aracılığıyla önyükleme işlemine saldırmanız gerekebilir.
Vaka Çalışması: Ortak NAS Satışcısını Yeniden Keşfetmek
Bu yöntemleri, en az çabayla köklenmiş bir NAS satıcısından aldık.Oda, çalışan süreçleri ve daemon'u yetkili bir yedekleme protokolü kullanarak "PaketType READ", “PaketType WRITE”, “Paketsiz XOR anahtar “123” için herhangi bir doğrulama işlemine izin verilmeden sorumlu tuttuk.
Bu keşif satıcıya açıklanmadı, bir oturum açma anahtarının yerini alan bir bilgisayar güncellemesi yayınladı. Tam ayrıntılar bir şekilde belgelendi.[0], tüketici NAS açıklarında).
Bulduğunuz Belgeler
Ters mühendislik çok sayıda veri üretir. Laboratuar defterini koruyun - fiziksel veya dijital - PCB'nin diyagramları ile, bir notlama paketi yakalama, benzerlik notları ve test sonuçları.|evcutFLT:0)Obsidian)Notion) bağlantılı notlar organize etmek için iyi çalışır. Tüm keşfedilen komutlar, parametreleri, beklenen cevaplar ve herhangi bir hata kodları.
Örneğin, bir Python senaryosu tüm mevcut komutları en aza indirmek ve cevapları karşılaştırmak için bir paket dizisi gönderebilir. Automating this process helps discover undocumented features or hidden management functions.
Amacınız açık kaynaklı bir sürücü veya uyumluluk katmanı oluşturmaksa, belgeniz size C veya Python'da bir kütüphane yazmak için kullanılır, diğer geliştiricilerin kabul edilebilir. Protokol'ün uyum ve endianness belgelerinin şeffaflığı, başarılı bir uygulama için kritiktir.
Test ve Geçerlilik
Bir donanım hatası nedeniyle gözlemlerinizi sağlamak için ikinci bir aynı birim üzerinde ters mühendislik adımlarını gerçekleştirmek için anlayışınızı geçerli kılar. Test kenar davaları: Bir kumandayı geçersiz kılarak ne olur? Cihazın kazasında mı geri döner? Bu sağlamlık ve potansiyel saldırı yüzeyleri geri döndürür.
Dosya sistemi işlemleri için, satıcının resmi müşterisine karşı ters-mühendis protokolünizin davranışını karşılaştırırsınız. Aynı sonuçları üretirlerse, protokolü doğru bir şekilde kodlamış olursunuz.Eğer değilse, yakalamalarınızı tekrarlayın ve rakiplerinizi ayarlamayın.
Güvenlik testi, izole bir laboratuvar ortamında yapılmalıdır. Hiçbir zaman bir üretim ağındaki ters mühendislik araçlarını bir araya getir. Cihazın kablosuz yetenekleri varsa RF sızıntılarını kontrol etmek için bir spektrum analizörü kullanın - güvenlik değerlendirmelerinde ortak bir gözetim.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Özel bir ağ depolama sistemi talep edilir, ancak uygulanabilir bir görev. Dikkatli bir hazırlıkla, doğru araçlar ve bir yöntemsel yaklaşım, satıcılardan gizli tutmaya çalışan protokolleri ve içleri açığa çıkarabilirler.Her zaman yasal ve etik sınırlar içinde çalışır ve bulgularınızı sadece güvenlik ve içebilirlik geliştirmek için kullanabilirsiniz.
Görsel denetimden çalışma açık kaynak sürücüsüne yolculuk uzundur, ancak her adım - UART boot loglarından paket yakalama analizine katkıda bulun - her şeyi belgelemek, titiz bir şekilde test etmek ve sonuçlarınızı paylaşmak için sizi daha yakınlaştırır. Donanım ve yazılım ters mühendisler topluluğuna değerli bir kaynaktır; özel güvensizlerinize, senaryolarınıza ve bulgularınıza katkıda bulun.