Лазейка в Safari

В рамках работ по поиску разного рода вредоносного кода для MAC мы наткнулись на очень интересную особенность Safari. Оказалось, что Safari под MAC OS, как и многие другие современные браузеры, умеет восстанавливать прошлую рабочую сессию. То есть пользователь, открыв свой браузер, путём простейших манипуляций может восстановить все открытые им в прошлую рабочую сессию сайты и даже автоматически на них авторизоваться. Удобно? Бесспорно. Безопасно? Увы, нет.

Всё просто: для того чтобы браузер знал, на чем пользователь закончил прошлую сессию, эту информацию надо где-то сохранить. Очевидно, что это надо сделать в месте, которое не будет легко доступно кому угодно, и уж точно информация должна быть в зашифрованном виде.

Оказалось, что Safari хранит последние рабочие сессии в незашифрованном виде в обычном plist файле в свободном доступе. Соответственно, из них легко добыть учетные данные пользователей:

 
Скриншот plist файла после попытки логина в gmail

Даже невооруженным глазом видно, что логин и пароль не зашифрованы (на скрине выделены красным овалом).

В plist файле полностью сохраняется сессия авторизации на сайте в открытом виде, несмотря на https. Сам же файл располагается в скрытой папке, но доступной на чтение кому угодно.

Plist файл легко распаковывается самой системой. Он в структурированном виде хранит информацию о сохранённой сессии, в том числе http–запросы, шифрованные простейшим алгоритмом base64.

 
Распакованный plist файл

В Safari существует специальная функция, которая позволяет открыть сайты в том виде, в котором они оставались при завершении сессии – «Reopen All Windows from Last Session». Эта функция и использует LastSession.plist.

 
Функция «Reopen All Windows from Last Session» в Safari

Эта функция работает в следующих версиях MAC OS X и Safari:

  • OSX10.8.5 Safari, 6.0.5 (8536.30.1)
  • OSX10.7.5 Safari, 6.0.5 (7536.30.1)

Легко себе представить, что будет, если злоумышленник или вредоносная программа получит доступ к файлу LastSession.plist в системе, на которой пользователь логинится на сервисы Facebook, Twitter, Linkedin — или же на сайт своего банка.

Мы считаем, что хранение конфиденциальной информации в открытом виде с неограниченным доступом — это катастрофическая дыра в безопасности, позволяющая злоумышленникам беспрепятственно воровать пользовательские данные, затрачивая при этом минимум усилий.

Мы проинформировали компанию Apple о проблеме.

На данный момент мы не можем подтвердить или опровергнуть существование реального вредоносного кода, обращающегося к этому файлу. Но готовы биться об заклад, что такое ПО не заставит себя долго ждать.

В Safari 6.1 эта уязвимость была устранена.

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *