<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Threat Modeling on My personal blog</title>
        <link>https://www.matteobianchi.eu/tags/threat-modeling/</link>
        <description>Recent content in Threat Modeling on My personal blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Tue, 28 Jul 2026 09:00:00 +0200</lastBuildDate><atom:link href="https://www.matteobianchi.eu/tags/threat-modeling/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Network Security dal cavo in su: la roadmap</title>
        <link>https://www.matteobianchi.eu/p/network-security-roadmap/</link>
        <pubDate>Tue, 21 Jul 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/network-security-roadmap/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/network-security-roadmap/cover.png" alt="Featured image of post Network Security dal cavo in su: la roadmap" /&gt;&lt;h2 id=&#34;perché-una-serie-e-perché-dal-cavo-in-su&#34;&gt;Perché una serie, e perché &amp;ldquo;dal cavo in su&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Sulla sicurezza delle reti si trovano due tipi di materiale: guide molto teoriche, che elencano
acronimi senza mai mostrare un pacchetto, e tutorial che spiegano come lanciare uno strumento
senza dire perché funziona. Questa serie prova a stare in mezzo.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;idea è semplice: partire dal livello più basso, il cavo e lo switch, e salire uno strato alla volta
fino a TLS e DNS. Per ogni livello vediamo &lt;strong&gt;come funziona il protocollo&lt;/strong&gt;, &lt;strong&gt;come viene
attaccato&lt;/strong&gt; e &lt;strong&gt;come lo si difende&lt;/strong&gt;, con comandi reali e un piccolo laboratorio da rifare a casa.&lt;/p&gt;
&lt;blockquote&gt;
    &lt;p&gt;Security is a process, not a product.&lt;/p&gt;&lt;span class=&#34;cite&#34;&gt;&lt;span&gt;― &lt;/span&gt;&lt;span&gt;Bruce Schneier, &lt;/span&gt;&lt;a href=&#34;https://www.schneier.com/crypto-gram/archives/2000/0515.html&#34;&gt;&lt;cite&gt;Crypto-Gram, maggio 2000&lt;/cite&gt;&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;Questo post è la mappa: resta fissato in cima al blog e verrà aggiornato man mano che escono i
capitoli.&lt;/p&gt;
&lt;h2 id=&#34;il-modello-a-strati&#34;&gt;Il modello a strati
&lt;/h2&gt;&lt;p&gt;Ogni livello della rete si fida di quello sotto. Se un attaccante controlla lo strato 2, può
leggere e modificare tutto quello che ci passa sopra, a meno che uno strato superiore (ad esempio
TLS) non aggiunga protezioni proprie. Per questo la difesa si costruisce &lt;strong&gt;in profondità&lt;/strong&gt;: ogni
strato deve reggere anche quando quello sotto è compromesso.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart BT
    L1[&amp;#34;L1 · Fisico&amp;lt;br/&amp;gt;accesso alle porte, tap&amp;#34;]
    L2[&amp;#34;L2 · Data link&amp;lt;br/&amp;gt;ARP, VLAN, STP, DHCP&amp;#34;]
    L3[&amp;#34;L3 · Rete&amp;lt;br/&amp;gt;IP spoofing, routing, BGP&amp;#34;]
    L4[&amp;#34;L4 · Trasporto&amp;lt;br/&amp;gt;firewall stateful, SYN flood&amp;#34;]
    L7[&amp;#34;L5-7 · Applicazione&amp;lt;br/&amp;gt;TLS, DNS, HTTP&amp;#34;]
    L1 --&amp;gt; L2 --&amp;gt; L3 --&amp;gt; L4 --&amp;gt; L7
    IDS([&amp;#34;IDS / IPS&amp;lt;br/&amp;gt;osserva tutti gli strati&amp;#34;]) -.-&amp;gt; L2 &amp;amp; L3 &amp;amp; L4 &amp;amp; L7
    ZT([&amp;#34;Zero Trust&amp;lt;br/&amp;gt;nessuno strato è fidato a priori&amp;#34;]) -.-&amp;gt; L7
    classDef attack fill:#fde2e4,stroke:#e63946,color:#111;
    class L1,L2,L3,L4,L7 attack;
&lt;/pre&gt;

&lt;p&gt;La freccia va dal basso verso l&amp;rsquo;alto: è la direzione in cui si propaga la fiducia, e quindi
anche il danno.&lt;/p&gt;
&lt;h2 id=&#34;la-mappa-della-serie&#34;&gt;La mappa della serie
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  mindmap
  root((Network&amp;lt;br/&amp;gt;Security))
    Metodo
      Threat modeling
      Homelab
    Strato 2
      ARP spoofing
      VLAN hopping
    Strato 3-4
      Firewall nftables
      DDoS
    Strato 7
      TLS 1.3
      DNSSEC e DoH
    Rilevamento
      Suricata
      Wireshark
    Tunnel
      IPsec vs WireGuard
&lt;/pre&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Capitolo&lt;/th&gt;
&lt;th&gt;Di cosa parla&lt;/th&gt;
&lt;th&gt;Stato&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Questa roadmap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mappa e metodo&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;01&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/threat-modeling-networks/&#34; &gt;Threat modeling per le reti&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;STRIDE applicato a una rete reale&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;02&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/layer2-attacks-arp-spoofing/&#34; &gt;Attacchi a livello 2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ARP spoofing, MAC flooding, DHCP starvation&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;03&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/vlan-hopping-and-switch-hardening/&#34; &gt;VLAN hopping e hardening degli switch&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Double tagging, DTP, port security&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/stateful-firewalls-nftables/&#34; &gt;Firewall stateful con nftables&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Da iptables a nftables, conntrack&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;05&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/ids-ips-suricata/&#34; &gt;IDS/IPS con Suricata&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Installazione e scrittura di regole&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;06&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/tls-deep-dive/&#34; &gt;TLS 1.3 in profondità&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Handshake, PKI, certificate pinning&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;07&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/dns-security-dnssec-doh/&#34; &gt;Sicurezza del DNS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Cache poisoning, DNSSEC, DoH/DoT&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;08&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/ddos-anatomy-and-mitigation/&#34; &gt;Anatomia di un DDoS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Attacchi volumetrici, amplificazione, mitigazione&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;09&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/ipsec-vs-wireguard/&#34; &gt;IPsec vs WireGuard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Confronto pratico&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/packet-analysis-wireshark/&#34; &gt;Analisi dei pacchetti&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Trovare un attacco in un pcap&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/building-a-security-homelab/&#34; &gt;Un homelab per la sicurezza&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;OPNsense, VLAN, Suricata&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;cosa-cè-già-sul-blog&#34;&gt;Cosa c&amp;rsquo;è già sul blog
&lt;/h2&gt;&lt;p&gt;Alcuni argomenti li ho già trattati in post separati, che la serie riprende e collega:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/bgp-security-rpki/&#34; &gt;Sicurezza di BGP con RPKI&lt;/a&gt;: come si valida l&amp;rsquo;origine di una rotta.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/zero-trust-architecture/&#34; &gt;Zero Trust Architecture&lt;/a&gt;: il modello &amp;ldquo;mai fidarsi, verificare sempre&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/network-security-mesh-architecture/&#34; &gt;Network Security Mesh&lt;/a&gt;: la sicurezza oltre il perimetro.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/sase/&#34; &gt;SASE&lt;/a&gt;: rete e sicurezza come servizio cloud.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/wireguard-site-to-site-vpn/&#34; &gt;WireGuard&lt;/a&gt;: la base per il capitolo 09.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;come-leggere-i-capitoli&#34;&gt;Come leggere i capitoli
&lt;/h2&gt;&lt;p&gt;Ogni capitolo segue lo stesso schema, così è facile orientarsi:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Perché conta&lt;/strong&gt;: il problema in due paragrafi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Come funziona&lt;/strong&gt;: il protocollo, con un diagramma.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;attacco&lt;/strong&gt;: cosa fa l&amp;rsquo;attaccante, con comandi veri.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La difesa&lt;/strong&gt;: la configurazione che lo blocca, con le righe importanti evidenziate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lab&lt;/strong&gt;: un esercizio da fare nel proprio laboratorio, con la soluzione nascosta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Gli attacchi vanno provati &lt;strong&gt;solo in un laboratorio vostro&lt;/strong&gt; o su reti per cui avete
un&amp;rsquo;autorizzazione scritta. Il capitolo 11 spiega come costruirne uno con poca spesa.&lt;/p&gt;
&lt;h3 id=&#34;cosa-serve-per-i-lab&#34;&gt;Cosa serve per i lab
&lt;/h3&gt;&lt;p&gt;Basta un PC Linux con 16 GB di RAM. Per quasi tutti i capitoli usiamo
&lt;a class=&#34;link&#34; href=&#34;https://containerlab.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerlab&lt;/a&gt;: descrive una topologia in un solo file YAML, avvia i
nodi come container (quindi consuma poca RAM) e usa un vero switch &lt;a class=&#34;link&#34; href=&#34;https://www.openvswitch.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open vSwitch&lt;/a&gt;
quando serve lavorare sulle VLAN. Solo il capitolo 11 passa a macchine virtuali intere.&lt;/p&gt;
&lt;p&gt;La topologia minima dei primi capitoli — attaccante, vittima, gateway e uno switch — sta in un
file &lt;code&gt;lab-l2.clab.yml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;lab-l2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;topology&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;nodes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sw0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;kind&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;ovs-bridge }         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# switch reale (Open vSwitch, pre-creato)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;gateway&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;kind: linux, image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;alpine:3.20 }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;victim&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;kind: linux, image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;alpine:3.20 }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;attacker&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;kind: linux, image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;alpine:3.20 }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;links&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;endpoints&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gateway:eth1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sw0:p-gw&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;endpoints&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;victim:eth1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sw0:p-victim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;endpoints&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;attacker:eth1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sw0:p-attacker&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ovs-vsctl add-br sw0 &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo ip link &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; sw0 up   &lt;span class=&#34;c1&#34;&gt;# crea lo switch una volta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo containerlab deploy -t lab-l2.clab.yml            &lt;span class=&#34;c1&#34;&gt;# avvia il lab&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo containerlab destroy -t lab-l2.clab.yml           &lt;span class=&#34;c1&#34;&gt;# lo smonta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Esercizio zero:&lt;/strong&gt; perché lo switch è un nodo Open vSwitch e non un normale bridge Linux?&lt;/summary&gt;
&lt;p&gt;Un bridge Linux fa passare i frame tra i nodi, ma gestisce le VLAN 802.1Q in modo limitato: il
double tagging del capitolo 03 ha bisogno di un dataplane che tratti i tag come uno switch vero.
Open vSwitch lo fa, e permette di configurare porte access e trunk con &lt;code&gt;ovs-vsctl&lt;/code&gt;,
proprio come su uno switch gestito. Per ARP spoofing, DHCP e MAC flooding (capitolo 02) basterebbe
anche il bridge, ma usare OVS da subito evita di cambiare lab a metà serie.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;La sicurezza di una rete è forte quanto il suo strato più debole. Questa serie li attraversa tutti
in ordine, dal livello più basso al più alto, mostrando per ciascuno un attacco concreto e la sua
difesa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prossimo nella serie:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/threat-modeling-networks/&#34; &gt;01 · Threat modeling per le reti&lt;/a&gt;. Prima di difendere qualcosa bisogna
sapere cosa si sta difendendo e da chi.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Threat modeling per le reti: STRIDE su una rete vera</title>
        <link>https://www.matteobianchi.eu/p/threat-modeling-networks/</link>
        <pubDate>Tue, 28 Jul 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/threat-modeling-networks/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/threat-modeling-networks/cover.png" alt="Featured image of post Threat modeling per le reti: STRIDE su una rete vera" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Quasi ogni rete che ho visto è stata messa in sicurezza al contrario: prima si compra il firewall,
poi si decide cosa deve bloccare. Il risultato sono regole scritte &amp;ldquo;a sensazione&amp;rdquo;, porte aperte
che nessuno ricorda perché, e zone della rete che si fidano l&amp;rsquo;una dell&amp;rsquo;altra senza motivo.&lt;/p&gt;
&lt;p&gt;Il threat modeling ribalta l&amp;rsquo;ordine. Prima si disegna la rete, poi si chiede &lt;strong&gt;cosa può andare
storto&lt;/strong&gt;, e solo alla fine si sceglie la difesa. È il capitolo 01 della serie perché tutti i
capitoli successivi rispondono a minacce che troveremo qui.&lt;/p&gt;
&lt;blockquote&gt;
    &lt;p&gt;What are we working on? What can go wrong? What are we going to do about it? Did we do a good enough job?&lt;/p&gt;&lt;span class=&#34;cite&#34;&gt;&lt;span&gt;― &lt;/span&gt;&lt;a href=&#34;https://www.threatmodelingmanifesto.org/&#34;&gt;&lt;cite&gt;Threat Modeling Manifesto&lt;/cite&gt;&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;Quattro domande. Il resto del post le applica una per una.&lt;/p&gt;
&lt;h2 id=&#34;domanda-1-su-cosa-stiamo-lavorando&#34;&gt;Domanda 1: su cosa stiamo lavorando?
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;esempio è un piccolo ufficio, il tipo di rete che si trova in uno studio professionale o in una
startup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15 postazioni e una stampante di rete;&lt;/li&gt;
&lt;li&gt;un NAS con i documenti condivisi;&lt;/li&gt;
&lt;li&gt;una rete Wi-Fi per gli ospiti;&lt;/li&gt;
&lt;li&gt;un server web pubblico in DMZ;&lt;/li&gt;
&lt;li&gt;accesso remoto in VPN per chi lavora da casa.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;il-diagramma&#34;&gt;Il diagramma
&lt;/h3&gt;&lt;p&gt;Il diagramma serve a una cosa sola: rendere visibili i &lt;strong&gt;confini di fiducia&lt;/strong&gt; (trust boundary),
cioè i punti in cui i dati passano da una zona con un livello di fiducia a un&amp;rsquo;altra. Le minacce
si concentrano quasi sempre lì.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    Internet((Internet))
    subgraph DMZ[&amp;#34;DMZ · fiducia bassa&amp;#34;]
        Web[Server web]
    end
    subgraph LAN[&amp;#34;LAN uffici · fiducia media&amp;#34;]
        PC[Postazioni]
        PR[Stampante]
        NAS[(NAS)]
    end
    subgraph GUEST[&amp;#34;Wi-Fi ospiti · nessuna fiducia&amp;#34;]
        G[Dispositivi ospiti]
    end
    Remote[Utenti VPN]
    FW{{Firewall}}
    Internet &amp;lt;--&amp;gt; FW
    Remote -. tunnel VPN .-&amp;gt; FW
    FW &amp;lt;--&amp;gt; Web
    FW &amp;lt;--&amp;gt; PC
    PC &amp;lt;--&amp;gt; NAS
    PC --&amp;gt; PR
    FW &amp;lt;--&amp;gt; G
    classDef tb stroke:#e63946,stroke-width:2px,stroke-dasharray:6 4;
    class DMZ,LAN,GUEST tb;
&lt;/pre&gt;

&lt;p&gt;Ogni riquadro tratteggiato è una zona; ogni freccia che attraversa il firewall attraversa un
confine di fiducia. In questa rete ce ne sono quattro: Internet–firewall, firewall–DMZ,
firewall–LAN e firewall–ospiti. Il tunnel VPN ne aggiunge un quinto.&lt;/p&gt;
&lt;h3 id=&#34;linventario&#34;&gt;L&amp;rsquo;inventario
&lt;/h3&gt;&lt;p&gt;Il diagramma deve corrispondere alla rete reale, non a quella che si crede di avere. Una scansione
della LAN dice cosa c&amp;rsquo;è davvero:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Host attivi nella LAN, senza scansione delle porte&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nmap -sn 192.168.10.0/24 -oG - &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; awk &lt;span class=&#34;s1&#34;&gt;&amp;#39;/Up$/{print $2, $3}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Servizi esposti sul NAS: spesso ce ne sono più di quanti ne servano&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nmap -sV --top-ports &lt;span class=&#34;m&#34;&gt;200&lt;/span&gt; 192.168.10.20
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Quasi sempre salta fuori qualcosa che non era nel diagramma: una telecamera IP, un vecchio
access point, un&amp;rsquo;interfaccia di gestione della stampante raggiungibile in HTTP.&lt;/p&gt;
&lt;h2 id=&#34;domanda-2-cosa-può-andare-storto&#34;&gt;Domanda 2: cosa può andare storto?
&lt;/h2&gt;&lt;p&gt;Qui entra STRIDE. È un acronimo che elenca sei categorie di minaccia, ognuna opposta a una
proprietà di sicurezza. Serve a non dimenticare nulla: per ogni elemento del diagramma si passano
in rassegna tutte e sei.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lettera&lt;/th&gt;
&lt;th&gt;Minaccia&lt;/th&gt;
&lt;th&gt;Proprietà violata&lt;/th&gt;
&lt;th&gt;Esempio in rete&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;S&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Spoofing&lt;/td&gt;
&lt;td&gt;Autenticazione&lt;/td&gt;
&lt;td&gt;ARP spoofing, DHCP rogue, IP spoofing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;T&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tampering&lt;/td&gt;
&lt;td&gt;Integrità&lt;/td&gt;
&lt;td&gt;Modifica del traffico in transito, DNS poisoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;R&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Repudiation&lt;/td&gt;
&lt;td&gt;Non ripudio&lt;/td&gt;
&lt;td&gt;Nessun log delle connessioni VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Information disclosure&lt;/td&gt;
&lt;td&gt;Riservatezza&lt;/td&gt;
&lt;td&gt;Protocolli in chiaro, SNMP con community &lt;code&gt;public&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Denial of service&lt;/td&gt;
&lt;td&gt;Disponibilità&lt;/td&gt;
&lt;td&gt;SYN flood, DHCP starvation, broadcast storm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;E&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Elevation of privilege&lt;/td&gt;
&lt;td&gt;Autorizzazione&lt;/td&gt;
&lt;td&gt;Ospite che raggiunge la LAN, VLAN hopping&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;stride-applicato-ai-confini&#34;&gt;STRIDE applicato ai confini
&lt;/h3&gt;&lt;p&gt;Applicato ai confini del nostro ufficio, STRIDE produce un elenco come questo (ridotto alle voci
più interessanti):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Confine&lt;/th&gt;
&lt;th&gt;STRIDE&lt;/th&gt;
&lt;th&gt;Minaccia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1&lt;/td&gt;
&lt;td&gt;Ospiti → LAN&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;Un ospite raggiunge il NAS perché la Wi-Fi ospiti e la LAN sono sulla stessa VLAN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2&lt;/td&gt;
&lt;td&gt;Dentro la LAN&lt;/td&gt;
&lt;td&gt;S, T&lt;/td&gt;
&lt;td&gt;Un PC compromesso fa ARP spoofing e si mette in mezzo tra le postazioni e il gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T3&lt;/td&gt;
&lt;td&gt;Dentro la LAN&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;Il NAS espone SMBv1 e un&amp;rsquo;interfaccia web in HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T4&lt;/td&gt;
&lt;td&gt;Internet → DMZ&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;SYN flood contro il server web&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T5&lt;/td&gt;
&lt;td&gt;DMZ → LAN&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;Il server web compromesso apre connessioni verso il NAS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T6&lt;/td&gt;
&lt;td&gt;VPN → LAN&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;Gli accessi VPN non vengono registrati: dopo un incidente non si sa chi era collegato&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T7&lt;/td&gt;
&lt;td&gt;Internet → utenti&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;Risposte DNS falsificate verso le postazioni&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Ogni riga dice &lt;strong&gt;dove&lt;/strong&gt; (il confine), &lt;strong&gt;cosa&lt;/strong&gt; (la categoria STRIDE) e &lt;strong&gt;come&lt;/strong&gt; (lo scenario
concreto). Una minaccia scritta in modo vago, come &amp;ldquo;il NAS potrebbe essere attaccato&amp;rdquo;, non aiuta
a scegliere una difesa.&lt;/p&gt;
&lt;h2 id=&#34;domanda-3-cosa-facciamo&#34;&gt;Domanda 3: cosa facciamo?
&lt;/h2&gt;&lt;p&gt;Non si può risolvere tutto subito. Per decidere l&amp;rsquo;ordine serve una stima del rischio. La formula
più semplice è anche la più usata:&lt;/p&gt;
&lt;p&gt;$$
R = P \times I
$$&lt;/p&gt;
&lt;p&gt;dove $P$ è la probabilità che la minaccia si realizzi e $I$ è l&amp;rsquo;impatto se succede, entrambi su
una scala da 1 a 5. Il risultato va da 1 a 25. Non è una misura precisa: serve solo a
confrontare le minacce tra loro con lo stesso metro.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;$P$&lt;/th&gt;
&lt;th&gt;$I$&lt;/th&gt;
&lt;th&gt;$R$&lt;/th&gt;
&lt;th&gt;Difesa&lt;/th&gt;
&lt;th&gt;Capitolo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;VLAN separata per gli ospiti, nessuna rotta verso la LAN&lt;/td&gt;
&lt;td&gt;03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T5&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Firewall: dalla DMZ nessuna connessione verso la LAN&lt;/td&gt;
&lt;td&gt;04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dynamic ARP Inspection, DHCP snooping&lt;/td&gt;
&lt;td&gt;02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disattivare SMBv1, HTTPS sull&amp;rsquo;interfaccia del NAS&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T7&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Resolver con DNSSEC, DoT verso l&amp;rsquo;esterno&lt;/td&gt;
&lt;td&gt;07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T4&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rate limiting, SYN cookies, protezione a monte&lt;/td&gt;
&lt;td&gt;08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T6&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Log centralizzati delle sessioni VPN&lt;/td&gt;
&lt;td&gt;09&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Ordinando per $R$, la priorità diventa evidente: la prima cosa da fare non è comprare un IDS,
ma &lt;strong&gt;separare la rete ospiti&lt;/strong&gt;. Costa poco e chiude la minaccia con il rischio più alto.&lt;/p&gt;
&lt;h3 id=&#34;il-registro-delle-minacce&#34;&gt;Il registro delle minacce
&lt;/h3&gt;&lt;p&gt;Conviene tenere le minacce in un file versionato accanto alla configurazione della rete. Un
formato semplice basta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;T1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;boundary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;guest -&amp;gt; lan&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;stride&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;E]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;threat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Un ospite raggiunge il NAS sulla stessa VLAN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;likelihood&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;impact&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;risk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;mitigation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;VLAN 30 per gli ospiti, ACL deny verso 192.168.10.0/24&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;status&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;owner&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;rete&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Le righe evidenziate sono quelle che decidono la priorità. Il campo &lt;code&gt;status&lt;/code&gt; permette di vedere
a colpo d&amp;rsquo;occhio cosa resta aperto.&lt;/p&gt;
&lt;h2 id=&#34;domanda-4-abbiamo-fatto-un-buon-lavoro&#34;&gt;Domanda 4: abbiamo fatto un buon lavoro?
&lt;/h2&gt;&lt;p&gt;Un threat model non è mai finito. Va ripreso ogni volta che la rete cambia: un nuovo servizio in
DMZ, un nuovo tipo di dispositivo, un fornitore che chiede l&amp;rsquo;accesso remoto. Tre controlli
pratici:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Il diagramma corrisponde alla rete?&lt;/strong&gt; Ripetere la scansione dell&amp;rsquo;inventario e confrontare.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ogni minaccia ha una difesa e un responsabile?&lt;/strong&gt; Le righe senza &lt;code&gt;owner&lt;/code&gt; non vengono chiuse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le difese funzionano?&lt;/strong&gt; Provarle davvero. Ad esempio, da un dispositivo nella Wi-Fi ospiti:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Deve fallire: gli ospiti non devono raggiungere il NAS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nc -zv -w &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; 192.168.10.20 &lt;span class=&#34;m&#34;&gt;445&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;T1 ANCORA APERTA&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;T1 chiusa&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Prendete la rete di casa vostra (o del laboratorio descritto nella
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/network-security-roadmap/&#34; &gt;roadmap&lt;/a&gt;) e rispondete alle quattro domande:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disegnate il diagramma con le zone e i confini di fiducia.&lt;/li&gt;
&lt;li&gt;Applicate STRIDE ad almeno tre confini.&lt;/li&gt;
&lt;li&gt;Calcolate $R$ per ogni minaccia e ordinatele.&lt;/li&gt;
&lt;li&gt;Scegliete la prima difesa da applicare e verificate che funzioni.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Suggerimento:&lt;/strong&gt; la minaccia che quasi tutti trovano a casa&lt;/summary&gt;
&lt;p&gt;I dispositivi IoT (TV, prese smart, telecamere) stanno quasi sempre sulla stessa rete dei PC e
del NAS. Sono dispositivi che non ricevono aggiornamenti e che parlano con server esterni: in
STRIDE è una minaccia di tipo &lt;strong&gt;E&lt;/strong&gt; (un dispositivo compromesso raggiunge tutto il resto),
con probabilità alta. La difesa è la stessa della rete ospiti: una rete separata, con accesso
solo verso Internet. Molti router domestici la offrono già come &#34;rete ospiti&#34; o &#34;rete IoT&#34;.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;Il threat modeling non richiede strumenti costosi: un diagramma, una tabella e quattro domande.
Il valore sta nell&amp;rsquo;ordine che impone: prima capire la rete, poi scegliere le difese in base al
rischio, non all&amp;rsquo;abitudine.&lt;/p&gt;
&lt;p&gt;Le minacce trovate qui sono la scaletta dei prossimi capitoli. Si parte dalla T2, perché è la più
sottovalutata: un attaccante già dentro la LAN che si mette in mezzo al traffico.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prossimo nella serie:&lt;/strong&gt; 02 · Attacchi a livello 2: ARP spoofing, MAC flooding e DHCP starvation ·
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/network-security-roadmap/&#34; &gt;Torna alla roadmap&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
