Ho affidato il mio nuovo PC a un agente AI

Nel post precedente ho scritto che gli agenti vivono a proprio agio in un ecosistema fatto di shell, comandi testuali, file di testo, ssh, ecc. Un ecosistema che sui sistemi operativi Unix-like esiste da sempre.

Ieri ho deciso di sfruttare questa capacità per far installare Linux sul nuovo portatile, da zero, direttamente a OpenCode e GPT-5.5. Un po’ come esperimento, un po’ perché sono più che mai sommerso dal lavoro in quanto “l’AI ci farà lavorare meno” è una promessa che in termini assoluti ancora non è stata mantenuta.

Normalmente quando installo i sistemi tengo traccia, in un diario testuale che potrebbe tornarmi utile in futuro, di cosa ho fatto di diverso rispetto alla configurazione di default. Ma questo, se ci pensate è proprio il compito perfetto per un agente.

Da diversi anni uso Ubuntu Desktop LTS sul mio portatile. Distro comoda, stabile, ma essendo una long-term-support non ha le ultime novità che invece potrebbero servire su questa nuova macchina (Ryzen AI MAX+), inoltre la procedura di installazione standard è grafica e interattiva e gli agenti AI odiano il mouse e le interfacce colorate!

Spazio ad Arch Linux quindi, che è una distribuzione molto più da smanettoni, che si costruisce a piccoli pezzettini e configurazioni personalizzate tutta da terminale. Un paradigma che avrei amato in gioventù, infatti usavo Gentoo, ma che ora sarebbe incompatibile con il mio tempo libero… se non ci fossero gli agenti!

Ho deciso di non toccare praticamente nulla se non avviare la live e dare accesso all’agente, poi ho lasciato fare a GPT-5.5.

Un sysadmin alieno

Ho avviato il portatile dalla live image di Arch, quindi, impostato una password temporanea e avviato ssh per poter far connettere l’agente (OpenCode) che attendeva sul mio pc. Poiché ero curioso di vedere realtime cosa combinasse, ho avviato una sessione tmux condivisa e gli ho detto di usarla. In questo modo potevo osservare il portatile fare cose senza che nessuno lo toccasse, ed è stato bellissimo.

L’accordo era semplice: lui lavora, io guardo. Un po’ come affiancare una risorsa junior durante il suo primo deployment in produzione. Solo che lo junior non era umano e, soprattutto, non era per niente junior!

Gli ho solo comunicato il mio desiderata: voglio il disco cifrato, voglio la sospensione, ecc. Niente tutorial step by step, niente lista di comandi, niente “esegui questo”.

La parte interessante non è che sia riuscito a installare Arch Linux, era abbastanza scontato, ma è stato interessante guardarlo a lavoro, guardarlo fallire, controllare la documentazione, l’output dei comandi, correggersi da solo, ecc.

Esattamente come farebbe un amministratore di sistema che si trova davanti a un sistema che non ha mai visto prima, con la differenza che l’agente esegue questo processo con una pazienza e una dedizione che nessun essere umano possiede.

Non è la prima volta che uso gli agenti per fare cose sui sistemi, anzi, ma è la prima volta che li faccio lavorare su un computer vergine. Inoltre, è la prima volta in cui ho sperimentato la sessione condivisa con tmux e devo dire che è molto comoda.

La documentazione che nessuno scrive

Una volta completata l’installazione gli ho chiesto un’ultima cosa. Generare un file REPORT.md che spiegasse cosa era stato fatto, perché e come ripetere il processo da zero.

Gli agenti non sono utili solo perché fanno il lavoro. Sono utili perché possono documentarlo mentre lo fanno.

Se siete curiosi il report che alla fine ha prodotto è sul wiki di LILIS, Laboratorio per l’informatica libera sannita.

Disclaimer

Questa è una cosa pericolosa. Oltre all’indeterminismo del risultato, in caso di Prompt Injection in qualche ricerca web, l’agente potrebbe installarti un malware. Niente paranoie, ma sii consapevole.

Il prompt utilizzato

# Installazione Arch Linux su un ASUS ProArt PX13 

## GOAL

Devi installare Arch Linux su un ASUS ProArt PX13 HN7306EAC-LX084W (variante HN7306EA), con:
- CPU: AMD Ryzen AI MAX+ 395
- GPU: AMD Strix Halo Radeon 8060S
- RAM: 128 GB LPDDR5X condivisa
- Disco: circa 1.8 TiB NVMe
- Display: 13.3" 3K OLED touch
- Wi-Fi: Wi-Fi 7
- Uso previsto: workstation quotidiana + IA locale con modelli LLM grandi
- Requisito importante: ibernazione supportata e full disk encryption
- Ho disattivato Secure Boot e Fast Boot nel bios

Il portatile è avviato con la ISO Arch con kernel 7.0.10-arch1. Si bloccava al boot, ma aggiungendo `nomodeset` alla riga kernel della ISO sono arrivato al login/root shell.

Il disco è /dev/nvme0n1
- Prevedi una partizione EFI da 1 GiB per /boot
- Poi LUKS sul resto del disco per il full disk encryption
- Dentro luks aggiungi lvm con 2 logical volumes: swap (da 160 GiB per supportare ibernazione) e root per brtfs
- Dentro brtfs pensavo ai seguenti subvolumi:
@          /
@home      /home
@snapshots /.snapshots
@models    /srv/models (dove scaricherò i modelli llm, file di grandi dimensioni)
@pkg       /var/cache/pacman/pkg
@varlog    /var/log

Motivazione:
- Voglio LUKS per cifrare l'intero sistema e swap.
- LVM dentro LUKS per avere swap cifrata dedicata e semplice da usare con ibernazione.
- Btrfs per root e dati, perché voglio snapshot, rollback e subvolumi senza partizioni rigide.

Per brtfs che opzioni consiglieresti?

Kernel da installare:
linux-lts
linux-lts-headers
linux
linux-headers
linux-firmware
amd-ucode

Idea di boot:
- linux-lts installato come kernel secondario di emergenza
- linux come default iniziale
- il bootloader deve supportare il layout scelto (luks + lvm + resume da swap)


## IMPORTANTE

- Devi installare il sistema operativo collegandoti in SSH al portatile con `ssh [email protected]` e usare la password `install`.
- Prima di dare ogni comando devi utilizzare una sessione tmux già esistente, puoi agganciarti con `tmux attach -t install`
- NON devi inviare comandi se prima non sei dentro la sessione tmux.
- NON distruggere mai la sessione tmux

## TRACCIAMENTO ATTIVITÀ

Inizializza AGENTS.md con le istruzioni che possono servirti in caso di nuova sessione. Traccia, inoltre, nello stesso file qualsiasi cosa ti sia utile o risultato di una decisione.

Fastweb, modem libero e il marketing dell’ignoranza

Questo post illustra come configurare correttamente il tuo router su rete Fastweb, sia in IPv4 che in IPv6. Io uso un Mikrotik 5009UG+S+ ma i concetti sono trasportabili a qualsiasi macchina supporti le tecnologie utilizzate.

Ma prima, alcune riflessioni sul marketing dell’ignoranza.

Terminazione GPON di Fibercop appena collaudata sotto casa. È qui che inizia questa storia, con un passaggio di consegne tra la vecchia FTTCab e la nuova FTTH.

Per evitare problemi, il giorno prima dell’appuntamento, ho passato io stesso la sonda da elettricista dall’androne fino al mio rack. Un gesto non dovuto, ma comunque necessario per evitare che il tecnico terminasse la fibra appena dentro casa.

Appena i tecnici hanno finito, ho fatto accesso al router. Sapevo che avrei imprecato, e infatti: Bio Parco!

Il sistema mi chiede di premere due pulsanti entro 20 secondi. Corro nello stanzino, apro la scala, premo, scendo, torno al PC. Ventidue secondi. Fallito.

Al secondo tentativo, con il cuore che batte per l’assurdità del gesto, entro e provo a configurare quello che oggi, con un termine che nasconde l’ignoranza tecnica sotto un velo di modernità, è chiamato DMZ ma che resta un NAT 1:1.

“Senza restrizioni”, dice la descrizione. Eppure non posso nemmeno lasciarmi martellare la porta 22 da un bot cinese per puro diletto. Così ho staccato tutto e ho collegato l’ONT direttamente al mio Mikrotik 5009, gettando via quella scatola del piacere per scimmie allo zoo chiamata “Fastgate”.

Il marketing dell’ignoranza

Capitolo 1: Vogliamo WiFi! (cit.)

Ovvero: quando Bello Figo diventa il direttore marketing di tutti gli ISP italiani mainstream: https://www.youtube.com/watch?v=aR7EK2cYnPk

Viviamo in un’era dove tutto è “WiFi”. Da Sky a TIM, ogni offerta ha perso il contatto con la realtà fisica dei cavi e dell’infrastruttura per abbracciare un’astrazione commerciale che si adatta a un popolo che non vuole più capire.

https://www.youtube.com/watch?v=9oIDAeXqkH0

Ho sentito ragazzi in età universitaria parlare di “abbonamento al wifi”, come se l’infrastruttura fosse svanita nell’etere. È una semplificazione che uccide la cultura tecnica, trasformandola in una melassa indistinguibile.

Capitolo 2: admin:admin

E poi c’è la questione dei due pulsantini. Una scelta “passwordless” che è, tecnicamente parlando, una cagata pazzesca. È scomoda coma la carta igienica da un velo fatta di carta riciclata, ma è soprattutto pericolosa.

Immaginate una festa a casa vostra, la password del WiFi che gira come figurine Panini negli anni ’90. Un amico di amici, quello bravo col computer, con un’App colorata scaricata dall’app store, fa una scansione di rete e vi becca l’NVR delle telecamere di videosorveglianza. Mentre siete distratti a ridere, lui si avvicina al modem e preme quei maledetti tasti per tre secondi. In un istante è dentro. Si configura un port-forwarding verso l’NVR e torna da voi al barbecue, a mangiare salsicce e a chiedervi del vostro cane.

Torna a casa, vi bruteforza la password delle telecamere che, se non è admin o 123456 è quasi certamente il nome di quella bestiola che gli avete presentato. A questo punto la vostra vita privata è su internet. Grazie anche ai pulsantini di Fastweb!

Capitolo 3: Devo andare a prendere Bubba!

Il NAT 1:1 (o 1:1 Network Address Translation) si limita a mappare un indirizzo IP pubblico su uno privato, mantenendo l’esatta corrispondenza dei numeri di porta. È quella funzionalità che nei router casalinghi viene spacciata per “DMZ” solo per dare un nome altisonante a un’operazione di sostituzione di indirizzi dai pacchetti in transito. Evidentemente NAT gli stava sul cazzo.

La vera DMZ (Demilitarized Zone), invece, è una sottorete ben precisa di un firewall, esposta su internet ma rigorosamente isolata dalle altre reti interne. È un’architettura di sicurezza, non una semplice regola di traduzione indirizzi. Non è la funzionalità del vostro modem. Ma allora perché la chiamano DMZ? Forse per quell’abitudine tutta moderna di usare parole grandi per coprire realtà piccole, o forse perché nel marketing dell’ignoranza la precisione è un rumore di fondo che disturba il messaggio.

Capitolo 4: L’eutanasia della curiosità

Perché abbiamo smesso di pretendere la precisione? Forse perché è più comodo affogare in un’interfaccia colorata che guardare nell’abisso della configurazione. Ci siamo arresi a una fruizione passiva, un’esistenza dove capire è diventato un optional trascurabile.

Il RANT è finito.

Liberiamo il router

La delibera AGCOM n. 348/18/CONS (in vigore dal 31 dicembre 2018) sancisce il diritto in Italia del modem libero. Gli utenti possono scegliere e utilizzare un modem/router alternativo a quello fornito dall’operatore, senza costi aggiuntivi, penali o discriminazioni tecniche, garantendo la libera scelta dell’apparecchiatura terminale.

La delibera AGCOM 348/18/CONS sancisce il diritto al modem libero. Una su mille l’hanno azzeccata.

La documentazione ufficiale di Fastweb è volutamente caotica: il loro interesse è tenervi legati al loro router per semplicità di gestione. Dicono che con il modem libero non sarà possibile usare l’IPv6.
Cito: “Nel caso di utilizzo di un modem-router non fornito da Fastweb non sarà possibile usufruire dei […] servizi aggiuntivi specializzati Fastweb previsti dall’offerta, quali ad esempio il servizio IPV6.”
Ovviamente non è un limite tecnico assoluto; dipende da quanto è evoluto il vostro router. Infatti, lo configuriamo.

IPv4

Sniffando il traffico tra ONT e router si vedono le VLAN 200 e 835. La 835 è quella che ci interessa. Fastweb usa l’autenticazione IPoE con mac-address invece del classico tunnel PPPoE. IPoE non ha bisogno di credenziali per ogni cliente e non mangia MTU con l’incapsulamento.

Per prima cosa bisogna clonare il mac-address della WAN del router ufficiale. Non serve fare M-i-t-M tra router e ONT, basta osservare il traffico con Wireshark perché l’interfaccia non è silente:

  • c’è del traffico IEEE-1905 untagged (un errore di configurazione loro, secondo me, perché credo che questo traffico debba esistere solamente lato LAN, si saranno scordati di mettere una bella policy tagged-only)
  • c’è DHCP Discover sulla VLAN 835
  • c’è ICMPv6 Neighbor Solicitation sulla VLAN 200

Preso il mac-address, lo assegniamo all’interfaccia WAN e creiamo una VLAN figlia con ID 835, affiancandoci un DHCP Client. Fine. Abbiamo IPv4 con MTU pieno a 1500.

/interface vlan
  add interface=ether1 name=vlan835 vlan-id=835
/ip dhcp-client
  add interface=vlan835

IPv6

Ho visto provider che hanno dual-stack sia su PPPoE che IPoE, probabimente dipende dal segmento della rete GPON su cui siete e non tanto dal provider.
Nel mio caso il servizio nativo è solo IPv4.

Per avere IPV6 bisogna quindi fare un tunnel 6rd (IPv6 Rapid Deployment) che è una estensione del 6to4. Si tratta di incapsulamento, che mangia 20 byte di overhead (la dimensione dell’header IPv4). L’MTU della connettività IPv6 sarà quindi 1480 (1500-20).

Alcune caratteristiche di un tunnel 6rd:

  • Setta il flag del protocollo IPv4 a 41 come 6to4
  • 6to4 utilizza il prefisso riservato 2002::/16, mentre 6rd utilizza un prefisso dell’ISP, quello di Fastweb è 2001:b07::/32. L’indirizzo IPv6 viene ricavato incorporando l’indirizzo IPv4 in notazione esadecimale, aggiungendo il suffisso ::2 e chiaramente il prefix /64 che è l’unità minima routabile in IPv6.
  • 2001:b07::/32 fa parte di 2000::/3, ovvero gli indirizzi Global Unicast assegnati dai vari registri (RIPE, ARIN, ecc.) per il traffico IPv6 nativo.
  • L’endpoint del tunnel 6rd di Fastweb è 81.208.50.214 che poi farà da Relay Router sulla rete IPv6 nativa.
   6rd specifies a protocol mechanism to deploy IPv6 to sites via a
   service provider's (SP's) IPv4 network.  It builds on 6to4 [RFC3056],
   with the key differentiator that it utilizes an SP's own IPv6 address
   prefix rather than a well-known prefix (2002::/16).  By using the
   SP's IPv6 prefix, the operational domain of 6rd is limited to the SP
   network and is under its direct control.  From the perspective of
   customer sites and the IPv6 Internet at large, the IPv6 service
   provided is equivalent to native IPv6.

A differenza di un 6to4, l’indirizzo di un 6rd fa sembrare il traffico IPv6 nativo.

Per calcolare la /64 si converte l’IPv4 in esadecimale. Esempio: 10.11.12.13 diventa 0A0B:0C0D. L’indirizzo sarà 2001:b07:0a0b:0c0d::2/64.

/interface 6to4
  add mtu=1480 name=6rd-fastweb remote-address=81.208.50.214
/ipv6 address
  add address=2001:b07:OMISSIS:OMISSIS::2 advertise=no interface=6rd-fastweb

Per vostra curiosità, questo è il contenuto del frame che sta trasmettendo quel ping:

  • 15 byte di header Ethernet
  • 4 byte di vlan
  • 20 byte di header IPv4
  • 40 byte di header IPv6
  • 16 byte di ICMPv6

MTU

Mentre l’MTU è standardizzato dagli RFC 791 (IPv4) e RFC 8200 (IPv6) come la somma dell’header IP + Dati, l’L2MTU non lo è.

In Mikrotik, l’L2MTU non tiene conto dei 14 byte dell’header Ethernet, mentre il Full Frame MTU rappresenta la lunghezza reale sul cavo. Altri vendor inglobano i 14 byte dell’header L2 nel conteggio, altri ancora includono pure i 4 byte di checksum, ecc.

Considerando la massima dimensione del pacchetto IPv6 a 1480 abbiamo:

  • IPv6 MTU (1480): IPv6 (40 byte) + Data: (1440)
  • IPv4 MTU (1500): IPv4 (20 byte) + IPv6 (40 byte) + Data: (1440)
  • L2MTU (1504): Vlan (4 byte) + IPv4 (20 byte) + IPv6 (40 byte) + Data: (1440)
  • FullFrame MTU (1518): Ethernet (14 byte) + Vlan (4 byte) + IPv4 (20 byte) + IPv6 (40 byte) + Data: (1440)

Per IPv4:

  • IPv4 MTU (1500): IPv4 (20 byte) + Data: (1480)
  • L2MTU (1504): Vlan (4 byte) + IPv4 (20 byte) + Data: (1480)
  • FullFrame MTU (1518): Ethernet (14 byte) + Vlan (4 byte) + IPv4 (20 byte) + Data: (1480)

L’L2MTU impostato di default sul mio modello è 1514 (configurabile fino a un massimo di 9796) ed è sufficiente in quanto 1514 >= 1504.

Enjoy!

Vibe Reverser – A reverse engineer AI agent

Non importa se funziona, l’importante è che il vibe sia giusto!

L’idea è semplice: dentro un container Docker, l’agente si installa da solo tutto l’arsenale da vero reverse engineer, da radare2 a gdb, passando per binwalk, xxd e compagnia bella.

Poi prendi un binario, gli dici “ehi, analizza questo e dimmi come non farlo esplodere”, e lui inizia a produrre disassemblati, log e perfino un report PDF bello pronto. Perfetto da mostrare al capo oppure da usare per fare colpo con studentesse e studenti di ingegneria informatica.

Crack me, baby!

Per testare questa meraviglia gli ho fatto affrontare diverse challenge di crack-me. Spoiler: se l’è cavata niente male!

Prendiamo il classico esercizio della “bomba” da disinnescare.

Abbiamo un binario ELF strippato, quindi senza simboli di debug (già qui lo studente medio di ingegneria inizia a deprimersi), che quando lo lanci esplode subito con un bel messaggio: “Sono esploso!”. L’obiettivo? Farlo sopravvivere.

Ovviamente ci sono vari modi per riuscirci, ma la challenge chiede esplicitamente di non fare binary patching, ovvero di non girare i salti condizionali (JE , JNE, ecc). Quindi diciamo alla nostra creatura di non farlo. Bisognerà trovare una strada diversa, trovare una password, fare lib preloading, ecc, ma noi non gli diciamo niente di tutto ciò e lasciamo che trovi la sua strada (per l’inferno).

Avviamo l’agente dicendogli semplicemente:

Analyze the target file ./target/bingus and find a way to prevent it from exploding without a binary-patch.

Il fascino del caos incontrollato

A questo punto lui parte: tribola, disassembla, riflette e vomita a schermo tutto il vibe possibile, fino a mettere insieme la soluzione. Il tutto condito con un bel report ordinato.

Nel report ci rivela che la soluzione è lanciare il programma passandogli un parametro “pp” per non farlo esplodere, ed effettivamente è così.

Bello vero?

Se vuoi provarlo, trovi tutto sul mio GitHub. Prima di avviarlo leggiti il README, soprattutto il paragrafo “SECURITY”. Oppure fregatene: tanto lo sai già, l’importante è che il vibe sia giusto!

Usage of TLS in DDNS Services leads to Information Disclosure in Multiple Vendors

Impatto sulla sicurezza relativo all’utilizzo di TLS con i servizi di Dynamic DNS (DDNS) proprietari dei vendor.

I published the original advisory, in English, @ USH – a beautiful place.

Scenario di rischio

L’utilizzo dei servizi Dynamic DNS (DDNS) integrati nelle appliance, ovvero quelli messi a disposizione direttamente dai produttori come Fortinet o QNAP, comporta un impatto sulla sicurezza in quanto il loro utilizzo si ripercuote su una maggiore superficie di attacco identificabile da un attaccante.

Attraverso questa breve analisi, si intende dimostrare come l’implementazione di tale servizio su una rete influisca sulla sua sicurezza creando un’opportunità per un attaccante di sfruttare eventuali vulnerabilità.

Introduzione a TLS e Certificate Transparency Log

La sicurezza delle comunicazioni su Internet è essenziale per garantire la confidenzialità e l’integrità delle informazioni scambiate tra utenti e siti web.
Uno strumento fondamentale per implementare questa sicurezza è rappresentato dai certificati X.509 e dal protocollo TLS, tecnologie che consentono di stabilire connessioni crittografate e autenticate.

Il Certificate Transparency (CT) è un meccanismo progettato per migliorare la sicurezza e la trasparenza nell’emissione dei certificati SSL, consentendo a terze parti di monitorare e verificare il processo di certificazione.

Il Certificate Transparency Log è un registro pubblico e immutabile di tutti i certificati emessi da una Certification Authority (CA). Questo registro fornisce un meccanismo trasparente per monitorare e verificare l’emissione dei certificati, consentendo di individuare e mitigare potenziali minacce alla sicurezza, come l’emissione di certificati fraudolenti.

Il funzionamento del Certificate Transparency Log può essere riassunto nei seguenti passaggi:

  1. Richiesta di Certificato SSL: Un sito web richiede un certificato SSL a una Certification Authority (CA).
  2. Emissione del Certificato SSL: La CA emette un certificato SSL.
  3. Registrazione nel Certificate Transparency Log: Il certificato emesso viene registrato nel Certificate Transparency Log insieme ad altre informazioni pertinenti, come il nome del dominio, la data e l’ora di emissione e altri dettagli.

Nonostante il Certificate Transparency Log sia stato progettato per migliorare la sicurezza e la trasparenza, la sua stessa natura pubblica può comportare rischi di Information Disclosure.

Di fatto, non è una novità che gli attaccanti abusino del Certificate Transparency Log per individuare sotto-domini e ampliare in questo modo la superficie di attacco e, di conseguenza, la possibilità di fare breccia nell’azienda target.

Introduzione a DDNS (Dynamic-DNS)

Dynamic Domain Name System (Dynamic DNS o DDNS) è una tecnologia che consente agli utenti di associare un Fully Qualified Domain Name (FQDN) a un indirizzo IP che può cambiare nel tempo.
Il processo coinvolge due elementi principali: un client DDNS installato sul dispositivo che si desidera rendere accessibile e un server DDNS gestito da un provider di servizi.

Sebbene questo tipo di tecnologia non sia consigliata per l’uso in ambienti SMB (Small and Medium Business) o Enterprise, è molto popolare in ambienti SOHO (Small Office/Home Office). Infatti, un numero crescente di fornitori sta integrando questo servizio nelle proprie appliance.

Mass-Exploitation

L’ultilizzo combinato delle due tecnologie, ovvero richiedere un certificato SSL per un FQDN associato a un dominio DDNS di un determinato vendor, può creare un problema relativo allo sfruttamento massivo di vulnerabilità.

Si pensi ad esempio a un produttore di firewall “ACME Inc.” che offra il suo servizio DDNS sul dominio “acme-firewall.com”.
In caso di vulnerabilità su questo firewall, un attaccante può sfruttare il log della Certificate Transparency per individuare target vulnerabili semplicemente cercando tutti i sotto-domini di “acme-firewall.com” e compromettere massivamente migliaia di dispositivi esposti.

Fortinet

FortiNet nei prodotti firewall FortiGate, ha introdotto il servizio “FortiGuard DDNS” che, oltre ad agevolare il setup di sistemi VPN in assenza di IP statico, di fatto incoraggia l’esposizione ad internet dell’interfaccia amministrativa dell’appliance.

Il servizio FortiGuard DDNS utilizza tre domini di proprietà di FortiNet: fortiddns.com, fortidyndns.com, float-zone.com, e integra un client ACME per la generazione automatica dei certificati SSL tramite Let’s Encrypt.

Interrogando un servizio di Certificate Transparency Log per il dominio fortiddns.com un attaccante può venire a conoscenza di oltre 2300 potenziali target a cui è stato rilasciato di recente un certificato per fortiddns.com (risultati filtrati per certificati non ancora scaduti). Il servizio usato per questo esempio ha troncato i risultati per la presenza di troppe entry corrispondenti alla query di ricerca, questo significa che in realtà i potenziali target sono molti di più.

Su Shodan invece sono indicizzati ben 7968 target per lo stesso dominio. La quasi totalità degli host è stata indicizzata tramite il campo “Common Name” del certificato SSL.

QNAP

QNAP dispone del servizio “myQNAPcloud” per semplificare l’accesso remoto ai propri prodotti NAS.
Anche in questo caso, il produttore incoraggia di fatto l’esposizione ad internet dell’appliance tramite tale servizio che utilizza il DDNS proprietario myqnapcloud.com.

Il servizio di Certificate Transparency Log interrogato restituisce oltre 4400 potenziali target, anche in questo caso i risultati di ricerca sono troncati.

Shodan restituisce 39027 target, anche in questo caso indicizzati tramite il campo “Common Name” del certificato SSL.

Mikrotik

Anche Mikrotik, produttore di router e switch, dispone di un servizio DDNS sul dominio sn.mynetname.net e integra un client ACME sulle loro appliance.
Il sotto-dominio generato dal servizio è composto dal numero seriale dell’appliance (che corrisponde al MAC address della prima interfaccia di rete), esempio: serialnumber.sn.mynetname.net.

L’FQDN generato dal servizio è composto dal numero seriale dell’appliance (che corrisponde al MAC address della prima interfaccia di rete), esempio: serialnumber.sn.mynetname.net.

Il servizio di Certificate Transparency Log interrogato restituisce oltre 1300 potenziali target, anche in questo caso i risultati di ricerca sono troncati.

Shodan invece restituisce 3885 target indicizzati per Common Name.

Conclusioni

Anche se l’utilizzo di DDNS non implica automaticamente l’esposizione ad internet di interfacce amministrative e servizi, di fatto ne incoraggia la pratica.
Ad ogni modo, quando utilizzato in concomitanza con un client ACME che genera automaticamente un certificato X.509 sul dominio DDNS, si viene a creare automaticamente un problema di Information Disclosure.

Pertanto, è fondamentale che i produttori comunichino chiaramente agli utenti questi potenziali rischi per la sicurezza, sottolineando l’importanza di una configurazione prudente.