
eBPF를 사용하여 Linux 커널 내부의 Sigma 규칙 엔진. 방지 기능에 초점을 맞춤.
🛡️ owLSM은 Linux를 위한 방지 및 탐지의 최고 표준이 되고자 합니다 🛡️
owLSM은 예방에 초점을 맞춘 상태 저장 Sigma 규칙 엔진을 구현하는 eBPF LSM 에이전트입니다.
프로젝트 소개: owLSM은 세 가지 주요 사항에 중점을 둡니다:
1) eBPF LSM을 통해 구현된 Sigma 규칙 엔진을 사용한 방지 기능.
2) 상태 저장 방지 기능을 위한 eBPF 프로브 간 데이터 상관 관계.
3) 각 이벤트에 보안 전문가가 필요로 하는 모든 컨텍스트가 포함된 보안 중심의 시스템 모니터링.
대상: Linux 시스템을 방어하는 팀, Linux/클라우드 보안 솔루션을 제공하는 회사, 복잡한 eBPF 솔루션 구현 예제를 찾는 개발자 또는 에이전트.
사용 사례: 보안 기업 Cybereason과 LevelBlue의 고객.
프로젝트를 만든 이유: Falco, Tetragon, KubeArmor와 같은 프로젝트를 수년간 사용한 후에도 우리는 계속해서 동일한 격차를 경험했습니다. 이러한 솔루션은 방지(시행) 기능이 거의 또는 전혀 없습니다. 시행 정책을 제공하는 솔루션조차도 부분 문자열 일치, 정규식 일치, 전체 프로세스 cmd 일치, 악성 프로세스의 부모 종료와 같은 기본 기능이 부족합니다.
우리는 완전히 다른 접근 방식을 취하기로 결정했습니다:
1) 표준 Sigma 규칙 구조를 사용하고 가능한 많은 Sigma 규칙 기능을 지원합니다(계속 추가 중).
2) 현재 eBPF LSM 프로젝트의 핵심 한계를 해결합니다: 상태 비저장입니다. 시행 규칙에서 사용 가능한 거의 모든 데이터는 현재 후크에서만 제공됩니다.
우리는 여러 연속 후크 포인트를 사용하고 그 사이의 데이터를 상호 연관시키는 상태 저장 eBPF 프로그램을 만들었습니다. 따라서 방지 결정 시점에 사용자에게 필요한 모든 데이터가 제공됩니다. 우리는 이 상태 저장 접근 방식을 매우 발전시켜, 예를 들어 쓰기 이벤트를 모니터링할 때 쓰기를 시작한 셸 명령에 기반하여 방지 규칙을 지정할 수 있습니다.
저희에게 ⭐를 주셔서 세상을 보호하고 성장시키는 데 도움을 주세요.
클라우드 지원은 향후 제공될 예정입니다
# Pull the Docker image
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Start the build container
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Build owlsm and rules_generator binaries
make -j$(nproc)
# Build unit tests
make test -j$(nproc)
# Exit container, can't run owlsm or the tests inside the docker
exit
도커 외부에서 실행
cd build/owlsm/bin
# run without config
sudo ./owlsm
# "-c" run with config
sudo ./owlsm -c /config/path.json
# "-e" excluded pid's (usually we want to exclude parent processes)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" protected pid's. These pid's are protected by the anti-tamepring
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# run owlsm and pass config via stdin (when you don't want to save your config file on the disk)
# owLSM expects to recive the config in under 10 seconds.
sudo ./owlsm --stdin
참고: owLSM 시작은 시스템에 따라 10~50초가 소요됩니다. 이는 eBPF 검증기가 모든 프로그램을 커널에 로드하기 전에 검증하는 과정입니다. 완료되면 owLSM이 완전히 활성화됩니다.
cd build/unit_tests/bin
# Run the unit tests
sudo ./unit_tests
owLSM을 실행하기 전에 시스템이 요구 사항을 충족하는지 확인하세요:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
자동화 테스트 실행 방법은 src/Tests/Automation/README.md를 참조하세요.
owLSM 프로젝트에 참여하려면 디스코드를 방문하세요.
질문이 있으시면 디스코드에 문의하거나 관련 이슈를 열어주세요.
📖 문서를 방문하여 프로젝트 사용 방법, 규칙 작성, 아키텍처 이해 등 필요한 모든 정보를 확인하세요.
owLSM에 기여하고자 하는 여러분을 환영합니다!
규칙, 관례 및 많은 도움이 될 멋진 AI 도구와 에이전트에 대해 알아보려면 CONTRIBUTING.md를 확인하세요!
owLSM은 GNU General Public License v2.0 (GPL-2.0) 하에 라이선스가 부여됩니다.
이 프로젝트에는 각각 자체 라이선스(모두 GPL 호환)가 있는 여러 타사 라이브러리가 포함되어 있습니다. 자세한 내용은 THIRD_PARTY_LICENSES를 참조하세요.