ПОДХОД МАШИННОГО ОБУЧЕНИЯ ДЛЯ ПРЕОДОЛЕНИЯ АТАК ВРЕДОНОСНОГО ПО.

Мы все знаем, что кибератаки безумно выросли за последние несколько лет. Количество кибератак в неделю на корпоративные сети увеличилось примерно на 50 процентов в 2021 году по сравнению с 2020 годом из-за COVID-19, что привело к удаленной работе, что означает, что сотрудники компании работают за пределами офисных сетей и т. д. Но есть один вопрос, который беспокоит всех. в мире технологий, как их остановить? Ну, дело в том, что мы не можем! Но, по крайней мере, мы можем попытаться защитить нашу систему, если когда-нибудь произойдет что-то вроде «АТАКИ ВРЕДОНОСНОГО ПО». ОПЯТЬ КАК?

ПРОМЫШЛЕННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ!

Конечно, говоря о цифрах, потому что так людям будет интересно читать мой блог дальше! 🤌🏻

В 2021 году ПО-вымогатели обходятся миру в 20 миллиардов долларов. Согласно прогнозу, через 10 лет (т. е. до 2031 года) эта сумма может вырасти до 265 миллиардов долларов. По данным Google, 37% всех предприятий и организаций пострадали от программ-вымогателей.

Одна сторона, на которой хакеры зарабатывают на этом деньги, организации и предприятия, каждый раз тратит 1,85 миллиона долларов на восстановление после атак RASOMWARE.

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

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

ПОЗНАКОМЬТЕСЬ С ТИПОМ ВРЕДОНОСНОГО ПО:

1. ВЫмогатели:

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

Говоря о программах-вымогателях, это напоминает самую уродливую атаку программ-вымогателей, то есть программу-вымогатель WannaCry.

WannaCry — это крипто-вымогатель, нацеленный на ПК с Windows. Это тип вредоносного ПО, которое может перемещаться с ПК на ПК по сети (таким образом, компонент «червь»), а затем шифровать данные ключа один раз на машине («крипто» часть). Затем преступники требуют выкуп за раскрытие файлов.

Это несоответствие указывает на то, что хакеры были в первую очередь заинтересованы в том, чтобы вызвать замешательство и ужас. Однако денежный ущерб превысил сам выкуп. Symantec прогнозирует, что стоимость восстановления WannaCry составит около 4 миллиардов долларов, что очень близко к почти 4,9 миллиардам долларов общих расходов на программы-вымогатели в 2020 году.

Если вы хотите узнать больше о программе-вымогателе WannaCry: Нажмите здесь!

Статья Касперского на тему Все, что вам нужно знать о программе-вымогателе WannaCry.

2. БЕСФАЙЛОВОЕ ВРЕДОНОСНОЕ ПО:

Бесфайловое вредоносное ПО изначально ничего не устанавливает; вместо этого он изменяет файлы, присущие операционной системе, такие как PowerShell или WMI. Бесфайловая атака не обнаруживается антивирусным программным обеспечением, потому что операционная система воспринимает измененные файлы как подлинные, а поскольку эти атаки являются скрытыми, они до 10 раз более успешны, чем обычные атаки вредоносного ПО.

После короткого перерыва в начале февраля Астарот вновь появился на свет со значительными изменениями в своей цепочке атак. Astaroth — это вирус для кражи данных, который использует различные тактики без файлов и использует легальные программы, чтобы оставаться незамеченным на зараженных ПК.

блог Microsoft о бесфайловом вредоносном ПО Astaroth.

3. Шпионское ПО:

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

Некоторые из наиболее известных примеров шпионского ПО:

AzorUlt — Способен украсть банковскую информацию, такую ​​как пароли и номера кредитных карт, а также биткойны. Вирус AzorUlt в основном распространяется посредством программ-вымогателей.

Malware bytes ведет очень короткий и приятный блог о шпионском ПО AzorUlt. Если интересно, ознакомьтесь с ним.

TrickBot — нацелен на кражу финансовой информации.

Вот самые распространенные способы того, как людьми манипулируют, чтобы загрузить шпионское ПО. БУДЬТЕ ОСТОРОЖНЫ!

4. РЕКЛАМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ:

Рекламное ПО также можно рассматривать как один из типов шпионского ПО, тогда как рекламное ПО показывает нежелательную или вредную рекламу. Поскольку это, как правило, безобидно, это может раздражать, поскольку реклама «спама» продолжает появляться во время вашей работы, значительно снижая производительность вашего компьютера. Кроме того, эта реклама может невольно подтолкнуть пользователей к загрузке более опасных форм вредоносных программ. Для защиты от рекламного ПО обновляйте операционную систему, веб-браузер и почтовые клиенты, чтобы они могли предотвратить загрузку и установку известных атак рекламного ПО.

Самая известная атака рекламного ПО произошла в 2017 году: рекламное ПО Fireball затронуло 250 миллионов ПК и устройств, взламывая браузеры, чтобы изменить поисковые системы по умолчанию и отслеживать поведение в Интернете. Инфекция, с другой стороны, могла быть чем-то большим, чем просто неприятность.

Checkpoint опубликовали отличный пост о FIREBALL ADWARE, в котором они рассказали и обсудили некоторые необычные вещи, чтобы люди больше знали о весь инцидент.

5. ВИРУСЫ:

Вирусы — это своего рода вредоносное ПО, которое принимает форму фрагмента кода, который внедряется в приложение, программу или систему и распространяется самими жертвами. Вирусы, одна из наиболее распространенных форм вредоносных программ, похожи на биологические вирусы тем, что для их существования требуется хост, то есть устройство.

Множество различных форм компьютерных вирусов способны украсть или уничтожить ваши данные. Вот некоторые из наиболее распространенных вирусов и их характеристики.

Этот действительно превосходный пост охватывает все, что мы ищем, с точки зрения полного понимания вирусов. Ознакомьтесь с разделом 7 различных типов компьютерных вирусов:

БЫСТРЫЙ ВОПРОС?

Что, если кто-то неожиданно скажет вам: "Я ЛЮБЛЮ ТЕБЯ?"

Звучит странно, правда? Ну, представьте себе, если человек в реальной жизни так долго отвечает на ваше «Я ЛЮБЛЮ ТЕБЯ», этот же человек нажимает на всплывающее окно «Я ЛЮБЛЮ ТЕБЯ» на экране своего компьютера, даже не колеблясь ни секунды: D. Это мрачно и забавно, но это не шутка. ЭТО ВИРУС😭😂

Вирус ILOVEYOU был способен уничтожить любой тип контента, включая изображения, аудиофайлы и документы. Затронутые пользователи, у которых не было резервных копий, безвозвратно потеряли их. В марте 1999 года вирус Melissa, как и ILOVEYOU, распространился через адресные книги Outlook.

Подробнее об этом вирусе читайте здесь: I LOVE YOU — мошенничество

Вы знаете о знаменитом ВИРУС ДЖОКЕР?

Что нельзя делать

Вы читали положения и условия?

6. ТРОЯНЫ

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

Напоминает "Троянский конь-штормовой червь"

В начале января 2007 года большая часть Европы была парализована штормом Кириллом. Этот троянский конь изначально передавался по электронной почте на тему шторма, отсюда и термин «Storm Worm».

Хотите узнать больше о STORM WORM TROJAN: Нажмите здесь!

7. БОТЫ

Боты состоят из алгоритмов, которые помогают им выполнять свои задачи. Многие виды ботов создаются по-разному для выполнения широкого круга задач.

Бот — это компьютерная программа, которая выполняет автоматизированную задачу без вмешательства человека. Компьютер, зараженный ботом, может распространять бота на другие машины, образуя ботнет. Эта сеть зараженных ботами ПК может затем управляться и использоваться хакерами для проведения масштабных атак, часто без ведома владельца устройства. Боты способны к масштабным атакам, таким как распределенная атака типа «отказ в обслуживании» (DDoS) в 2018 году, в результате которой Интернет был отключен на большей части востока США.

ПЕРЕСМОТРИТЕ DDoS здесь быстро!!!!

5 марта 2018 года анонимный клиент Arbor Networks, американского поставщика услуг, стал объектом крупнейшей на тот момент DDoS-атаки с пиковой скоростью около 1,7 терабит в секунду. Предыдущий рекорд был установлен всего несколькими днями ранее, 1 марта 2018 года, когда GitHub подвергся атаке со скоростью 1,35 терабит в секунду.

ПОНИМАЕМ ПРОБЛЕМУ!

Проблема в том, что. у нас есть 100 проблем в кибермире, и программы-вымогатели составляют всего 10% от них, но этих 10% достаточно, чтобы заставить компании плакать!

Идя в ногу с тенденциями, он показал, что в настоящее время хакеры находят совершенно новые способы создания прибыльных вредоносных программ с использованием искусственного интеллекта и машинного обучения. Проблема с программами-вымогателями заключается в том, что их трудно и почти невозможно остановить, но что мы делаем, так это играем с ними в UNO REVERSE!

ЕСЛИ ВЫ ДУМАЕТЕ КАК? 😁

Вот где КИБЕРБЕЗОПАСНОСТЬ фактически встречается с подходом МАШИННОГО ОБУЧЕНИЯ, чтобы решить нашу проблему. Мы также можем сказать, что если хакеры достаточно умны, чтобы создавать прибыльные вредоносные программы с помощью машинного обучения, то мы уже на шаг впереди них, поскольку узнаем точные шаблоны, с помощью которых были созданы вредоносные программы, и в конечном итоге мы сможем двигаться вперед. и попробуйте найти решение для того же!

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

ЧТО ДЕЛАТЬ, ПОЧЕМУ и КАК?

ЧТО ТАКОЕ МАШИННОЕ ОБУЧЕНИЕ?

Под машинным обучением понимается набор методов, которые позволяют компьютерам «обучаться без явного программирования».

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

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

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

  1. Фрагменты кода
  2. Хэши фрагментов кода или всего файла
  3. Атрибуты файла
  4. И комбинации этих элементов.

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

ПОЧЕМУ МАШИННОЕ ОБУЧЕНИЕ?

Упрощение: стандартные алгоритмы машинного обучения вместо того, чтобы иметь дело непосредственно с необработанным вредоносным ПО, предварительно обрабатывают исполняемый файл, чтобы извлечь набор характеристик, которые дают абстрактную картину программы. Затем характеристики используются для обучения модели решению поставленной задачи.

КАК?

НАЧНЕМ СО ВСЕХ КОДОВ И АЛГОРИТМОВ

ПОСТАНОВКА ПРОБЛЕМЫ:

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

ЗАВИСИМОСТИ:

1. ПАНДА:

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

pip install pandas as pd

2. НУМПИЙ:

NumPy — это библиотека Python, используемая для работы с массивами. Он также имеет функции для работы в области линейной алгебры, преобразования Фурье и матриц.

pip install numpy as np

3. ПИКЛ:

Чтобы протестировать модель на неизвестном файле, необходимо извлечь функции предоставленного файла. Пефиле Python. Библиотека PE используется для создания и построения вектора признаков, а модель ML используется для прогнозирования класса на основе уже обученной модели для предоставленного файла.

pip install pickle

4. СКИПИ:

Одна из самых популярных библиотек SciPy используется для более сложных вычислений.

scipy pip install scipy

5. SCIKIT:

Scikit используется для обучения интеллектуальному анализу и анализу данных.

scikit pip install -U scikit-learn

НАЧАЛО С ПОСТРОЕНИЯ МОДЕЛИ:

ИМПОРТ БИБЛИОТЕК:

import os
import pandas as pd
import numpy as np
import pickle
import sys
print(sys.path)
import sklearn.ensemble as ek
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectFromModel
import joblib
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import confusion_matrix
from sklearn.pipeline import make_pipeline
from sklearn import preprocessing
from sklearn import svm
from sklearn.linear_model import LinearRegression

ЗАГРУЗКА НАБОРА ДАННЫХ:

dataset = pd.read_csv(‘data.csv’)
#import the path if you are using google colab, and if you are a jupyter notebook person go with me)
dataset.head() #Checking column-names and data offcourse.
dataset.describe() #Pandas describe() is used to view some basic statistical details like percentile, mean, std etc. of a data frame or a series of numeric values.

КОЛИЧЕСТВО ВРЕДОНОСНЫХ ФАЙЛОВ ПРОТИВ ЗАКОННЫХ ФАЙЛОВ:

dataset.groupby(dataset[‘legitimate’]).size() #Pandas’ groupby() allows us to split data into separate groups to perform computations for better analysis.

УДАЛЕНИЕ КОЛОНН, КОТОРЫЕ МАЛО ИСПОЛЬЗУЮТСЯ:

X = dataset.drop(['Name','md5','legitimate'],axis=1).valuesy = dataset['legitimate'].values

ВНЕДРЕВНЕВОЙ КЛАССИФИКАТОР, ПОЧЕМУ И КАК?👇🏻

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

ExtraTreesClassifier использует усреднение для повышения точности прогнозирования и
управления избыточной подгонкой путем подгонки ряда рандомизированных деревьев решений
(также называемых дополнительными деревьями) на различных подвыборках набора данных.

ExtraTreesClassifier помогает идентифицировать необходимые элементы для
классификации файла как вредоносного или законного. ExtraTreesClassifier идентифицирует 14 необходимых атрибутов.

extratrees = ek.ExtraTreesClassifier().fit(X,y)
     model = SelectFromModel(extratrees, prefit=True)
     X_new = model.transform(X)
     nbfeatures = X_new.shape[1]
nbfeatures. #To identify the total number of features.

ПЕРЕКРЕСТНАЯ ПРОВЕРКА:

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

Набор данных разделен на случайные обучающие и тестовые подгруппы с использованием перекрестной
проверки. Доля набора данных, включаемая в тестовую разбивку
, представлена ​​размером теста = 0,2.

X_train, X_test, y_train, y_test = cross_validation.train_test_split
(X_new, y ,test_size=0.2) #Spliting and dividing the dataset

ИЗВЛЕЧЕНИЕ ПРИЗНАКА, КОТОРЫЙ БЫЛ ОПРЕДЕЛЕН КЛАССИФИКАТОРОМ EXTRATREE:

for f in range(nbfeatures):
    print("%d. feature %s (%f)" % (f + 1, dataset.columns[2+index[f]], 
          extratrees.feature_importances_[index[f]]))
    features.append(dataset.columns[2+f])

ПОСТРОЕНИЕ МОДЕЛИ МАШИННОГО ОБУЧЕНИЯ:

model = { "DecisionTree":tree.DecisionTreeClassifier(max_depth=10),
      "RandomForest":ek.RandomForestClassifier(n_estimators=50),
      "Adaboost":ek.AdaBoostClassifier(n_estimators=50),
      "GradientBoosting":ek.GradientBoostingClassifier(n_estimators=50),
      "GNB":GaussianNB(),
      "LinearRegression":LinearRegression()   
}

ТЕПЕРЬ МЫ ОБУЧИМ КАЖДУЮ МОДЕЛЬ С помощью X_TRAIN И ПРОВЕРИМ С помощью X_TEST:

results = {}
for algo in model:
    clf = model[algo]
    clf.fit(X_train,y_train)
    score = clf.score(X_test,y_test)
    print ("%s : %s " %(algo, score))
    results[algo] = score
winner = max(results, key=results.get)

ВЫЧИСЛЕНИЕ ЛОЖНОПОЗИТИВНОГО И ОТРИЦАТЕЛЬНОГО НАБОРА ДАННЫХ:

Рекомендуемый блог для понимания важности ложных положительных и отрицательных результатов при работе с набором данных:

clf = model[winner]
res = clf.predict(X_new)
mt = confusion_matrix(y, res)

Далее следует этап тестирования, на котором мы фактически тестируем файл вредоносного ПО и определяем, способна ли наша модель его обнаружить. Вы можете попробовать построить нашу собственную модель тестирования и сообщить нам, как она идет.

ПЕРЕЧИСЛЕНИЕ НЕКОТОРЫХ УДИВИТЕЛЬНЫХ ОТЗЫВОВ ОТ УДИВИТЕЛЬНЫХ ЛЮДЕЙ:

1. https://github.com/dchad/malware-detection

2. https://github.com/manish-vi/malware_detection

ИССЛЕДОВАТЕЛЬСКАЯ СТАТЬЯ-1

ИССЛЕДОВАТЕЛЬСКАЯ СТАТЬЯ-2

Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с нами, и мы с радостью вам поможем!❤️

- Team Data Science встречает кибербезопасность ❤️💙