Table of Contents
Tuttavia, sono notoriamente trascurati da una prospettiva di sicurezza. Molte organizzazioni spendono pesantemente sulla protezione dei server e delle postazioni di lavoro, lasciando le stampanti esposte alla stessa rete - spesso con credenziali di default, interfacce di gestione non crittografate e firmware obsoleti.
Comprensione di stampanti in rete
Le moderne stampanti in rete sono sistemi embedded essenzialmente specializzati, e funzionano con sistemi operativi completi (spesso Linux, VxWorks o ThreadX) e comunicano con protocolli di rete standard.
Protocolli e servizi comuni
Le stampanti tipicamente ascoltano su più porte e parlano diversi protocolli a strati di applicazione.
- HTTP/HTTPS (ports 80, 443)[ — Interfacce di gestione del Web utilizzate per la configurazione e il monitoraggio.
- IPP (Internet Printing Protocol) (ports 631, 443)[] — Protocollo di stampa moderno che supporta l'invio di posti di lavoro e le domande di stato.
- LPR/LPD (port 515)[] — Protocollo di demonio della stampante linea Legacy.
- SNMP (porti 161, 162)[] — Usato per la gestione e il monitoraggio, spesso con stringhe di comunità predefinite.
- FTP (port 21)[ — A volte abilitato per la consegna dei documenti scansionati.
- SMB (port 445)[ — Per la scansione della rete di Windows e la stampa diretta.
- Bonjour/mDNS (port 5353) — Riscoperta automatica sulle reti locali.
Ciascuno di questi protocolli può essere una superficie di attacco. Ad esempio, SNMPv1 e v2c usano una stringa comunitaria come password di testo chiaro; molte stampanti spediscono con stringhe di lettura "pubbliche" e "private" invariate. L'esposizione di tali servizi su Internet più ampio è comune: una rapida ricerca su Shodan rivela decine di migliaia di stampanti con interfacce web aperte e SNMP abilitato.
Sistema operativo firmware e incorporato
Il firmware della stampante viene memorizzato sulla memoria flash e spesso viene scaricato dal sito di supporto del fornitore. Il firmware include solitamente il core OS (ad esempio, un kernel Linux a righe con BusyBox), driver della stampante, server web e codice di applicazione proprietario. Alcuni produttori utilizzano componenti open source (come il codice licenza GPL) e possono fornire download di origine — una miniera d'oro per trovare vulnerabilità.
Il profilo del rischio
I ricercatori di sicurezza hanno ripetutamente dimostrato che le stampanti sono il collegamento più debole. Esempi di alto profilo includono la backdoor del firmware HP LaserJet 2017, la stampante Canon 2018 backdoor SSH, e numerosi CVE relativi ai overflow del buffer nella parasing IPP. Gli aggressori possono sfruttare le stampanti per mantenere la persistenza, i documenti stampati esfiltrati, o pivot per altri asset di rete.
Preparazione per l'ingegneria inversa
Prima di toccare qualsiasi hardware o rete, è necessario stabilire un ambiente sicuro e legale. L'ingegneria inversa senza autorizzazione esplicita è illegale in base a leggi come la Computer Fraud and Abuse Act (CFAA) negli Stati Uniti e leggi simili in tutto il mondo.
Quadro giuridico ed etico
Se scopri una vulnerabilità, segnalalo al venditore e dagli una linea temporale ragionevole (di solito 90 giorni) prima del rilascio pubblico. Non sfruttare le vulnerabilità sulle reti di produzione. Per le impostazioni educative, utilizzare vecchi dispositivi che non sono più supportati o considerano le stampanti virtuali (ad esempio, eseguire una simulazione della stampante in una VM). L'obiettivo è quello di imparare e migliorare la sicurezza, non causare danni.
Impostazione di un ambiente di laboratorio
Per monitorare il traffico, utilizzare un commutatore gestito o collegare la stampante a un computer che esegue Wireshark. Il laboratorio dovrebbe includere:
- Una stampante di destinazione (preferibilmente una che possiedi o hai il permesso esplicito di testare).
- Un computer portatile o desktop che esegue Kali Linux o una distribuzione simile di test di penetrazione.
- VLAN isolato o interruttore fisico per evitare perdite.
- Strumenti installati: nmap, Wireshark, Binwalk, Firmware Mod Kit, Netcat, curl, un framework fuzzing (Boofuzz o AFL), e una copia del firmware.
Informazioni iniziali Riunire
Identificare la versione del modello e del firmware. Molte stampanti ospitano una pagina di stato accessibile dal pannello frontale che mostra l'indirizzo IP, la versione firmware e i servizi configurati. Utilizzare per eseguire la scansione delle porte aperte e delle versioni di servizio. Prestare attenzione alle porte insolite (ad esempio, 9100 per la stampa grezzo, 9101 ecc.).
Processo di ingegneria inversa passo-passo
Ora si rompe il processo di reverse engineering in passi discreti e ripetibili, mentre ogni stampante è diversa, la metodologia rimane coerente.
Passo 1: Riconnunzia e Enumerazione dei Servizi
Usa script come e . Per SNMP, eseguire per scaricare l'intero MIB. Le stringhe SNMP Default spesso rivelano dettagli di sistema (sysDescr, sysContact, versione firmware). Inoltre, eseguire una scansione completa TCP e UDP critica
Fase 2: Analisi dell'interfaccia Web
Provare le credenziali di default: , , , o lasciare il campo password vuoto. Per molti marchi (HP, Brother, Canon), una semplice ricerca di “default login” rese list. Una volta effettuato il login, esplorare ogni pagina: impostazioni, URL, networking, e gestione utente.
Passo 3: Cattura e analisi del traffico di rete
Utilizzare Wireshark (o tcpdump) per catturare il traffico mentre si interagisce con la stampante. Eseguire operazioni tipiche: stampare una pagina di test, accedere all'interfaccia web, inviare una query SNMP, o eseguire la scansione di un documento a una cartella condivisa.
Prestare particolare attenzione al protocollo IPP: l'invio di un lavoro può includere comandi della stampante. Alcune stampanti supportano PostScript o PJL (Printer Job Language) che permettono la manipolazione diretta del file system della stampante.
Passo 4: Analisi firmware
[LTT] Per estrarre il filesystem ] ]] per estrarre il filesystem. I formati del firmware comuni includono squashfs, cramfs, o jffs2. Se binwalk non riesce a identificare il filesystem, cercare byte magiche e provare l'estrazione manuale con .
Per un'analisi più avanzata, caricare il firmware in uno smontaggio come Ghidra o IDA Pro. Cercare copie buffer che non hanno limiti di controllo (ad esempio ], ]]).
Fase 5: Protocollo Fuzzing
Utilizzare un framework come Boofuzz (Python) per generare casi di test per protocolli sconosciuti o poco implementati. Inizia con attributi IPP, PDU SNMP o dati di stampa raw. Eseguire il fuzzer nel tuo laboratorio isolato e monitorare la reattività della stampante (se si blocca o si riavvia, è probabile che si trova un bug).
Fase 6: Documentazione e segnalazione di vulnerabilità
Quando si identifica una vulnerabilità — se si tratta di una password predefinita, un overflow buffer, o un difetto XSS — documentarlo a fondo. Includere i passaggi esatti da riprodurre, la versione del firmware interessato, l'impatto (ad esempio, l'esecuzione del codice remoto, la negazione del servizio, il furto delle credenziali), e una correzione proposta.
Vulnerabilità comuni nelle stampanti in rete
Attraverso l'ingegneria inversa, i ricercatori trovano costantemente le stesse classi di vulnerabilità, comprendendo questi modelli accelera la propria analisi.
Credenziali di default e deboli
Secondo il rapporto 2021 Shodan sui servizi di stampa, oltre il 60% delle stampanti a vista ancora utilizzano stringhe di comunità SNMP di default. Le interfacce web spesso spediscono senza password o una password backdoor universale (ad esempio, Canon “admin” con password vuota).
Traffico di gestione non crittografato
Anche quando HTTPS è abilitato, molte stampanti permettono di fallback a HTTP. Vecchi certificati, intestazioni HSTS mancanti e versioni TLS codificate in modo rigido (SSLv3) rendono l'intercettazione banale.
Portaoggetti per il montaggio
Nel 2017, un ricercatore ha scoperto che le stampanti HP LaserJet avevano un comando di debug nascosto che potrebbe essere attivato inviando un comando PostScript specifico ([[]]). Tali backdoor sono spesso lasciate dallo sviluppo e non sono mai state rimosse.
Protocolli di insicurezza
SNMPv1/v2c, FTP e Telnet sono frequentemente abilitati, poiché questi protocolli non hanno crittografia, un attaccante sulla stessa rete può catturare le credenziali o modificare la configurazione della stampante.
Corruzione di memoria in Stack/Padding
Poiché molte stampanti usano il codice C e non hanno pratiche di sicurezza della memoria, i flussi di buffer nella parsing dell'attributo IPP sono comuni.
Strumenti e tecniche
Di seguito è riportato un elenco consolidato di strumenti essenziali per ogni fase di reverse engineering una stampante in rete.
- Reconnasance di rete:[] []Nmap[] (con script), Wireshark[], ]Shodan per la scansione su Internet.
- Web Interface:[] Burp Suite o OWASP ZAP per l'intercettazione e la fuzzing; strumenti per lo sviluppo del browser per la scoperta dei parametri.
- Analisi dei file:[ ]Binwalk[], Firmware Mod Kit, Ghidra] per l'analisi statica.
- Protocol Fuzzing:[ Boofuzz, AFL (con imbracatura per i protocolli basati su file), Peach Fuzzer.
- Debugging:[[] JTAG/SWD se è disponibile l'accesso fisico; la console seriale UART spesso espone la shell all'avvio.
- PostScript/PJL Comandi:[] Semplici sessioni netcat alla porta 9100 — test ] o comandi di elenco directory.
Documenta tutti i comandi e le uscite per la riproducibilità. Molti di questi strumenti hanno curve di apprendimento; fai riferimento alla loro documentazione e forum della comunità.
Strategie di mitigazione e difesa
La comprensione delle vulnerabilità è solo la metà della battaglia. Educatori e amministratori di rete possono implementare le seguenti difese basate su risultati di reverse engineering.
Indurimento della stampante
Disattivare i servizi inutilizzati (Telnet, FTP, SNMP se non necessario). Se SNMP deve essere utilizzato, eseguire l'aggiornamento a SNMPv3 con crittografia e autenticazione.
Segmentazione di rete
Bloccare l'accesso a Internet in uscita dalle stampanti (non hanno bisogno di telefonare a casa). Utilizzare ACL per consentire solo il traffico di stampa (ad esempio, IPP da server di stampa, la stampa grezza da client autorizzati).
Aggiornamenti firmware regolari
I fornitori rilasciano patch per le vulnerabilità note. Iscriviti ai bollettini di sicurezza del fornitore e applica gli aggiornamenti tempestivamente. Tuttavia, essere consapevoli che il nuovo firmware può reintrodurre bug; controllare sempre il changelog e testare in un primo laboratorio.
Monitoraggio e verifica
Attivare l'accesso alla stampante (se supportato) e inviare i log a un SIEM. Guarda per attività insolite: ripetuti errori di login, scansioni di porte inaspettate, trasferimenti di dati di grandi dimensioni. La scansione di vulnerabilità regolare con strumenti come Nessus o OpenVAS può individuare le configurazioni e porte aperte.
Conclusioni
Inversare l'ingegneria una stampante in rete è un esercizio educativo gratificante che collega sistemi incorporati, sicurezza della rete e analisi software. Seguire la metodologia sistematica qui delineata - dalla ricognizione attraverso l'analisi del firmware e la fusione - è possibile scoprire gli stessi tipi di vulnerabilità che i ricercatori di sicurezza professionale trovano. Ricorda che l'obiettivo finale è quello di migliorare la sicurezza, non sfruttare le debolezze.