Удастся ли настолько точно описать человеческий разум, чтобы воспроизвести его с помощью машины? У ученых нет единого мнения на этот счет. Разработчики, которые пытаются создать искусственный интеллект, используют совершенно разные подходы. Одни отдают предпочтение искусственным нейронным сетям, другие — экспертным системам, эволюционным алгоритмам или системам нечеткой логики. Но до сих пор ни один автономный искусственный интеллект не прошел тест Тьюринга, в котором требуется, чтобы интеллектуальная деятельность машины была неотличима от человеческой.
Одним из перспективных направлений, где оправданно применение автономного ИИ, являются компьютерная вирусология и удаленное лечение компьютера.
Главной нерешенной задачей в области искусственного интеллекта (ИИ) является создание автономного ИИ, то есть ИИ, способного к обучению, принятию самостоятельных решений, переобучению и изменению собственного поведения. Можно построить узкоспециализированную систему, можно сделать и более универсальный сложный ИИ, но практически всегда это система, которая использует уже заложенные в нее людьми опыт и знания, описанные в виде обучающих примеров, правил или алгоритмов.
Почему сложно создать автономный искусственный интеллект? Потому что у машины пока нет таких человеческих качеств, как образное мышление, интуиция, умение самостоятельно отличать важное от второстепенного, а самое главное — у нее нет стремления к познанию нового. Все эти качества дают человеку возможность находить верные решения даже в нестандартных ситуациях. А искуственному интеллекту для работы обычно требуется, чтобы люди заранее заложили в него эффективный алгоритм действий. Тем не менее, попытки приблизиться к созданию автономного ИИ предпринимаются постоянно, и некоторые из них небезуспешны.
Издержки ручного труда
Процесс обнаружения вредоносных программ и восстановления нормальных параметров компьютера состоит из трех основных этапов, независимо от того, кто этим занимается — человек или интеллектуальная машина. Первый этап заключается в сборе объективных данных об исследуемом компьютере и программах, которые на нем работают. Оптимально, когда такое исследование выполняется с помощью быстрых автоматизированных инструментов, работающих без участия человека и формирующих отчеты в машиночитаемой форме.
Второй этап состоит в изучении собранных данных и выполнении уточняющих исследований. К примеру, в отчетах обнаруживаются сведения о подозрительных объектах — следовательно, эти объекты необходимо поместить в карантин и подвергнуть всестороннему анализу для вынесения вердикта об опасности и принятия решения о дальнейших действиях.
Третий этап — это непосредственно процедура лечения, для которой может применяться специализированный скриптовый язык, содержащий команды для удаления вредоносных файлов и восстановления нормальных параметров вычислительной системы.
Еще несколько лет назад этапы 2-3, как правило, выполнялись практически без автоматизации, вручную, аналитиками антивирусных компаний и экспертами специализированных форумов. Однако рост числа пользователей, ставших жертвами вредоносных программ и обращающихся за помощью, вызвал ряд проблем, среди которых можно отметить следующие:
- при ручной обработке протоколов и файлов карантинов вирусный эксперт сталкивается с огромным объемом непрерывно поступающей информации, которую нужно обязательно осмысливать, что замедляет процесс анализа;
- возможности человека имеют естественные психофизиологические ограничения. Любому человеку свойственно уставать и ошибаться, и чем объемнее решаемые задачи, тем выше вероятность ошибок. Перегруженный вирусный эксперт, например, может не заметить вредоносной программы, или наоборот, удалить легитимное приложение;
- в случае, если лечение компьютеров пользователей выполняет несколько специалистов, крайне затруднен обмен накопленным ими опытом. А обмен опытом очень важен, чтобы можно было использовать уже известный способ для лечения компьютеров, пострадавших от идентичных вредоносных программ;
- анализ полученных файлов в карантинах является крайне трудоемкой операцией, потому что эксперту необходимо учитывать особенности получения того или иного образца: где он фигурировал и в чем и почему подозревается.
Решить указанные проблемы можно только путем автоматизации процесса обработки данных о компьютерных угрозах, уязвимостях и повреждениях системы. Однако многочисленные попытки сделать это различными алгоритмическими методами не дали положительных результатов. Главная причина этого заключается в том, что вредоносное ПО совершенствуется, ежедневно появляются десятки новых разновидностей вредоносных программ, отличающихся методами внедрения и маскировки в компьютерной системе. В результате алгоритм обнаружения получается крайне сложным, но хуже того — он очень быстро устаревает и его приходится постоянно актуализировать и отлаживать. Другая проблема состоит в том, что качество работы любого алгоритма будет ограничено профессиональным уровнем создающих его специалистов.
Применять для «ловли» вирусов экспертные системы оказалось не многим более результативно. Разработчики антивирусных экспертных систем сталкиваются с похожими проблемами: результативность работы экспертной системы зависит от качества заложенных в ней правил и баз знаний, причем эти базы тоже надо постоянно актуализировать, а значит, опять привлекать человеческие ресурсы.
Общие принципы работы системы КиберХелпер
Тем не менее опыты в этой области привели наконец к успеху. Была разработана вычислительная система КиберХелпер — удачная попытка приблизиться к автономному ИИ, предназначенному для борьбы с вредоносными программами. Множество автономных подсистем КиберХелпера способны к синхронизации, обмену данными и совместной работе. Естественно, что в КиберХелпер заложено некоторое количество «жестких» алгоритмов и правил, которые применяются в обычных программах, однако большинство его подсистем используют аппарат нечеткой логики и самостоятельно определяют свое поведение при решении различных задач.
Основа системы КиберХелпер — утилита AVZ, которая была создана автором в 2004 г. специально для автоматического сбора данных об исследуемых ПК и вредоносных программах для дальнейшего представления этих данных в машиночитаемом виде. Утилита формирует протоколы исследования компьютерной системы в форматах HTML (для чтения человеком) и XML (для машинного анализа). С 2008 года ядро AVZ встроено в антивирусные продукты «Лаборатории Касперского».
Общий алгоритм работы системы КиберХелпер (шаги 1-6)
Алгоритм работы системы состоит из 6 шагов. На шаге 1 алгоритма ядро AVZ выполняет на зараженном компьютере разнообразные исследования и проверки и передает полученные результаты в виде XML-протоколов другим частям КиберХелпера для анализа.
При создании заявки на лечение важно внимательно
ответить
на все вопросы системы
Анализатор системы изучает полученный протокол, при этом он опирается на огромный объем данных об уже изученных вредоносных программах, предпринятых действиях для лечения похожих случаев, а также обо всех схожих обращениях. В этом КиберХелпер похож на живой разум, который для продуктивной работы тоже должен постоянно накапливать знания об окружающем мире, особенно в период своего становления. Так, для полноценного развития ребенка очень важно, чтобы он непрерывно познавал мир и общался с другими людьми. Машина тут даже имеет перед человеком преимущество, так как способна хранить, извлекать из памяти и обрабатывать за единицу времени значительно большие объемы информации.
Пример предписания и скрипта лечения/карантина,
написанный системой КиберХелпер без участия человека
Еще одно сходство КиберХелпера и живого разума — это то, что КиберХелпер может самостоятельно, практически без подсказок, управлять процессом анализа протоколов, а также непрерывно самообучаться в меняющихся условиях.
Сложности реализации
Однако при реализации процесса самообучения КиберХелпера, а также при его функционировании приходится сталкиваться со следующими проблемами: 1) машине нельзя передать «интуитивный» опыт, который играет немалую роль в работе эксперта-человека 2) информация о программах зачастую неполная и противоречивая 3) данные, поступающие для анализа, многократно уточняются и нередко задерживаются 4) Процесс лечения требует времени, и нередко оказывается, что к моменту выполнения запрошенных действий пользователь может заразить свой компьютер каким-либо другим вирусом или его антивирус может успеть обновиться и вмешаться в процесс лечения.
Эксперты, обрабатывающие протоколы и файлы карантинов, могут ошибаться или выполнять действия, не имеющие с точки зрения машины логического объяснения. Типичный пример: видя в протоколе незнакомый файл с характерным для вредоносной программы именем %System32%ntos.exe, специалист, опираясь на свой опыт и интуицию, удаляет файл без карантина и дополнительного исследования. Следовательно, сведения о предпринятых экспертами действиях и их выводы не всегда могут использоваться непосредственно для обучения системы.
Неполная или противоречивая информация об угрозах также затрудняет процесс обучения системы. Например, пользователь перед обращением за помощью занимался «самолечением» компьютера и удалил только часть компонентов вредоносного ПО или успешно удалил вредоносную программу, но не очистил системный реестр.
Возможна и такая ситуация: во время анализа протокола доступны только метаданные подозрительных объектов, а после исследования файлов карантинов имеется только первичная информация о подозрительных объектах. На основании таких данных КиберХелпер нередко может сделать только начальные выводы, которые затем уточняются по мере более детального исследования данных, полученных от пользователя.
И наконец, еще одна проблема: через некоторое время может произойти однозначная классификация любого объекта или может измениться состояние компьютера пользователя. Допустим, некий объект фигурирует в протоколах, которые пользователь отправил на анализ. Через несколько часов пользователь заходит в сервис лечения для получения предписаний, за это время антивирус пользователя обновляет базы, объект начинает детектироваться сигнатурно в качестве вредоносной программы и успешно вылечивается. Изучивший протоколы «Киберхелпер», естественно, не знает о том, что объект уже удален — и, к примеру, предлагает скрипт для карантина объекта. Карантин будет неуспешен, но главное — машине при этом неясно, почему именно не удалось подвергуть карантину объект, который, судя по протоколам, гарантированно присутствует на ПК.
Кроме перечисленных проблем следует отметить важную особенность, которую приходится учитывать в процессе самообучения системы. Рассмотрим ее на типичном примере: некий анализатор не находит в поведении изучаемого файла ничего опасного и сообщает этот вердикт системе КиберХелпер. Через некоторое время анализатор дорабатывается, производится повторный анализ ранее изученных файлов, и для некоторых из них получается вердикт, противоположный предыдущему. (Такая же проблема может возникать и с выводами вирусных аналитиков для программ со спорной классификацией, например для систем удаленного управления или утилит для скрытного слежения за пользователем, — их классификация может меняться от версии к версии исследуемого ПО). Указанная особенность — изменчивость и неоднозначность оценки анализируемых параметров программ — привела к тому, что решения в системе КиберХелпер принимаются на основании более 50 различных независимых исследований. Приоритеты каждого вида исследования и значимость его результатов постоянно меняются в ходе процесса обучения интеллектуальной системы.
На основании данных, имеющихся на текущий момент, анализатор КиберХелпера выдвигает ряд гипотез о том, какие из фигурирующих в протоколе объектов могут представлять опасность, а какие — пополнить базу «чистых» файлов. На основании этих гипотез КиберХелпер автоматически пишет скрипты AVZ для карантина подозрительных объектов. Скрипт передается пользователю (шаг 2 общего алгоритма КиберХелпера) и выполняется на его ПК. Результатом работы скрипта являются копирование в карантин файлов и формирование дополнительных протоколов исследования, которые передаются интеллектуальной системе (шаг 3).
На этапе написания скриптов может оказаться, что интеллектуальная система имеет однозначные данные об объектах, обнаруженных в ходе исследования. В этом случае в скрипт могут включаться команды удаления уже известных вредоносных программ или вызова специальных процедур для устранения уже известных повреждений в системе. Такие ситуации возникают довольно часто и связаны с тем, что КиберХелпер одновременно обрабатывает сотни заявок, и обычной является ситуация, когда за помощью обращаются несколько пользователей, пострадавших от одной и той же вредоносной программы. Получив от одного из пользователей требуемые образцы и изучив их, система КиберХелпер может выдать скрипты лечения остальным пользователям, минуя стадию карантина, — это экономит время пользователей и их трафик. Полученные от пользователя объекты подвергаются различным исследованиям (их результаты пополняют базу знаний КиберХелпера независимо от вынесенных вердиктов), причем процессом исследования управляет искусственный интеллект системы КиберХелпер. Таким образом интеллектуальная машина может осуществлять проверку гипотез, выдвинутых на первом шаге общего алгоритма, подтверждая или опровергая их.
Технические подсистемы КиберХелпера
Основными аналитическими подсистемами КиберХелпера являются автономная подсистема анализа исполняемых файлов и подсистема анализа поведения исполняемых файлов. Их наличие позволяет КиберХелперу самостоятельно исследовать вредоносные программы и самообучаться на результатах этих исследований. Если исследования позволили однозначно подтвердить вредоносность объекта, он передается в антивирусную лабораторию с высоким приоритетом включения в антивирусные базы, а для пользователя формируется скрипт лечения (шаг 5 общего алгоритма системы). Важно отметить, что, несмотря на возможность исследования объектов, система КиберХелпер далеко не всегда может принять однозначное решение по изучаемым объектам. И если однозначного решения нет, то все собранные данные и первичные результаты передаются человеку-эксперту для анализа (шаг 6 общего алгоритма КиберХелпера), и далее лечением компьютера руководит этот эксперт. КиберХелпер не вмешивается в процесс, но продолжает изучать получаемую информацию о карантинах и протоколы, формируя отчеты для эксперта, что избавляет последнего от основной массы рутинной работы.
Когда заявка сформирована, система еще раз показывает ее вам,
чтобы можно было проверить, все ли входные данные верны
При этом «политика невмешательства» ИИ в работу эксперта действует не всегда — известны десятки случаев, когда интеллектуальная машина находила ошибки в действиях человека, используя для их анализа имеющиеся в ее распоряжении накопленные данные и результаты собственного анализа объекта. В этом случае машина может вмешаться в процесс анализа и вынесения вердикта — начиная отправкой эксперту предупреждений и заканчивая блокировкой отправки пользователю скриптов, которые, по мнению машины, могут причинить вред системе пользователя. Аналогичный контроль машина ведет и за своими действиями при разработке скриптов лечения — одна из подсистем разрабатывает скрипт, но при этом другая оценивает его опасность и пресекает возникающие ошибки. Простейший пример связанной с этим проблемы: вредоносная программа подменяет важный системный компонент. При этом, с одной стороны, для лечения необходимо уничтожить вредоносную программу, но с другой, это нанесет непоправимый ущерб компьютеру.
Сервисом 911 на сайте VirusInfo может воспользоваться любой желающий
В настоящее время КиберХелпер успешно интегрирован с антивирусным порталом virusinfo.info и является основой экспериментальной системы 911 kaspersky-911.ru. В системе 911 КиберХелпер выполняет все первичное общение с пользователем: запросы протоколов, их анализ, написание скрипта для выполнения первичного обследования, анализ полученного в ходе этого обследования файла карантина. По результатам анализа машине разрешается проводить лечение зараженного компьютера. Кроме того, КиберХелпер выполняет контроль над работой экспертов с целью поиска и пресечения опасных ошибок, осуществляет первичный анализ всех файлов, помещенных экспертами в карантин, и обрабатывает данные карантинов для пополнения базы «чистых» файлов. Принцип работы и технологии системы КиберХелпер защищены двумя патентами «Лаборатории Касперского».
Заключение
Современные вредоносные программы распространяются и действуют с чрезвычайно высокой скоростью. Для оперативной реакции на угрозы требуется мгновенная интеллектуальная обработка больших объемов нестандартной информации. Помочь в этом может искусственный разум, способный обрабатывать данные на скоростях, превышающих быстроту человеческой мысли. Система КиберХелпер — одна из немногих удачных попыток приблизиться к созданию автономного искусственного разума, борющегося с компьютерными угрозами. Подобно разумному существу КиберХелпер самообучается и может самостоятельно определять свои действия. Вирусные аналитики и интеллектуальная машина удачно дополняют друг друга, работая вместе эффективнее и обеспечивая пользователей более надежной защитой.
Статья была опубликована в журнале Secureview, 4th quarter 2010, www.secureviewmag.com
Кибер-эксперт. Искусственный интеллект в сфере ИТ-безопасности