
Инструмент для Threat Hunting с использованием Sysmon и графов

Grafiki — это проект на Django, посвящённый Sysmon и графам, на данный момент.
На мой взгляд, EventViewer, Elastic и даже Kibana недостаточно наглядны. Современные угрозы сложны, и если злоумышленники мыслят графами, защитники тоже должны это делать.
Это концептуальное доказательство, код ещё не отлажен, но, возможно, кому-то пригодится. Я буду его улучшать.
Проект начинался как парсер EVTX в базу данных SQL, и это, возможно, его ядро.
Проект ещё не зрелый, хотя и работает, план тестирования пока не определён.
Любые мнения, найденные ошибки, запросы на улучшение... приветствуются.
git clone https://github.com/lucky-luk3/Grafiki.git
cd Grafiki
sudo -- sh -c -e "echo '127.0.0.1 grafiki.local' >> /etc/hosts"
docker compose up --build &
docker exec -it -d grafiki-app-1 /init_django.sh
В браузере перейдите по адресу http://127.0.0.1:8000/ или http://grafiki.local:8000/
Охотьтесь, учитесь и наслаждайтесь!
Это приложение может обрабатывать два типа файлов.

На этой странице вы можете загрузить файлы evtx или файлы событий Elastic и обработать их.

Эта страница полезна для создания библиотеки онлайн-образцов файлов.
Когда вы создаёте пример, вы указываете URL файла, и при его обработке приложение загружает и обрабатывает файл событий.

На этой странице вы можете создавать поиски в вашем экземпляре Elastic и строить граф результатов. Вы можете создавать фильтры по:

Страница графа — это ядро приложения и его исследовательский интерфейс.
На других страницах вы выбираете данные, и они отправляют вас на страницу графа; если вы перейдёте прямо на страницу графа, там ничего не будет, кроме последних найденных вами данных.
На этой странице две вкладки: одна для Sysmon, другая для событий PowerShell.
Есть два типа элементов: узлы и рёбра. Узлы представляют сущности, такие как процесс, файл или ключ реестра, а рёбра — действия, такие как создание, удаление или подключение.

Мы в ядре.
Эта часть использует информацию в базе данных для создания графов проанализированных событий.
Вы можете перемещаться по графу, просматривая создание процессов, именованные каналы... но обычно информации слишком много для комфортной работы.
Внутри вкладки есть скрытый раздел с фильтрами графа.
В этой области вы можете работать с графом, фильтруя данные.
Вы можете фильтровать узлы по следующим сущностям:
Вы также можете фильтровать узлы процессов по:
Кроме того, вы можете фильтровать рёбра по следующим действиям:
Отличная возможность — создание анимаций по данным на графе; это очень полезно, например, при подмене родительского PID или когда пользователь на компьютере удалённо выполняет команды.

Когда на графе слишком много информации, можно удалить один узел, одно ребро, группу узлов или группу узлов рекурсивно.
Удаление группы узлов работает следующим образом: вы выбираете узел, и приложение удаляет все узлы, для которых выбранный узел является родительским.
Рекурсивное удаление группы также работает с выбором узла, но приложение будет проходить по узлам, удаляя их, пока не завершит эту ветвь дерева. Если ветвь содержит много информации, это займёт много времени.
В нижней части экрана можно изменить физику графа.
Когда на графе много информации, может быть полезно отключить физику, чтобы стабилизировать граф.
Можно играть с физикой, это забавно.
На вкладке PowerShell можно анализировать команды PowerShell.
Команды отображаются в аккордеоне, и если команда содержит команду в base64, она будет декодирована и разобрана.
Вы можете искать во всех событиях по закодированной или декодированной части команды.





