Проблемы с некорректной очисткой остаточных данных в клиенте Tor и OpenSSL

Проблемы с некорректной очисткой остаточных данных в клиенте Tor и OpenSSL

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

Проблема связана с тем, что Tor использует для очистки кэша функцию memset(), которая игнорируется в результате работы оптимизаторов некоторых компиляторов, что может привести к появлению неочищенных областей памяти после закрытия приложения, сообщает opennet.ru. Например, при выборе режима оптимизации на скорость (-O2) Microsoft Visual Studio 2010 просто удаляет вызов memset при обнулении данных, если буфер в дальнейшем не используется в коде.

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

Little Snitch пришёл на Linux на фоне нового интереса к контролю трафика

Знаменитый сетевой инструмент Little Snitch, который много лет ассоциировался только с macOS, теперь добрался и до Linux. Разработчик объясняет это шаг тем, что в мире, где всё больше спорят о доверии к софту, обновлениям и контролю над устройствами, идея открытой и менее централизованной платформы начинает выглядеть для многих заметно привлекательнее.

На этом фоне он решил попробовать пожить с Linux как с основной системой и быстро упёрся в знакомую проблему: без Little Snitch там не хватает удобной, наглядной прозрачности по сетевой активности приложений.

По сути, Little Snitch для Linux делает то, за что его любят на macOS: показывает, какие процессы выходят в Сеть, и позволяет это оперативно ограничивать. Но технически новая версия устроена уже по-другому.

 

Инструмент использует eBPF для работы на уровне ядра, написан на Rust, а интерфейс выполнен в виде веб-приложения. Такой подход позволяет, например, наблюдать за удалённым Linux-сервером с другого устройства, не городя отдельную тяжёлую схему управления.

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

Часть проекта уже открыта: разработчик вынес в open source, в частности, eBPF-компонент и интерфейс. А вот бэкенд, который отвечает за правила и анализ соединений, пока остаётся закрытым. Это, судя по описанию, сознательное решение: именно там сосредоточена значительная часть накопленной за годы логики Little Snitch.

RSS: Новости на портале Anti-Malware.ru