Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

Несетевая защита

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #051, стр. 051-100-1


Методология защиты софта в *nix

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

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

Именно поэтому в мире *nix так мало способов защиты от несанкционированного копирования. Хотя Linux в этом отношении – исключение. Ориентированная на использование на домашних и офисных компьютерах, она идет по тропе варварского рынка (он же – "массовый рынок"), на котором обитают хакеры, пираты и продвинутые пользователи, способные постоять за свои права наскоро скачав из сети свежий crack. Без достойной защиты никуда! Без достойной защиты твоя программа вообще не будет продаваться.

Разведка перед боем

Для хакера ПО *nix-системы – не очень интересное место. Достойного инструментария здесь нет, и не будет даже в скором времени. Взламывать софт приходится голыми руками (немного помогая головой). Больше всего удручает отсутствие полноценного отладчика, если не SoftIce’а, то хотя бы OllyDbg. Мелочи наподобие дамперов памяти, разных патчеров, автоматических распаковщиков тоже придется писать самостоятельно, поскольку живых представителей этой фауны вряд ли удастся обнаружить в Сети. Повсюду только бесконечные кладбища заброшенных проектов.

Будем надеяться, что через несколько лет ситуация измениться (как известно, спрос рождает предложение), а пока ограничимся кратким обзором существующего софта, полезного при взломе приложений в *nix.

Отладчики

GDB – кросс-платформенный source-level отладчик, основанный на библиотеке Ptrace (см. man ptrcae) и ориентированный преимущественно на отладку приложений с исходными текстами. Для взлома подходит плохо, если подходит вообще. Поддерживает аппаратные точки останова на исполнение (однако при запуске из-под VMWare они не срабатывают, а на голом железе я его не гонял), но не тянет чтение/запись памяти. Не может брякать и модифицировать совместно используемую память (то есть ls с его помощью ты вряд ли отладишь!). Поиск в памяти отсутствует как таковой. Отказывается загружать файл с искаженной структурой или с отрезанной Section table. Внешне представляет собой консольное приложение со сложной системой команд, полное описание которых занимает порядка трехсот страниц убористого текста. При желании к отладчику можно прикрутить графическую оболочку (благо недостатка в них нет), однако красивым интерфейсом кривое ядро не исправишь. За время своего существования GDB успел обрасти густой шерстью антиотладочных приемов, которые в основном до сих пор актуальны. GDB бесплатен, распространяется по лицензии GNU (отсюда и название – Gnu DeBugger), входит в комплект поставки большинства *nix-систем и к тому же позволяет патчить исполняемый файл не выходя из отладчика.

Содержание  Вперед на стр. 051-100-2