Safari/Mail exploit

Ovvero “gli errori concettuali”.

*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 anche Mail, pare).
Analisi del problema:

  • Safari trova un file .zip
  • Una volta scaricato, ha l’abitudine di scompattare automaticamente questo formato
  • Se e` spuntata l’opzione “Open Safe files after downloading”[1] Safari tenta di passare il file ad una applicazione adatta a gestire quel formato
  • 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, __MACOSX/._)

(Il workaround per ora e` togliere la spunta da quell’opzione).

Il problema e` che la decisione se il file sia “safe” e la scelta dell’applicazione con cui aprirlo evidentemente vengono prese secondo criteri diversi, con l’effetto che uno shell script (con l’estensione .jpg, ad esempio) che non contenga la shebang in testa

#!/bin/bash

viene considerato “safe” per via del .jpg e poi “aperto” con Terminal.app (come specificato nei metadati).

Le scelta giusta poteva essere una di queste:

  • una volta scompattato il file, guardare l’estensione e di conseguenza aprirlo con l’applicazione di default per quell’estensione. Brutto ma banale, e prono ad errori.
  • invece che basarsi sull’estensione, guardare il magic del file. Dopotutto siamo su un sistema Unix, quindi capire cosa c’e` veramente dentro un file non dovrebbe essere un grosso problema. Dopo di che, se il magic riporta un tipo di dato diverso dall’estensione, avvisare l’utente e chiedergli di prendere una decisione.
    Nel caso di un .jpg contenente uno shellscript a me piacerebbe una finestrella che dicesse:

    Attenzione:
    il formato di file (“ASCII Text”)[2] e` in conflitto con l’estensione (“.JPG”) per
    STRANOFILE.JPG.

    “Apri con Terminal”[3]/”Apri con Preview”/
    “Apri una finestra di Finder in quella directory”/”Annulla”

Sicuramente quello che non vorrei e` che qualcun altro decidesse con quale applicazione qualcosa viene aperto sulla mia macchina.
Ovviamente rimane il problema di avere degli utenti in grado di prendere delle decisioni, ma se l’highlight fosse su “Annulla” l’impatto sarebbe minimizzato.

Per ora l’analisi del problema migliore che ho visto e` quella del SANS:
http://www.incidents.org/diary.php?date=2006-02-21


note:
[1] abbiate pieta`, ho Os X in inglese
[2] Uno shellscript senza header viene visto cosi`, invece che come “xxx shell script executable”
[3] Ancora meglio, “Apri con un editor

Author: zen

Geek of all trades, having fun with *NIX, the Internet and computer security since 1995.

2 thoughts on “Safari/Mail exploit”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.