Новость из категории: Информация » IT

Ошибки сегментации и безопасность: специфика FOSS

Содержание:
1. Модель памяти процесса и атаки на переполнение буфера, стек;
2. Куча;
3. Средства защиты, способы их обхода и слова-канарейки;
4. «Канарейки» в glibc и NX-бит;
5. Коммерческая сторона и конкуренты (Вы читаете данный раздел);
Ошибки сегментации и безопасность: специфика FOSS

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

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



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

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

Атакующим гораздо проще отталкиваться от факта аварийного завершения приложения в некоторой ситуации. При «падении» приложения можно получить снимок образа его памяти и оценить - что привело к падению и можно ли это использовать в корыстных интересах. Последний шаг действительно проще сделать, имея доступ к исходному коду. Однако и анализ дизассемблированного кода программы не так сложен, как может показаться. И множество атак на проприетарные приложения - хорошее тому подтверждение.

Заключение

Ошибки сегментации и безопасность: специфика FOSS

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

Конечно, можно просто использовать языки программирования и соответствующие среды исполнения с автоматическим управлением памятью - такие как Java или Python, однако полностью заменить традиционные C/C++ они пока не могут.

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

Пользователям же я хочу посоветовать не быть пассивными и при обнаружении ошибок сегментации в приложениях (или просто при «падении» приложений в случае программ с графическим интерфейсом) сообщать об этом их авторам или разработчикам используемого дистрибутива. Ведь именно коллективная работа над ПО является силой Open Source, и пользователи - такие же участники этого процесса, как и разработчики.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх