{"id":118,"date":"2006-02-22T12:43:06","date_gmt":"2006-02-22T10:43:06","guid":{"rendered":"http:\/\/www.kill-9.it\/blog\/index.php\/2006\/02\/22\/safarimail-exploit\/"},"modified":"2006-02-22T16:14:27","modified_gmt":"2006-02-22T14:14:27","slug":"safarimail-exploit","status":"publish","type":"post","link":"https:\/\/www.kill-9.it\/blog\/index.php\/2006\/02\/22\/safarimail-exploit\/","title":{"rendered":"Safari\/Mail exploit"},"content":{"rendered":"<p>Ovvero &#8220;gli errori concettuali&#8221;.<\/p>\n<p>*Update 15:00, mi sono reso conto che le informazioni non sono chiare per chi non ha chiaro come funziona il giochetto: ne ho aggiunte sperando di chiarire*<\/p>\n<p>Heise.de nella persona di Michael Lehn ha trovato un efficace e divertente modo di mandare <strong>automaticamente<\/strong> in esecuzione uno shell script usando Safari (e anche Mail, pare).<br \/>\nAnalisi del problema:<\/p>\n<ul>\n<li>Safari trova un file .zip<\/li>\n<li>Una volta scaricato, ha l&#8217;abitudine di scompattare automaticamente questo formato<\/li>\n<li>Se e` spuntata l&#8217;opzione &#8220;Open Safe files after downloading&#8221;[1] Safari tenta di passare il file ad una applicazione adatta a gestire quel formato<\/li>\n<li>Piu` nello specifico, se il file contiene la parte di metadata che specifica con quale applicazione gestire un file, Mac Os X la onora. (nello specifico, <code>__MACOSX\/._<nomefile><\/nomefile><\/code>)\n<\/li>\n<\/ul>\n<p>(Il workaround per ora e` togliere la spunta da quell&#8217;opzione).<\/p>\n<p>Il problema e` che <em>la decisione se il file sia &#8220;safe&#8221;<\/em> e <em>la scelta dell&#8217;applicazione<\/em> con cui aprirlo evidentemente vengono prese secondo criteri diversi, con l&#8217;effetto che uno shell script (con l&#8217;estensione .jpg, ad esempio) che non contenga la <em>shebang<\/em> in testa<\/p>\n<blockquote><p><code>#!\/bin\/bash<\/code><\/p><\/blockquote>\n<p>viene considerato &#8220;safe&#8221; per via del .jpg e poi &#8220;aperto&#8221; con Terminal.app (come specificato nei metadati).<\/p>\n<p>Le scelta giusta poteva essere una di queste:<\/p>\n<ul>\n<li>una volta scompattato il file, guardare l&#8217;estensione e di conseguenza aprirlo con l&#8217;applicazione di default per quell&#8217;estensione. Brutto ma banale, e prono ad errori.<\/li>\n<li>invece che basarsi sull&#8217;estensione, guardare il magic del file. Dopotutto siamo su un sistema Unix, quindi capire cosa c&#8217;e` <strong>veramente<\/strong> dentro un file non dovrebbe essere un grosso problema. Dopo di che, se il magic riporta un tipo di dato diverso dall&#8217;estensione, avvisare l&#8217;utente e chiedergli di prendere una decisione.<br \/>\nNel caso di un .jpg contenente uno shellscript a me piacerebbe una finestrella che dicesse:<\/p>\n<blockquote><p><strong>Attenzione:<\/strong><br \/>\nil formato di file (&#8220;ASCII Text&#8221;)[2] e` in conflitto con l&#8217;estensione (&#8220;.JPG&#8221;) per<br \/>\nSTRANOFILE.JPG.<\/p>\n<p>&#8220;Apri con Terminal&#8221;[3]\/&#8221;Apri con Preview&#8221;\/<br \/>\n&#8220;Apri una finestra di Finder in quella directory&#8221;\/&#8221;Annulla&#8221;\n<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<p>Sicuramente quello che non vorrei e` che qualcun altro decidesse con quale applicazione qualcosa viene aperto sulla <strong>mia<\/strong> macchina.<br \/>\nOvviamente rimane il problema di avere degli utenti in grado di prendere delle decisioni, ma se l&#8217;highlight fosse su &#8220;Annulla&#8221; l&#8217;impatto sarebbe minimizzato.<\/p>\n<p>Per ora l&#8217;analisi del problema migliore che ho visto e` quella del SANS:<br \/>\nhttp:\/\/www.incidents.org\/diary.php?date=2006-02-21<\/p>\n<hr width=10%\/>\nnote:<br \/>\n[1] abbiate pieta`, ho Os X in inglese<br \/>\n[2] Uno shellscript senza header viene visto cosi`, invece che come &#8220;xxx shell script executable&#8221;<br \/>\n[3] Ancora meglio, &#8220;Apri con <em>un editor<\/em>&#8220;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ovvero &#8220;gli errori concettuali&#8221;. *Update 15:00, mi sono reso conto che le informazioni non sono chiare per chi non ha chiaro come funziona il giochetto: ne ho aggiunte sperando di chiarire* Heise.de nella persona di Michael Lehn ha trovato un efficace e divertente modo di mandare automaticamente in esecuzione uno shell script usando Safari (e &hellip; <a href=\"https:\/\/www.kill-9.it\/blog\/index.php\/2006\/02\/22\/safarimail-exploit\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Safari\/Mail exploit&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5,4],"tags":[],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-geek","category-italiano","category-security"],"_links":{"self":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":0,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}