탐지 규칙은 Elastic Security에서 사용하는 규칙의 홈입니다. 이 리포지토리는 Elastic Security의 탐지 엔진에 대한 규칙의 개발, 유지 관리, 테스트, 검증 및 릴리스에 사용됩니다.
이 리포지토리는 Elastic의 블로그 게시물인 Elastic Security가 공개 탐지 규칙 리포지토리를 엽니다에서 처음 발표되었습니다. 추가 콘텐츠를 보려면 함께 제공되는 웹 세미나 Elastic Security: 탐지 규칙을 위한 공용 저장소 소개를 참조하세요.
탐지 규칙
목차
이 저장소 개요
시작하기
기여하는 방법
라이선스
질문? 문제가 있나요? 제안?
탐지 규칙에는 정적 규칙 파일 이상의 내용이 포함되어 있습니다. 이 저장소에는 Python의 단위 테스트 및 Kibana의 감지 엔진과 통합을 위한 코드도 포함되어 있습니다.
접는 사람 | 설명 |
---|---|
detection_rules/ | 규칙 구문 분석, 검증 및 패키징을 위한 Python 모듈 |
etc/ | ECS 및 Beats 스키마와 같은 기타 파일 |
hunting/ | 위협 헌팅 패키지 및 쿼리가 저장되는 루트 디렉터리 |
kibana/ | Kibana 및 탐지 엔진에 대한 API 호출을 처리하기 위한 Python 라이브러리 |
kql/ | Kibana 쿼리 언어를 구문 분석하고 검증하기 위한 Python 라이브러리 |
rta/ | 규칙 테스트에 사용되는 공격자 기술을 에뮬레이션하는 데 사용되는 Red Team Automation 코드 |
rules/ | 규칙이 저장되는 루트 디렉터리 |
rules_building_block/ | 빌딩 블록 규칙이 저장되는 루트 디렉터리 |
tests/ | 단위 테스트 규칙을 위한 Python 코드 |
.toml
파일을 수동으로 생성하여 규칙을 추가할 수 있지만 권장하지는 않습니다. 이 저장소는 규칙 생성 및 단위 테스트를 지원하는 Python 모듈로도 구성되어 있습니다. Python 3.12+가 있다고 가정하고 아래 명령을 실행하여 makefile을 사용하여 종속성을 설치합니다.
✗ makepython3.12 -m pip install --upgrade pip setuptools인덱스 검색: https://pypi.org/simple요구 사항이 이미 충족됨: /opt/homebrew/lib/python3.12/site-packages(24.0)의 pip 요구 사항이 이미 충족됨 : /opt/homebrew/lib/python3.12/site-packages의 설정 도구 (69.1.1)python3.12 -m venv ./env/Detection-rules-build./env/Detection-rules-build/bin/pip install --upgrade pip setuptools인덱스 검색: https://pypi.org/ simpleRequirement가 이미 충족됨: ./env/Detection-rules-build/lib/python3.12/site-packages의 pip (24.0) setuptools 수집 캐시된 setuptools-69.1.1-py3-none-any.whl.metadata 사용(6.2kB)캐시된 setuptools-69.1.1-py3-none-any.whl 사용(819kB)수집된 패키지 설치: setuptools성공 설치된 setuptools-69.1.1kql 및 kibana 패키지 설치......
또는 다음 명령을 사용하여 종속성을 설치합니다.
$ pip3 install ".[dev]" jsl 수집==0.2.4 jsl-0.2.4.tar.gz 다운로드(21 kB)jsonschema 수집==3.2.0 jsonschema-3.2.0-py2.py3-none- 다운로드 중 any.whl (56 kB) |████████████████████████████████| 56 kB 318 kB/s 요청 수집==2.22.0 요청 다운로드 중-2.22.0-py2.py3-none-any.whl (57 kB) |█████████████████ ███████████████| 57 kB 1.2 MB/s 수집 클릭==7.0 다운로드 중 Click-7.0-py2.py3-none-any.whl (81 kB) |█████████████████████ ███████████| 81KB 2.6MB/초...
참고: kibana
및 kql
패키지는 PyPI에서 사용할 수 없으며 lib
디렉터리에서 설치해야 합니다. hunting
패키지에는 pip3 install ".[hunting]
으로 설치할 선택적 종속성이 있습니다.
# 저장소에서 설치pip3 install git+https://github.com/elastic/Detection-rules.git#subdirectory=kibanapip3 install git+https://github.com/elastic/Detection-rules.git#subdirectory=kql# 또는 개발을 위해 로컬로pip3 설치 lib/kibana lib/kql
가상 환경을 사용하는 경우 가상 환경을 활성화해야 합니다. make
통해 설치하면 관련 가상 환경이 env/detection-rules-build/
에 생성됩니다. Python 3.12 환경을 사용하는 데 문제가 있는 경우 문제 해결 가이드의 관련 섹션을 참조하세요.
모든 것이 제대로 설치되었는지 확인하려면 --help
플래그를 사용하여 실행하세요.
$ python -m 감지_rules --helpUsage: 감지_규칙 [OPTIONS] COMMAND [ARGS]... 감지 규칙 저장소 명령. 옵션: -d, --debug / -n, --no-debug 오류 시 전체 예외 스택 추적을 인쇄합니다. -h, --help 이 메시지를 표시하고 종료합니다. 명령: create-rule 탐지 규칙을 생성합니다. dev 내부에서 개발 및 관리하기 위한 명령어 Elasticsearch와의 통합을 위한 명령어입니다. import-rules json, toml 또는 Kibana에서 규칙 가져오기 내보내기 규칙... kibana Kibana와 통합하기 위한 명령입니다. 대량 업데이트 eql 결과를 기반으로 여러 규칙을 업데이트합니다. Normalize-data Elasticsearch 데이터 타임스탬프를 정규화하고 정렬합니다. rule-search KQL 또는 EQL을 사용하여 일치하는 규칙을 찾습니다. test 모든 규칙에 대해 단위 테스트를 실행합니다. toml-lint 간단한 toml 형식으로 파일을 정리합니다. 유효성 검사 모든 규칙이 스키마에 대해 유효성을 검사하는지 확인합니다. verify-rule 규칙 디렉토리에 준비된 규칙이 ...에 대해 유효성을 검사하는지 확인합니다. view-rule 내부 규칙 또는 지정된 규칙 파일을 봅니다.
메모:
가상 환경을 사용하는 경우 위 명령을 실행하기 전에 반드시 활성화하세요.
Windows를 사용하는 경우 Python 버전에 따라 <venv_directory>Scriptspywin32_postinstall.py -install
실행해야 할 수도 있습니다.
기여 가이드에서는 탐지 규칙에 기여할 때 create-rule
및 test
명령을 사용하여 새 규칙을 생성하고 테스트하는 방법을 설명합니다.
고급 명령줄 인터페이스(CLI) 사용법에 대해서는 CLI 가이드를 참조하세요.
탐지 규칙에 대한 귀하의 기여를 환영합니다! 기여하기 전에 이 저장소, 디렉터리 구조, 규칙 생성에 대한 철학을 숙지하시기 바랍니다. 기여할 준비가 되면 기여 가이드를 읽고 감지 아이디어를 프로덕션 규칙으로 전환하고 테스트를 통해 검증하는 방법을 알아보세요.
규칙, 코드, RTA 등 이 리포지토리의 모든 항목은 Elastic License v2에 따라 라이선스가 부여됩니다. 이러한 규칙은 Elastic Security 애플리케이션 내의 탐지 엔진 컨텍스트에서 사용되도록 설계되었습니다. Elastic Cloud 관리형 서비스나 무료 기능 전체가 포함된 Elastic Stack 소프트웨어의 기본 배포판을 사용하고 계시다면, 처음 탐지 엔진으로 이동할 때 최신 규칙을 얻으실 수 있습니다.
때로는 MIT나 Apache 2.0과 같이 이미 라이선스가 있는 다른 저장소에서 규칙을 가져오고 싶을 수도 있습니다. 라이선스가 Elastic License v2에 따른 재라이선싱을 허용하는 한 이는 환영할 만한 일입니다. 우리는 해당 라이선스 공지를 NOTICE.txt
에 보관하고 다른 모든 규칙과 함께 Elastic License v2로 하위 라이선스를 유지합니다. 또한 기여자는 Elastic 리포지토리에 코드를 기여하기 전에 기여자 라이선스 계약에 서명해야 합니다.
탐지 엔진에 대해 더 알고 싶으십니까? Kibana의 개요를 확인하세요.
이 저장소에는 아직 출시되지 않은 새로운 규칙과 업데이트된 규칙이 포함되어 있습니다. 스택과 함께 릴리스된 최신 규칙 세트를 보려면 사전 구축된 규칙 참조를 확인하세요.
오탐지나 다른 유형의 버그를 보고하려면 먼저 GitHub 문제를 생성하고 기존 문제가 있는지 확인하세요.
탐지 규칙에 대한 도움이 필요하십니까? 보안 토론 포럼이나 Slack 작업 공간 내의 #security-Detection-rules 채널에 문제를 게시하거나 문의하세요.