Розумна пробірка для злісної малвары.

405

Ви задавали собі питання – чому комп’ютерні віруси назвали саме «вірусами»? Питання насправді риторичне, але якщо для когось це не очевидно, то в нашій енциклопедії є короткий і вичерпну відповідь.
Цю підводку я використовую з іншою метою: а чому досі всю комп’ютерну гидоту багато хто так і називають «вірусами», хоча вірусів як таких вже надцять років не було помічено в «дикої цифровий природі»?
Справа в тому, що донині технології комп’ютерної безпеки викликають ну вже дуже сильні асоціації з людьми в білих скафандрах, карантином, пробірками і іншою атрибутикою вивчення мікробіологічних глибин світу. Саме так: віруси вже давно повивелісь, але методи їх аналізу і розробки захисту залишилися, розвинулися і дуже навіть добре показують себе у боротьбі з сучасними шкідливими програмами. Наприклад, емулятор.
Коротенько, емулятор – це метод виявлення невідомих загроз, при якому підозрілий файл запускається у віртуальному просторі, що імітує реальний комп’ютер. Антивірус(*) дивиться за поведінкою файлу «на льоту» і при виявленні небезпечних дій ізолює його від гріха подалі для проведення додаткових досліджень.
Відчуваєте аналогію з оригінальною, мікробіологічної вирусологией? Навіщо робити сумнівну ін’єкцію живій людині і потім знімати показання як його ковбасить? Адже можна емулювати середовище проживання «в пробірці» і спостерігати за поведінкою підозрілого об’єкта для виявлення його шкідливої сутності.
Втім, як і в мікробіології, тут перед нами постає непросте завдання емуляції цієї самої природного середовища існування, так, щоб вірус zeus комар носа не підточив. Не знаю як у наших колег у білих скафандрах 🙂 але ми (ЛК) без удаваної скромності робимо це давно і «попереду планети всієї».

Перший у світі емулятор я розробив ще в далеку DOS-епоху влітку 1992р. Незабаром експерти почали захоплюватися детекту нашого антивіруса (так, тоді він ще був «антивірусом»), який рвав конкурентів в незалежних тестах в тому числі завдяки роботі емулятора.
Минав час, ландшафт загроз ускладнювався: класичні віруси покинули сцену, їм на зміну прийшли мережеві черв’яки, трояни і інші багатоклітинні. Зростало різноманітність комп’ютерних мобільних-IoT-всіх інших цифрових технологій, а з ними і шкідливого інструментарію, а з ним і компетенція емулятора. Ми прикрутили його до хмари безпеки KSN, навчили новим мовам програмування, браузерів і інших об’єктів операційної системи, щоб автоматично ловити невідомих зловредів. Ніякої маркетингової ІІ-локшини, тільки спритність рук і міць мозку в кращих традиціях принципу реальних інноваційних розробок Humachine 🙂
Умная пробирка для злобной малвары.
Сьогодні деякі конкуренти можуть похвалитися такою технологією, що цілком зрозуміло: емулятор – це дуже непроста задача, яка вимагає багаторічної експертизи, трудозатратной інтеграції в «бойові» продукти та сталого розвитку. Багато новачків індустрії кібербезпеки воліють вкладатися в розлогий «ля-ля-маркетинг». У короткостроковій перспективі такий підхід може дати великий поштовх розвитку бізнесу, але довго морочити голову користувачам не вийде – до першого великого ” проколу. Іншими словами, наявність емулятора свідчить про рівні експертизи і зрілості розробника, а його відсутність – ознака пустушки-одноденки.
Але я відволікся.
Насправді, кибернегодяи теж, пардон, «не пальцем деланы» (с) і докладають серйозні зусилля для захисту свого бізнесу і кібершпіонскіх операцій, у тому числі в плані захисту від емулятора.
Найбільш просунуті угруповання використовують різноманітні анти-налаштуваннях прийоми для розпізнавання «пробірки». Наприклад, запуск недокументованій функції, перевірка справжності виконання викликів по зміні регістрів процесора, аналіз кодів помилок, пошук у пам’яті певного коду, використання «логічних бомб», які вводять емулятор в нескінченний цикл та ін. Якщо він відчув щось підозріле, то він згортає виконання шкідливої функції, прикидаючись «білим і пухнастим» файлом. Але ми краще їх «пальцем не деланы» 🙂 і з цими напастями і різними іншими технологічними особливостями (насамперед, ресурсомісткість) емулятора успішно боремося. Наприклад, для його прискорення ми використовуємо різні обмежувачі, оптимізатори і профілі налаштувань, аж до повного відключення цієї фічі в певних умовах, коли затримка BSoD’у подібна.
А днями наші патентовоеды принесли ще одну радісну звістку: ми отримали патент (US10275597) на емулятор програмного коду з функцією інтерпретації невідомих об’єктів! Наскільки мені відомо, ні в одному конкуруючому продукті такої фічі немає: для захисту від анти-емуляторних прийомів малвары їм доводиться переробляти весь емулятор, що, зрозуміло, процес нешвидкий. Ми ж навчили емулятор оновлюватися «на льоту» з локальної бази даних! Загалом, дуже корисна фіча, а тому немає і приводу не розповісти вам про неї, бо знання як ми вас захищаємо – сила! 🙂
Справа в тому, що деякі файли розповсюджуються не в машинному коді, а безпосередньо в програмному коді. Для їх виконання на комп’ютері потрібно інтерпретатор (наприклад, JavaScript або VBA), який у масштабі реального часу переводить цей код на зрозумілий машині мову. І, ясна річ, в таких файлах теж частенько зустрічаються ушкодження.
Для виявлення невідомих загроз цього типу багато років тому ми створили емулятор програмного коду, який перед виконанням файлів перевіряє їх в «пробірці». Однак емулювати інтерпретатор цілком – занадто вибагливий варіант. Затримка в обробці web-сторінок зі скриптами навряд чи зробить щасливою середнього користувача. Тому емулятори відтворюють компромісний варіант віртуального простору, прийнятний як з точки зору продуктивності, так і якості захисту. Але що робити, коли емулятор зустрічає в коді невідомий об’єкт, метод або функцію, без яких повноцінний аналіз файлу не представляється можливим?
Завдання «надійно і швидко» ми вирішили іншим способом – за допомогою розумного інтерпретатора, здатного швидко навчатися емулювати такі об’єкти. Під час оновлення через хмару KSN продукт отримує допоміжний код на мові аналізованого об’єкта (JavaScript, VBA, VB Script, AutoIt – список відкритий для інших мов), і вже з новими знаннями повертається до перевірки файлу. У складних випадках, коли допоміжного коду ще немає завдання автоматично передається нашим аналітикам, які його розробляють і оперативно додають в базу даних.
В результаті, користувач отримує в своє розпорядження не тільки сильну, але і високошвидкісну технологію, здатну швидко реагувати на кіберзагрози, не чекаючи перевипуску всього емулятора. Бінго!
(*) «Антивірус» – ще один архаїзм епохи комп’ютерних вірусів. Сучасні антивіруси борються не тільки з вірусами, але з усім зловредством взагалі, а також містять багато інших корисних функцій, наприклад, менеджер паролів, VPN, батьківський контроль, резервне копіювання і багато іншого. Тобто, якщо називати антивірус по-новому, то вийде щось на кшталт Анти-все-плюс-багато-чого 🙂