Basic Malware Analysis

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

TOOLS FOR FIND VULNERABILITY

Логин Свят

7/26/20231 min read

Malware Analysis

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

Що таке malware?

Malware – це скорочення від «зловмисне програмне забезпечення» та означає будь-яке програмне забезпечення, призначене для шкоди або використання комп’ютерних систем. Існує багато різних типів зловмисного програмного забезпечення, зокрема:

1. Віруси.

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

2. Хробаки

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

3. Трояни

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

4. Програми-вимагачі

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

5. Рекламне програмне забезпечення

Рекламне програмне забезпечення — це тип шкідливого програмного забезпечення, яке відображає небажану рекламу на комп’ютері жертви.

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

Що таке аналіз шкідливих програм?

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

Кроки аналізу шкідливих програм

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

1. Отримайте копію зловмисного ПЗ.

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

2. Перевірте автентичність і цілісність зразка.

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

3.Підготуйте середовище аналізу:

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

4. Виконайте статичний аналіз.

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

5. Виконайте динамічний аналіз.

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

6. Проаналізуйте результати.

Після завершення аналізу наступним кроком є ​​аналіз результатів і зробіть висновки про них.

Підготовка середовища аналізу шкідливих програм

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

1. Виберіть операційну систему.

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

2. Встановіть інструменти аналізу.

Далі вам потрібно буде встановити інструменти, які ви використовуватимете для аналізу. Це може включати дизассемблер, декомпілятор, налагоджувач або інші спеціалізовані інструменти. Як правило, найкраще інсталювати ці інструменти в окремому каталозі від решти операційної системи, щоб мінімізувати ризик зараження.

3.Налаштуйте середовище аналізу.

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

4. Отримайте копію зловмисного програмного забезпечення.

Наступним кроком є ​​отримання копії зразка зловмисного програмного забезпечення, який ви хочете проаналізувати. Зазвичай це можна зробити, завантаживши зловмисне програмне забезпечення з надійного джерела, наприклад зі сховища зловмисного програмного забезпечення або надійного веб-сайту кібербезпеки.

5. Перевірте автентичність і цілісність зразка.

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

Коли середовище аналізу підготовлено, а зразок шкідливого ПЗ отримано та перевірено, ви готові розпочати процес аналізу.

Статичний аналіз

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

1 Тип файлу

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

1.1 Виконувані файли.

Виконувані файли – це програми, які можна запускати на комп’ютері. Зазвичай вони пов’язані з певними розширеннями файлів, наприклад «.exe» у системах Windows або «.app» у системах macOS. Зловмисне програмне забезпечення часто приймає форму виконуваного файлу, оскільки це дозволяє легко запускати зловмисне програмне забезпечення в цільовій системі.

1.2. Файли сценаріїв.

Файли сценаріїв — це текстові файли, які містять інструкції для виконання інтерпретатором сценаріїв. Вони часто використовуються для автоматизації завдань або виконання дій на комп’ютері. Зловмисне програмне забезпечення іноді може бути доставлено у вигляді файлу сценарію, наприклад сценарію Bash або PowerShell.

1.3. Файли документів.

Файли документів – це файли, які містять текст, зображення або інші дані та зазвичай пов’язані з програмним забезпеченням для продуктивності, таким як текстові процесори чи програми для роботи з електронними таблицями. Зловмисне програмне забезпечення може бути доставлено у вигляді файлу документа, наприклад файлу Microsoft Word або Excel, який містить шкідливі макроси чи інший код.

1.4 Архівні файли:

Архівні файли – це файли-контейнери, які можуть містити кілька файлів і каталогів у стисненому форматі. Вони часто використовуються для розповсюдження програмного забезпечення або інших великих колекцій файлів. Зловмисне програмне забезпечення можна доставити як архівний файл, наприклад файл .zip або .rar, який може містити шкідливі виконувані файли або сценарії.

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

Існує кілька способів перевірити тип файлу:


1. Перевірте розширення файлу. Розширення файлу – це частина назви файлу, що стоїть після крапки, і зазвичай воно вказує на тип файлу. Наприклад, файл із розширенням ".txt" є текстовим файлом, тоді як файл із розширенням ".docx" є документом Microsoft Word.

2. Використовуйте команду file: в Unix-подібних системах (таких як Linux або macOS) ви можете використовувати команду «file», щоб перевірити тип файлу. Наприклад, ви можете виконати команду "file myfile.txt", щоб перевірити тип файлу з назвою "myfile.txt".

3. Перевірте властивості файлу: у Windows ви можете клацнути файл правою кнопкою миші та вибрати «Властивості», щоб переглянути тип файлу та іншу інформацію про файл.

4. Використовуйте онлайн-інструмент: також існують онлайн-інструменти, які можуть визначити тип файлу на основі вмісту файлу. Одним із таких інструментів є інструмент ідентифікатора файлу, запропонований Національним інститутом стандартів і технологій (NIST).

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

2 Рядки

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

Використання інструменту вилучення рядків зазвичай є простим процесом, але конкретні кроки залежатимуть від інструменту, який ви використовуєте. Ось загальний опис процесу:

2.1. Завантажте та встановіть інструмент вилучення рядків:

Першим кроком є ​​завантаження та встановлення інструменту вилучення рядків, який ви хочете використовувати. Деякі популярні варіанти включають BinText, Strings і BinWalk.

2.2. Отримайте копію зловмисного програмного забезпечення:

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

2.3. Запустіть інструмент вилучення рядків:

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

2.4 Перегляньте витягнуті рядки:

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

Ось кілька прикладів рядків, які використовували зловмисне програмне забезпечення:

1. "cmd.exe" - цей рядок часто використовується шкідливим програмним забезпеченням для виконання команд командного рядка, які можуть бути використані для виконання зловмисних дій в зараженій системі.

2. "regedit.exe" - цей рядок часто використовується для запуску редактора реєстру, який є інструментом, що використовується для зміни реєстру операційної системи Windows. Зловмисне програмне забезпечення може використовувати це для внесення змін до реєстру, які дозволять йому зберегтися або уникнути виявлення.

3. "netstat -an" - цей рядок використовується для відображення активних TCP-з'єднань і адрес і портів, які вони використовують. Зловмисне програмне забезпечення може використовувати це для ідентифікації відкритих портів у зараженій системі та потенційного підключення до них.

4. "netsh firewall add rule name=BlockAll dir=out action=block" - цей рядок використовується для додавання правила до брандмауера Windows, яке блокує весь вихідний трафік. Зловмисне програмне забезпечення може використовувати це, щоб запобігти з’єднанню зараженої системи з іншими системами або передачі будь-якого потенційно шкідливого трафіку.

5."echo off" - цей рядок використовується для вимкнення відображення командних рядків у вікні консолі. Зловмисне програмне забезпечення може використовувати це, щоб приховати свої дії від користувача.

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

3 Хеш файлу

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

1. MD5: MD5 (Message Digest 5) — це широко поширений алгоритм хешування, який створює 128-бітове хеш-значення.

2. SHA-1: SHA-1 (Secure Hash Algorithm 1) — ще один популярний алгоритм хешування, який створює 160-бітове хеш-значення.

3. SHA-2: SHA-2 — це сімейство алгоритмів хешування, що включає SHA-256, SHA-384 і SHA-512. Ці алгоритми створюють хеш-значення 256 біт, 384 біт і 512 біт відповідно.

4. SHA-3: SHA-3 — це нове покоління алгоритмів хешування, яке включає SHA3-256, SHA3-384 і SHA3-512. Ці алгоритми створюють хеш-значення 256 біт, 384 біт і 512 біт відповідно.


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

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


4 Файловий ресурс

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

1. Метадані файлу.

Аналіз метаданих файлу, таких як дата створення, розмір і будь-яка інша доступна інформація, може допомогти аналітикам зрозуміти більше про файл і те, як його було створено.

2. Залежності файлів.

Для належної роботи зловмисне програмне забезпечення може покладатися на інші файли чи ресурси. Аналіз залежностей зразка зловмисного програмного забезпечення може допомогти виявити додаткові файли чи ресурси, які можуть бути пов’язані зі зловмисним програмним забезпеченням.

3. Рядки файлу.

Вивчення рядків у файлі, особливо тих, які читаються людиною, може дати розуміння мети та поведінки зловмисного програмного забезпечення. Це може включати ідентифікацію жорстко закодованих URL-адрес або IP-адрес, з якими може зв’язуватися зловмисне програмне забезпечення, або підказки щодо передбачуваної цілі чи корисного навантаження зловмисного програмного забезпечення.

4 Структура файлу.

Аналіз структури файлу, наприклад його хедеру та футеру, може надати інформацію про формат файлу та те, як він був створений. Це може бути корисним для ідентифікації відомих сімейств шкідливих програм або для розуміння того, як працює файл.

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

5 Імпорт DLL

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

1. Аналіз імпорту DLL може допомогти аналітикам краще зрозуміти функціональність і поведінку зразка зловмисного програмного забезпечення. Ось кілька способів використання імпортованих DLL для аналізу шкідливих програм.

2. Ідентифікація функціональних можливостей: вивчення бібліотек DLL, які імпортує зразок зловмисного програмного забезпечення, може дати аналітикам уявлення про функції, які використовує зразок. Наприклад, якщо зразок імпортує DLL, пов’язану з мережею, це може означати, що зразок намагається зв’язатися через мережу.

3.Виявлення зовнішніх залежностей: для належної роботи зловмисне програмне забезпечення може покладатися на зовнішні DLL. Аналіз імпорту DLL може допомогти виявити будь-які зовнішні залежності, які може мати зловмисне програмне забезпечення.

4. Зворотне проектування: досліджуючи функції, імпортовані з DLL, аналітики можуть краще зрозуміти, як зловмисне програмне забезпечення використовує ці функції та чого воно намагається досягти. Це може бути корисним для зворотного проектування зловмисного програмного забезпечення та розуміння його поведінки.

5.Ідентифікація відомого зловмисного програмного забезпечення: порівняння імпортованих DLL зразка з базою даних відомого зловмисного програмного забезпечення може допомогти аналітикам визначити, чи належить зразок до відомого сімейства шкідливих програм.

Імпорт DLL може надати цінну інформацію про поведінку та функціональність зразка зловмисного програмного забезпечення та може бути важливою частиною процесу аналізу.

Зловмисне програмне забезпечення може використовувати широкий спектр бібліотек динамічного компонування (DLL), щоб виконувати свої дії в системі Windows. Деякі типові бібліотеки DLL, які використовували зловмисне програмне забезпечення, включають:

1. kernel32.dll – ця бібліотека DLL містить функції для взаємодії з ядром Windows і часто використовується шкідливими програмами для виконання таких дій, як виділення пам’яті та створення процесів.

2. advapi32.dll – ця бібліотека DLL містить функції для взаємодії із системою безпеки Windows і часто використовується шкідливими програмами для виконання таких дій, як створення нових користувачів або зміна дозволів користувачів.

3. user32.dll – ця бібліотека DLL містить функції для взаємодії з інтерфейсом користувача Windows і часто використовується зловмисним програмним забезпеченням для виконання таких дій, як створення нових вікон або відображення повідомлень для користувача.

4.shell32.dll – ця бібліотека DLL містить функції для взаємодії з оболонкою Windows і часто використовується зловмисним програмним забезпеченням для виконання таких дій, як створення нових ярликів або змінення меню «Пуск».

5. ws2_32.dll – ця бібліотека DLL містить функції для взаємодії з мережевою системою Windows і часто використовується зловмисним програмним забезпеченням для виконання таких дій, як встановлення мережевих з’єднань або надсилання мережевого трафіку.

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

6 Sandbox

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

Існує кілька типів ізольованих програм, які можна використовувати для аналізу зловмисного програмного забезпечення, зокрема:

1. Апаратні пісочниці:

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

2.Пісочниці віртуальної машини:

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

3. Хмарні пісочниці.

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

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

7 PE Заголовки

Заголовки PE (Portable Executable) — це набір структур даних, які використовуються в операційній системі Windows для зберігання інформації про програму або бібліотеку. PE-заголовки знаходяться на початку PE-файлу, який є файлом, який містить виконуваний код або дані у формі портативного виконуваного (PE) образу.

Заголовки PE використовуються для зберігання різної інформації про файл, зокрема:

1. Тип файлу (наприклад, виконуваний файл, бібліотека динамічного компонування тощо)

2. Архітектура файлу (наприклад, x86, x64 тощо)

3. Точка входу файлу (тобто початкова адреса коду, який виконується, коли файл бігти)

4.Розмір і розташування різних розділів даних у файлі (наприклад, розділ коду, дані розділ, таблиця імпорту тощо)

5. Залежності файлу (тобто інші файли, які файлу потрібні для запуску)

6. Інформація про версію файлу (наприклад, назва продукту, назва компанії тощо)

Під час аналізу зловмисного програмного забезпечення перевірка PE-заголовків файлу може надати цінну інформацію про файл та його поведінку. Наприклад, заголовки PE можуть розкрити архітектуру файлу, що може бути корисним для визначення сумісності файлу з певною системою. Заголовки PE також можуть виявити залежності файлу, що може бути корисним для розуміння поведінки файлу та виявлення будь-яких потенційних уразливостей, які файл може використовувати.

8 Timestamp(Мітка часу)

Під час аналізу зловмисного програмного забезпечення мітка часу файлу — це дата й час створення або зміни файлу. Мітки часу можуть бути важливим фактором, який слід враховувати під час аналізу зловмисного програмного забезпечення, оскільки вони можуть надати підказки про історію та еволюцію зловмисного програмного забезпечення. Є кілька способів переглянути мітку часу файлу:

1. Властивості файлу: у Windows ви можете клацнути файл правою кнопкою миші та вибрати «Властивості», щоб переглянути мітку часу та іншу інформацію про файл. Мітка часу відображатиметься під полями «Дата зміни» або «Дата створення».


2.Інструменти командного рядка: в Unix-подібних системах (таких як Linux або macOS) ви можете використовувати такі інструменти командного рядка, як «l» або «stat», щоб переглянути мітку часу файлу. Наприклад, ви можете виконати команду "ls -l myfile.txt", щоб переглянути мітку часу файлу з назвою "myfile.txt".

3. Спеціалізовані інструменти: Існують також спеціалізовані інструменти, які можна використовувати для перегляду мітки часу файлу, такі як інструмент "strings" або "binwalk". Ці інструменти можуть витягти мітку часу та іншу інформацію з файлу та відобразити її в зручному для читання вигляді.

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

9 Ідентифікація пакувальника

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

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

1. Перевірте розмір файлу: одним із поширених способів ідентифікації запакованого файлу є порівняння розміру файлу з розміром подібних, розпакованих файлів. Якщо розмір файлу значно менший за подібні файли, це може означати, що файл запаковано.

2. Перевірте властивості файлу: у Windows ви можете клацнути файл правою кнопкою миші та вибрати «Властивості», щоб переглянути властивості файлу. Якщо файл був запакований, властивості можуть вказувати на те, що файл є «стиснутим» або «упакованим».

3. Використовуйте спеціалізовані інструменти. Існують також спеціальні інструменти, розроблені спеціально для ідентифікації запакованих файлів. Ці інструменти можуть проаналізувати файл і визначити, чи був він запакований, а також визначити тип пакувальника, який використовувався. Деякі популярні інструменти для цієї мети включають PEiD і Exeinfo PE.

4. Проаналізуйте структуру файлу. Ще один підхід до ідентифікації упакованого файлу полягає в аналізі структури файлу та пошуку ознак упаковки. Наприклад, упаковані файли часто мають «заглушку» або «завантажувач» на початку файлу, який відповідає за розпакування та запуск упакованого коду.

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

Динамічний аналіз

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

1. Ізолюйте зразок:

Важливо переконатися, що зразок зловмисного програмного забезпечення не може отримати доступ або пошкодити будь-які конфіденційні системи чи дані. Це можна зробити, налаштувавши віртуальну машину (VM) або використовуючи середовище ізольованого програмного середовища.

2. Зберіть початкові дані:

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

3. Виконайте зразок:

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


4.Відстежуйте та записуйте поведінку:

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

5. Проаналізуйте поведінку:

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

6. Задокументуйте висновки:

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

1 Моніторинг мережі

Моніторинг мережевої активності може бути важливою частиною аналізу зловмисного програмного забезпечення, оскільки багато шкідливих програм взаємодіють із зовнішніми серверами або намагаються викрасти дані через мережу. Ось кілька способів моніторингу мережевої активності під час аналізу зловмисного програмного забезпечення.

1. Перехоплення пакетів.

Одним із способів моніторингу мережевої активності є захоплення й аналіз пакетів даних, які передаються через мережу. Це можна зробити за допомогою таких інструментів, як Wireshark, який дозволяє захоплювати та перевіряти пакети в режимі реального часу.

2. Аналіз мережевого трафіку.

Аналіз мережевого трафіку може допомогти виявити моделі поведінки або незвичайну діяльність, які можуть свідчити про шкідливе програмне забезпечення. Це може включати пошук незвичайних протоколів або портів, що використовуються, або виявлення великих обсягів даних, які передаються на певні IP-адреси або з них.


3. Виявлення мережевого вторгнення.

Системи виявлення мережевого вторгнення (NIDS) можна використовувати для моніторингу мережевого трафіку та сповіщення аналітиків про потенційні загрози. Ці системи використовують правила або сигнатури для виявлення зловмисної діяльності, наприклад спроби використання вразливостей або доступу до обмежених ресурсів.

4.Honeypots:

Honeypot — це система-приманка, яка призначена для залучення й уловлювання зловмисників. Встановивши приманку в мережі, аналітики можуть спостерігати за поведінкою зловмисників і збирати інформацію про їхню тактику та прийоми. Моніторинг мережевої активності може надати цінну інформацію про поведінку та наміри зловмисного програмного забезпечення, а також може допомогти аналітикам визначити й реагувати на потенційні загрози.

2 Моніторинг файлової системи

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

1. Створення та модифікація файлів:

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

2. Видалення файлів:

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

3.Доступ до файлів.

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

4. Зміни файлової системи:

Зловмисне програмне забезпечення може намагатися внести зміни у файлову систему, наприклад змінити дозволи на файл або створити нові каталоги. Моніторинг файлової системи на наявність таких типів змін може допомогти аналітикам виявити й реагувати на потенційну активність зловмисного програмного забезпечення.

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

3 Моніторинг реєстру Windows

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

Ось кілька способів моніторингу реєстру під час аналізу зловмисного програмного забезпечення.

1. Створення та модифікація ключа реєстру:

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

2. Видалення ключа реєстру:

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

3. Програми автозавантаження:

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

4. Системні параметри:

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

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

4 Моніторинг активності процесу

Моніторинг активності процесу — це техніка, яка використовується в аналізі зловмисного програмного забезпечення для відстеження та спостереження за поведінкою частини програмного забезпечення або системи під час її виконання. Він передбачає моніторинг і запис різних видів діяльності процесів, таких як відкриття файлів, доступ до мережі або створення нових процесів.

Є кілька інструментів, доступних для моніторингу активності процесу, включаючи:

1.Sysinternals Process Monitor: це безкоштовний інструмент, розроблений корпорацією Майкрософт, який дозволяє відстежувати та записувати дії процесів у системі Windows.

2.Wireshark: це популярний аналізатор мережевих протоколів, який можна використовувати для моніторингу та запису трафіку, створеного процесом під час обміну даними через мережу.

3.Strace: це утиліта на основі Unix, яка дозволяє відстежувати системні виклики та сигнали процесу під час його виконання.


4.ltrace: це інструмент, схожий на strace, але він відстежує виклики бібліотеки, зроблені процесом, замість системних викликів.

Відстежуючи дії процесу, ви можете отримати уявлення про те, як він функціонує, і потенційно виявити зловмисну ​​поведінку. Цю інформацію можна використовувати для виявлення та пом’якшення загрози, створеної зловмисним програмним забезпеченням.

Яра

1 Що таке Yara?

Yara — це інструмент для ідентифікації та класифікації файлів на основі їхніх характеристик. Він дозволяє користувачам створювати власні правила, відомі як «правила Yara», які можна використовувати для виявлення та класифікації файлів, у тому числі зловмисного програмного забезпечення.

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

Yara можна використовувати для сканування широкого діапазону файлів, включаючи виконувані файли, документи та мережевий трафік, і її можна використовувати на багатьох платформах, включаючи Windows, Linux і Mac OS. Він часто використовується фахівцями з безпеки та дослідниками для виявлення та класифікації зловмисного програмного забезпечення, а також для ідентифікації або різного зловмисного програмного забезпечення.

Ось кроки для написання правила у Yara для зловмисного програмного забезпечення:

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

2. Виберіть відповідний синтаксис для вираження своїх правил. Yara підтримує декілька різних синтаксисів, у тому числі простий синтаксис правил, C-подібний синтаксис і Python-подібний синтаксис.

3. Напишіть правило, використовуючи вибраний синтаксис. Правило Yara складається з назви правила, набору умов і додаткового розділу метаданих. Назва правила має бути унікальною, а умови мають визначати характеристики зловмисного програмного забезпечення, яке ви хочете виявити.

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

5. За потреби уточніть правило на основі результатів вашого тестування. Це може передбачати додавання або видалення умов або коригування синтаксису правила.

Важливо зазначити, що написання ефективних правил Yara вимагає глибокого розуміння зловмисного програмного забезпечення та його характеристик, а також хорошого розуміння синтаксису та можливостей Yara. Також може бути корисним ознайомитися з існуючими правилами Yara або звернутися за порадою до досвідчених аналітиків.

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

rule detect_malware { strings: $a = "malware" condition: $a }

Це правило складається з назви правила ("detect_malware"), набору умов і метаданих. Умова одного рядка, яка вказує, що правило має відповідати будь-якому файлу, який містить рядок "malware".

Ось приклад складнішого правила Yara, яке можна використовувати для виявлення файлів, які містять рядок «malware» і мають певний розмір файлу:

rule detect_malware { strings: $a = "malware" condition: $a and (filesize > 100KB and filesize < 200KB) }

Це правило подібне до першого прикладу, але воно також містить умову, яка визначає, що розмір файлу має бути від 100 КБ до 200 КБ.

Ось приклад більш детального та правильно відформатованого правила Yara:

rule detect_malware { meta: author = "John Doe" description = "This rule detects a specific variant of malware" last_modified = "2022-01-01" strings: $a = "malware" $b = "evade detection" $c = "command and control" condition: $a and $b and $c }

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

Звіт про аналіз шкідливих програм

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

Щоб написати звіт про аналіз шкідливих програм, виконайте такі дії:

1. Отримайте зразок зловмисного програмного забезпечення: щоб проаналізувати зловмисне програмне забезпечення, вам потрібно буде отримати його зразок. Це може включати завантаження з відомого джерела, захоплення в середовищі ізольованого програмного середовища або отримання з скомпрометованої системи.

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

3.Задокументуйте свої висновки: під час аналізу зловмисного програмного забезпечення обов’язково задокументуйте свої висновки чітко та впорядковано. Це допоможе вам відстежувати свої спостереження та полегшить написання звіту пізніше.

4. Напишіть резюме. Резюме має містити короткий огляд ключових моментів і висновків звіту. Воно має бути написано чітко та лаконічно та має бути легким для розуміння широкої аудиторії.

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

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

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

8.Напишіть рекомендації: у цьому розділі надайте пропозиції щодо пом’якшення впливу зловмисного програмного забезпечення, зокрема кроки для виправлення та найкращі методи захисту від подібних загроз у майбутньому.

9. Додайте додатки: якщо у вас є додаткові допоміжні матеріали, такі як знімки екрана, журнали та зразки коду, додайте їх у додатки, щоб надати додаткові докази або контекст для аналізу. Загалом, важливо бути ретельним і точним у своєму аналізі, а також написати звіт чітко та лаконічно, щоб його легко зрозуміла широка аудиторія.

Приклад звіту про аналіз шкідливих програм

Резюме:

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

Огляд шкідливих програм:

Зловмисне програмне забезпечення є різновидом банківського трояна Zeus, відомого та дуже складного зловмисного програмного забезпечення, яке протягом кількох років використовувалося для викрадення конфіденційної інформації в окремих осіб і організацій. Конкретний варіант, проаналізований у цьому звіті, було виявлено під час фішингової атаки, націленої на співробітників великої фінансової установи.

Аналіз поведінки шкідливого ПЗ:

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

Оцінка впливу:

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

Рекомендації:

Щоб пом’якшити вплив цього зловмисного програмного забезпечення, надано такі рекомендації:

1. Застосуйте суворі заходи безпеки, включаючи багатофакторну автентифікацію та регулярні оновлення програмного забезпечення безпеки, щоб захистити від фішингових атак та інших форм шкідливого програмного забезпечення.

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

3. Дотримуйтесь найкращих практик для безпечного перегляду, зокрема уникайте підозрілих веб-сайтів, не натискайте посилання та не завантажуйте вкладення з невідомих джерел.

4. Розгляньте можливість впровадження стратегії сегментації мережі, щоб обмежити поширення шкідливого програмного забезпечення в мережі.

Додатки:

1. Скріншоти зв’язку командного та контрольного сервера шкідливої ​​програми

2. Зразок коду техніки ін’єкції HTML, яку використовує зловмисне програмне забезпечення

3. Журнали мережі, що показують зв’язок шкідливого програмного забезпечення з сервером керування

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