26.07 // Явні паролі в оперативній пам'яті повсюдні
Наша взаимовыгодная связь https://banwar.org/
недавнє дослідження Прінстонської групи дало всім зрозуміти, що оперативна пам'ять комп'ютера не може вважатися абсолютно надійним сховищем таємних даних: стан ОЗУ не так чутливо до підтримки напруги, як вважалося раніше, і противник з фізичним доступом до машини здатний витягти вміст пам'яті в початковому вигляді навіть після "холодної "перезавантаження. Незалежний фахівець з інфобезпеки Шеррі Давидофф розглянув , Наскільки надійні поширені засоби шифрування, контролю доступу та звичайні програми перед подібним вектором атаки.
Головний предмет пошуку в даному випадку представляли паролі (а не кріптоключа), які використовуються повсюдно: для отримання доступу до поштової скриньки за допомогою 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/