Научная статья на тему 'Общее представление проекта адаптивной интеллектуальной системы A_RPA'

Общее представление проекта адаптивной интеллектуальной системы A_RPA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
381
104
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / АДАПТИВНЫЕ СИСТЕМЫ / ПРОГРАММЫ УПРАВЛЕНИЯ / ПРОГРАММИРОВАНИЕ / БАЗЫ ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Штеренберг Станислав Игоревич

Для современного информационного общества настает период, когда понятие машина и искусственный интеллект (ИИ) представляет собой что-то общее. Вернее сказать было бы, что системы принятия решений, логические языки программирования и многое другое из ряда изучения о ИИ теперь не изучаются отдельно, а представляют собой единый объект для изучения. Общий ход написания и создания ИИ также более не сводится к единообразному компилированию или отладке конечной программы. Важно понимать, что построение интеллектуальных систем производится при помощи различных инструментов. Однако все сборное, должно представлять единое. В части аннотации уже напрашивается тогда мысль, что системы ИИ будут неким подобием биоаналогии современного мира. Проводится некая аналогия и сравнение с биологическим представлением, но по большей части следует сказать, что если и будет создан полноценный ИИ, то он принципиально будет отличаться от того, что нам будет известно до того времени. О том как проектируется и создается современная адаптивная интеллектуальная система и будет раскрыто в работе. Анализируя историю ИИ, можно выделить такое обширное направление как моделирование рассуждений. Многие годы развитие этой науки продвигалось именно по этому пути, и сейчас это одна из самых развитых областей в современном ИИ. Моделирование рассуждений подразумевает создание символьных систем, на входе которых поставлена некая задача, а на выходе ожидается ее решение. Как правило, предложенная задача уже формализована, то есть переведена в математическую форму, но либо не имеет алгоритма решения, или этот алгоритм сложный, трудоемкий и т.д. В это направление входят: доказательство теорем, принятие решений и теория игр, планирование и диспетчеризация, прогнозирование. Таким образом, на первый план выходит инженерия знаний, объединяющая задачи получения знаний из простой информации, их систематизацию и использование. Достижения в этой области затрагивают почти все остальные направления исследования ИИ. Здесь также необходимо отметить две важных подобласти. Первая из них машинное обучение касается процесса самостоятельного получения знаний интеллектуальной системой в процессе ее работы. Вторая связана с созданием экспертных систем программ, использующих специализированные базы знаний для получения достоверных выводов относительно произвольной проблемы. Большие и интересные достижения имеются в области моделирования биологических систем. Сюда можно отнести несколько независимых направлений. Нейронные сети используются для решения нечетких и сложных проблем, таких как распознавание геометрических фигур или кластеризация объектов. Генетический подход основан на идее, что некоторый алгоритм может стать эффективным, если отберет лучшие характеристики в других алгоритмов («родителей»). Относительно новый подход, где ставится задача создания автономной программы агента, который сотрудничает с окружающей средой, называется агентный подход. А если правильно заставить большое количество «не очень интеллектуальных» агентов сотрудничать вместе, то можно получить коллективный «муравьиный» интеллект.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Штеренберг Станислав Игоревич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Общее представление проекта адаптивной интеллектуальной системы A_RPA»

ОБЩЕЕ ПРЕДСТАВЛЕНИЕ ПРОЕКТА

АДАПТИВНОЙ ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ A_RPA

Штеренберг Станислав Игоревич,

аспирант Санкт-Петербургского

государственного университета

телекоммуникаций

им. проф. М.А. Бонч-Бруевича,

г. Санкт-Петербург, Россия,

shterenberg.stanislaw@yandex.ru

Ключевые слова:

искусственный интеллект, адаптивные системы, программы управления, программирование, базы данных.

?

О л л С

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

Анализируя историю ИИ, можно выделить такое обширное направление как моделирование рассуждений. Многие годы развитие этой науки продвигалось именно по этому пути, и сейчас это одна из самых развитых областей в современном ИИ. Моделирование рассуждений подразумевает создание символьных систем, на входе которых поставлена некая задача, а на выходе ожидается ее решение. Как правило, предложенная задача уже формализована, то есть переведена в математическую форму, но либо не имеет алгоритма решения, или этот алгоритм сложный, трудоемкий и т.д. В это направление входят: доказательство теорем, принятие решений и теория игр, планирование и диспетчеризация, прогнозирование. Таким образом, на первый план выходит инженерия знаний, объединяющая задачи получения знаний из простой информации, их систематизацию и использование. Достижения в этой области затрагивают почти все остальные направления исследования ИИ. Здесь также необходимо отметить две важных подобласти. Первая из них - машинное обучение - касается процесса самостоятельного получения знаний интеллектуальной системой в процессе ее работы. Вторая связана с созданием экспертных систем - программ, использующих специализированные базы знаний для получения достоверных выводов относительно произвольной проблемы.

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

Что наиболее важно и с чего стоит начать построение системы искусственного интеллекта ИИ? Как автор, я бы ссылался сначала на общую схему, где будет описан поэтапный разбор конструирования всех элементов системы. Общий проект имеет самоназвание и именнуется как A_RPA (лат. - rationabile progressio aggredi [умеренная программа для решения]) - проект объединяющий в себе несколько программных средств, аппаратно-программных средств и все ЭВМ включенные в одну локальную вычислительную сеть (ЛВС). Цель A_RPA обеспечить адаптивную защиту выделенной ЛВС.

Однако, в целом, вся адаптивная система не будет ограничиваться одной лишь защитой ЛВС. Среди списка ее задач будет следующее:

1. Содержание гибкой базы данных (знаний), накопление информации;

2. Саморазвитие, реализация адаптивных функций;

3. Успешная защита от:

• НСД;

• нарушения целостности;

• нарушения конфиденциальности.

4. Успешная «проактивная» защита:

• Преследование нарушителя, «заброс» вредоносных файлов;

• содержание вредоносных элементов;

• шифрование файлов;

• создание стеганограм.

Упоминается представление роевогопринципа роевого интеллекта (далее РИ). Известно, что системы роевого интеллекта, как правило, состоят из множества агентов (боидов) локально взаимодействующих между собой и с окружающей средой. Идеи поведения, как правило, исходят от природы, а в особенности, от биологических систем.

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

Здесь важно упоминание метода роя частиц (далее МРЧ) при построении. МРЧ оптимизирует функцию, поддерживая популяцию возможных решений, называемых частицами, и перемещая эти частицы в пространстве решений согласно простой формуле. Перемещение подчиняется принципу наилучшего найденного в этом пространстве положения, постоянно изменяется при нахождении частицами выгодных положений.

Далее можно задействовать следующий прием - Искусственный алгоритм пчелиной семьи (ABC). Данный алгоритм роя на основе мета-эвристического алгоритма

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

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

Несмотря на то, что природные иммунные системы изучены далеко не полностью, на сегодня существуют по меньшей мере три теории, объясняющие функционирование иммунной системы и описывающие взаимодействие ее элементов, а именно: теория отрицательного отбора, теория клональной селекции и теория иммунной сети. Они легли в основу создания трех алгоритмов функционирования ИИС.

Таким образом - весь проекта A_RPA решено складывать из следующих частей:

1. Medic_RPA (Санитар) - данное программное предназначенное для восстановления и поддержки всего ПО «A_RPA». Включает в себя следующие возможности:

• создание резервных копий;

• шифрование данных;

• встроенный стегокодер.

2. Worker_RPA (Рабочий) - специальное программное обеспечения для осуществления поисковой работы общего ИИ. Включает в себя:

• универсальный и совершенствуемый поисковик, самодописывающий инструкции поиска;

• анализатор + синхронизатор (для БД) выбранной/найденной информации;

• поисковик по заданным критериям. Умение искать информацию по системе уже знакомых понятий (к примеру поиск аналогов микроконтроллерных устройств для внедрения в мат. плату, или поиск синхронизируемых компонентом).

3. Solder_RPA (Солдат) - главная причина создания A_RPA в целом, инструмент защиты и атаки. Включает следующие элементы:

• антивирус (карантинная область, удаление вредоносных кодов);

• шпион - перехватчик информации (принцип DLP-систем, различных снифферов и кейлогиров);

• бекдор - важный инструмент для реализации скрытного захода не только на удаленные машины, но и на рабочие станции ЛВС;

• дешифратор - использование набора известных методов криптоанализа и стегоанализа (может разделяться на два элемента);

• заразитель - элемент подбора вирусных атак для контратаки нарушителя. Должен будет включать в себя знания о различных типах вирусов и элементов их рассылки (спам).

Итак, мы разобрали три компонента софта A_RPA. Принципиально выделить, что два компонента Worker_RPA и Solder_RPA нуждаются в наличие стойкой и гибкой Базы Данных, откуда будут браться основные элементы взаимодействия с адаптивной системы. Однако об устройстве базы данных мы поговорим позже. Прежде надо разобрать еще один элемент, наиболее важный для всей системы.

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

• Распознаватель. Иными словами - система «свой-чужой». Необходимый компонент для определения программ в ЛВС, вредоносных систем, а также гарантированная защита от НСД. Здесь и может быть впервые употреблен термин - самомодифицирующийся код RPA (или SM_Code_RPA). Поскольку в создании самомодификации есть определенные опасности, то применимо широкое знание цифровой стеганографии. Важно наличие элементов защиты во всех приложениях A_RPA.

• Синхронизатор, который будет содержать в себе основную часть команд для перечисленных ранее компонентов A_RPA. Важный элемент, поскольку над всей системой нужен тотальный контроль. Однако, команды могут впоследствии изменяться. О процедурах саморазвития системы мы поговорим позже.

• Стратегический комплекс. Как учтено во многих компьютерных играх, симуляторах и прочих тренажерах, там имеется некий ИИ, которых обладает своей стратегией, своей динамикой действий против пользователя и игрока. Этот элемент не менее важен для всей системы A_RPA, поскольку деятельность защиты и атаки будет осуществляться против пользователя. Добро пожаловать в игру!

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

FORUM - проект базы данных для программного

модуля А_ЯРА. Данная база данных должна подходить под общий принцип работы проекта ЯРА, а также следовать следующей принципам построения:

1. Машинное обучение. Так как раздел машинного обучения, с одной стороны, образовался в результате разделения науки о нейросетях на методы обучения сетей и виды топологий архитектуры сетей, а с другой, вобрал в себя методы математической статистики, то указанные ниже способы машинного обучения исходят из нейросетей. То есть базовые виды нейросетей, такие как перцептрон и многослойный перцептрон (а также их модификации) могут обучаться как с учителем, без учителя, с подкреплением, и активно. Но некоторые нейросети и большинство статистических методов можно отнести только к одному из способов обучения. Поэтому если нужно классифицировать методы машинного обучения в зависимости от способа обучения, то, касательно нейросетей, некорректно их относить к определенному виду, а правильнее классифицировать алгоритмы обучения нейронных сетей. Имеется множество объектов (ситуаций) и множество возможных ответов (откликов, реакций). Существует некоторая зависимость между ответами и объектами, но она неизвестна. Известна только конечная совокупность прецедентов -пар «объект, ответ», называемая обучающей выборкой. На основе этих данных требуется восстановить зависимость, то есть построить алгоритм, способный для любого объекта выдать достаточно точный ответ. Для измерения точности ответов определённым образом вводится функционал качества. Данная постановка является обобщением классических задач аппроксимации функций. В классических задачах аппроксимации объектами являются действительные числа или векторы. В реальных прикладных задачах входные данные об объектах могут быть неполными, неточными, нечисловыми, разнородными. Эти особенности приводятк большому разнообразию методов машинного обучения.

2. Квазибиологическая парадигма. Отличается от понимания искусственного интеллекта по Джону Мак-карти, когда исходят из положения о том, что искусственные системы не обязаны повторять в своей структуре и функционировании структуру и протекающие в ней процессы, присущие биологическим системам. Сторонники данного подхода считают, что феномены человеческого поведения, его способность к обучению и адаптации есть следствие именно биологической структуры и особенностей её функционирования. Сюда можно отнести несколько направлений. Нейронные сети используются для решения нечётких и сложных проблем, таких как распознавание геометрических фигур или кластеризация объектов. Генетический подход основан на идее, что некий алгоритм может стать более эффективным, если позаимствует лучшие характеристики у других алгоритмов («родителей»). Относительно новый подход, где ставится задача создания автономной программы - агента, взаимодействующей с внешней средой, называется агентным подходом.

Важнейшими элементами базы знаний являются инженерия знаний и представление знаний. База данных для Л_КРЛ строится с применением знаний:

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

2. Фреймы, как способ представления знаний. Фрейм - это модель абстрактного образа, минимально возможное описание сущности какого-либо объекта, явления, события, ситуации, процесса.

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

База данных A_RPA может быть не написана на первой стадии, однако под ее размер должно быть выделено довольно большое пространство.

Таблица 1

Представление ячеек базы данных

Сектор (table_type_l) Модуль (table_type_2) Значение (table_type_3) Примечание

Jornal Solder Ввод и вывод информации, обработка кодов и действий программы

Worker

Medic

Cerebro

SM_Code_RPA Stego_Option About_ef_embedding_ in_file Информация о ходе вложения в файлы

File_type_information Информация об использованных форматах файлов

Function_Option Дополнительные опции для действий БМ_Со(1е_КРА

Search_result 4 WWW_search_result Microkontroller_info Элементы, найденные на страницах веб, по сопоставлению с микроконтроллерными устройствами

Другое...

Local_Network_result Microkontroller_info Элементы, найденные на устройствах, по сопоставлению с микроконтроллерными устройствами

Softjnfo Элементы ПО, найденные на устройствах, по сопоставлению с остальным ПО

Другое...

Combat_sector Antivirus_sector_sign ature данные по защите информации

Attack_element данные по атакующим и вредоносным элементам

Strategic_department Location Microkontroller_info Информация о местоположении А_КРА на платах

Drawings Планы аудиторного комплекса

Build Информация о наличие софта поддержки

Rush Планирование атаки

Defend Планирование защиты

Digital_device Информация о наличие внешних цифровых устройств

Программа управления REX - примитивная и простая в использовании, она должны быть единственным связующим элементом между A_RPA и пользователем. В задачи REX входит следующее:

1. Непосредственное управление серверами и рабочими станциями.

2. Отслеживание действий работы A_RPA, а также SM_Code_RPA.

3. Общение с компонентом Cerebro и координация его действий.

4. Администрирование проектом A_RPA.

Для более детального представления работы ПУ REX, разберем скриншот прототипа (рис. 1).

На скриншоте цифрами отмечены следующие элементы:

1. Соединение с базой данных. Контроль и настройка конфигурации, работа в формах БД (Ниже отображены элементы для добавления знаний в базу знаний).

2. Соединение с базой журналов. Отображение действий кодов и их функций.

3. Настройка политики безопасности рабочих месте (+ режим сервера).

4. Настройки параметров соединения в ЛВС.

5. Просмотр и настройка конфигурации работы серверов (Server 1 - сервер, где установлен A_RPA; Server 2 - серверный компьютер, где планируется разворачивание базы данных {временно можно жесткий диск}).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Отображение информации о рабочих состояний имеющихся серверов и рабочих станций, а также сведения о работе ЛВС.

7. Графический режим с представлением текущих баннеров, на которых отображается всё действие происходящее в сети (надо проработать материал в различных средах графических режимов {применение MathCath, 3D MAX, AutoCAD}). Также я доступ на управление окном Cerebro.

В. Диалоговая строка общения и прописка дополнительных команд Cerebro.

9. Элементы связанные с ассемблерными формами обработки программ Solder, Worker & Medic. Ниже результат обработки из диалогового окна и из дочерних элементов.

10. Браузерная строка. Для обработки поисковых алгоритмов по веб-ресурсам, результаты работы скриптов.

11. Выбор режима работы программы:

- Admin - Возможность активировать все кнопки (нужна система идентификации и аутентификации);

- User - Не возможности работать с областями l, б, 7, В, lO.

12. Элемент предназначенный для активации самостоятельной работы A_RPA. Подается сигнал для передачи управления Cerebro, он блокирует кнопки ПУ REX и переводит его в режим User. Далее Cerebro автономен и управляет остальными компонентами A_RPA.

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

Подробнее о самомодификации можно объявить следующее:

Рис. 1. ^риншот прототипа REX

Самомодифицирующийся код встречается в вирусах, защитных механизмах, сетевых червях, кряках и прочих программах подобного типа. И хотя техника его создания не представляет большого секрета, качественных реализаций с каждым годом становится все меньше и меньше. Окутанный мраком тайны, окруженный невообразимым количеством мифов, загадок и легенд, самомодифицирующийся код постепенно уходит в прошлое. Рассвет эпохи самомодификации уже позади. Во времена неинтерактивных отладчиков типа debug.com и пакетных дизассемблеров типа Sourcer самомодификация действительно серьезно затрудняла анализ, однако с появлением IDA PRO и Turbo-Debugger все изменилось. Самомодификация не препятствует трассировке, и для отладчика она полностью прозрачна. Со статическим анализом дела обстоят несколько сложнее. Дизассемблер отображает программу в том виде, в котором она была получена на момент снятия дампа или загрузки исходного файла, рассчитывая на то, что ни одна из машинных команд не претерпит изменений в ходе своего выполнения. В противном случае реконструкция алгоритма будет выполнена неверно, и хакерский корабль при спуске на воду даст колоссальную течь. Однако, если факт самомодификации будет обнаружен, скорректировать дизассемблерный листинг не составит большого труда.»

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

Таким образом, можно сделать вывод по каким критериям будет строиться весь прототип ИИ RPA:

1. Наличием гибкой и расширяющейся базы данных.

2. Процедуры поиска и сбора информации:

• Обработка файловых структур;

• Внешние данные (поле иформации).

3. Система резервирования данных.

4. Наличие стеганографических преобразований в системе для обеспечения скрытности.

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

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

Вы спросите, для чего это все нужно?

1. Циклическое усовершенствование программы или ее алгоритма. Программа модифицирует себя, решает некоторую эталонную задачу и оценивает результат. На основе результата принимается решение о новом цикле модификации.

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

3. Программа может запоминать конкретного пользователя и подстраиваться под него. Например, можно экспериментировать с цветами и формой окна и спрашивать пользователя о приемлемом для него варианте или анализировать наиболее часто используемые пользователем функции программы. В случае оператора типа бш^сЬО может иметь смысл наиболее часто используемые варианты выбора передвигать вверх для того, что бы пытаться избежать проверок тех вариантов выбора, которые практически не используются.

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

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

1. Передача самомодифицирующегося кода в основной код исполнимого файла любого формата.

2. Стеганографическое сокрытие передаваемого файла с невозможностью его дальнейшего обнаружения.

3. Распространения самомодифицирующегося кода после команды оператора по всему приложению.

4. Реализация иммунной адаптивной защиты приложения.

5. Реализация возможности накопления «знания» в базу данных о всевозможных типах атаки нарушителей.

6. Реализация принятия решения о контратаки нарушителя.

7. Последующая реализация адаптивной интеллектуальной системы для автоматизации защиты приложений.

И последние комплектующие проекта A_RPA.

SERVER I - некая комплектующая машина оператора, где должны быть обязательно по минимуму следующие элементы:

1. Среда разработки (язык C#, Assembler).

2. Среда визуального/графического представления (AutoCath, 3D MAX, Corel Draw).

3. Системные требования минимальны: 2,2 Гц, б Гб ОЗУ, 1 Тб.

SERVER II - на первых стадиях развития хранилище, место хранения базы знаний RPA. Скорее всего внешний HDD от 4 Тб данных.

SERVER I размещает в себе компоненты программы A_RPA: Cerebro, Worker, Solder, Medic. SERVER II содержит базу знаний - FORUM. ПУ REX должен размещаться отдельно на рабочей станции администратора комплекса. Дополнительно должны иметься тестовые рабочие станции, не более двух для отработки системы удаленного взаимодействия и защиты. Подключение к интернету на ранних стадиях опасно для «жизни» кода (рис. 2).

Без преувеличения можно сказать что проект разрабатывается весьма активно, но в одиночку. Как видно из рис. 2 уже ведутся программные реализации базы данных (папка Forum), ПУ REX (Rex_using_ program), SM_Code_RPA (Cerebro with him hands and self-modify code - папка SM_Code_RPA). Как видно по проекту, сердце первоначального ИИ будет строиться от папки SM_Code_RPA. здесь будут протекать многие жизненно важные инструкции для Cerebro. Диалоговые окна и базовые функции строятся на языках С#/ C++, а системные данные и способы вложения реализуются по большей части на языке Aссеблера. Следует заметить, что соединение с базой данных осуществляться первоначально будет не на выделенном сервере или HDD, а допускается возможность размещение базы данных на SERVER I. Также первично разрешается скрестить компоненты ПУ REX и SM_Code_RPA на одной машине тоже.

Общая компоновка кодов осуществляется временно в Visual Studio (рис.З).

Выводы

Общая структура A_RPA иллюстрирует в некотором смысле систему роевого интеллекта, причем здесь наблюдается сочетание МРЧ и ABC методов в одном, потому что данная даптивная система имеет на вооружение несколько компонентов программы с разными функциями. Первоначально A_RPA разрабатывается как система защиты информации. Здесь важно наличие программы управления над ресурсами адаптивной системы ИИ. Такую функцию исполнить программа REX, которая важна на ранних стадиях разработки ИИ, потому что первичные элементы обучения могут быть «прописаны» только со стороны человеческого фактора.

Windows (С:) > Project A_RPA 1.0 > A_RPA_1.0

ßuüdProcessTemplates Forum

Forum scheme db Prototype Form for RPA Rex_using_progr3m SM_Code_RPA

Дата изменения

11.09.2015 23:06 26.09.201513:41 12.09.201519:20 12.09.201518:24 24.09.2015 23:31 26.09.201512:31

Тип

Папка с файлами Папка с файлами Папка с файлами Папка с файлами Папка с файлами Папка с файлами

Размер

Рис. 2. Ход разработки проекта A_RPA_1.0

Рис. 3. Ход проекта A_RPA_1.0

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

Литература

1. Миллер П. Роевой интеллект: Муравьи, пчелы и птицы способны многому нас научить// National Geographic Россия. 2007. № 8. С. 88-107.

2. RPA (rationable progressimo aggredi) (лат.), Свидетельство о государственной регистрации программы для ЭВМ №2015611539. Дата поступления 02 декабря 2014 г. Зарегистрирована в Реестре программ для ЭВМ 30 января 2015 г., Правообладатель: ФГОБУ ВПО «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А.Бонч-Бруевича». Авторы: Штеренберг С.И., Андрианов В.И., Липатников

B.А., Костарев С.В.

3. Denning D. E. An intrusion detection model // IEEE Trans. on Software Engineering. 1987, SE-13. Pp. 222-232.

4. Красов А.В., Штеренберг С.И., Верещагин А.С. Разработка методов защиты от копирования ПО на основе цифровых водяных знаков внедряемых в исполнимые и библиотечные файлы. // Актуальные проблемы инфокоммуникаций в науке и образовании. 2013.

C. 847-852.

5. Штеренберг С.И., Андрианов В.И. Варианты модификации структуры исполнимых файлов формата PE. // Новосибирск: Перспективы развития информационных технологии. 2013. С. 134-143.

Для цитирования:

Штеренберг С.И. Общее представление проекта адаптивной интеллектуальной системы A_RPA // Наукоемкие технологии в космических исследованиях Земли. 2015. Т. 7. № 5. С. 50-57.

i Надоели баннеры? Вы всегда можете отключить рекламу.