Виявлення шкідливих PDF-файлів за допомогою машинного навчання: Практичний підхід

текст перекладу

Вступ

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

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

Проблема

Шкідливі PDF-файли використовують такі функції, як вбудовані JavaScript-скрипти, автоматичні дії або обфусцовані потоки для виконання шкідливого коду. Традиційні методи виявлення борються з вразливостями нульового дня та еволюцією тактик. Для вирішення цієї проблеми наш проєкт комбінує витягування ознак з машинними навчальними класифікаторами для ефективного виявлення шкідливих файлів.

Методологія

1. Розуміння анатомії PDF

PDF-файли мають різні компоненти, такі як:

  • /JS і /JavaScript — Вбудовані скрипти, які часто використовуються зловмисниками.
  • /OpenAction — Запускає автоматичні дії при відкритті.
  • /ObjStm — Потоки об’єктів, що використовуються для обфускації вмісту.

Ці функції стали основою нашої системи виявлення.

2. Набір даних

Ми отримали набір даних з 19,980 PDF-файлів: 10,980 шкідливих і 9,006 безпечних. Ознаки були витягнуті за допомогою інструменту pdfid.py, який аналізує структури PDF. Ці дані були поділені на тренувальний та тестовий набори (співвідношення 70:30) для оцінки моделі. Посилання на дані https://contagiodump.blogspot.com/

3. Моделі машинного навчання

Ми протестували чотири класифікатори:

  • Random Forest
  • Support Vector Machines (SVM)
  • Decision Trees
  • Logistic Regression
from pandas import read_csv  
from sklearn.ensemble import RandomForestClassifier  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import accuracy_score  
from sklearn.metrics import confusion_matrix, precision_score,recall_score,f1_score,  
from feature_extraction import feature_extraction  

df = read_csv('pdfdataset_n.csv')  
X = df.iloc[:, 0: 21]  
y = df.iloc[:, 21]  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)  

clf = RandomForestClassifier()  
clf.fit(X_train, y_train)  
y_pred = clf.predict(X_test)  
acs = accuracy_score(y_test, y_pred)  
cm = confusion_matrix(y_test, y_pred)  
print("Accuracy:", acs)  
print(classification_report(y_test,y_pred,digits=4))

[

Pdf-malware/pdfmalwareclassifier.ipynb at main · BhavayChopra/Pdf-malware

Contribute to BhavayChopra/Pdf-malware development by creating an account on GitHub.

github.com

](https://github.com/BhavayChopra/Pdf-malware/blob/main/pdfmalwareclassifier.ipynb?source=post_page-----51ebe36f9b2a--------------------------------)

Результати

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

pic

Random Forest показав найкращі результати, продемонструвавши свою здатність обробляти складні набори даних і відрізняти шкідливі шаблони.

Основні моменти реалізації

Витягування ознак

Витягнуті ознаки включали /Page, /JS, /Encrypt і /ObjStm. Шкідливі PDF-файли часто демонстрували специфічні шаблони в цих ознаках, такі як надмірне використання JavaScript або обфускація.

Навчання моделі

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

Тестування в реальних умовах

Щоб змоделювати реальні умови, ми протестували моделі на нових PDF-файлах. Класифікатор Random Forest постійно відзначав шкідливі файли з високою точністю.

Висновок

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

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

Майбутня робота

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

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

Не соромтеся звертатися до мене, якщо у вас є питання!

Перекладено з: Detecting Malicious PDFs with Machine Learning: A Hands-On Approach

Leave a Reply

Your email address will not be published. Required fields are marked *