Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
securitybot — 대중을 위한 분산 알림! | Kitploit
도구/GitHubGitHub/dropbox/securitybot
Utilities & FrameworksThreat IntelligenceAuthenticationIncident ResponseLog AnalysisArchived
GitHubdropbox/securitybot

securitybot

대중을 위한 분산 알림!

저장소 보기
98910787년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Securitybot

모두를 위한 분산 알림!

Securitybot은 Ryan Huber의 블로그 포스트에서 설명한 분산 알림 채팅 봇의 오픈소스 구현체입니다. 분산 알림은 보안 팀의 모니터링 효율성을 향상시키고 보안 사고를 더 빠르고 효율적으로 포착하는 데 도움을 줍니다. 이 코드에서 Dropbox 특화 요소를 최대한 제거하여 여러분이 자신의 인스턴스를 설정하는 데 어려움이 없도록 했습니다. virtualenv/Docker 컨테이너에 나열된 요구 사항을 설치하고 봇이 알아서 동작하도록 하는 것은 비교적 쉬울 것입니다. 또한 데이터베이스를 탐색하고, API 호출을 수신하며, 봇이 원하는 사람에게 연락할 수 있도록 맞춤형 알림을 생성할 수 있는 간단한 프론트엔드를 제공합니다.

배포

이 가이드는 가능한 한 빠르게 Securitybot 인스턴스를 별다른 부가 기능 없이 설정하는 과정을 안내합니다. Slack, SQL, Duo에 연결할 것입니다. 완료되면 main.py와 비슷한 파일이 생성됩니다.

SQL

어딘가의 MySQL 서버에 securitybot이라는 데이터베이스가 필요합니다. securitybot/sql.py에 위치한 init_sql이라는 함수를 제공했으며, 이 함수가 SQL을 초기화합니다. 현재는 호스트 localhost, 사용자 root, 비밀번호 없음으로 설정되어 있습니다. 데이터베이스가 그렇게 설정되어 있지 않을 테니 반드시 변경해야 합니다.

Slack

Slack과 통합하려면 토큰이 필요합니다. 가장 좋은 방법은 봇 사용자를 생성하고 그 토큰을 Securitybot에 사용하는 것입니다. 또한 사용자가 작업을 수행하지 않았다고 명시할 때 봇이 보고할 채널을 설정해야 합니다. 해당 채널의 고유 ID (C123456과 유사)를 찾고, 봇 사용자를 그 채널에 초대해야 합니다. 그렇지 않으면 메시지를 보낼 수 없습니다.

Duo

Duo의 경우 Auth API 인스턴스를 생성하고, 적절한 이름을 지정한 후 통합 키, 비밀 키, Auth API 엔드포인트 URI를 기록해 두세요.

봇 실행

루트 디렉토리에 제공된 main.py를 참고하여 이 모든 것을 사용하는 방법을 확인하세요. 모든 전역 변수를 위에서 찾은 값으로 바꾸세요. 위의 모든 과정이 성공적으로 생성되었다면 Securitybot이 실행됩니다. 테스트하려면 할당된 봇 사용자에게 hi라고 메시지를 보내세요. 알림 처리 과정을 테스트하려면 test라고 메시지를 보내 봇을 테스트하세요.

아키텍처

Securitybot은 최대한 모듈화되도록 설계되었습니다. 즉, 채팅 시스템, 2FA 제공자, 알림 데이터 소스를 쉽게 교체할 수 있습니다. 봇과 밀접하게 통합된 유일한 시스템은 SQL이지만, 다른 데이터베이스에 대한 지원을 추가하는 것도 어렵지 않습니다. 데이터베이스를 사용하면 알림이 영구적으로 유지되며 일시적인 장애가 발생해도 봇이 상태를 (너무 많이) 잃지 않습니다.

Securitybot 본체

봇 자체는 다음과 같은 소수의 기능을 수행합니다:

  1. 메시지를 읽고 명령어로 해석합니다.
  2. 각 사용자 객체를 폴링하여 해당되는 경우 상태를 업데이트합니다.
  3. 데이터베이스에서 새 알림을 가져와 사용자에게 할당하거나 알 수 없는 사용자에 대해 에스컬레이션합니다.

메시징, 2FA, 알림 관리는 설정 가능한 모듈을 통해 제공되며, 초기화 시 봇에 추가됩니다.

명령어

봇은 들어오는 메시지를 명령어로 처리합니다. 명령어 파싱 및 처리는 Securitybot 클래스에서 수행되며, 명령어 자체는 두 곳에서 제공됩니다. 명령어의 함수는 commands.py에 정의되어 있고, 그 구조는 config/ 디렉토리 아래 commands.yaml에 정의되어 있습니다.

메시징

Securitybot은 다양한 메시징 시스템과 호환되도록 설계되었습니다. 현재 Slack에 대한 바인딩을 제공하지만, Gitter나 Zulip과 같은 다른 플러그인을 자유롭게 기여해 주세요. 메시징은 securitybot/chat/chat.py에 의해 가능하며, 이 파일은 메시징 그룹의 사용자 조회, 사용자에게 메시지 전송, 특정 채널/룸으로 메시지 전송을 위한 소수의 함수를 제공합니다. 새로운 메시징 시스템에 대한 바인딩을 추가하려면 Chat을 서브클래싱하세요.

2FA

2FA 지원은 auth/auth.py에 의해 제공되며, 비동기 2FA를 2FA 가능 여부 확인, 2FA 세션 시작, 2FA 세션 상태 폴링을 가능하게 하는 몇 가지 함수로 래핑합니다. Duo Auth API를 통해 Duo Push를 지원하지만, 다른 제품이나 사내 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.

Apache License, Version 2.0 (이하 "라이선스")에 따라 라이선스가 부여됩니다. 라이선스를 준수하지 않는 경우 이 파일을 사용할 수 없습니다. 라이선스 사본은 다음에서 확인할 수 있습니다.

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

관련 법률에 의해 요구되거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 "있는 그대로" 기반으로 제공되며, 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건도 없습니다. 라이선스에 따른 권리 및 제한 사항을 관리하는 특정 언어는 라이선스를 참조하십시오.

도구 다운로드