
프로덕션 준비된 osquery용 탐지 및 대응 쿼리
탐지 및 사고 대응을 위한 osquery 쿼리 모음으로, 250개 이상의 프로덕션 준비 쿼리를 포함합니다.

ODK(osquery-defense-kit)는 쿼리가 프로덕션 탐지 및 대응 파이프라인의 일부로 사용되도록 설계되었다는 점에서 독특합니다. 탐지 쿼리는 정상적인 예상 동작 중에는 0행을 반환하도록 구성되어, 행이 반환될 때 알림이 생성되도록 설정할 수 있습니다.
현재 이러한 쿼리는 주로 POSIX 플랫폼(Linux 및 macOS)에서 실행되도록 설계되었습니다. 다른 플랫폼에 대한 지원을 개선하는 풀 리퀘스트는 언제든지 환영합니다.
특정 시점 탐지를 위해 make detect를 실행하세요. 프로덕션 설치만큼 많은 것을 탐지하지는 못합니다. 과거 이벤트에 접근할 수 없기 때문입니다.
릴리스된 쿼리 팩을 편리한 위치에 다운로드하고, osquery.conf 파일의 packs 스탠자에서 해당 파일을 가리키세요.
make collect를 실행하세요. 이는 특히 사전/사후 분석에 유용합니다.
make packs를 실행하세요. 더 세밀한 제어가 필요하면 osqtool을 직접 호출하여 기본 간격을 재정의하거나 검사를 제외할 수 있습니다.
make verify를 실행하세요.
detection/ - 알림 생성에 맞게 조정된 위협 탐지 쿼리.policy/ - 알림 생성에 맞게 조정된 보안 정책 쿼리.incident_response/ - 가능한 위협에 대응하는 데 도움이 되는 데이터 수집. 주기적인 증거 수집에 맞게 조정됨.탐지 쿼리는 MITRE ATT&CK 전술 범주별로 더 세분화됩니다.
릴리스 시점에 쿼리는 osquery query pack 형식으로 패키징됩니다. 언제든지 자체 팩을 생성하는 방법은 로컬 팩 생성을 참조하세요.
https://cybersecurity.att.com/blogs/labs-research/shikitega-new-stealthy-malware-targeting-linux
다음은 이러한 쿼리를 기반으로 어떤 쿼리가 알림을 발생시켰을지에 대한 일부 목록입니다.
execution/tiny-executable-events.sqlexecution/tiny-executable.sqlexecution/tiny-executable-events.sqlexecution/tiny-executable.sqlexecution/unexpected-shell-parents.sqlexecution/sketchy-fetchers.sqlexecution/sketchy-fetcher-events.sqlc2/unexpected-talkers-linux.sqlc2/exotic-command-events.sqlc2/exotic-cmdline.sqlexecution/unexpected-executable-permissions.sqlhttps://www.welivesecurity.com/2022/07/19/i-see-what-you-did-there-look-cloudmensis-macos-spyware/
다음은 특정 쿼리로 감지되었을 단계에 대한 일부 목록입니다.
초기 드로퍼 실행, 감지 항목:
c2/unexpected-talkers-macos.sql2단계 실행, 감지 항목:
execution/unexpected-executable-directory-macos.sqlpersistence/unexpected-launch-daemon-macos.sqlexecution/unexpected-mounts.sqlTCC 우회, 감지 항목:
evasion/unexpected-env-values.sql스파이 에이전트 실행, 감지 항목:
c2/unexpected-talkers-macos.sqlexecution/exotic-command-events.sqlexecution/unexpected-executable-directory-macos.sql도움을 환영합니다! 오탐(false positive)에 쉽게 대응할 수 있도록 업데이트될 수 있는 새 쿼리는 모두 지원합니다.
사용자는 널리 알려진 소프트웨어 패키지에 대한 오탐 예외를 제출할 수 있지만, 해당 동작에 대한 증거를 요청받을 수 있습니다.
원래 Linux와 macOS에 중점을 두었지만, osquery가 지원하는 모든 플랫폼에서의 쿼리 추가를 환영합니다.
특히 Windows 지원에 대한 문의를 받았습니다: Chainguard에는 Windows 머신이 없지만, 유용하고 우리의 철학에 부합하는 Windows 쿼리가 있다면 기꺼이 수용하겠습니다!
우리는 detection 쿼리에서 실제 오탐을 배제하기 위해 노력합니다.
오탐 관리는 말처럼 쉽지 않습니다. 풀 리퀘스트를 환영합니다!
집계 기준으로 쿼리는 배포 시스템에서 하루 동안 벽시계 시간의 2%를 초과해서는 안 됩니다.
배포 간격은 팩 조립에 사용하는 osqtool이 지원하는 태그를 기반으로 자동 결정됩니다.
execution/unexpected-executable-directory-linux.sqlexecution/unexpected-tmp-executables.sqlc2/exotic-command-events.sqlc2/exotic-cmdline.sqlinitial_access/unexpected-shell-parents.sqlevasion/missing-from-disk-linux.sqlprivesc/unexpected-setxid-process.sqlprivesc/unexpected-privilege-escalation.sqlprivesc/events/unexpected-privilege-escalation-events.sqlevasion/name_path_mismatch.sqlpersistence/unexpected-cron-entries.sqlexecution/unexpected-executable-directory-linux.sql