Поисковые системы пропускают зараженные сайты, подвергая бизнес риску

Поисковые системы пропускают зараженные сайты, подвергая бизнес риску

7 апреля 2022 г.

Мы все сталкивались с предупреждениями при посещении подозрительных веб-сайтов. Ваш браузер или поисковая система могут даже заблокировать вам вход, отображая сообщение о том, что этот сайт может нанести вред вашему устройству. Но что, если сайт, который вы пытаетесь посетить, не помечен как вредоносный?


Согласно отчету о безопасности SiteLock за 2022 год, 92% зараженных веб-сайтов не занесены в черный список поисковыми системами. Это означает, что предприятия и частные лица уязвимы для атак при посещении этих сайтов.


Существует ряд причин, по которым поисковые системы пропускают зараженные сайты. Во-первых, на то, чтобы веб-сайт был идентифицирован как вредоносный, могут уйти недели или даже месяцы. Это связано с тем, что злоумышленники постоянно меняют свою тактику, чтобы избежать обнаружения. Во-вторых, многие компании не понимают, что их сайт был взломан, пока не становится слишком поздно. И в-третьих, даже если сайт помечен, нет гарантии, что пользователи будут его избегать.


Как ИИ может защитить Интернет


Итак, что можно сделать, чтобы защитить предприятия и пользователей от этих угроз? Точно так же, как киберпреступники используют ИИ для автоматизации своих атак, мы можем использовать ИИ для защиты бизнеса. Это не просто теория; Анализ IEEE методов обнаружения вредоносных программ на основе ИИ пришел к выводу, что они «[обеспечивают значительные преимущества] (https://ieeexplore.ieee.org/document/9671434)», например, с точки зрения точности, скорости и масштабируемости.


Например, SafeDNS использует «[непрерывное машинное обучение] (https://www.safedns.com/en/news/malware-detection-system/)», достигая 98% точности при обнаружении вредоносных программ. Они используют «базу данных вредоносных программ» для подпитки моделей машинного обучения, которые анализируют данные для поиска новых моделей поведения, которые могут указывать на угрозу. Это позволяет им быстро и эффективно выявлять угрозы, прежде чем они смогут нанести какой-либо ущерб.


Если мы хотим быть на шаг впереди киберпреступников, нам нужно использовать ИИ для защиты нашего бизнеса. Недавние исследования — это тревожный сигнал: пора действовать и инвестировать в решения на основе ИИ.


Обнаружение вредоносных программ — доказательство концепции Python


Существует множество способов обнаружения вредоносных программ и защиты от них. В этом разделе мы рассмотрим один из таких методов: использование Python для обнаружения вредоносных программ на основе набора данных исполняемых файлов. Просмотрите полный связанный код [здесь] (https://colab.research.google.com/drive/1OwHTGlS9F8nzJISAIqZN8J5hg75bkJSA?usp=sharing).


Набор данных, который мы будем использовать, взят из набора данных Kaggle «[Обнаружение вредоносных программ] (https://www.kaggle.com/datasets/piyushrumao/malware-executable-detection)». Он состоит из 373 образцов исполняемых файлов, 301 из которых являются вредоносными файлами, а не вредоносными — 72. Как видите, набор данных несбалансирован: количество обычных файлов превышает количество вредоносных файлов.


В наборе данных представлена ​​531 функция, от F1 до F531, и столбец меток, указывающий, является ли файл вредоносным или нет. Мы не будем использовать все эти функции, но мы будем использовать различные из них для построения наших моделей.


Мы начнем с импорта необходимых библиотек для нашей демонстрации. Мы будем использовать библиотеки pandas, numpy и scikit-learn:


импортировать панд как pd


импортировать numpy как np


импортировать sklearn


из sklearn.model_selection импорта train_test_split


из sklearn.linear_model импортировать LogisticRegression


из показателей импорта sklearn


из sklearn.metrics импортаclassification_report


из sklearn.metrics импортировать roc_curve,accuracy_score,confusion_matrix,recall_score,precision_score,f1_score, auc, roc_auc_score


из sklearn.model_selection импорта train_test_split


Далее мы загрузим набор данных:


df = pd.read_csv('uci_malware_detection.csv')


Теперь, когда мы рассмотрели набор данных, давайте разделим его на наборы для обучения и тестирования. Мы также сопоставим метки строк с числами и удалим дубликаты:


df['Label'] = df['Label'].map({'malicious': 0, 'non-malicious': 1})


df = df.drop_duplicates (оставить = False)


X, y = df.drop ("Метка", ось = 1), df ["Метка"]


X_train, X_test, y_train, y_test= train_test_split(X,y, test_size=0,2, random_state=42)


Теперь мы готовы построить наши модели. Мы будем использовать простую модель логистической регрессии:


lr_model = Логистическая регрессия (max_iter = 1000)


lr_model.fit(X_train, y_train)


Теперь мы можем оценить производительность нашей модели на тестовом наборе:


lr_model.score (X_test, y_test)


y_pred = lr_model.predict(X_test)


печать (accuracy_score (y_test, y_pred))


print('Оценка ROC-AUC', roc_auc_score(y_test,y_pred))


print('Матрица путаницы:
', путаница_матрица(y_test, y_pred))


Запуск этого кода дает нам следующий результат:


0,9864864864864865


Оценка ROC-AUC 0,9705882352941176


Матрица путаницы:


[[57 0]


[ 1 16]]


В конечном итоге нам удалось создать точную модель с высокой точностью и полнотой. Неплохо! Конечно, это всего лишь проверка концепции, так как реальная ситуация на порядки сложнее. В масштабе системы ИИ, обученные работе с большими данными, могут реально изменить ситуацию в борьбе с вредоносными программами.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE