Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cosa-nostra — Cosa Nostra — свободный инструментарий (FOSS) с открытым исходным кодом для кластеризации вредоносного ПО на основе графов. | Kitploit
Инструменты/GitHubGitHub/joxeankoret/cosa-nostra
Статический анализОбратная инженерияФорензикаАнализ вредоносных программАнализ Бинарных ФайловОбучение и Образование
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra — свободный инструментарий (FOSS) с открытым исходным кодом для кластеризации вредоносного ПО на основе графов.

Репозиторий
231552 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Cosa Nostra

Cosa Nostra — это набор инструментов с открытым исходным кодом для кластеризации, ориентированный на анализ вредоносного ПО. Он позволяет создавать филогенетические деревья бинарных образцов вредоносных программ, структурно схожих между собой. Инструмент был впервые представлен на SyScan360 Shanghai (2016).

По сути, я поддерживаю его с 2016 года для своего единственного пользователя, который, так уж вышло, является моим другом... Ну, да ладно.

Начало работы

Необходимые сторонние инструменты

Для работы с Cosa Nostra вам потребуется Python версии 3.X, а также один из следующих инструментов для выполнения анализа кода:

  • IDA — написана на C++. Поддерживает анализ огромного количества исполняемых форматов, о которых вы, вероятно, даже не слышали. Коммерческий продукт. Поддерживаются только версии 7.X.
  • Radare2 — написан на чистом C. Аналогично IDA, поддерживает крайне редкие процессоры и бинарные форматы. К тому же с открытым исходным кодом!

Анализ бинарных файлов

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

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ /path/to/ida64 -B -A -S/full/path/to/ida_batch.py example.exe

Или

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python r2_batch.py example.exe

Автоматизация анализа набора вредоносных программ

Самый простой способ проанализировать набор вредоносных программ — просто выполнить команду, подобную следующему примеру:

root@kitploit:~
$ find /your/malware/dataset/path -type f -exec python r2_batch.py {} ';'

Это можно делать параллельно, используя инструмент «GNU Parallel», как показано в следующем примере:

root@kitploit:~
$ find /your/malware/dataset/path -type f | parallel -j 8 ida64 -B -A -S/path/to/ida_batch.py {}

В приведенном выше примере будет запущено в общей сложности 8 параллельных процессов pyew_batch.

Настройка базы данных

После успешного анализа образцов вредоносных программ данные графа вызовов для каждого образца по умолчанию сохраняются в одну SQLite-базу данных с именем «db.sqlite». Вы можете настроить имя базы данных, путь, систему базы данных и т. д., отредактировав файл $COSA_NOSTRA_DIR/, как показано ниже:

root@kitploit:~
$ cat config.cfg 
########################################################################
# Конфигурация для SQLite3
########################################################################
[database]
dbn=sqlite
# Имя базы данных
db=db.sqlite

Если вы предпочитаете использовать, скажем, систему баз данных MySQL, вы можете настроить её в файле config.cfg, поместив следующие разделы конфигурации с подходящими для вашей установки значениями:

root@kitploit:~
########################################################################
# Пример конфигурации для MySQL
########################################################################

[database]
dbn=mysql
# Имя хоста или IP-адрес базы данных
host=localhost
# Имя базы данных
db=db_name
# Имя пользователя базы данных
user=username
# Пароль базы данных
pw=password

Кластеризация образцов вредоносных программ

Этот шаг займёт больше всего времени. После того, как вы проанализировали все образцы вредоносных программ из ваших наборов данных, и сигнатуры графа вызовов, соответствующие простые числа и т. д. вычислены и сохранены в базе данных, следующим шагом является поиск кластеров. Инструмент для этого называется «cn_clusterer.py». Он будет использовать тот же файл конфигурации базы данных ($COSA_NOSTRA_DIR/config.cfg) для извлечения сигнатур графа вызовов проанализированных образцов. Запуск осуществляется так же просто, как выполнение следующего:

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ ./cn_clusterer.py
(...)
Calculating difference matrix for 2357, iteration 5540280 out of 7507600 (4858784 matches, 600144 cache misses)
Calculating difference matrix for 2354, iteration 5543020 out of 7507600 (4861293 matches, 600373 cache misses)
Calculating difference matrix for 471, iteration 5545760 out of 7507600 (4863903 matches, 600373 cache misses)
(...)
Making tree for group with 59 sample(s), iteration 0 out of 256
Making tree for group with 393 sample(s), iteration 1 out of 256
Making tree for group with 1347 sample(s), iteration 2 out of 256
(...)
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating unnamed cluster...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Skylock-4'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Downloader.133181-1'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Agent-1213378'...
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done processing phylogenetic trees!
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done

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

Просмотр кластеров: веб-интерфейс

Последний шаг — запустить веб-приложение на основе web.py и войти в него:

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python cosa_nostra.py [optional port to listen to]
http://0.0.0.0:YOURPORT/

Затем откройте браузер и перейдите по адресу, выведенному cosa_nostra.py. Отобразится форма входа, запрашивающая имя пользователя и пароль. По умолчанию это «admin/cosanostra». Вы можете изменить это в файле $COSA_NOSTRA_DIR/config.py:

root@kitploit:~
$ cat config.py
#!/usr/bin/env python

#-----------------------------------------------------------------------
# Конфигурация для Cosa Nostra
#-----------------------------------------------------------------------
DEBUG=False
CN_USER="admin"
# SHA1-хэш пароля "cosanostra", измените на SHA1-хэш
# любого предпочитаемого вами пароля.
CN_PASS="048920dedfe36c112d74dc8108abb4db5185a918"
(...)

После входа в систему вы можете выбрать на левой панели один из следующих параметров:

  • Samples: просмотр образцов в текущей базе данных.
  • Clusters: просмотр списка кластеров, которые Cosa Nostra нашла для заданных наборов данных.

В представлении «Clusters» можно выбирать разные кластеры и просматривать иерархический граф обнаруженного семейства вредоносных программ.

Скриншоты

Список кластеров, отображаемый в Cosa Nostra:

Список кластеров, отображаемый в Cosa Nostra

Небольшой кластер Trojan.Backspace-1 (название по ClamAV):

Небольшой кластер Trojan.Backspace-1, название по ClamAV

Небольшой кластер MiniDukes:

Небольшой кластер MiniDukes

Кластер Kazy/Bifroses:

Кластер Kazy/Bifroses

Небольшая часть очень большого кластера FannyWorms:

Небольшая часть очень большого кластера FannyWorms

Скачать инструмент