sindro.me

feeling bold
on the internet

info 🇬🇧🇮🇹

Sull'exploit PDF e kernel dell'iPhone

- 3 min di lettura

Jailbreak me

Come la maggior parte di voi già sa, ci sono due vulnerabilità aperte e critiche nelle versioni di iPhone OS dalla 3.x in su. La prima risiede nel componente Compact Font Format del renderer PDF, la seconda è un errore nel kernel che permette agli attaccanti di bypassare la sandbox (SeatBelt) dentro cui le applicazioni vengono eseguite sull’iPhone.

Le due vulnerabilità sono state scoperte da @comex, @chpwn e altre persone.

Solo poche settimane dopo il difetto di design .lnk su Windows (ragazzi, usate LoadLibraryW per caricare una dannata icona!), queste vulnerabilità di iPhone OS sono ancora più interessanti, per il modo in cui il rilascio viene gestito dalla community e dal vendor.

Ho passato 3 ore ieri notte a cercare informazioni dettagliate sul bug, e a parte confusi (e propagandistici) blog post, le uniche briciole di informazione sono in questo tweet e nell’exploit PDF vero e proprio su jailbreakme.com. Dove sono i post sulle security mailing list? Dov’è il CVE? Persino il CERT ancora non dice niente su questa vulnerabilità.

C’è qualcosa di terribilmente sbagliato in corso: il gioco del gatto col topo che porta i ricercatori dell’iphone-dev team a non divulgare nessuna delle vulnerabilità che trovano è diventato molto pericoloso per gli utenti finali: un exploit che permette l’esecuzione di codice remoto e l’uscita dalla jail senza nessuna interazione da parte dell’utente, veicolato tramite qualcosa che si considera “sicuro” (un file PDF) è quello che si chiama una falla critica; mentre l’exploit che la sfrutta si chiama 0-day. È la prima volta nella mia vita che vedo un 0-day pacchettizzato e distribuito esplicitamente tramite un sito web.

Erlang logo

In sintesi, aggiunge il supporto per l’unmarshaling delle stringhe 1.9, e implementa l’ultimo tipo mancante (TYPE_LINK) che mancava dal codice. I test ancora latitano, qualcuno vuole dare una mano? :-)

Added TYPE_LINK, needed because of how ruby 1.9 marshals strings.

In 1.9, Ruby marshals the string encoding in the binary output, and
uses an Ivar construct (TYPE_IVAR) to wrap the string and adds an
"encoding" instance variable (notice: without a leading @) whose
value is the encoding itself.

While the Ivar code worked correctly, the values of the encodings
are actually *strings*, that are being reused via the TYPE_LINK
construct, that wasn't implemented.

So, the get() and put() primitives are being used to store not
only tuples {id, sym} for symbols, but now store either

  {{symbol, ID}, sym}

  OR

  {{value,  ID}, val}

for the other types that use TYPE_LINK.

By reading the ruby marshal.c source code, it looks like that MANY
data types save their values in the arg->data hashtable, but by
inspecting the binary marshal output of, e.g, an array of floats,
links aren't used.

Thus, in this unmarshaler, links are considered, for now, only for
strings and regexes.

Forkami su GitHub: http://github.com/vjt/erlang-ruby-marshal

CouchDB logo

Se il tuo CouchDB 0.11 ti spara l’errore “Invalid UTF-8 JSON” ad ogni POST o PUT che gli mandi, assicurati che nella tua $prefix/usr/lib/couchdb/erlang/lib non ci siano residui di installazioni precedenti.

Sul server di sviluppo nostro, ho trovato due directory (“couch-0.10” e “mochiweb-r97”) dalla vecchia installazione 0.10 che causavano il problema.

Questo vale se hai aggiornato da sorgenti, come probabilmente hai fatto, perché ad aprile 2010 non è che ci fossero tutti questi pacchetti di CouchDB 0.11 :-).

Un grazie enorme a @couchdb per avermi indicato la direzione giusta dopo aver letto una segnalazione sulla mailing list dev — ma non volevo fare “rimuovi e reinstalla” perché mi piace capire cosa sta succedendo ;-).

Nota a margine: che sia la fine dell’Hiatus? Spero di sì ;-p

Dal palco del web2.0 Expo 2008 a San Francisco, Clay Shirky parla della rivoluzione sociale portata dal web2.0 nella società contemporanea, dalla TV a Wikipedia e World of Warcraft. E Twitter doveva ancora essere riconosciuto a livello globale, nel 2008.

Il video originale e la relativa discussione qui (per gentile concessione di blip.tv). Voto: 5 (perspicace)

  • La conclusione triste: “gli esseri umani sono animali da branco”

  • La conclusione buona: “la viralita’ e’ sempre esistita, non e' un’invenzione del Web2.0. Il social networking e’ semplicemente uno strumento potente per chiunque voglia cambiare il mondo”

  • La conclusione cattiva: “quanto ci vuole per portare la gente dai propri computer al mondo reale dopo un avviso virtuale da qualche ‘uomo che balla’?”

  • Altre conclusioni: leggete i commenti su questo video su reddit e su youtube.

Indice

  1. La Ricetta
  2. Lo Scenario
  3. Le Argomentazioni
  4. Perche' preoccuparsi
  5. Il lato business
  6. Il lato identita'
  7. Il lato Google
  8. Il lato protezione
  9. Il lato comunicazione: intercettare e proteggere
  10. Parole finali

La Ricetta



Ingredienti

Preparazione

Prendete l'intero ambiente sociale, completamente impreparato alla (r)evoluzione mediatica avvenuta negli ultimi anni, e lasciate che gli hacker osservino e ne parlino/scrivano. Portate gli avvocati, e lasciate che riconoscano “Houston! Abbiamo un problema!”, definendolo al contempo in legalese. Fate domande e partecipate a dibattiti interessanti.

Ora, consegnate il Big Brother Award 2007 al rappresentante di Google, lasciate che il sole si tuffi nelle colline, aggiungete una notevole quantita' di vino rosso toscano, e preparatevi per il giorno dopo. Lasciate fluire la paranoia, mentre gli hacker mostrano come si puo' essere tracciati e trovati tramite la rete cellulare e spiati tramite telecamere collegate via wifi piazzate li' per la vostra sicurezza.

Guardate i Big Brother Awards 2009 non consegnati restare sulla scrivania dei relatori e improvvisamente messi in vendita su eBay, e tornate a casa, dove leggete e guardate un'intervista video-editata al premier italiano.

Mettete tutto in frigo e date al vostro cervello due giorni per metabolizzarlo. Poi scrivetelo tutto A VOCE ALTA.


Foto di lorelei-ranveig

#top

Lo scenario

Siamo connessi. Siamo completamente connessi. Stiamo condividendo, stiamo creando identita' multiple, stiamo esagerando e diventando dipendenti, stiamo guadagnando soldi (forse) da tutto cio', e se da un lato ci stiamo aprendo la mente a culture e punti di vista diversi, dall'altro stiamo solo restringendo le nostre visioni perche' troviamo solo le informazioni che cerchiamo, trattando Internet come un surrogato morbido della TV, annichilendo il pensiero critico, e ancora peggio, demonizzando la rete (non nel significato unix del termine) a causa delle dichiarazioni di alcuni «politici», dimenticando che tutto cio' che gli uomini hanno costruito nella storia sono strumenti, e qualsiasi problema causato dagli strumenti e' solo questione di come altri uomini li usano effettivamente, non degli strumenti stessi.

XFS internal error XFS_WANT_CORRUPTED_RETURN at line 295 of file fs/xfs/xfs_alloc.c.  Caller 0xc018066c
 [<c017fed0>] xfs_alloc_fixup_trees+0x1b0/0x2e0
 [<c018066c>] xfs_alloc_ag_vextent_near+0x31c/0x9c0
 [<c018066c>] xfs_alloc_ag_vextent_near+0x31c/0x9c0
 [<c0180187>] xfs_alloc_ag_vextent+0xf7/0x100
 [<c01824fe>] xfs_alloc_vextent+0x35e/0x420
 [<c019015d>] xfs_bmap_alloc+0x80d/0x12b0
 [<c0111254>] try_to_wake_up+0xa4/0xc0
 [<c02cf248>] schedule+0x308/0x5c0
 [<c01939c4>] xfs_bmapi+0x514/0x1470
 [<c0130069>] find_lock_page+0x29/0xe0
 [<c013013c>] find_or_create_page+0x1c/0xb0
 [<c01d9116>] kmem_zone_zalloc+0x26/0x50
 [<c01a2296>] xfs_dir2_grow_inode+0xf6/0x3c0
 [<c01b57a6>] xfs_iget_core+0x326/0x5a0
 [<c0163315>] alloc_inode+0xd5/0x170
 [<c01b978b>] xfs_idata_realloc+0x3b/0x160
 [<c01a3e2d>] xfs_dir2_sf_to_block+0xad/0x680
 [<c0137882>] cache_grow+0xe2/0x150
 [<c01aa27b>] xfs_dir2_sf_addname+0x9b/0x110
 [<c01a1c51>] xfs_dir2_createname+0x131/0x140
 [<c01d9116>] kmem_zone_zalloc+0x26/0x50
 [<c01cebcb>] xfs_trans_ijoin+0x2b/0x80
 [<c01d4967>] xfs_create+0x407/0x6c0
 [<c017e766>] xfs_acl_vhasacl_default+0x36/0x50
 [<c01df8f4>] linvfs_mknod+0x2c4/0x390
 [<c01a1d62>] xfs_dir2_lookup+0x102/0x110
 [<c01228b8>] in_group_p+0x38/0x70
 [<c01ba9a6>] xfs_iaccess+0xc6/0x1a0
 [<c0157cb7>] permission+0x97/0xd0
 [<c0158f94>] __link_path_walk+0xda4/0xe90
 [<c0157cb7>] permission+0x97/0xd0
 [<c015984c>] vfs_create+0x9c/0x120
 [<c015a00b>] open_namei+0x58b/0x5e0
 [<c014aa9d>] filp_open+0x2d/0x50
 [<c014ac70>] get_unused_fd+0x50/0xc0
 [<c0157ae7>] getname+0x67/0xb0
 [<c014ad9c>] sys_open+0x3c/0x80
 [<c0102867>] sysenter_past_esp+0x54/0x75

xfs_force_shutdown(hda8,0x8) called from line 1091 of file fs/xfs/xfs_trans.c.  Return address = 0xc01e2c5c
Filesystem "hda8": Corruption of in-memory data detected.  Shutting down filesystem: hda8
Please umount the filesystem, and rectify the problem(s)
xfs_force_shutdown(hda8,0x1) called from line 353 of file fs/xfs/xfs_rw.c.  Return address = 0xc01e2c5c
printk: 12 messages suppressed.

Gia’, farei l’umount di /var, se questa macchina non facesse da act_as_router e non avesse pppd che non molla il lock su /var/run/pppd2.tdb

pppd   222 root  mem   REG    3,8    88080525 /var/run/pppd2.tdb (path dev=0,0 inode=34)

Ovviamente kill 222 ; pppd call dsl-provider non funziona. BLEAH. Mettiamoci un router davanti… configura, port forward, e si ricomincia… poi fdisk /dev/hdc per ricreare la struttura delle partizioni sul nuovo hard disk, mkfs.xfs su tutte le nuove partizioni, mount /dev/hdcX /target, pax -r -w -p e /{bin,boot,dev,etc,home,initrd,lib,media,root,sbin,srv,tmp,usr,var} /target… aspetta un sacco per la copia perche’ ci sono settori danneggiati sul disco sorgente, chroot /target, vi /etc/lilo.conf e sostituisci boot=/dev/hda con boot=/dev/hdc, lancia lilo -v mentre sei nel chroot, verifica /etc/fstab, e finalmente shutdown per rimuovere il disco guasto e riavviare… ripristinando lilo.conf. evvai!

«Donne! E' arrivato l'arrotino!» – A parte gli scherzi ;) l'Apple Store italiano insieme a Girl Geek Dinners Roma ha organizzato il 16 maggio 2009 un workshop sul mobile lifestyle (incentrato sull'iPhone, ovviamente).

Partiamo dall'inizio: cosa sono le Girl Geek Dinners? Linda ha spiegato al pubblico (circa 20 persone) che un geek e' una persona appassionata di tecnologia in senso ampio: il GGD e' un gruppo dedicato ad aggregare donne interessate a internet, ai nuovi media e agli stili di vita tecnologici. Le donne sono spesso sottovalutate nelle comunita' geek, e questo imbarazzante cliche' ha generato molte discussioni in passato, e la questione e' ancora irrisolta (secondo me).

Il gruppo italiano GGD e' nato nel 2007 a Milano, poi e' arrivato a Roma nel 2008, ed e' presente anche a Bologna e nelle Marche e in Emilia-Romagna.

Quindi, il gruppo GGD cerca di generare una “massa critica” di donne geek, per abolire lo stereotipo che “programmatori / utenti esperti” siano solo uomini: negli eventi GGD i ragazzi ascoltano e le ragazze parlano, poi bloggano, si scambiano biglietti da visita (e chiavi PGP, immagino ;) e in generale cercano di valorizzare il potere e le competenze delle donne nel campo dell'industria informatica. Il networking e un tuffo nei social media sono il modo piu' efficiente al giorno d'oggi per raggiungere un grande pubblico e costruire rapidamente la suddetta massa critica: ecco perche' l'evento GGD era incentrato sulle applicazioni mobile social e di produttivita' in generale. Presentato da due Apple Trainer ufficiali (Simona e Riccardo), il workshop e' iniziato alle 11:30 e e' durato circa un'ora.

Questa e' la seconda parte del mio resoconto del convegno nnsquad.it tenutosi a Roma il 14 maggio 2009, ospitato dalla fondazione di consulenti ICT Fondazione Ugo Bordoni.

Nella prima parte ho descritto la sessione mattutina, dedicata alla definizione della neutralita' della rete e a come l'economia globale possa conciliarsi con essa. Il pomeriggio e' stato dedicato a interventi piu' tecnici, e ho avuto l'occasione di sentire le osservazioni dei portavoce delle telco sulla situazione attuale e sui possibili sviluppi futuri.

Il primo intervento e' iniziato alle 14:15 ed e' stato tenuto dal prof. Vittorio Trecordi (slide disponibili qui). Lo ha introdotto affermando che la net neutrality potrebbe potenzialmente contrastare con lo sviluppo economico e le esigenze di sicurezza, a causa delle intercettazioni necessarie per queste ultime, intercettazioni che sono fortemente contrarie alla liberta' individuale di comunicare.

Stranamente (o forse no), non e' stato fatto alcun cenno ai modi attuali per aggirare sia le intercettazioni che la localizzazione dei comunicanti: mi riferisco al progetto Tor, il piu' noto bastione che garantisce la privacy ed e' attualmente usato da giornalisti che lavorano in zone "calde", tra molti altri.

Un altro punto sulla legislazione e' che non e' uguale in tutti i paesi, sebbene Internet sia diffuso in tutto il mondo; inoltre dovremmo definire su quali reti valutare la neutralita', perche' non necessariamente una rete IP e' connessa a Internet (pensate ai walled garden di proprieta' degli ISP).

Inoltre, di nuovo sulla Quality of Service: Trecordi ha affermato che Internet ha avuto successo grazie al suo "modello a clessidra" e alla “capacita' di disaccoppiare i servizi di comunicazione dall'infrastruttura di rete”, ma i requisiti di QoS (ad es. per il VoIP) stressano la pila protocollare, soprattutto dove i condotti di rete sono “in overbooking”. Inoltre, anche l'overprovisioning fallisce, a causa dell'architettura decentralizzata di Internet, e i colli di bottiglia si trovano principalmente nei punti di interconnessione tra ISP.