Похожие презентации:
Презентация лекция №8
1.
ВОЕННО-КОСМИЧЕСКАЯ АКАДЕМИЯ ИМЕНИ А.Ф. МОЖАЙСКОГОЛекция № 8
Анализ программных реализаций при отсутствии исходных
текстов программ
2.
2Лекция №8
Статический и динамический анализ
телекоммуникационного оборудования Cisco.
Цель: Изучить порядок проведения статического и динамического анализа для
выявления и запрета выполнения недокументированных
команд (НДК) телекоммуникационного оборудования (ТКО) Cisco.
Учебные вопросы:
1.
2.
3.
Технологическая схема проведения статического анализа.
Статический анализ исполняемого кода.
Создание стенда для динамического анализа ТКО Cisco.
3. 1. Технологическая схема статического анализа ТКО.
Назначение технологии - выявить состав НДК и сделатьневозможным их запуск (выполнение) на ТКО. Основная
задача естественным образом разбивается на следующие
подзадачи:
1. Предварительный этап -выявление декларированных
команд, выполняется
на ТКО методом сканирования
(динамический анализ) с помощью инструментального
комплекса Эфрос-Pix.
2. Выявление
состава НДК, проводится методом
статического анализа.
3. Предотвращение выполнения выявленных НДК,
проводится либо модификацией кода прошивки, либо
конфигурированием подсистем разграничения доступа к
командам ТКО.
Объект анализа -готовые к применению исполняемые коды
ПО Cisco ASA (asa802-k8.bin), для которых отсутствуют
исходные тексты.
3
4. Этапы статического анализа выявления и предотвращения НДК
Выявлениедекларированных
команд
1
2
Сканироование
команд на МСЭ
Дизассемблирова
ние бинарного
образа МСЭ
Выявление
недокументированных команд
Статический
анализ
дизассемблированного кода
Предотвращение
выполнения
недокументированных команд
3
5
4
6
Формирование
множества НДК
Удаление НДК из
двоичного образа
Разграничение
доступа к
командам МСЭ
4
5. Предварительный этап -выявление декларированных команд
Предварительный этап -выявление декларированных команд5Предварительный этап -выявление декларированных команд ТКО
осуществляется методом сканирования (динамический анализ) с помощью
инструментального комплекса Эфрос-Pix.
Результат сканирования-перечень документированных команд и их
операндов.
6. Предварительный этап. Стенд для сканирование команд
Для получении достоверной информации о командах и ихоперандах сканирование должно выполняться с активацией всей
функциональности МСЭ. Команды становятся доступными только
лишь в случае, если сконфигурированы соответствующие сервисы
и функции. В противном случае команды не будут отображаться в
справочной подсистеме и сканеру будут недоступны.
6
7. Постановка задачи проведения статического анализа.
Исходные данные:• исполняемые коды CПО Cisco ASA , файл
прошивки asa802-k8.bin
• общедоступная информация об CПО Cisco ASA
Метод проведения исследований:
• статический анализ(без запуска СПО Cisco
ASA) исполняемого кода
Результаты исследований:
• список недокументированных команд СПО Cisco
ASA и способ их отключения путем
модификации прошивки.
7
8. Модель проведения статического анализа
Допущение. Дизассемблированный код Cisco Pix полностью описываетфункциональность МСЭ Cisco ASA и соответствующий ей набор команд
управления и конфигурирования.
После принятия допущения можно построить диаграмму соответствия
между командами в дистрибутиве и дизассемблированном коде:
8
9. Модель проведения статического анализа (продолжение)
d – процедура дизассемблирования загрузочного кода Е ASA;сs – процедура выявления команд ASA в дизассемблированном коде;
се – процедура выявления команд ASA в загруженном коде;
Ks – набор выявленных команд управления и конфигурирования
дизассемблированному коду и документации. Ks = сs (d (E));
по
Ke – набор выявленных команд управления и конфигурирования по загруженному
коду. Ke = се ( E );
cs – процедура сопоставления Ks и Ke..
Так как диаграмма коммутативная, то мы вправе ожидать корректной реализации
нахождения Кs и Ke по соответствующим путям, и выполнения условия
сс (се (E)) ⊆ сs (d ( E )).
Ks = сs (d ( E )) можно получить из дизассемблированного кода и уточнить с
помощью команды ASA sh pars dump all.
Ke = се ( E ) можно получить, используя
инструментального комплекса ЭФРОС-PIX.
функцию
сканера
При выполнении процедуры сопоставления для выделения и
фиксации НДК привлекаются документация и анализ атрибутов команд по
S = d ( E ).
9
10. Этапы и задачи статического анализа
1.Выявленияструктуры файла прошивки и определение
компонент и характеристик структурных элементов прошивки.
2.Вычленение операционных и прикладных компонент
прошивки и их характеристик
3.Создание стенда для воссоздания компонент прошивки из
исходных текстов выявленных компонентов, сравнение с
компонентами прошивки
4.Дизассемблирование ядра СПО и проведение статического
анализа ядра СПО
• выявления структурных характеристик команд
• поиск признаков НДК
• формирование списка документированных команд
• сравнение выявленных документированных команд в прошивке
со списком команд, полученных с помощью сканера Эфрос
• поиск различий документированных и недокументированных
команд
• поиск способов отключения НДК в файле прошивки
10
11. Выявления структуры файла прошивки
Анализ файла прошивки asa802-k8.bin в hex - редакторена наличие сигнатуры (0x1F8B0800), оставляемой в
заархивированных объектах утилитой gzip, в файле
можно выделить четыре структуры и сформировать
файлы:
1. Загрузчик (дополнительный) – loader1.bin;
2. Ядро Linux версии 2.6.17.8 – zip1.gz;
3. Подсистемы ASA – zip2.gz;
4. Загрузчик (основной) – loader2.bin.
Части 1 и 4, связаны с начальной загрузкой и
распаковкой двух других частей (2 и 3) и поэтому
принципиально не архивируются. Части 2 и 3
обеспечивают заявленную функциональность МСЭ
Cisco ASA 550
11
12. Cтруктура файла прошивки
1213. Верификация компонентов дистрибутива прошивки
Ядро Linux версии 2.6.17.8 – zip1.gz1.Выполнить лабораторную сборку ядра и библиотек из репозитория Linux
для версии 2.6.17.8.
2.Для лабораторной сборки сформировать дерево каталогов c файлами
(ДКФ1) с помощью утилиты сpio.
3.Выполнить загрузку образа Cisco Asa и сформировать из оперативной
памяти дерево каталогов c файлами (ДКФ2)
4.Выполнить сравнение ДКФ1 и ДКФ2.
13
14. Технологическая схема модели исследований
makefileИсх.тексты
ядра Linux
makefile
GCC
Исх.тексты
библиотек
РАЗРАБОТЧИК
Исх.тексты
модулей ASA
GCC
Средства создания дистрибутива
Дистрибутив asa802-k8.bin
Команды
управления
и конфиг-я
Препарирование
дистрибутива
Загрузка ASA
Утилиты, скрипты
Модули ASA
Дерево каталогов с загрузочными
файлами ASA
Ядро Linux
Библиотеки
Лаб. сборка
ядра Linux
Лаб. сборки
библиотек
GCC
GCC
Исх.тексты
ядра Linux
Исх.тексты
библиотек
www.kernel.org/
//ftp.gnu.org/
gnu/glibc/
Эфрос-PIX
IDA Pro
Сканер
Эфрос
IRIDA
Отчет
БД IDA Pro
(дизассемб-й
текст ASA)
БД IRIDA
БД
команд ASA
ИСПЫТАТЕЛЬ
Загрузочный
образ ASA
14
15. Статический анализ образа. Процедуры анализа.
1. С помощью дизассемблера IDA Pro выполнитьдизассемблирование подсистемы ASA
2.
Провести
статический
анализ
дизассемблированного кода
• Выявить текстовые константы
• Выделить из текстовых констант имена команд
конфигурирования
• Выявить адреса подпрограмм начала цепочек
обработки команд
• Провести анализ структур данных обработчиков
команд
• Выявить признаки документированных и
недокументированных команд
15
16. Поиск начала цепочек команд
ciscoasa(config)# show parser modeParser modes:Name
Prompt
Top
exec
0x 95ebf60
configure
config 0x 95ebc28
filter
0x 95ebb24
interface
config-if 0x 95ebac4
subinterface
config-subif 0x 95ebac4
Имя режима
Приглашение
режима
Alias
TRUE
TRUE
FALSE
TRUE
TRUE
16
Privilege
TRUE
TRUE
FALSE
TRUE
FALSE
Изменить
уровень
привилегий
Адрес начала
цепочки команд
17. Структура данных цепочек команд
Функция обработкикомананды
Ссылка на команду
такого-же уровня, что
и данная
Ссылка на текст
команды
Ссылка на команду
такого-же уровня, что
и данная
Атрибуты команды
(0xFF в 3 байте –
скрытая команда)
client-update tunnel-group <string>
17
18. Структура данных цепочек команд (продолжение)
Функция, выполняемаяв конце цепочки
(нажатие Enter)
client-update tunnel-group <string>
18
19. Результаты статического анализа
1.Декомпозиция корректно.2.Результаты сборки ядра и ядро в АСА
соответствуют.
3.Анализ
текстовых
констант
позволил
выполнить корректную привязку команд к
подпрограммам их обработки.
4.Выявлены признаки скрытых команд.
5.Модификация позволяет открыть командпоявляются в справочной подсистеме либо их
отключить
скорректировав
адреса
связи
элементов цепочек.
19
20. Проверка на реальном устройстве
ciscoasa# client-update ?all
All active remote clients on all
tunnel-groups
tunnel-group A named valid tunnel-group for remote
client update
ciscoasa# client-update tunnel-group ?
WORD Tunnel group to apply immediate update
ciscoasa# client-update tunnel-group GROUP_1 ?
<cr>
ciscoasa# client-update tunnel-group GROUP_1
20
21. 3. Создание стенда для динамического анализа ТКО Cisco.
Требования к стенду1.Проведение динамического анализа маршрутизатора Cisco в условиях
наличия программного образа и отсутствия соответствующего оборудования.
2.Задачи динамического анализа -выявление и проверка наличия в СПО НДК
и конфигурирование маршрутизатора для создания защиты от НДК.
3.Взаимодействие
с
маршрутизатором
для
администрирования
и
конфигурирования маршрутизатора осуществляется по протоколу Telnet.
4.По протоколу Telnet к маршрутизатору должна быть возможность
подключения внешних Windows программ для выявления НДК методом
«грубой силы» и сканирования документированных команд.
5.Защита от НДК должна обеспечиваться настройкой соответствующих
уровней привилегий команд встроенными средствами и с использованием
внешнего сервера авторизации типа Tacacs+.
21
22. Эмуляция оборудования
Эмуляция оборудования заключается в программном моделированииЭВМ с различной архитектурой процессоров.
Эмуляторы –позволяют проводить динамический анализ реальных
образов исполняемых программ без наличия оборудования.
SimNow – программа эмуляции AMD64.
QEMU – ПО с открытым исходным кодом для эмуляции аппаратного
обеспечения различных платформ, включает в себя эмуляцию процессоров Intel
x86 и устройств ввода-вывода, может эмулировать 80386, 80486, Pentium,
Pentium Pro, AMD64 и другие x86-совместимые процессоры; PowerPC, ARM,
MIPS, SPARC, SPARC64.
Эмуляторы оборудования Cisco:
Cisco Packet Tracer, GNS3, Boson NetSim, Cisco IOU, Dynamips.
Dynamips- программный эмулятор маршрутизаторов Cisco. позволяет
эмулировать аппаратную часть маршрутизаторов, непосредственно загружая и
взаимодействуя с реальными образами Cisco IOS.
GNS3 (Graphical Network Simulator 3) - это программа с открытым исходным
кодом, предназначена для симулирования сложных компьютерных сетей.
Использует эмуляторы для различных видов сетевых устройств - Dynamips,
VirtualBox, Juniper и Qemu.
22
23. Выбор эмулятора
1. Версия образа маршрутизатораCisco Internetwork Operating System Software
IOS (tm) 3700 Software (C3745-I-M), Version 12.2(8)T10
cisco 3745 (R7000) processor (revision 53.51) with 262144K/9216K bytes of
memory.
2. Процессор MIPS R7000.
3. Операционная система технологического компьютера -Windows 10.
4.Операционная среда функционирования программ для выявления
НДК методом «грубой силы» и сканирования документированных
команд –Windows.
4.Программа удаленного подключения к эмулятору -Putty.
5.Внешний сервер авторизации TACACS+ (WINDOWS).
Выбор эмулятора
Стенд
создается
на
базе
телекоммуникационного оборудования
Simulator 3) с эмулятором Dynamips.
графического
симулятора
GNS3 (Graphical Network
23
24. Вариант архитектуры стенда для статического и динамического анализа процессов СПО Cisco
Вариант архитектуры стенда для статического и динамического анализа процессов24СПО Cisco
ОС Windows 7/10 (x86_64)
Эмулятор VMware (x86_64)
ОС Ubuntu (x86_64) - графический режим
Эмулятор Dynamips (PowerPC)
СПО Cisco IOS
f0/0
(23 порт telnet)
console
(2003 порт)
Управление
IDA Pro
(дизассемблер)
GDB-сервер
Отладка
(порт 6666)
GDB-клиент
Статический анализ
Копия Cisco IOS
image.bin
Telnet-клиент
Putty
Эмуляторы- Dynamips, VMware.
Операционные системы-Windows,Ubuntu,Cisco IOS.
IDA Pro-дизассемблирование образа Cisco IOS, статический анализ
модулей СПО Cisco.
GDB-клиент в составе IDA Pro- обеспечивает взаимодействие с GDBсервером (отладчик), встроенным в эмулятор Dynamips, обеспечивает
мониторинг аппаратно-программной среды, Cisco
в которой
эмулируется исполнение СПО Cisco, а также передачу информации о
состоянии GDB-клиенту.
25. Graphical Network Simulator ( графический симулятор сети)
2526. Основные шаги создания стенда для исследования НДК.
1.Создание проекта26
27. Основные шаги создания стенда для исследования НДК
2.Выбор типа устройства и прошивки27
28. Основные шаги создания стенда для исследования НДК
3.Добавление нового оборудования28
29. Основные шаги создания стенда для исследования НДК
4. Установка нового оборудования в рабочуюобласть и загрузка маршрутизатора.
29
30. Основные шаги создания стенда для исследования НДК
5. Сканирование команд маршрутизатора спомощью программы Cisco Reget
30
31. Основные шаги создания стенда для исследования НДК
6. Результаты сканирования команд на различных уровняхпривилегий
31
32. Основные шаги создания стенда для исследования НДК
7. Поиск недокументированных команд с использованиемпрограммы Cisco Checker
Входной файл параметров
(Symbols.ini)
Выполненная команда
(Incomplete.txt)
32
33. Основные шаги создания стенда для исследования НДК
8. Проверка недокументированной команды Show list7. Проверка НДК Show list
33
34. Основные шаги создания стенда для исследования НДК
Проверка недокументированной команды Who34
35. Основные шаги создания стенда для исследования НДК
9. Запрет выполнения недокументированнойкоманды Who на 0-14 уровнях привилегий
35
36. Основные шаги создания стенда для исследования НДК
Запрет выполнения недокументированной командыWho на 0-14 уровнях привилегий
36
37. Практическое задание №1
37Настройка прав выполнения команд на заданном уровне
привилегий (Cisco) для запрета выполнения НДК
Порядок выполнения практического задания
1.Подготовить виртуальный стенд (на базе симулятора
GNS3) для анализа маршрутизатора Cisco 3745.
2.Провести сканирование документированных команд с
использованием программы Cisco Reget на 1 и 15 уровнях
привилегий режима EXEC.
3.Для НДК режима EXEC файл НДВ.xls (команда=№п.п
учебной группы) выполнить анализ с помощью программы
CiscoChecker.
4.Выполнить настройку маршрутизатора для запрета НДК
для пользователя 12 уровня привилегий.
5. Сформировать отчет по каждому пункту задания.
38.
Практическое задание №1Настройка прав выполнения команд на заданном уровне
привилегий (Cisco) для запрета выполнения НДК
Порядок выполнения практического задания
1.Подготовить виртуальный стенд (на базе симулятора GNS3) для
анализа маршрутизатора Cisco 3745.
2.Провести сканирование документированных команд с использованием
программы Cisco Reget на 1 и 15 уровнях привилегий режима EXEC.
3.Для НДК режима EXEC файл НДВ.xls (ком анда=№п.п учебной группы)
выполнить анализ с помощью программы CiscoChecker.
4.Выолнить настройку маршрутизатора для запрета НДК для
пользователя 12 уровня привилегий.
5. Сформировать отчет по каждому пункту задания.