Кібер-експерт. Штучний інтелект в сфері ІТ-безпеки, Різне, Програмування, статті

Чи вдасться настільки точно описати людський розум, щоб відтворити його за допомогою машини? У вчених немає єдиної думки на цей рахунок. Розробники, які намагаються створити штучний інтелект, використовують абсолютно різні підходи. Одні віддають перевагу штучним нейронних мереж, інші – експертним системам, еволюційним алгоритмам або системам нечіткої логіки. Але до цих пір жоден автономний штучний інтелект не пройшов тест Тьюринга, в якому потрібно, щоб інтелектуальна діяльність машини була не відрізняється від людської.

Одним з перспективних напрямків, де виправдане застосування автономного ШІ, є комп’ютерна вірусологія та віддалене лікування комп’ютера.


Головною невирішеною завданням у галузі штучного інтелекту (ШІ) є створення автономного ІІ, тобто ШІ, здатного до навчання, прийняття самостійних рішень, перенавчання та зміни власного поведінки. Можна побудувати вузькоспеціалізовану систему, можна зробити і більш універсальний складний ШІ, але практично завжди це система, яка використовує вже закладені в неї людьми досвід і знання, описані у вигляді навчальних прикладів, правил або алгоритмів.


Чому складно створити автономний штучний інтелект? Тому що у машини поки немає таких людських якостей, як образне мислення, інтуїція, уміння самостійно відрізняти важливе від другорядного, а найголовніше – у неї немає прагнення до пізнання нового. Всі ці якості дають людині можливість знаходити правильні рішення навіть у нестандартних ситуаціях. А штучного інтелекту для роботи зазвичай потрібно, щоб люди заздалегідь заклали в нього ефективний алгоритм дій. Проте, спроби наблизитися до створення автономного ІІ робляться постійно, і деякі з них небезуспішно.


Витрати ручної праці


Процес виявлення шкідливих програм і відновлення нормальних параметрів комп’ютера складається з трьох основних етапів, незалежно від того, хто цим займається – людина або інтелектуальна машина. Перший етап полягає в зборі об’єктивних даних про досліджуваний комп’ютері і програмах, які на ньому працюють. Оптимально, коли таке дослідження виконується за допомогою швидких автоматизованих інструментів, що працюють без участі людини і формують звіти в машиночитаній формі.


Другий етап полягає у вивченні зібраних даних та виконанні уточнюючих досліджень. Наприклад, в звітах виявляються відомості про підозрілих об’єктах – отже, ці об’єкти необхідно помістити в карантин і піддати всебічному аналізу для винесення вердикту про небезпеку та прийняття рішення про подальші дії.


Третій етап – це безпосередньо процедура лікування, для якої може застосовуватися спеціалізований скриптова мова, що містить команди для видалення шкідливих файлів і відновлення нормальних параметрів обчислювальної системи.


Ще кілька років тому етапи 2-3, як правило, виконувалися практично без автоматизації, вручну, аналітиками антивірусних компаній та експертами спеціалізованих форумів. Однак зростання числа користувачів, стали жертвами шкідливих програм і звертаються за допомогою, викликав ряд проблем, серед яких можна відзначити наступні:



Вирішити зазначені проблеми можна тільки шляхом автоматизації процесу обробки даних про комп’ютерні загрози, вразливості і пошкодженнях системи. Проте численні спроби зробити це різними алгоритмічними методами не дали позитивних результатів. Головна причина цього полягає в тому, що шкідливе ПО вдосконалюється, щодня з’являються десятки нових різновидів шкідливих програм, що відрізняються методами впровадження і маскування в комп’ютерній системі. В результаті алгоритм виявлення виходить вкрай складним, але гірше того – він дуже швидко застаріває і його доводиться постійно актуалізувати і налагоджувати. Інша проблема полягає в тому, що якість роботи будь-якого алгоритму буде обмежено професійним рівнем створюють його фахівців.


Застосовувати для “лову” вірусів експертні системи виявилося не набагато більше результативно. Розробники антивірусних експертних систем стикаються зі схожими проблемами: результативність роботи експертної системи залежить від якості закладених в ній правил і баз знань, причому ці бази теж треба постійно актуалізувати, а значить, знову залучати людські ресурси.


Загальні принципи роботи системи КіберХелпер


Проте досліди в цій галузі призвели нарешті до успіху. Була розроблена обчислювальна система КіберХелпер – вдала спроба наблизитися до автономного ШІ, призначеному для боротьби з шкідливими програмами. Безліч автономних підсистем КіберХелпера здатні до синхронізації, обміну даними та спільної роботи. Природно, що в КіберХелпер закладено деяку кількість “жорстких” алгоритмів і правил, які застосовуються в звичайних програмах, однак більшість його підсистем використовують апарат нечіткої логіки і самостійно визначають свою поведінку при вирішенні різних завдань.


Основа системи КіберХелпер – утиліта AVZ, яка була створена автором в 2004 р. спеціально для автоматичного збору даних про досліджуваних ПК і шкідливі програми для подальшого представлення цих даних в машиночитаному вигляді. Утиліта формує протоколи дослідження комп’ютерної системи в форматах HTML (для читання людиною) і XML (для машинного аналізу). З 2008 року ядро ​​AVZ вбудовано в антивірусні продукти “Лабораторії Касперського”.


Загальний алгоритм роботи системи КіберХелпер (кроки 1-6)


Алгоритм роботи системи складається з 6 кроків. На кроці 1 алгоритму ядро ​​AVZ виконує на зараженому комп’ютері різноманітні дослідження та перевірки і передає отримані результати у вигляді XML-протоколів іншим частинам КіберХелпера для аналізу.


При створенні заявки на лікування важливо уважно відповісти на всі питання системи


Аналізатор системи вивчає отриманий протокол, при цьому він спирається на величезний обсяг даних про вже вивчених шкідливих програмах, зроблених діях для лікування схожих випадків, а також про всі схожих зверненнях. У цьому КіберХелпер схожий на живий розум, який для продуктивної роботи теж повинен постійно накопичувати знання про навколишній світ, особливо в період свого становлення. Так, для повноцінного розвитку дитини дуже важливо, щоб він безперервно пізнавав світ і спілкувався з іншими людьми. Машина тут навіть має перед людиною перевагу, оскільки здатна зберігати, витягати з пам’яті і обробляти за одиницю часу значно більші обсяги інформації.


Приклад приписи і скрипта лікування / карантину, написаний системою КіберХелпер без участі людини


Ще одна схожість КіберХелпера і живого розуму – це те, що КіберХелпер може самостійно, практично без підказок, керувати процесом аналізу протоколів, а також безперервно самонавчатися в мінливих умовах.


Складнощі реалізації


Однак при реалізації процесу самонавчання КіберХелпера, а також при його функціонуванні, доводиться стикатися з такими проблемами:



  1. машині не можна передати “інтуїтивний” досвід, який грає чималу роль у роботі експерта-людини;

  2. інформація про програми часто неповна і суперечлива;

  3. дані, що надходять для аналізу, багаторазово уточнюються і нерідко затримуються;

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

Експерти, що обробляють протоколи та файли карантинів, можуть помилятися або виконувати дії, не мають з точки зору машини логічного пояснення. Типовий приклад: бачачи в протоколі незнайомий файл з характерним для шкідливої ​​програми ім’ям% System32%tos.exe, спеціаліст, спираючись на свій досвід та інтуїцію, видаляє файл без карантину та додаткового дослідження. Отже, відомості про вжиті експертами діях і їх висновки не завжди можуть використовуватися безпосередньо для навчання системи.


Неповна або суперечлива інформація про погрози також ускладнює процес навчання системи. Наприклад, користувач перед зверненням за допомогою займався “самолікуванням” комп’ютера і видалив тільки частина компонентів шкідливого ПЗ або успішно видалив шкідливу програму, але не очистив реєстру.


Можлива і така ситуація: під час аналізу протоколу доступні тільки метадані підозрілих об’єктів, а після дослідження файлів карантинів є тільки первинна інформація про підозрілі об’єкти. На підставі таких даних КіберХелпер нерідко може зробити тільки початкові висновки, які потім уточнюються в міру більш детального дослідження даних, отриманих від користувача.


І нарешті, ще одна проблема: через деякий час може статися однозначна класифікація будь-якого об’єкта або може змінитися стан комп’ютера користувача. Припустимо, якийсь об’єкт фігурує в протоколах, які користувач відправив на аналіз. Через кілька годин користувач заходить в сервіс лікування для одержання приписів, за цей час антивірус користувача оновлює бази, об’єкт починає детектировать сигнатурному в якості шкідливої ​​програми і успішно виліковується. Вивчив протоколи “Кіберхелпер”, природно, не знає про те, що об’єкт уже видалено – і, наприклад, пропонує скрипт для карантину об’єкта. Карантин буде неуспешен, але головне – машині при цьому неясно, чому саме не вдалося піддати карантину об’єкт, який, судячи по протоколам, гарантовано присутній на ПК.


Крім перерахованих проблем слід відзначити важливу особливість, яку доводиться враховувати в процесі самонавчання системи. Розглянемо її на типовому прикладі: якийсь аналізатор не знаходить у поведінці досліджуваного файлу нічого небезпечного і повідомляє цей вердикт системі КіберХелпер. Через деякий час аналізатор доопрацьовується, проводиться повторний аналіз раніше вивчених файлів, і для деяких з них виходить вердикт, протилежний попередньому. (Така ж проблема може виникати і з висновками вірусних аналітиків для програм зі спірною класифікацією, наприклад для систем віддаленого управління або утиліт для скритного спостереження за користувачем, – їх класифікація може мінятися від версії до версії досліджуваного ПЗ). Зазначена особливість – мінливість і неоднозначність оцінки аналізованих параметрів програм – привела до того, що рішення в системі КіберХелпер приймаються на підставі понад 50 різних незалежних досліджень. Пріоритети кожного виду дослідження і значимість його результатів постійно змінюються в ході процесу навчання інтелектуальної системи.


На підставі даних, наявних на поточний момент, аналізатор КіберХелпера висуває ряд гіпотез про те, які з фігурують у протоколі об’єктів можуть становити небезпеку, а які – поповнити базу “чистих” файлів. На підставі цих гіпотез КіберХелпер автоматично пише скрипти AVZ для карантину підозрілих об’єктів. Скрипт передається користувачеві (крок 2 загального алгоритму КіберХелпера) і виконується на його ПК. Результатом роботи скрипта є копіювання в карантин файлів і формування додаткових протоколів дослідження, які передаються інтелектуальної системі (крок 3).


На етапі написання скриптів може виявитися, що інтелектуальна система має однозначні дані про об’єкти, виявлених в ході дослідження. В цьому випадку в скрипт можуть включатися команди видалення вже відомих шкідливих програм або виклику спеціальних процедур для усунення вже відомих ушкоджень в системі. Такі ситуації виникають досить часто і пов’язані з тим, що КіберХелпер одночасно обробляє сотні заявок, і звичайною є ситуація, коли за допомогою звертаються кілька користувачів, які постраждали від однієї і тієї ж шкідливої ​​програми. Отримавши від одного з користувачів необхідні зразки і вивчивши їх, система КіберХелпер може видати скрипти лікування іншим користувачам, минаючи стадію карантину, – це заощаджує час користувачів і їх трафік. Отримані від користувача об’єкти піддаються різним дослідженням (їх результати поповнюють базу знань КіберХелпера незалежно від винесених вердиктів), причому процесом дослідження управляє штучний інтелект системи КіберХелпер. Таким чином, інтелектуальна машина може здійснювати перевірку гіпотез, висунутих на першому кроці загального алгоритму, підтверджуючи або спростовуючи їх.


Технічні підсистеми КіберХелпера


Основними аналітичними підсистемами КіберХелпера є автономна підсистема аналізу виконуваних файлів і підсистема аналізу поведінки виконуваних файлів. Їх наявність дозволяє КіберХелперу самостійно дослідити шкідливі програми і самонавчатися на результатах цих досліджень. Якщо дослідження дозволили однозначно підтвердити шкодочинність об’єкта, він передається в антивірусну лабораторію з високим пріоритетом включення в антивірусні бази, а для користувача формується скрипт лікування (крок 5 загального алгоритму системи). Важливо відзначити, що, незважаючи на можливість дослідження об’єктів, система КіберХелпер далеко не завжди може прийняти однозначне рішення по досліджуваних об’єктів. І якщо однозначного рішення немає, то всі зібрані дані і первинні результати передаються людині-експерту для аналізу (Крок 6 загального алгоритму КіберХелпера), і далі лікуванням комп’ютера керує цей експерт. КіберХелпер не втручається в процес, але продовжує вивчати отримувану інформацію про карантин і протоколи, формуючи звіти для експерта, що позбавляє останнього від основної маси рутинної роботи.


Коли заявка сформована, система ще раз показує її вам, щоб можна було перевірити, чи всі вхідні дані вірні


При цьому “політика невтручання” ІІ в роботу експерта діє не завжди – відомі десятки випадків, коли інтелектуальна машина знаходила помилки в діях людини, використовуючи для їх аналізу наявні в її розпорядженні накопичені дані і результати власного аналізу об’єкта. У цьому випадку машина може втрутитися в процес аналізу та винесення вердикту – починаючи відправкою експерту попереджень і закінчуючи блокуванням відправки користувачеві скриптів, які, на думку машини, можуть заподіяти шкоду системі користувача. Аналогічний контроль машина веде і за своїми діями при розробці скриптів лікування – одна з підсистем розробляє скрипт, але при цьому інша оцінює його небезпеку і присікає виникають помилки. Найпростіший приклад пов’язаної з цим проблеми: шкідлива програма підміняє важливий системний компонент. При цьому, з одного боку, для лікування необхідно знищити шкідливу програму, але з іншого, це завдасть непоправної шкоди комп’ютеру.


Сервісом 911 на сайті VirusInfo може скористатися будь-хто


В даний час КіберХелпер успішно інтегрований з антивірусним порталом virusinfo.info і є основою експериментальної системи 911 kaspersky-911.ru. В системі 911 КіберХелпер виконує всі первинне спілкування з користувачем: запити протоколів, їх аналіз, написання скрипта для виконання первинного обстеження, аналіз отриманого в ході цього обстеження файла карантину. За результатами аналізу машині дозволяється проводити лікування зараженого комп’ютера. Крім того, КіберХелпер виконує контроль над роботою експертів з метою пошуку і припинення небезпечних помилок, здійснює первинний аналіз всіх файлів, поміщених експертами в карантин, і обробляє дані карантинів для поповнення бази “чистих” файлів. Принцип роботи і технології системи КіберХелпер захищені двома патентами “Лабораторії Касперського”.


Висновок


Сучасні шкідливі програми поширюються і діють з надзвичайно високою швидкістю. Для оперативної реакції на загрози потрібно миттєва інтелектуальна обробка великих обсягів нестандартної інформації. Допомогти в цьому може штучний розум, здатний обробляти дані на швидкостях, що перевищують швидкість людської думки. Система КіберХелпер – одна з небагатьох вдалих спроб наблизитися до створення автономного штучного розуму, що бореться з комп’ютерними погрозами. Подібно розумному суті КіберХелпер самонавчається і може самостійно визначати свої дії. Вірусні аналітики і інтелектуальна машина вдало доповнюють один одного, працюючи разом ефективніше і забезпечуючи користувачів більш надійним захистом.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*