id: Гость   вход   регистрация
текущее время 09:25 29/04/2024
Владелец: SATtva (создано 26/07/2008 21:27), редакция от 26/07/2008 21:27 (автор: SATtva) Печать
Категории: софт, инфобезопасность, защита дисков, безопасная разработка, truecrypt, защита email, уничтожение информации, атаки, защита im, разграничение доступа
http://www.pgpru.com/Новости/2008/ЯвныеПаролиВОперативнойПамятиПовсеместны
создать
просмотр
редакции
ссылки

26.07 // Явные пароли в оперативной памяти повсеместны


Недавнее исследование принстонской группы дало всем понять, что оперативная память компьютера не может считаться совершенно надёжным хранилищем секретных данных: состояние ОЗУ не настолько чувствительно к поддержанию напряжения, как считалось ранее, и противник с физическим доступом к машине способен извлечь содержимое памяти в исходном виде даже после "холодной" перезагрузки. Независимый специалист по инфобезопасности Шерри Давыдофф fileрассмотрел, насколько надёжны распространённые средства шифрования, контроля доступа и обычные программы перед подобным вектором атаки.


Главный предмет поиска в данном случае представляли пароли (а не криптоключи), используемые повсеместно: для получения доступа к почтовому ящику с помощью Thunderbird, подключения к IM-аккаунту через Pidgin, шифрования файлов или дисковых разделов с помощью GnuPG и TrueCrypt, удалённого входа в систему по SSH. Исследование проводилось в среде GNU/Linux (дистрибутив Ubuntu) с отключенным свопом. Давыдофф снимал дамп памяти после использования перечисленных программ, изучал его в поисках паролей, определял оффсет, по которому размещается тот или иной пароль, или последовательности байтов (сигнатуры), так же указывающие на расположенный рядом пароль. Полученные сведения затем использовались для извлечения паролей из второй тестовой системы.


Как оказалось, большинство обычных приложений держат используемые пароли в виде открытого простого текста в памяти своего процесса. Это закономерно, например, для Thunderbird для автоматической проверки почтового ящика. В других случаях это менее понятно: так, пароль от учётной записи пользователя остаётся в памяти оконного менеджера (в данном случае, gdm) даже после успешной аутентификации.


Средства безопасности, разработанные с учётом специфических атак, предпринимают более активные меры, дабы не сохранять пароли в памяти, но, к сожалению, в некоторых случаях не спасает и это. Пароль SSH не был найден в памяти процесса, однако, оказался в общем дампе памяти системы. То же самое касается пароля администратора (root), вводимого в su.


Парольная фраза от ключа GnuPG не была обнаружена ни в памяти процесса, ни в дампе памяти системы. К сожалению [для целей исследования], система безопасности ядра Linux не даёт доступ через устройство /dev/mem к зоне ОЗУ ZONE_HIGHMEM (верхняя половина памяти), поэтому образ мог быть снят только ZONE_NORMAL. Возможно, какие-то пароли могли бы быть найдены в ZONE_HIGHMEM; в то же время, не исключено, что превентивные меры GnuPG по блокированию и нулификации критических данных в памяти не дают им остаться там дольше, чем следует. Как бы то ни было, использование даже сверхзащищённого приложения в небезопасной среде чревато утечками: открытый текст сообщения, расшифрованного с помощью GnuPG, так и остался в памяти терминала Gnome.


Наиболее интересна ситуация в паролями от криптоконтейнеров TrueCrypt 5.1. Когда пользователь вводит пароль, программа позволяет сохранить его в кэше, чтобы избежать последующих запросов. Автор исследования подчёркивает, что кэширование не использовалось. Тем не менее, в памяти процесса TC удалось без труда обнаружить как пароль, так и полный путь и имя файла криптоконтейнера. Более того, область, содержащую пароль, предваряет фиксированная сигнатура (и даже счётчик длины пароля), позволяющая безошибочно опознать его в любой ситуации. Почему пароль сохраняется в памяти, даже когда пользователь явно просит этого не делать, — непонятно.


Атаки на явные пароли (с применением методов "холодной" перезагрузки или снятия дампа привилегированным пользователем) позволяют взломщику не только получить доступ к данным непосредственно на атакованной системе, но и составить словарь паролей для взлома иных систем, используемых тем же лицом. Использование в системе своп-раздела ещё более усугубляет ситуацию: в нём могут обитать пароли, проходившие через ОЗУ месяцы назад.


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


Источник: http://philosecurity.org/resea.....ext-passwords-linux/


 
На страницу: 1, 2, 3, 4 След.
Комментарии [скрыть комментарии/форму]
— Гость (01/08/2008 03:10)   <#>
Стеганофицировать программы таким образом можно только если кроме вас такую "стеганографию" никто не юзает.
Да нет, это вы несёте бред. То, что я предложил, будет работать даже если об этом все будут знать (ну пока вирусы шифрующие будут существовать). Причём без всякой психологии, так сказать "provable". А "стегодокументация" это больше для прикола сказано.

все незажокументированные функции вылезут наружу, да и ещё авторитет программы смогут подорвать
Интересно, подрывает ли авторитет компилятора с какого-нибудь языка возможность написать на этом языке что-нибудь заранее не предусмотренное? :)
И как недокументированный способ увеличить защищённость может подорвать авторитет программы, предназначенной для защиты?
— unknown (01/08/2008 09:42, исправлен 01/08/2008 09:47)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Сделайте отдельную очень маленькую программу, которая будет запускаться с отдельного носителя и висеть в виде процесса в памяти, а в случае сигнала на самоуничтожение, стирать заголовки подлежщих уничтожению шифроразделов по заданному конфигу, стирать с носителя себя и свои конфиги, затирать память и т.д.

Изначально программа может быть зашифрована с паролем, а расшифровываться например с помощью gnupg или даже стегоутилиты, распаковываться в память и там висеть.
— Гость (02/08/2008 00:37)   <#>
Причём без всякой психологии, так сказать "provable". А "стегодокументация" это больше для прикола сказано.

Я имел в виду идеи, высказанные здесь

Интересно, подрывает ли авторитет компилятора с какого-нибудь языка возможность написать на этом языке что-нибудь заранее не предусмотренное?

Точным аналогом был бы другой пример: незадокументированные опции компилятора, которые бы и вызывали подозрение (да, в компилятор тоже можно встраивать закладки).

И как недокументированный способ увеличить защищённость может подорвать авторитет программы

Публика может решить что от неё что-то скрывают в оупенсорс-продуктах – значит, это могут потенциально могут быть либо закладки в коде, либо иной допфункционал, реально ослабляющий заявленную степень защиты. Особенно это актуально в свете того, что лишь редко-редко кто самостоятельно проверяет сорсы подобных программы перед установкой. Также следует учесть, что оппонент, против которого предполагается защищаться подобными программами, уж явно не глупее среднетипичного юзера, сказавшего "Баа! А мужики-то не знают!"... так что ужержать подобный функционал скрытым реально не получится.
— Гость (02/08/2008 09:36)   <#>
Точным аналогом был бы другой пример: незадокументированные опции компилятора
Точным аналогом было бы незадокументированное использование задокументированных опций. Я предлагаю, "ради удобства пользователя", добавить в DC (в функцию стирания) возможность указывать файл с паттерном для затирки, и, разумеется, задокументировать эту опцию. То, что это можно будет использовать для смены загрузочного блока – просто приятный побочный эффект. Аналогично и с макроклавишами.

Это естественная повсеместная практика – нельзя предусмотреть и задокументировать все возможные варианты использования. Правда, в последнее время наблюдается тендендия писать вещи типа "эти шнурки не следует употреблять в пищу", ну так и тут можно написать: "данную опцию не следует применять для восстановлениЯ загрузочного блока (а особенно в связке с тревожной кнопкой)" :)

ужержать подобный функционал скрытым реально не получится.
Разумеется. Tак это и не надо. Смысл в возможности "правдоподобно отрицать", а "стегодокументирование" позволяет юзеру с большей правдоподобностью "прикинуться шлангом" (да и автору программы тоже :)

PS
Вот как приравняют наличие шифрующего вируса к экстремистской деятельности...
— Гость (02/08/2008 10:00)   <#>
Я имел в виду идеи, высказанные здесь
И как же эти идеи позволят отличить юзера, нажавшего улучшеную тревожную кнопку, от человека, заразившегося реальным загрузочным шифрующим вирусом-вымогателем?
— Гость (02/08/2008 11:35)   <#>
от человека, заразившегося реальным загрузочным шифрующим вирусом-вымогателем?

Откуда взять загрузочный шифрующий вирус, если таковых нет в природе?
— Гость (02/08/2008 13:00)   <#>
1) искать лучше
2) ждать появления
3) написать самому, исходники некоторых программ открыты. (исключительно в образовательных целях, понятное дело)

Вирус может быть даже с защитой от "атаки уборщицы" – для "подтверждения владения ключём расшифрования" перешифровывать части того, что уже зашифровано (выбирая их "случайным образом", совершенно случайно похожим на паттерн работы ОС).

Можно и без вируса – но тогда нужно объяснять наличие раздела со "случайными" данными. Но для этого можно использовать какую нибудь простую программу шифрования без скрытых контейнеров и загрузочных возможностей (откуда взять – см. вые). А шифрованную OC держать в скрытом контейнере в конце криптораздела.

Хотя от "атаки уборщицы" это и не спасёт, но правдоподобность отрицания будет выше.

Осталось подумать над более тщательной стегофикацией загрузочной флэшки.

И будет вам щастъе... :)
— Гость (02/08/2008 13:09)   <#>
Можно и без вируса
– с подменой загрузчика DC просто стандартным загрузчиком.
— Гость (02/08/2008 16:32)   <#>
тогда нужно объяснять наличие раздела со "случайными" данными

Скажите, что "отвёл свободное место на диске под инсталляцию линуха, но поставить его ещё не успел". А то что там данные случайны – так диск не ваш, может у предыдущего хозяина и впрямь там был шифрораздел... Разе не правдоподобно? Сейчас многие ставят несколько ОС на один и тот же диск.
— Гость (02/08/2008 16:33)   <#>
зы: если следов того, что шифрофс вы всё ж таки юзали на диске нет, то оснований вам не верить по сути нет тоже.
— Гость (02/12/2013 04:44)   <#>

На тему уё*ности дизайна современных сайтов целый сайт есть. :-)
На страницу: 1, 2, 3, 4 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3