текст перекладу
Вступ
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-оцінка. Ось як вони порівнюються:
Random Forest показав найкращі результати, продемонструвавши свою здатність обробляти складні набори даних і відрізняти шкідливі шаблони.
Основні моменти реалізації
Витягування ознак
Витягнуті ознаки включали /Page
, /JS
, /Encrypt
і /ObjStm
. Шкідливі PDF-файли часто демонстрували специфічні шаблони в цих ознаках, такі як надмірне використання JavaScript або обфускація.
Навчання моделі
Кожен класифікатор був навчений за допомогою витягнутих ознак і перевірений за допомогою тестового набору. Було виконано налаштування гіперпараметрів для оптимізації продуктивності.
Тестування в реальних умовах
Щоб змоделювати реальні умови, ми протестували моделі на нових PDF-файлах. Класифікатор Random Forest постійно відзначав шкідливі файли з високою точністю.
Висновок
Наш проєкт демонструє потенціал машинного навчання в боротьбі з кіберзагрозами на основі PDF.
текст перекладу
Використовуючи властивості, притаманні формату PDF, наша система виявляє шкідливі файли з вражаючою точністю.
Майбутня робота
- Розширення набору даних для включення більш різноманітних типів атак.
- Дослідження підходів глибокого навчання для покращеного виявлення.
- Розробка легкого інструменту для виявлення в реальному часі.
Цей проєкт підкреслює важливість інновацій у кібербезпеці. Як еволюціонують атакуючі методи, так і повинні змінюватися наші засоби захисту. Машинне навчання пропонує обнадійливий шлях уперед — надаючи нам можливість бути на крок попереду у боротьбі з кіберзлочинністю.
Не соромтеся звертатися до мене, якщо у вас є питання!
Перекладено з: Detecting Malicious PDFs with Machine Learning: A Hands-On Approach