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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
opencanary — 일반적인 네트워크 서비스를 에뮬레이션하여 침해 이후의 공격자 활동을 탐지하는 경량 허니팟으로, 확장 가능한 프로토콜 모듈과 구성 가능한 알림 기능을 제공합니다. | Kitploit
도구/GitHubGitHub/thinkst/opencanary
Defensive ToolsNetwork SecurityThreat IntelligenceIntrusion DetectionIncident ResponseLog Analysis
GitHubthinkst/opencanary

opencanary

일반적인 네트워크 서비스를 에뮬레이션하여 침해 이후의 공격자 활동을 탐지하는 경량 허니팟으로, 확장 가능한 프로토콜 모듈과 구성 가능한 알림 기능을 제공합니다.

저장소 보기
3.0k40910일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Thinkst Canary의 OpenCanary

OpenCanary는 다중 프로토콜 네트워크 허니팟입니다. 주요 사용 사례는 비공개 네트워크를 침투한 해커를 잡는 것입니다. 리소스 요구 사항이 매우 낮으며 조정, 수정, 확장이 가능합니다.

OpenCanary Tests Docker build Publish to PyPI

개요

OpenCanary는 데몬으로 실행되며 여러 일반적인 네트워크 프로토콜을 구현합니다. 공격자가 네트워크를 침투하여 허니팟과 상호작용하면 OpenCanary는 다양한 메커니즘을 통해 알림을 보냅니다.

OpenCanary는 Python으로 구현되었으므로 핵심 허니팟은 크로스 플랫폼입니다. 그러나 특정 기능은 특정 OS가 필요합니다. Linux에서 실행하면 가장 많은 옵션을 얻을 수 있습니다. 리소스 요구 사항이 매우 낮아서, 예를 들어 Raspberry Pi나 최소 리소스의 VM에서도 무리 없이 배포할 수 있습니다.

이 README는 Ubuntu Linux와 MacOS에서 OpenCanary를 설치하고 구성하는 방법을 설명합니다.

OpenCanary는 당사의 상용 Thinkst Canary 허니팟의 오픈 소스 버전입니다.

목차

  • 사전 요구 사항
  • 기능
  • 설치
    • Ubuntu에 설치
    • macOS에 설치
    • Git으로 설치
    • Docker로 설치
  • OpenCanary 구성
    • 초기 구성 파일 만들기
    • 프로토콜 모듈 및 알림 활성화
    • 선택 모듈
      • SNMP
      • Portscan
      • Samba 설정
  • OpenCanary 실행
    • Linux 또는 macOS에서 직접 실행
    • docker compose로 실행
    • Docker로 실행
  • 문서
  • 프로젝트 참여
    • 기여
    • 보안 취약점 신고
    • 버그 신고
    • 기능 요청
    • 행동 강령

사전 요구 사항

  • AMD64: Python 3.10+
  • ARM64: Python 3.10+
  • 선택 사항 SNMP에는 Python 라이브러리 Scapy가 필요합니다.
  • 선택 사항 Samba 모듈에는 작동하는 Samba 설치가 필요합니다.
  • 선택 사항 Portscan은 iptables(nftables 아님)를 사용하며 Linux 기반 운영 체제에서만 지원됩니다.

기능

  • 공격자가 상호작용할 수 있는 다양한 네트워크 접근 가능 서비스를 모방합니다.
  • 잠재적 위협이 감지되는 즉시 다양한 알림을 수신하며, 위협 출처 IP 주소와 침해가 발생했을 수 있는 위치를 강조합니다.

설치

OpenCanary 설치는 기본적으로 Python 환경을 준비한 다음 OpenCanary Python 패키지(및 선택적 추가 패키지)를 설치하는 것으로 구성됩니다.

uv가 설치되어 있으면 가상 환경 생성 및 패키지 설치에 사용할 수 있습니다. 설치되어 있지 않으면 아래의 표준 python/pip 흐름이 계속 작동합니다.

Ubuntu에 설치

Ubuntu 22.04 LTS 또는 24.04 LTS에 설치:

root@kitploit:~
$ sudo apt-get install python3-dev python3-pip python3-virtualenv python3-venv python3-scapy libssl-dev libpcap-dev
$ virtualenv env/
$ . env/bin/activate
$ pip install opencanary

선택 사항: uv 사용 시 동일한 작업:

root@kitploit:~
$ uv venv env
$ . env/bin/activate
$ uv pip install opencanary

선택적 추가 패키지(Windows 파일 공유 모듈과 SNMP 모듈을 사용하려는 경우):

root@kitploit:~
$ sudo apt install samba # if you plan to use the Windows File Share module
$ pip install scapy pcapy-ng # if you plan to use the SNMP module

macOS에 설치

먼저 새 Python 가상 환경을 만들고 활성화합니다:

root@kitploit:~
$ virtualenv env/
$ . env/bin/activate

선택 사항: uv 사용 시 동일한 작업:

root@kitploit:~
$ uv venv env
$ . env/bin/activate

Macports 사용자는 다음을 실행해야 합니다:

root@kitploit:~
$ sudo port install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography

또는 Homebrew x86 사용자는 다음을 실행합니다:

root@kitploit:~
$ brew install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography

Homebrew M1 사용자는 다음을 실행합니다:

root@kitploit:~
$ brew install openssl
$ env ARCHFLAGS="-arch arm64" LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib" CFLAGS="-I/opt/homebrew/opt/[email protected]/include" pip install cryptography

(위의 컴파일 단계는 여러 OpenSSL 버전이 존재할 수 있어 Python 라이브러리를 혼란시킬 수 있으므로 필요합니다.)

이제 설치를 평소와 같이 실행할 수 있습니다:

root@kitploit:~
$ pip install opencanary
$ pip install scapy pcapy-ng # optional

uv가 설치된 경우 동일한 명령은 다음과 같습니다:

root@kitploit:~
$ uv pip install opencanary
$ uv pip install scapy pcapy-ng # optional

Windows 파일 공유(smb) 모듈은 macOS에서 사용할 수 없습니다.

Git으로 설치

pip를 실행하는 대신 소스에서 설치하려면 다음을 수행하세요:

root@kitploit:~
$ git clone https://github.com/thinkst/opencanary
$ cd opencanary
$ python setup.py sdist
$ cd dist
$ pip install opencanary-<version>.tar.gz

uv가 설치된 경우 마지막 설치 단계를 다음으로 대체할 수 있습니다:

root@kitploit:~
$ uv pip install opencanary-<version>.tar.gz

pkgx로 사용

OpenCanary는 pkgx를 통해 패키징되므로 pkgx가 설치되어 있으면 설치가 필요 없으며, opencanaryd 명령 앞에 pkgx만 붙이면 됩니다. 최신 sudo 구현의 환경 변수 보호로 인해 전체 명령을 root로 실행하거나 sudo -E를 통해 실행해야 합니다.

root@kitploit:~
$ pkgx opencanaryd --version

Docker로 설치

OpenCanary Docker 이미지는 Docker Hub에서 호스팅됩니다. 정확한 네트워크 정보를 위해 host 네트워크 엔진이 필요하므로 이러한 이미지는 Linux Docker 호스트에서만 유용합니다.

OpenCanary 구성

초기 구성 파일 만들기

OpenCanary가 시작되면 다음 위치에서 구성 파일을 찾으며 첫 번째 구성이 발견되면 중지합니다:

  1. /etc/opencanaryd/opencanary.conf
  2. ~/.opencanary.conf (즉, 사용자의 홈 디렉터리, 보통 root이므로 /root/.opencanary.conf)
  3. ./opencanary.conf (즉, OpenCanary가 설치된 디렉터리)

초기 구성을 만들려면 root로 실행하십시오(sudo 비밀번호를 묻는 메시지가 표시될 수 있음):

root@kitploit:~
$ opencanaryd --copyconfig
[*] A sample config file is ready /etc/opencanaryd/opencanary.conf

[*] Edit your configuration, then launch with "opencanaryd --start --uid=nobody --gid=nogroup"

이렇게 하면 경로와 파일 /etc/opencanaryd/opencanary.conf가 생성됩니다. 이제 구성 파일을 편집하여 활성화할 서비스와 로깅 옵션을 결정해야 합니다.

[!WARNING] 구성 파일에는 로깅 구성을 위한 Python 객체를 포함한 복잡한 데이터가 포함됩니다. 구성은 프로세스가 root 권한으로 실행되는 동안 읽힙니다. 파일을 root 소유로 만들고 root만 쓸 수 있도록 권장합니다. 일반 사용자가 파일을 쓸 수 있으면 root로 권한을 상승시킬 수 있습니다.

프로토콜 모듈 및 알림 활성화

구성은 JSON 구성 파일을 통해 수행됩니다. 파일을 편집하고 만족하면 저장하고 종료합니다.

선택 모듈

SNMP

snmp 모듈은 Scapy가 설치된 경우에만 사용할 수 있습니다. 위의 SNMP 설치 단계를 참조하세요.

Portscan

portscan 모듈은 iptables 규칙을 수정하므로 Linux 호스트에서만 사용할 수 있습니다.

Portscan 서비스의 경우 portscan.ignore_localhost 설정을 추가했습니다. 이 설정은 OpenCanary portscan 서비스가 localhost IP(127.0.0.1)에서 시작된 포트 스캔을 무시(알림하지 않음)함을 의미합니다. 이 설정은 기본적으로 false입니다.

Samba 설정

Windows 파일 공유 모듈(smb)에는 Samba 설치가 필요합니다. Wiki에서 단계별 가이드를 참조하세요.

OpenCanary 실행

OpenCanary는 Linux 또는 macOS 호스트에서 직접 실행하거나 Docker 컨테이너를 통해 실행할 수 있습니다.

Linux 또는 macOS에서 직접 실행

다음을 실행하여 OpenCanary를 시작합니다:

root@kitploit:~
$ . env/bin/activate
$ opencanaryd --start --uid=nobody --gid=nogroup

uid 및 gid 플래그를 사용하면 OpenCanary는 포트에 바인딩한 후 root 권한을 포기합니다. 이를 다른 낮은 권한의 사용자/그룹으로 변경하거나 생략하여 root 권한으로 계속 실행할 수 있습니다.

pkgx로 실행

다음을 실행하여 OpenCanary를 시작합니다:

root@kitploit:~
$ sudo -E pkgx opencanaryd --start --uid=nobody --gid=nogroup

uid 및 gid 플래그를 사용하면 OpenCanary는 포트에 바인딩한 후 root 권한을 포기합니다. 이를 다른 낮은 권한의 사용자/그룹으로 변경하거나 생략하여 root 권한으로 계속 실행할 수 있습니다.

docker compose로 실행

이 방법을 사용하려면 Docker와 Docker Compose가 설치되어 있어야 합니다.

참고 portscan 모듈은 Docker화된 OpenCanary에서 자동으로 비활성화됩니다.

  1. data/.opencanary.conf 파일을 편집하여 실행할 서비스를 활성화, 비활성화 또는 사용자 지정합니다.
  2. 구성 파일에서 활성화한 서비스에 따라 docker-compose.yml 파일의 ports 섹션을 편집하여 원하는 포트를 활성화/비활성화합니다.
  3. 컨테이너를 실행합니다.
    root@kitploit:~
    docker compose up latest
    

로그를 보려면 docker compose logs latest를 실행하세요.

컨테이너를 중지하려면 docker compose down을 실행하세요.

docker compose를 사용하여 자신만의 Docker OpenCanary를 빌드하려면 wiki를 방문하세요.

Docker로 실행

Docker화된 OpenCanary에 대한 모든 내용은 전용 Docker wiki를 참조하세요.

Ansible로 실행

Ansible OpenCanary 역할에 대해서는 포크된 저장소 여기를 참조하세요.

문서

  • Wiki에는 FAQ가 있습니다.
  • 추가 문서는 공식 사이트에서 확인할 수 있습니다.

프로젝트 참여

기여

이 프로젝트에 대한 PR을 환영합니다. 풀 리퀘스트를 제출하기 전에 행동 강령 및 기여 문서를 읽어 주세요.

최소한 PR을 제출하기 전에 pre-commit을 실행해야 합니다. OpenCanary가 설치된 동일한 Python 환경에서 설치하고 실행하세요:

root@kitploit:~
$ pip install pre-commit
$ pre-commit install
# Do work
$ git add file
$ git commit
# If pre-commit generated errors, then run "git add ... && git commit" again

보안 취약점 신고

보안 취약점을 신고하는 방법에 대한 자세한 내용은 보안 정책을 참조하세요.

버그 신고

제공된 템플릿을 사용하여 Github에 버그 신고를 등록해 주세요.

기능 요청

기능 요청은 여기에서 추적됩니다.

행동 강령

이 프로젝트와 이에 참여하는 모든 사람은 행동 강령의 적용을 받습니다. 참여함으로써 이 강령을 준수할 것이 기대됩니다. 허용되지 않는 행동은 [email protected]으로 신고해 주세요.

도구 다운로드