Venerdì 8 Dicembre 2008, parlando del fatto che il software Apple è più simile ad un colabrodo che ad un armatura e riflettendo sul baco da me stesso individuato in poche settimane di uso di OSX riguardo l’automounting e l’auto-decompattazione, auto-apertura, ecc. ecc. dei documenti scaricati via Safari, affermavo:
Sono poco informato davvero, ma il link che ho letto parla di lancio automatico di file PDF. Se sfruttare un baco nella lettura delle immagini è difficile ma fattibile, immagino che un PDF tra form e javascript sia più facilmente sfruttabile.
Gizmodo spiega come funziona il jailbraking via web, e surprise surprise:
It just requires the user to visit a web address using Safari. The web site can automatically load a simple PDF document, which contains a font that hides a special program. When your iOS device tries to display the PDF file, that font causes something called stack overflow, a technical condition that allows the secret ninja code inside the font to gain complete control of your device.
Stupido io che immaginavo si dovesse ravanare nel codice di parsing dei form in javascript quando è effettivamente più efficace cercare in superficie.
-quack
P.S. forse l’idea del mass-jailbraiking non è così cattiva come potrebbe sembrare.
WebKit is “Work we did at Apple” (Steve Jobs, 2 Giugno 2010).
Peccato che per come l’abbia lasciato intendere Apple non ha ‘inventato’ Webkit da zero. Ha però contribuito in maniera fondamentale.
The first phone to implement multitasking (Steve Jobs, 7 Giugno 2010)
Ovviamente l’affermazione è verissima se si considera che è il primo telefono a implementare il multitasking in maniera “corretta”, dove “corretta” è come piace a Steve Jobs. Mi ricorda tanto la battuttaccia di Benigni su papa Wojtyla definito all’epoca “il miglior papa polacco vivente al mondo residente a Roma”. Ovvero quant’è facile essere i primi ed i migliori in un insieme fatto da se stessi soltanto.
'Fragmentation' is a bogeyman, a red herring, a story you tell to frighten junior developers. Yawn (Dan Morrill, 21 Maggio 2010)
Sì, certo come no. Le storie horror di chi deve sviluppare per 4 versioni diverse moltiplicate per tre o quattro UI diverse sono frutto di pura fantasia.
The wi-fi sniffing was accidental (Google 14 Maggio 2010)
Chissà perché Google ha una tendenza atipica ad inciampare coi problemi di privacy. Scava scava… si scopre che lo sniffing non solo era stato volontario ma addirittura brevettato. Per maggiori informazioni sull’argomento consiglio il dibattito in corso su IdentityBlog.com
-quack
Bonus:
The world is moving to HTML5 (Steve Jobs, 1 Febbraio 2010)
Parafrasando un mitico quartetto: se il mondo somiglia a te, noi siamo in pericolo.

Visto che si parla di virus, trojan (da queste parti tra l’altro è il nome di una marca di preservativi), dedico cinque minuti a scrivere un post glossario giusto per creare un minimo di terminologia comune ad estensione di quanto già detto su questo canale. Altrimenti, come diceva Ciro il pizzaiolo, parlamm e nun ce capaimm.
Virus: è un termine ormai obsoleto. Anni ed anni fa, quando i virus erano l’unica tipologia di applicazione maligna, era usato come sinonimo di malware. Nel duemiladieci il termine è da considerare arcaico al punto che chi parla di “virus” nella stragrande maggioranza dei casi suona agli addetti ai lavori contemporaneo come una poesia di Carducci. Il nome virus dato a questa tipologia di malware deriva dal fatto che il codice maligno, come un virus organico, tende a riprodursi e diffondersi usando altri organismi (programmi) come veicolo di infezione. Oggi giorno i virus non esistono quasi più e tra i settecentocinquantafantastiliardidimilioni di variazioni quelli che continuano a girare sono sempre gli stessi dieci (decina più, decina meno). Esempio di virus: Melissa. Melissa si propagava attraverso i documenti Word. Chi apriva un documento word infetto, attivava il codice malevolo che si replicava su altri documenti word presenti sullo stesso PC. In realtà poi il furbacchiotto mandava uno di questi documenti infetti a caso ad una cinquantina di persone prelevandone i nominativi dalla rubrica indirizzi (fonte). In parole povere la parola virus denota uno specifico tipo di comportamento patologico, ovvero la diffusione automatica del codice malevolo da un file all’altro.
Worm: lo scopo di un worm è di propagarsi da una macchina infettata all’altra usando la connessione in rete. Ironia della sorte l’ambiente naturale dei worm, fino a qualche anno fa, erano i server in quanto gli unici computer ad essere costantemente in rete. Con l’avvento delle connessioni permanenti casalinghe (ADSL) i worm hanno cominciato a trovare terreno fertile anche sulle workstation e home computer. Anche in questo caso la parola worm denota uno specifico comportamento. Melissa oltre ad essere un virus (passare da un file all’altro) era anche un worm in quanto si propagava da un PC all’altro usando l’email, ovvero una connessione di rete.
La differenza principale tra virus e worm è questa: il virus (se non esibisce anche comportamenti da worm) si propaga molto più lentamente del worm in quanto è necessario uno scambio non sollecitato di file tra infettato ed infettando (?). Un’altra differenza tra le due patologie è che molto spesso il virus per attivarsi ha bisogno dell’intervento dell’infettando. Esempio: io passo a Luigi un file con un virus ma fin quando Luigi non lo apre il virus non si attiva e non fa danni. La propagazione di un virus da un PC all’altro è una conseguenza della propagazione dello stesso da un file all’altro e dallo scambio inconsapevole di file infetti e pertanto la propagazione tra un PC e l’altro può risultare anche lenta; i worm invece sono disegnati e pensati da zero per passare da un PC all’altro nel modo più diretto e veloce possibile.
L’esempio di worm più eclatante è Sasser.
Antivirus: applicazione originalmente mirata a bloccare la diffusione dei virus. Nell’esempio di Luigi, se Luigi ha un antivirus installato, quando Luigi clicca sul file per aprirlo l’antivirus controlla e scopre che c’è qualcosa che non va bloccando l’infezione prima ancora che il codice maligno possa avere occasione di essere eseguibile. Pertanto gli antivirus tradizionali sono utilissimi per combattere il primo tipo di malware (e altri).
Trojan: il trojan è un pezzo di codice malevolo aggiunto intenzionalmente in un’applicazione. Per chiarire un piccolo esempio: supponiamo Luigi mi chieda il documento Word dell’estratto conto mensile; io potrei consapevolmente ed intenzionalmente introdurre del codice malevolo abusando della fiducia di Luigi nei miei confronti. I trojan sono la categoria più semplice di malware basato su tecniche di ingegneria sociale. Tendono di solito a nascondersi in applicazioni o file molto appetibili: il filmato porno di quell’attricetta, il crack/keygen di Autocane 2012 e così via.
Differenza tra trojan e virus: nel caso dei trojan c’è intenzionalità da parte di chi diffonde il codice malevolo che manca nel caso dei virus. Per lo scopo di diffondere l’infezione i trojan sono perciò più efficaci, basta semplicemente creare qualcosa di appetibile.
Rootkit: un rootkit è un pezzo di codice intenzionato a sfuggire a tutti i controlli di presenza del sistema. A differenza di un virus, in cui il sistema sa che c’è del codice in esecuzione ma non può distinguerlo dal codice benigno in quanto agnostico delle intenzioni, un rootkit è un vero e proprio mantello di invisibilità. Un rootkit di per sé non è malware o per lo meno c’è sempre forte dibattito attorno a questo punto. Il problema piuttosto è che tale mantello viene nel 99.9% periodico dei casi usato per scopi malevoli: l’esempio più famoso è il rootkit della Sony le cui intenzioni erano quelle di gestire il DRM a modo proprio diventato ponte di lancio per infezioni banali ma difficili da individuare.
Vulnerabilità: tutte le applicazioni purtroppo contengono bachi. Alcuni bachi sono però più gravi di altri dal punto di vista della sicurezza e permettono ad un malintenzionato di effettuare operazioni normalmente impossibili. Vulnerabilità in applicazioni o peggio ancora in servizi di sistema sono praticamente il veicolo principale della propagazione dei worm.
C’è infine una categoria che va sotto il nome piuttosto generico di exploit. Per alcuni tratti si comportano come dei trojan, ovvero richiedono l’inganno per portare l’utente a visitare un sito e sfruttando una vulnerabilità non patchata sulla macchina di chi lo visita permettono l’esecuzione di malware, l’installazione di un rootkit o l’aggregazione del PC ad una botnet a cui sarebbe da dedicare un post separato.
Il malware è però innanzitutto software ovvero codice applicativo. Come tale malware per OSX non funziona su Windows e viceversa. Dire che ci sono centomilamiliardi di “virus” (daje!) per Windows che non attaccano il Mac è la stessa cosa che dire che ci sono centomilamiliardi di applicazioni per Windows che non girano su MacOS. In realtà poi il malware ha una proprietà intrinseca che lo porta a diventare obsoleto molto più in fretta delle normali applicazioni d’uso quotidiano.
E per questo post basta così.
-quack
P.S. se fa piacere proporrei alla fine della serie un popquiz, un test a scelte multiple, per misurare la conoscenza dell’argomento
Charlie Miller dixit:
Mac OS X is like living in a farmhouse in the country with no locks, and Windows is living in a house with bars on the windows in the bad part of town.
Per una volta non sono d’accordo, la metafora non è corretta. È una frase che Charlie ripete spesso ed è venuta alla ribalta in questi giorni. Perché detta così la casa in campagna sembrerebbe un’idea molto allettante di quanto lo sia in realtà che è ben più complessa della semplice metafora. E soprattutto non tiene conto di un semplice fatto: non si tratta del posto in cui viverci, ma soprattutto del modo in cui viverci. Se si decide di vivere in una casa col minimo indispensabile (qualche elettrodomestico, un cambio di biancheria, ecc.), dal punto di vista della sicurezza non ci sarebbe nessuna differenza; se invece l’intento di una casa è di viverci a medio-termine con tutto quello che ne
consegue, si avrebbe bisogno di un posto sicuro in cui tenere roba di valore: qualche contante, un televisore decente, una botta di vita. La metafora inoltre non tiene conto di un altro elemento: Apple non vende una casa in campagna desolata; se fosse per Cupertino avremmo una casetta per ogni angolo a meno che non si considera il prezzo come forma di disincentivo.
Io avrei usato una metafora diversa e basata sull’appetibilità: Windows è come una Ferrari con tutti i sistemi di sicurezza pre-attivati; OSX è una Citroën Visa senza neanche una serratura funzionante. Molto più economicamente sensato cercare di impossessarsi di una Ferrari, tanto qualcuna con l’allarme spento, la porta aperta e le chiavi nel cruscotto la si trova sempre. All’equazione infatti va aggiunto il fatto che con la diffusione di Internet la percentuale di ganzi online è aumentata drasticamente ed in fin dei conti basta essere solo un po’ meno ganzo del vicino di casa per vivere tranquilli: la saggezza popolare dice che se non vedi altri polli intorno il pollo sei tu. Applicata alla metafora della casetta in campagna si potrebbe dedurre che chi sceglie questa soluzione non può essere mai certo di non fare la fine del pollo.
Il mondo purtroppo – per qualsiasi argomento – si divide in people who care e people who don’t care. Usare una metafora banale per cercare di convincere il secondo gruppo ad interessarsi alla questione è contro-producente. Se il dito del saggio indica la luna, lo sguardo del ganzo è fermo sul dito. E chi di metafora ferisce, di metafora morisce.
-quack
P.S.: una delle cose che mi avvilisce di più è che in Apple anche le regole più elementari di security testing sono palesemente ignorate. Bontà loro…
Giro una notizia che sta passando abbastanza in sordina ma che dovrebbe fare immediatamente il giro del mondo.
Microsoft ha rilasciato l’SDK di U-Prove di cui avevo già parlato in maniera flash in precedenza. La parte più interessante è questa:
It is made available under the BSD open-source license.
Vittorio Bertocci aka Vibro.Net ha intervistato Stefan Brands, il ricercatore dietro questa importante innovazione. L’intervista è estremamente godibile per gli appassionati dell’argomento cryptografia; Vittorio la definisce in una parola sola come cryptopr0n.
Enjoy!
P.S. sempre a proposito di privacy le scuse pubbliche di Google sulla questione Buzz sono esilaranti. The Onion è un giornale satirico, però l’esagerazione caricaturale dell’articolo è davvero minima.