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

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

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

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

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

Категории

Все категории
Loading categories
securitybot — Distributed alerting for the masses! | Kitploit
Инструменты/GitHubGitHub/dropbox/securitybot
Utilities & FrameworksThreat IntelligenceAuthenticationIncident ResponseLog AnalysisArchived
GitHubdropbox/securitybot

securitybot

Distributed alerting for the masses!

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

Популярное

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

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

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

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

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

Securitybot

Распределённое оповещение для всех!

Securitybot — это реализация распределённого чат-бота для оповещений с открытым исходным кодом, описанного в статье в блоге Райана Хубера. Распределённое оповещение повышает эффективность мониторинга вашей команды безопасности и помогает быстрее и эффективнее выявлять инциденты безопасности. Мы постарались удалить все особенности Dropbox из этого кода, чтобы настройка собственного экземпляра была достаточно простой. Должно быть относительно легко установить перечисленные зависимости в virtualenv/Docker контейнере и просто позволить боту выполнять свою работу. Мы также предоставляем простой интерфейс для просмотра базы данных, приёма API-вызовов и создания пользовательских оповещений, чтобы бот мог связываться с людьми по мере необходимости.

Развёртывание

Это руководство поможет быстро настроить экземпляр Securitybot без лишних сложностей. Мы подключим его к Slack, SQL и Duo. После завершения у нас будет файл, похожий на main.py.

SQL

Вам понадобится база данных с именем securitybot на каком-либо MySQL-сервере. Мы предоставили функцию init_sql, расположенную в securitybot/sql.py, которая инициализирует SQL. В настоящее время она настроена на использование хоста localhost с пользователем root и без пароля. Вам нужно изменить это, потому что, конечно, ваша база данных настроена иначе.

Slack

Вам понадобится токен для интеграции со Slack. Лучше всего создать бота-пользователя и использовать этот токен для Securitybot. Вам также нужно настроить канал, в который бот будет сообщать, когда пользователи указывают, что они не выполнили действие. Найдите уникальный ID этого канала (он будет выглядеть примерно как C123456) и обязательно пригласите бота-пользователя в этот канал, иначе он не сможет отправлять сообщения.

Duo

Для Duo вам нужно создать экземпляр Auth API, назвать его как-нибудь умно, и запомнить ключ интеграции, секретный ключ и URI конечной точки Auth API.

Запуск бота

Посмотрите на предоставленный файл main.py в корневом каталоге, чтобы увидеть пример использования всего этого. Замените все глобальные переменные на то, что вы получили выше. Если всё следующее было успешно сгенерировано, Securitybot должен запуститься. Чтобы протестировать, отправьте сообщение боту-пользователю, к которому он привязан, и скажите hi. Чтобы протестировать процесс обработки оповещения, отправьте test для тестирования бота.

Архитектура

Securitybot был спроектирован максимально модульным. Это означает, что можно легко заменить системы чата, провайдеров двухфакторной аутентификации и источники данных оповещений. Единственная система, тесно интегрированная с ботом, — это SQL, но добавление поддержки других баз данных не должно быть сложным. Наличие базы данных обеспечивает сохранность оповещений и означает, что бот не теряет (слишком много) состояния в случае временного сбоя.

Собственно Securitybot

Сам бот выполняет небольшой набор функций:

  1. Читает сообщения, интерпретируя их как команды.
  2. Опрашивает каждый объект пользователя для обновления их состояния, если применимо.
  3. Забирает новые оповещения из базы данных и назначает их пользователям или эскалирует при неизвестном пользователе.

Обмен сообщениями, двухфакторная аутентификация и управление оповещениями обеспечиваются настраиваемыми модулями и добавляются в бота при инициализации.

Команды

Бот обрабатывает входящие сообщения как команды. Разбор и обработка команд выполняется в классе Securitybot, а сами команды предоставляются в двух местах. Функции для команд определены в commands.py, а их структура — в commands.yaml в каталоге config/.

Обмен сообщениями

Securitybot спроектирован для совместимости с широким спектром систем обмена сообщениями. В настоящее время мы предоставляют привязки для Slack, но не стесняйтесь добавлять любые другие плагины, например для Gitter или Zulip, в основной репозиторий. Обмен сообщениями обеспечивается файлом securitybot/chat/chat.py, который предоставляет небольшое количество функций для запроса пользователей в группе обмена сообщениями, отправки сообщений этим пользователям и отправки сообщений в определённый канал/комнату. Чтобы добавить привязки для новой системы обмена сообщениями, создайте подкласс Chat.

Двухфакторная аутентификация (2FA)

Поддержка 2FA обеспечивается файлом auth/auth.py, который оборачивает асинхронную 2FA в несколько функций, позволяющих проверять возможность 2FA, запускать сеанс 2FA и опрашивать состояние сеанса 2FA. Мы предоставляем поддержку Duo Push через Duo Auth API, но добавление поддержки другого продукта или собственного решения 2FA так же просто, как создание подкласса Auth.

Управление задачами

Управление задачами обеспечивается файлом tasker/tasker.py и классом Tasker. Поскольку оповещения регистрируются в SQL-базе данных, предоставленный Tasker — это SQLTasker. Это обеспечивает поддержку получения новых задач и их обновления через отдельные объекты Task.

Чёрные списки

Чёрные списки обрабатываются SQL-базой данных, предоставлены в blacklist/blacklist.py и подклассе blacklist/sql_blacklist.py.

Пользователи

Объект User обеспечивает поддержку обработки состояния пользователя. Мы отслеживаем любую информацию, которую даёт нам система обмена сообщениями, но на самом деле используем только уникальный ID пользователя и имя пользователя для связи с ними.

Оповещения

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

Часто задаваемые вопросы (FAQ)

Пожалуйста, задавайте нам вопросы

Участие в разработке

Участники должны соблюдать Лицензионное соглашение участника Dropbox.

Лицензия

Copyright 2016 Dropbox, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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