Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Анализ программных реализаций. Практикум
.pdf
91
Атаки через графический интерфейс (GUI) применяются в отношении
очень многих продуктов и сводятся к тому, что некое троянское приложение
может посылать сообщения элементам интерфейса атакуемой программы.
Пример атаки через GUI:
begin
btnInsert.Enabled := UserIsAdmin;
btnEdit.Enabled := UserIsAdmin;
btnDelete.Enabled := UserIsAdmin;
end;
Методика защиты:
− блокировка выполнения пользователем некоторой операции должна
выполняться в коде самой операции, а не за счет блокирования элементов
управления;
− если речь идет о приложении, работающем с базой данных, то права
пользователя должны в первую очередь ограничиваться на уровне базы данных;
− антивирусы, брандмауэры и аналогичные приложения должны
обеспечивать контроль за GUI и сообщениями, которые передаются GUIэлементам от сторонних программ.
Утечка паролей из полей ввода.

92
Рисунок 33 – Поле ввода пароля и утилиты программы WinID
Методика защиты:
− отказ от применения стандартных GUI-компонентов для ввода паролей,
что особенно важно в случае со стандартным компонентом TEdit в Delphi;
− контроль и блокировка сообщений, присылаемых элементам ввода
пароля.
Отсутствие контроля типов параметров и их содержимого.
Пример: <?php echo “{$HTTP_GET_VARS[‘text_var1’]}”; ?>
Методика защиты:
− контроль типа параметров, в результате которого должно выявляться
соответствие переданных данных ожидаемому типу данных;
− создание единых алгоритмов проверки содержимого параметров,
содержащих текстовые данные.
Утечка информации через средства регистрации ошибок
Различные средства протоколирования и регистрации ошибок являются
неотъемлемой частью многих крупных проектов.
Методика защиты:

93
− пользователь приложения должен получать необходимый минимум
информации об ошибке, достаточный для принятия решения о дальнейших
действиях. Все детализированные данные должны регистрироваться в
недоступных для пользователя местах;
− в случае отображения информации об ошибке необходимо учитывать,
что многие системы помещают в текст сообщения достаточно большое
количество технических данных, которые могут применяться злоумышленником.
Хранение паролей в теле программы.
Данная ошибка является весьма распространенной и состоит в том, что где-
то в программе размещаются параметры для идентификации на некотором
сервере, для доступа к базе данных и т.п.
Методика защиты:
− изучение применяемых компонентов и правил их использования.
Например, в VCL-компонентах DOA для доступа к серверу Oracle имеется
свойство DesignConnection, блокирующее сохранение параметров соединения с
базой данных в ресурсах создаваемого EXE-файла (рис. 4);
− анализ приложения на предмет наличия в нем конфиденциальной
информации.

94
Рисунок 34 – Фрагмент ресурсов EXE-файла, использующего компонент
DOA
Передача конфиденциальной информации по открытому каналу.
Подобные случаи можно часто наблюдать в различных Web-приложениях,
немного реже – в приложениях в архитектуре «клиент-сервер». Передаваемые
открытым текстом конфиденциальные данные могут быть перехвачены
злоумышленником при помощи сниффера и использованы для последующего
доступа к системе.
Пример:
GET / HTTP/1.1
Accept: */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET
CLR 1.1.4322)
Connection: Keep-Alive
Authorization: Basic QWRtaW46VG9wU2VjcmV0
Методика защиты:
− применение защищенных протоколов (например, HTTPS) для передачи
конфиденциальных данных. В качестве альтернативного варианта возможно
применение собственных реализаций защиты на основе несимметричного
шифрования;
− передача вместо имени и пароля некоторой вычисленной по ним хеш-
функции.
Выводы:
− обучение программистов, ибо нередки ситуации, когда
профессиональные разработчики прикладных программ не задумываются о
вопросах безопасности создаваемых приложений;

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

96
Приложение Б
(рекомендуемое)
Примерные темы докладов
1. Статические и динамические анализаторы программ
2. Security Development Lifecycle
3. Обфускация программ
4. Деобфускация программ
5. Фаззинг программ
6. Протекторы и упаковщики программ
7. Ошибки переполнения буфера
8. Типичные ошибки разработки программ
9. Атаки перебора по словарю и полного перебора
10. Перехват и анализ сетевого трафика программ
11. Сканеры SQL-уязвимостей приложений
12. Сканеры XSS-уязвимостей Web-приложений
Подготовить доклад и презентацию на 15-20 мин по одной из
предложенных тем.
При работе над докладом необхоимо:
− Объяснить основные понятия, термины, дать определения;
− Провести классификацию (подходов, способов, инструментов и т.п. в
зависимости от темы);
− Сделать сравнительный обзор существующего инструментария (в
зависимости от темы);
− Описать типичные методы/техники с примерами;
− Продемонстрировать использования инструментов на типичных
задачах;

97
− Будет большим плюсом, если вы реализуете свою программу для
примера или в качестве инструмента.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
