Nástroje pro ladění USB, zachycování provozu a diagnostiku chyb

  • Otevřené hardwarové sniffery USB a ETW ve Windows umožňují detailní zobrazení provozu, výčtu a fází napájení, což je klíčové pro ladění problematických zařízení.
  • Wireshark, spolu s TSharkem a tcpdumpem, zůstává standardem pro analýzu síťových a USB protokolů, a to i v šifrovaném prostředí a prostředí s nulovou důvěryhodností, a to díky použití exportovaných TLS klíčů.
  • Android Debug Bridge, sériové sniffing a nástroje IoT, jako jsou Ubertooth, Attify Badge a KillerBee, rozšiřují diagnostiku na mobilní telefony, průmyslové sběrnice a bezdrátovou komunikaci.
  • Používání těchto nástrojů vyžaduje dodržování zákona a osvědčených postupů, protože zachycené informace mohou obsahovat citlivé informace a jejich zneužití může představovat trestný čin.

Nástroje pro ladění USB, zachycování provozu a diagnostiku chyb

Pokud pracujete s USB zařízeními, Androidem, IoT nebo jakýmkoli typem připojeného hardwaru, dříve či později se budete muset vypořádat s komunikačními selháními, neúplnými výčty nebo ovladači, které nenabízejí žádné vodítka . V takovém případě je jít naslepo noční můrou: musíte vidět, co se skutečně děje „na kabelu“ a v operačním systému.

Dobrou zprávou je, že dnes máme velmi rozvinutý ekosystém utilit pro ladění USB, zachycování provozu a diagnostiku chyb : od open-source hardwarových snifferů až po Wireshark, ETW ve Windows, ADB v Androidu a specifické nástroje pro USB 3.x. Všechny je shrneme a uspořádáme do uceleného průvodce, abyste si mohli vybrat ten správný nástroj pro problém, se kterým se potýkáte.

USB hardwarové sniffery: Vidění sběrnice tak, jak je

Pokud problém leží na nejnižší vrstvě, potřebujete zařízení, které dokáže zachytit provoz přes USB, aniž by se spoléhalo na operační systém, ovladače nebo API . A právě zde přicházejí na řadu specializované hardwarové sniffery.

Jedním z nejzajímavějších projektů posledních let je kapesní USB 2.0 sniffer navržený Alexem Taradovem, plně otevřené hardwarové zařízení , které umožňuje zachytit vysokorychlostní provoz (480 Mbps) a uložit jej přímo do formátu PcapNG pro analýzu pomocí Wiresharku.

Jádro návrhu je založeno na mikrokontroléru Cypress CY7C68013A , velmi oblíbeném jako generické USB rozhraní, pracujícím na 48 MHz. Ten je doplněn FPGA Lattice MachXO2-2000HC, které je zodpovědné za rekonstrukci signálu NRZI a správu synchronizace, a transceiverem USB3343 , který se fyzicky připojuje k linkám D+ a D- sběrnice USB. Společně tvoří kanál, ve kterém PHY zachycuje signál, FPGA znovu sestavuje pakety a mikrokontrolér je balí do bloků PcapNG s přesnými časovými razítky.

Díky této architektuře bez mezilehlého operačního systému je zařízení schopno udržovat trvalé rychlosti v rozsahu 40-50 MB/s , což je velmi blízko praktickým limitům USB 2.0 High Speed, s přesností zachycení, které je obtížné dosáhnout pouze softwarově. Celý projekt, včetně firmwaru, kódu Verilog a schémat, je k dispozici v autorově repozitáři, což usnadňuje studium, úpravy nebo dokonce výrobu desky.

Další silnou stránkou je její velikost: deska je dostatečně malá, aby se vešla do kapsy, a nevyžaduje SBC ani druhý specializovaný počítač. Na rozdíl od předchozích projektů založených na mini PC (jako například tinySniffer s NanoPi NEO Air) se zde o zpracování stará FPGA, mikrokontrolér pouze objednává a odesílá data a PC je pouze přijímá a zobrazuje . To výrazně snižuje riziko ztráty zátěže CPU, latence nebo jitteru v časových razítkách.

Sniffer a diagnostika hardwaru USB

Wireshark jako přirozený společník pro ladění USB a sítě

Většina moderních hardwarových snifferů, včetně Taradova, ukládá provoz do souborů PcapNG, které pak můžete otevřít přímo pomocí Wiresharku . To dává dokonalý smysl: Wireshark je de facto standardem pro analýzu protokolů, a to jak síťových, tak USB.

Wireshark je analyzátor protokolů, který vám umožňuje paket po paketu sledovat, co se vyměňuje mezi zařízeními . Podporuje vše od Ethernetu, Wi-Fi, Bluetooth a ATM až po USB, Token Ring, Frame Relay a FDDI a rozumí stovkám protokolů napříč fyzickou, datovou, síťovou, transportní a aplikační vrstvou. Data můžete zaznamenávat v reálném čase nebo je ukládat a analyzovat offline, kdykoli budete chtít.

Kromě grafického rozhraní nabízí Wireshark i TShark, verzi pro příkazový řádek , která je velmi užitečná pro automatizaci analýzy, práci přes SSH nebo integraci do skriptů. Oba sdílejí stejné výkonné filtry, v nichž spočívá velká část kouzla: můžete izolovat pouze to, co vás zajímá (koncový bod, PID, konkrétní IP adresu, tok TLS atd.) a ignorovat zbytek šumu.

V kontextu USB, když zachycení pochází z fyzického snifferu, Wireshark není omezen systémovými ovladači: vidí řídicí, hromadné, přerušovací a izochronní transakce přesně tak, jak procházejí sběrnicí. Specializovaný plugin interpretuje pole jako PID, adresu zařízení, koncový bod, délku dat, příznaky a hardwarová časová razítka , což je klíčové pro ladění, proč zařízení neprovádí výčet, proč je deskriptor nesprávný nebo proč koncový bod nereaguje, když by měl.

Wireshark dokáže číst a zapisovat data do různých formátů, jako například libpcap/tcpdump, pcapng a dalších , a dokonce i komprimovat za chodu pomocí GZIP. Podporuje různé technologie (Ethernet, 802.11, PPP/HDLC, Bluetooth, USB atd.) a pokud jsou k dispozici příslušné klíče, dokáže dešifrovat IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, WPA/WPA2 a další, čímž výrazně rozšiřuje své možnosti v šifrovaném prostředí a prostředí s nulovou důvěryhodností.

Wireshark v kybernetické bezpečnosti a prostředí Zero Trust

Přestože je stále více provozu šifrováno, Wireshark zůstává ústředním nástrojem v sadě nástrojů každého týmu kybernetické bezpečnosti . Šifrování skrývá obsah, ale nikoli metadata: IP adresy, porty, vzorce připojení, velikosti paketů, načasování, náhlé změny chování atd.

V architekturách Zero Trust, kde je vše šifrováno i v rámci interní sítě, se Wireshark často kombinuje s nástroji jako Fiddler nebo mitmproxy k autoritativní kontrole HTTPS provozu pomocí proprietárních certifikátů nebo řízeného ukončení TLS. Wireshark může také použít soubory protokolu klíčů TLS (SSLKEYLOGFILE) generované moderními prohlížeči k selektivnímu dešifrování TLS 1.3, HTTP/2 nebo dokonce částí QUIC/HTTP/3 provozu, pokud jsou k dispozici klíče relace.

V praxi se používá hybridní model: platformy SIEM/SOAR (Sentinel, Elastic, Splunk atd.) a senzory jako Zeek nebo Suricata generují upozornění a protokoly na vysoké úrovni , zatímco Wireshark se používá k ponoření se do detailů konkrétního incidentu, zobrazení skutečných paketů, rekonstrukci toků a ověřování hypotéz. Tato kombinace snižuje počet falešně pozitivních výsledků a výrazně urychluje reakci na incidenty.

Wireshark je také vysoce ceněn ve světě reakce na incidenty související s SSH, RDP nebo VPN . I u šifrovaného obsahu můžete rozlišit úspěšné relace od neúspěšných pokusů analýzou doby trvání toku, velikosti paketů, doby mezi zprávami a počtu pokusů o ověření. Je to velmi efektivní způsob, jak detekovat útoky typu „credential stuffing“ nebo rozsáhlé skenování vzdáleného přístupu.

V útoku červené týmy a penetrační testeři hojně využívají TShark a tcpdump ke špehování provozu, identifikaci používaných služeb a protokolů, pozorování chování obranných systémů a detekci hloubkových perimetrických inspekcí . V kombinaci se Scapy mohou generovat a vkládat vlastní pakety a sledovat reakci sítě v reálném čase.

Ladění a diagnostika USB ve Windows s ETW a specifickými nástroji

V ekosystému Windows máte kromě klasického analyzátoru paketů k dispozici velmi výkonnou infrastrukturu založenou na Event Tracing for Windows (ETW), která umožňuje velmi podrobně zaznamenávat, co se děje v USB stacku: výčet, změny stavu portů, výpadky napájení, problémy se spouštěním zařízení atd.

Řadič rozbočovače USB generuje události ETW s různými úlohami, které můžete zachytit a zobrazit pomocí nástrojů, jako je Netmon nebo jeho moderní náhrada, Microsoft Message Analyzer (nyní již nevyráběný, ale stále používaný v mnoha prostředích), nebo pomocí aktuálnějších prohlížečů ETW. Filtrováním úlohy „Výčet rozbočovače USB“ (úkol 2) se můžete zaměřit pouze na události relevantní pro připojení zařízení a konzultovat diagnostické příručky k portům USB ve Windows.

Například hledáním událostí jako „Spuštění výčtu portů“ nebo „Výčet portů dokončen “ můžete měřit, jak dlouho trvá systému výčet zařízení, v jakém kroku se zasekne nebo zda během detekce dochází k elektrickým odskokům (debounces). Cílem je měřit intervaly mezi událostmi, jako například:

  • Zahájení výčtu portů → Výčet portů dokončencelková doba výčtu.
  • IoInvalidateDeviceRelations → IRP_MN_QUERY_DEVICE_RELATIONS: doba, kterou PnP potřebuje ke spuštění dotazu na zařízení.
  • IRP_MN_QUERY_DEVICE_RELATIONS dokončeno → IRP_MN_START_DEVICE odesláno: zpoždění mezi detekcí nového PDO a efektivním spuštěním zařízení.

Pro cyklus napájení existují také specifické úlohy ETW, jako je obnovení zařízení z režimu spánku (D0), selektivní pozastavení rozbočovačů a zpracování spouštěcích IRP zařízení. Měřením mezi událostmi, jako je „USB Device Set D0 Device Power IRP Dispatched“ a „…Completed“, můžete určit, zda je úzké hrdlo v samotném zařízení, ovladači nebo v problémech s napájením USB.

Ve Windows 8 a novějších verzích společnost Microsoft také přidala rozšíření ladicího programu specifická pro USB 3.0 a nové ladicí nástroje ve Visual Studiu/WinDbg zaměřené na ekosystém xHCI. Tato rozšíření zobrazují stav ovladače, fronty přenosů, koncové body, stav portů a detaily na nízké úrovni, které v kombinaci s ETW a zachycením provozu výrazně usnadňují detekci jemných chyb ovladačů a firmwaru. K dispozici jsou také průvodci, kteří pomáhají identifikovat verze portů USB, pokud je kompatibilita nejistá.

Android Debug Bridge (ADB): Ladění a USB/síťový provoz v systému Android

Pokud se zajímáte o mobilní telefony a tablety, ekvivalentem „švýcarského nože“ pro diagnostiku je Android Debug Bridge (adb) . Jedná se o nástroj typu klient-server, který umožňuje vašemu vývojovému počítači komunikovat se zařízeními Android přes USB i Wi-Fi.

Architektura adb se skládá ze tří částí: klienta (adb) , kterého spouštíte na svém počítači, démona (adbd) , který běží na zařízení, a serveru , který se nachází na vašem počítači a funguje jako prostředník mezi nimi. Server otevírá TCP port 5037 a pokud jsou k dispozici emulátory, vyhledává je v rozsahu portů 5555-5585, aby se připojil ke každé instanci.

Chcete-li povolit ladění USB, musíte v zařízení aktivovat Možnosti pro vývojáře a Ladění USB . Pokud máte potíže s připojením, podívejte se, co dělat, když telefon nerozpozná USB . Počínaje verzí Android 4.2.2 musí být každý připojený počítač explicitně autorizován prostřednictvím dialogového okna zobrazujícího klíč RSA, aby se zabránilo ovládání telefonu neznámým zařízením pouhým připojením.

V systému Android 11 a novějších verzích Google přidal funkci bezdrátové laděníTo vám umožňuje spárovat zařízení a pracovní stanici přes Wi-Fi pomocí QR kódu nebo párovacího kódu, bez nutnosti kabelu. V Android Studiu můžete použít možnost „Spárovat zařízení pomocí Wi-Fi“ nebo to provést z příkazového řádku pomocí adb pair ip:puerto y adb connect ip:puerto.

Jakmile je zařízení připojeno, adb nabízí obrovský katalog možností pro diagnostiku problémů s aplikacemi, systémem a sítí :

  • Instalace a odinstalace souborů APK (adb install, adb uninstall), také více souborů APK rozdělením.
  • Přesměrování portů (adb forward tcp:host tcp:device oa lokální sockety), velmi užitečné pro ladění interních služeb.
  • Kopírovat soubory uvnitř i vně zařízení (adb pull, adb push).
  • Otevření interaktivního shellu (adb shella spouštět unixové příkazy a nástroje, jako například toybox o logcat.

ADB dále integruje rychlý přístup ke klíčovým subsystémům prostřednictvím utilit, jako jsou am (Activity Manager), pm (Package Manager) a dpm (Device Policy Manager) . S jejich pomocí můžete spouštět aktivity, restartovat služby, ukončovat problematické procesy, vynucovat výpisy paměti, spravovat profily, manipulovat s oprávněními, vytvářet nebo mazat uživatele, konfigurovat vlastníky zařízení/profilů v podnikovém prostředí a další.

Pro vizuální ladění máte k dispozici příkazy jako screencap y screenrecordkteré vám umožňují pořizovat snímky obrazovky nebo nahrávat video o tom, co se na zařízení děje, a poté je extrahovat pomocí adb pullIdeální pro dokumentaci chyb uživatelského rozhraní nebo toků, kde je třeba zachytávání provozu zasadit do kontextu s tím, co uživatel vidí.

Sériové sniffing a průmyslové sběrnice: když ne všechno je přes USB nebo Ethernet

V prostředí průmyslové automatizace, CNC, PLC nebo vestavěné elektroniky je velmi běžné nalézt komunikaci založenou na UART/TTL, RS-232 nebo RS-485 s protokoly jako Modbus RTU nebo ASCII, proprietární komunikaci průmyslových zařízení atd. Pro jejich ladění je klasickou a velmi účinnou technikou pasivní fyzické sniffing.

Myšlenka spočívá v nastavení „sniffing PC“ se dvěma USB-sériovými adaptéry, jejichž RX vstupy jsou zapojeny paralelně s TX vstupy hlavního počítače a cílového zařízení, přičemž se sdílí zem, ale bez propojení TX vstupů adaptérů, aby se zabránilo rušení. Pomocí softwaru, jako je SerialTool , nebo jakéhokoli pokročilého terminálu otevřete dva porty (například COM5 a COM6) a upravíte rychlost a formát (obvykle 115200-8N1, ale můžete experimentovat nebo měřit pomocí osciloskopu).

Asynchronní sériový protokol (start bit, 7/8 LSB datových bitů jako první, volitelná parita a stop bity) je stejný, ať už pracujete na úrovních TTL, RS-232 nebo RS-485; mění se elektrické úrovně a fyzická topologie (jednoduchý vs. diferenciální) . Proto potřebujete vhodný adaptér: USB-TTL, USB-RS-232 nebo USB-RS-485.

Nástroje jako SerialTool nejen zobrazují tok v HEX a ASCII, ale také integrují klienty Modbus pro čtení/zápis registrů, monitory s časovými razítky a funkce záznamníku dat , které ukládají celou relaci pro pozdější analýzu, a dokonce i exportují do formátů, které pak můžete otevřít pomocí Wiresharku nebo vlastních skriptů.

Tento přístup je velmi účinný pro protokoly reverzního inženýrství : pokud máte pouze proprietární software, který komunikuje se strojem, můžete konverzaci „načichnout“, dokumentovat rámce, adresy, CRC, časování a poté replikovat chování s vaší vlastní aplikací nebo bránou IoT.

IoT a rádio: Bluetooth, ZigBee, UART, JTAG a další

Ve světě internetu věcí se věci trochu komplikují, protože do hry vstupují bezdrátové protokoly a interní ladicí sběrnice . Analýza těchto kanálů umožňuje odhalit bezpečnostní nedostatky, závažná zranitelnosti nebo jednoduše implementační chyby.

Pro Bluetooth a BLE je jedním z klíčových zdrojů projekt Ubertooth , sada hardwaru a softwaru s otevřeným zdrojovým kódem, která umožňuje zachycovat a vkládat provoz jak klasického (Basic Rate) Bluetooth, tak i BLE. Zahrnuje anténu Ubertooth ONE (kterou si můžete koupit nebo si sami postavit) a nástroje pro Linux/macOS, které s ní komunikují, což vám umožňuje sniffovat, dekódovat a exportovat provoz . To zahrnuje podporu pro analýzu provozu pomocí Wiresharku prostřednictvím vestavěného pluginu BLE, který je k dispozici od relativně starších verzí.

Analýza provozu Bluetooth není triviální, protože protokol je složitý a spoléhá na frekvenční přeskakování a párování. Ubertooth však dodáván s rozsáhlou dokumentací, wiki a fóry , které pokrývají vše od základů protokolu až po praktické příklady zachycení a analýzy.

Pokud máte fyzický přístup k zařízení IoT, dalším nezbytným nástrojem je Attify Badge , malá víceúčelová deska pro interakci s UART, SPI, I2C, JTAG, GPIO a dalšími typickými rozhraními pro embedded hardware. S ní můžete sledovat provoz UART, získat root přístup přes sériovou konzoli, provádět výpisy paměti přes JTAG, manipulovat s piny GPIO a obecně mít legitimní zadní vrátka do elektroniky zařízení.

Pro sítě ZigBee a 802.15.4 je projekt KillerBee ekvivalentem Ubertoothu: softwarový framework (hlavně v Pythonu) a kompatibilní hardware (například Atmel RZ RAVEN USB Stick), který umožňuje zachycovat, vkládat a analyzovat provoz ZigBee , spouštět útoky typu denial-of-service, hlídat sítě domácí automatizace atd. s podporou generování paketů pomocí Scapy.

Abyste se vyhnuli potížím s instalací nástrojů a závislostí, je k dispozici také Attify OS , předkonfigurovaná distribuce založená na Ubuntu se vším, co potřebujete pro audit IoT: podpora pro Ubertooth, Attify Badge, KillerBee, GNU Radio, HackRF, JADx, IDA (pokud máte licenci), Firmware Analysis Toolkit pro emulaci firmwaru a mnoho dalšího. Nevýhodou je, že je distribuován jako virtualizovaný obraz (pro VMware, VirtualBox atd.), což může někdy komplikovat věci s USB passthrough, ale pro mnoho laboratoří je to velmi pohodlné a rychlé řešení pro nasazení.

Legalita, osvědčené postupy a doplňkové alternativy

Zachycení síťového nebo USB provozu je v dnešní době technicky jednoduché, ale je důležité si uvědomit, že ne všechno, co můžete udělat, je legální nebo eticky přijatelné . Například ve Španělsku není používání nástrojů, jako je Wireshark nebo fyzické sniffery, samo o sobě trestným činem, ale přístup k datům třetích stran, jejich zachycení nebo šíření bez jejich souhlasu spadá pod trestné činy odhalování a vyzrazování tajemství.

Abyste se ochránili, vždy se omezte na své vlastní sítě a zařízení nebo sítě a zařízení klientů, kteří vám k tomu dali výslovný písemný souhlas . Nikdy nevyužívejte otevřené sítě v kavárnách, na letištích ani u sousedů, abyste „zjistili, co se děje“. I když si myslíte, že „jen špehujete“, pokud se vaše snímky obrazovky obsahující hesla, zprávy nebo osobní údaje zachytí, vysvětlování toho později u soudu je mnohem složitější, než se zdá.

Dalším klíčovým bodem je, že zachycené soubory mohou obsahovat vysoce citlivé informace : přihlašovací údaje, interní provoz, metadata, klíče atd. Pokud se chystáte sdílet osobní data s třetí stranou, která vám pomůže s laděním, udělejte to pouze s někým, komu důvěřujete, co nejvíce anonymizujte data a pokud se jedná o šifrovaný provoz, nesdílejte soukromé klíče lehkovážně.

Pokud jde o alternativy a doplňkové nástroje, kromě již zmíněných (tcpdump, TShark, Zeek, Suricata, Fiddler, mitmproxy) existují řešení jako CloudShark (orientovaný na analýzu a sdílení zachycených dat přes web), SmartSniff pro Windows nebo vizuální prohlížeče jako EtherApe . Mnohé z nich fungují velmi dobře s Wiresharkem, protože sdílejí formát pcap, což umožňuje kombinovat možnosti zachycení dat v raw formátu některých nástrojů s jemnou analýzou jiných nástrojů.

Celý tento ekosystém – otevřené hardwarové USB sniffery, Wireshark a TShark, ladění ETW a USB 3.x ve Windows, ADB v Androidu, sériové nástroje pro průmyslové sběrnice, frameworky IoT jako Ubertooth nebo KillerBee a moderní analytické platformy – vám umožňuje přejít od „Nemám tušení, co se děje“ k „Vidím každý kousek, jak se hýbe, a vím, kde selhává ,“ a také pochopit, proč je přenos přes USB pomalý, i když by měl být.

jak povolit a zakázat USB porty
Související článek:
Jak povolit nebo zakázat porty USB ve Windows: kompletní podrobný návod

Přidat jako preferovaný zdroj v Googlu