Під капотом кіберзахисту: ловимо зловредів в оперативній пам'яті
Про технології захисту від шкідливих програм складно розповідати: там повно всяких складних технічних термінів. Але ми все ж спробуємо. Сьогодні я розповім про технології детектування шкідливих програм в оперативній пам'яті - і постараюся зробити це максимально доступно.
Давним давно
Але спочатку давайте розберемо, як взагалі працюють захисні рішення. Якщо все гранично спростити, то у них є два режими роботи. У першому вони відстежують відбуваються у вашому комп'ютері процеси і, якщо бачать підозрілу активність - завантаження трояна, підроблене лист в пошті або шкідливий веб-сайт, намагаються максимально убезпечити користувача. Тут все зрозуміло і легко.
Другий режим - це лікування вже зараженого комп'ютера. Ну ладно, є ще проміжний варіант, коли кіберзлочинцям таки вдалося зробити щось у вашій системі і треба їх вчасно зупинити, але про це я буду говорити трохи пізніше.
Так ось, лікування - це дуже складно. Шкідливі програми майже завжди щось в системі ламають. При лікуванні потрібно не тільки видалити шкідливий код, але і зробити це так, щоб комп'ютер потім продовжив нормально працювати.
Саме тому в незалежних тестах захисних систем ви можете знайти безліч виробників, у яких відносно непогані результати «захисту» (перший варіант) і зовсім так собі результати «лікування» (другий). Лікувати набагато складніше, ніж не допускати зараження, а варіантів атак існує дуже багато.
Але перш ніж лікувати, потрібно зрозуміти, що комп'ютер дійсно заражений, і з'ясувати, як саме. А це теж не завжди просто. Точніше, тут діє правило 80/20 - в сенсі 80% шкідливих програм взагалі ніякої проблеми не представляють для хорошого захисного продукту, а ось на решту 20% витрачається 80% часу і сил.
Справа в тому, що атакуючі часто намагаються максимально приховати свою присутність в системі. Вони намагаються все робити так, щоб жертва цього взагалі не помітила: система працює як зазвичай, ніяких зайвих вікон при завантаженні і глюків програм не виникає.
Поширений метод, наприклад, є такий: назвати троян так само або майже так само, як називається один з компонентів операційної системи Windows. Навіть якщо користувач подивиться список запущених процесів, він може і не помітити серед десятків однакових назв одне, яке трохи відрізняється.
Є варіант ще гірше: коли шкідливий код впроваджується в звичайні програми або елементи системи. І тут дійсно все складно. Є необхідна компонента Windows. Він працює: відкриває якісь файли, закриває, запускає від свого імені програми, ходить в Інтернет. Якщо кіберзлочинцям якимось чином вдалося потрапити в цей процес, як відрізнити правильні дії від неправильних? Тут ще такий момент: якщо помилитися і заблокувати не те, можна випадково обрушити всю систему.
Ось такий от виходить сапер. Що робити?
Ставимо оцінки за поведінку!
Отже, завдання: потрібно навчитися відрізняти «правильні» дії від «неправильних». Сказати легко, а як зробити? Проблема в тому, що в глибині комп'ютера абсолютно все, що ви робите, зводиться до операцій додавання і множення різних чисел. І все - більше нічого не відбувається.
Але рішення є. Нещодавно запатентована технологія, розроблена фахівцями «Лабораторії Касперського» Михайлом Павлющик, Олексієм Монастирським і Денисом Назаровим, вміє будувати якусь «карту взаємодії» між певною програмою і іншими компонентами операційної системи і програмами. Коротко кажучи, в разі запатентованою технологією взаємодії мають на увазі роботу з пам'яттю інших процесів, що важливо відстежити, для того щоб визначити шкідливі дії в майбутньому.
Не обов'язково відстежувати абсолютно всі дії - на це йде дуже багато ресурсів комп'ютера. А ось зв'язку можуть з високим ступенем достовірності дати зрозуміти, що все або нормально ( «дитина з однокласниками робить уроки вдома»), або не дуже ( «дитина був помічений з сумнівною компанією в підворітті біля пивного ларька»).
Насправді все набагато складніше, але навіть в патентній заявці не наводяться абсолютно всі подробиці роботи даної технології - хоча б для того, щоб не давати кіберзлочинцям інформацію про те, як можна обійти подібний захист. Перевага такого поведінкового аналізу - це можливість по єдиному опису неправильної поведінки блокувати відразу багато шкідливих програм, в тому числі і тих, які фахівці нашої компанії в очі не бачили.
багатошарова захист
Дійсно гарне захисне рішення здатне і заблокувати загрозу, і вилікувати вже заражений комп'ютер, на якому до цього ніякого захисту не було. Згаданий нами на початку третій варіант - це коли з якихось причин блокування не спрацювала.
Уявіть, що на ваш комп'ютер намагається проникнути програма, яка збирає інформацію про натиснутих клавішах (інакше кажучи, кейлоггер - вони, до речі, дуже часто працюють максимально приховано).
Припустимо, вона якимось чином змогла заразити комп'ютер, обійшовши початкові перевірки або проникнувши в комп'ютер через неправильно налаштованого захисного рішення, що, до речі, трапляється не так уже й рідко. Її потрібно зупинити до того, як вона збереться відправити своєму власникові пароль від вашої пошти, скріншот вашого робочого столу або навіть знімок з камери.
Ось тут-то і допомагають технології поведінкового аналізу. Дана технологія вбудована в модуль «Моніторинг активності» (System Watcher) і поряд з іншими дозволяє зупинити заразу до того, як сталося непоправне, і навіть може відкинути редагування.
У такому рішенні, як наш Kaspersky Internet Security , Відкочувати потрібно ну дуже рідко - нові загрози потрапляють в наші антивірусні бази дуже швидко, оскільки Kaspersky Security Network дозволяє дуже швидко отримати інформацію про невідому програмі з хмари. Але в справі розробки антивірусних програм перестраховка - справа ніколи не зайве. Власне, в цьому і полягає відмінність хорошого захисту від «так собі»: захищати дані і програми потрібно в будь-яких обставинах, навіть якщо ймовірність зараження мінімальна, але вона все одно існує.
Якщо кіберзлочинцям якимось чином вдалося потрапити в цей процес, як відрізнити правильні дії від неправильних?Що робити?
Сказати легко, а як зробити?