A volte succede che faccia un post specifico sul mio lavoro specifico. Come sapete oggi mi occupo di M2M, (Machine to Machine), nome reale di quello che vi vendono come "Internet of Things" o se preferite "Industrial Internet" , a seconda di chi siate. Oggi voglio parlare dell' hack del sistema M2M (ConnectDrive) montato sulle automobili BMW, come si scrive qui: http://www.heise.de/ct/ausgabe/2015-5-Sicherheitsluecken-bei-BMWs-ConnectedDrive-2536384.html
Se tenete conto che heise.de e' un pochino IL giornale di informatica tedesco, si tratta di una figura che BMW avrebbe voluto evitare.
Eppure, se leggete attentamente l'articolo, la colpa NON e' di BMW, ma di altri.
Partiamo da un'ipotesi di base.
BMW produce automobili.
Piu' che "ipotesi" la definiremmo un fatto, dal momento che e' innegabile. E' vero che - ci ho avuto a che fare - i signori di BMW hanno quel tot di hybris che li porta a pensare che - se fanno qualcosa - verra' bene quanto una BMW, perche' a farla sono <quelli di BMW>.
Ok, il successo puo' dare una visione del mondo distorta.
Ma rimane un punto: le auto di BMW usano diverse catene di servizi che BMW non possiede. BMW non possiede aziende petrolifere, non possiede aree di servizio, non possiede strade ed autostrade.
E' vero che il motore di BMW utilizza la benzina, ma questo non significa che BMW sappia fare la benzina meglio di chiunque altro: significa che e' molto brava nell'usare (e quindi conoscere) la benzina che c'e'.
Ora, se BMW decide di entrare nel mondo del M2M, puo' fare due cose:
- Disegnare e costruire una rete di telecomunicazioni sicura, onnipresente (o presente almeno ovunque voglia portare un'automobile) , dotarsi di un backend M2M da loro stessi costruito, e sulla base di queste specifiche disegnare ConnectDrive.
- Oppure puo' andare da una grossa, gigantesca telco e comprare il servizio. In tal caso BMW si accordera' sugli SLA con la telco X, misurera' dei KPI, e specialmente integrera' il loro sistema con il sistema di backend - e con la rete della telco, se necessario adattando l'auto alla telco.
Perche' ho scritto "adattare l'auto alla telco"? Perche' BMW fa auto, non fa telco. Se una telco SERIA si butta nel mondo M2M, avra' cura di costruire un ecosistema, o almeno un framework di servizi, del quale fornira' l'interfaccia a chi si vuole connettere.
Perche' deve farlo la Telco?
Deve farlo la telco perche' la telco , di mestiere , fa... la telco.
Certo, BMW puo' investire e costruirsi il suo settore di eccellenza TLC, ma il mondo M2M e' fatto di vending machine, di allarmistica, di sensori per caldaie, di sensori per stampanti , di sensori per catini di fermentazione per la birra, di agroinformatica, e chi ne ha piu' ne metta.
Non tutte queste ditte possono ogni volta costruirsi le competenze e lo know how: cosi' come BMW non ha dovuto inventare la benzina BMW , ma si e' basata su quella presente in rete, ovviamente TUTTE le aziende del mondo M2M andranno ad usare gli enabler che ci sono.
Per questa ragione dico: non date la colpa a BMW. Sicuramente BMW ha peccato in due diligence non assumendo un'azienda di consulenti che, da terza parte, facesse un auditing del sistema. E ripeto: da terza parte. Ma qui siamo nel mio mercato, quindi non voglio parlare pro domo mia, o almeno dare il sospetto di farlo.
Ma la mancata Due Diligence di BMW non spiega nulla. Per un motivo.
Supponiamo che la telco X si butti nel mondo M2M. Se vuole farlo IN MODO SERIO, avra' cura di costruire una rete ad hoc - perlomeno, una rete capace, adeguata e dedicata per un settore che ha esigenze diverse dal settore telco/consumer e telco/enterprise(1) - e di costruire un framework adeguato, del quale fornira' le specifiche di interfaccia, se preferite delle API, anche se il termine non e' del tutto corretto.
Ora, se <io telco> ho una rete che si propone di collegare N-mila entita' M2M, devo fare protezione dell'endpoint. Perche' la rottura di un endpoint mette in pericolo TUTTI gli altri endpoint. Devo cioe' preoccuparmi del fatto che un endpoint bacato o vulnerabile non permetta ad enti ostili l'accesso alla mia rete.
I casi sono tre:
- faccio io scatoline sicure che fornisco ai miei clienti
- o compro una ditta che fa hardware e vendo una scatolina a chi vuole usare i miei servizi.
- o sottopongo ad auditing eventuali scatoline che il mio cliente si costruisce in casa.
- o fornisco servizi di consulenza a chi vuole costruire scatoline in casa
that's it.
Forse voi crederete che quell'articolo parli della vulnerabilita' di Connect Drive di BMW. Palle.
Quell'articolo parla della vulnerabilita'di una rete mobile M2M, e di un backend M2M, al quale potrebbe essere connessa <qualsiasi cosa piu' pericolosa di una BMW>, quale una fabbrica di prodotti chimici a due km da casa vostra: e' sempre M2M.
Ok, ok. Siccome lavoro nel mondo telco forse sono piu' critico verso la telco, perche' non vedo la problematica dal lato <io faccio automobili>, mentre la vedo molto bene dal lato <io faccio telco>.
Ma rimane il fatto, e questo e' un fatto, che la scatola bacata sia connessa ad una rete mobile. Rete mobile che appartiene ad una telco. La quale non si e' accorta di un ammasso di "bad practices" da far paura.(2) Quando <io hacker> ho craccato la scatoletta di BMW, posso attaccare il sistema di BMW, e' vero. Solo quello.
O no? Siamo sicuri che una rete che non valida l'integrita' degli endpoint esponga solo il cliente che ha un cattivo endpoint? E cosa lo garantisce, in una rete che non valida l'integrita' degli endpoint?
Se la rete M2M scade nella validazione dell'endpoint, come e' possibile affermare con certezza che scada SOLO nel caso dell'endpoint di BMW, e non di <qualsiasi altra cosa sia attaccata alla rete>? Chi mi dice, cioe' , che dopo aver smontato una BMW per avere accesso alla rete in questione, non si decida di attaccare qualsiasi altro bersaglio, compresa la "Cianuro Satanico Antipatico INC.", a due km da casa vostra?
Parliamo dopotutto di dispositivi di rete, come i GRX, che hanno latenze incredibilmente basse e velocita' molto alte: un endpoint non validato che mi entra in rete puo' fare sfaceli, perche' puo' attaccare milioni di bersagli in meno di un secondo.
Certo, spegnere il motore a mezzo milione di automobili puo' causare disastri. E' un attentato terroristico non da poco. Ma far saltare in aria gli impianti di 1000 "Cianuro Satanico Antipatico INC" e' una mezza apocalisse: se l'utente potrebbe in teoria togliere ConnectDrive la possibilita' di spegnere il motore, e otterrebbe una comune auto che si spegne quando l'autista fa qualcosa, la "Cianuro Satanico Antipatico INC" non puo' esattamente rimuovere i dispositivi di controllo dall'impianto cosi', da un giorno all'altro.
Che cosa intendo dire?
Se assumiamo che BMW, per avere copertura GSM ovunque le auto vadano, si sia accordata con uno (o piu') dei grandi Tier 1 del mondo M2M, otteniamo che:
Almeno UNA delle telco Tier 1 del mondo M2M ha costruito una rete che NON valida l'integrita' dell'endpoint, e la sta proponendo ad aziende come BMW, consentendo a chi rompa l'endpoint di attaccare qualsiasi scatola connessa alla rete. Questa connessione viene fornita senza offrire consulenza o almeno auditing per la protezione dell'endpoint.
Quante altre aziende sono connesse a questa rete M2M? Non lo sappiamo. Forse la "Cianuro Satanico Antipatico INC.", a due km da casa vostra, ha gia' connesso i suoi sistemi di controllo di processo con il suo helpdesk in Sarkazzistan, usando proprio quella rete.
Questo e' il punto per il quale dico di non leggere l'articolo di Heise.de facendo caso a BMW. Perche"'il problema e' ENORME, e BMW e' solo un tassello. Pericoloso, certo. Grande, certo. Inaspettato, certo, visto il blasone della casa.
Ma il VERO problema esposto in quell'articolo e'una gigantesca rete dedicata ad M2M che non valida l'integrita' dell'endpoint.
A quella rete potrebbe essere connessa la Cianuro Satanico Antipatico INC, cosi' come il vostro ospedale. Cosi' come un numero di emergenza. Certo, ci saranno anche i riscaldamenti domestici - il che trasforma il nostro hacker in un potenziale Nerone - e si, magari anche i distributori automatici di merendine. E non valida l'integrita' dell'endpoint.
Capite ora perche' dico che il problema NON e' di BMW, ma di chi consente di connettere quella scatoletta di BMW ad una rete che ospita anche la "Cianuro Satanico Antipatico INC", a due km da casa vostra?
Basta un allarme artificiale per causare lo sversamento di <porcheria chimica verdegialla> nel vostro fiume preferito, per dirne una.
E allora la seconda domanda e':
Passi che usiamo frequenze a 2.4Ghz, quelle del legame idrogeno-ossigeno, per le telco. Certo, se piove si accorcia la copertura, la nebbia ferma le onde, ma ok. Passi che ci mettiamo anche sopra le reti M2M , senza mettere in vendita altre frequenze meno schifose della 2.4Ghz. MA ALMENO UN POCHINO DI CONTROLLO GOVERNATIVO, UNO STRACCIO DI NORMATIVA SULLA SICUREZZA MINIMA, NON SI PUO' AVERE?
O aspettiamo che la Cianuro Satanico Antipatico INC scarichi < porcheria chimica vedegialla> in qualche fiume, o peggio in aria, per agire?
(1) No, chi si illuda che "quelli di telco/enterprise si occupano gia' di grandi clienti con SLA difficili quindi sono adatti ad M2M" e' un illuso. Il problema e'"chi termina il traffico". E nel mondo telco/enterprise e' comunque un umano. Nel M2M abbiamo una macchina da un lato ed una macchina dall'altro. Problema totalmente diverso, perche' la macchina non ha "il piano B".
(2) Per chi non legge i tedesco, passiamo da richieste GET / fatte in chiaro ad algoritmi di cifratura noti come algoritmi deboli, sino a chiavi salvate nel terminale anziche' nel backend.