セキュリティ
osqueryのための本番環境対応の検出・対応クエリ
Production-ready detection and response queries for osquery (github.com)
要約
このリポジトリは、検出およびインシデント対応パイプラインの一部として使用されることを目的とした、250以上の本番環境対応osqueryクエリを提供します。これらのクエリは、通常の期待される動作ではゼロ行を返すように設計されており、異常が検出された場合にアラートを生成するように設定できます。現在は主にPOSIXプラットフォーム(Linux & macOS)向けですが、他のプラットフォームへの対応も歓迎しています。
全文翻訳
osquery-defense-kit osqueryクエリは、検出とインシデント対応のためのもので、250以上の本番環境対応クエリを含んでいます。ODK(osquery-defense-kit)のユニークな点は、クエリが本番環境の検出・対応パイプラインの一部として使用されるように設計されていることです。検出クエリは、通常の期待される動作中にゼロ行を返すように構成されており、行が返されたときにアラートを生成するように設定できます。現時点では、これらのクエリは主にPOSIXプラットフォーム(Linux & macOS)向けに設計されています。他のプラットフォームでのサポートを改善するためのプルリクエストは歓迎します。
要件
osquery v5.7.0 以上
macOS または Linux
ローカル開発を行う場合は、osqtool のために Go v1.20+ も必要です。
使用方法
ローカル検出
make detect を実行して、ポイントインタイム検出を行います。これは、履歴イベントにアクセスできないため、本番環境のインストールほど多くのものを検出できません。
本番環境検出
リリースされたクエリパックを便利な場所にダウンロードし、osquery.conf ファイルの packs スタンザからこれらのファイルを参照してください。
IR のためのローカルデータ収集
make collect を実行します。これは、特に前後分析に役立ちます。
ローカルパック生成
make packs を実行します。より詳細な制御のために、デフォルトの間隔をオーバーライドしたり、チェックを除外したりするために、osqtool を直接呼び出すことができます。
ローカル検証テスト
make verify を実行します。
ファイル構成
detection/ - アラート生成用に調整された脅威検出クエリ。
policy/ - アラート生成用に調整されたセキュリティポリシークエリ。
incident_response/ - 可能性のある脅威に対応するためのデータ収集。定期的な証拠収集用に調整されています。
検出クエリは、MITRE ATT&CK戦術カテゴリによってさらに分割されます。リリース時には、クエリはosqueryクエリパック形式でパックアップされます。いつでも独自のパックを生成する方法については、ローカルパック生成を参照してください。
ケーススタディ
Linux: Shikitega (2022年9月)
https://cybersecurity.att.com/blogs/labs-research/shikitega-new-stealthy-malware-targeting-linux
これらのクエリに基づいてアラートを発した可能性のあるステージのリストの一部を以下に示します。
初期ドロッパー実行、検出元: execution/tiny-executable-events.sql, execution/tiny-executable.sql
ネクストステージドロッパー実行、検出元: execution/tiny-executable-events.sql, execution/tiny-executable.sql, execution/unexpected-shell-parents.sql
エスカレーション準備、検出元: execution/sketchy-fetchers.sql, execution/sketchy-fetcher-events.sql, c2/unexpected-talkers-linux.sql, c2/exotic-command-events.sql, c2/exotic-cmdline.sql
エスカレーションツール実行、検出元: execution/unexpected-executable-permissions.sql, execution/unexpected-executable-directory-linux.sql, execution/unexpected-tmp-executables.sql, c2/exotic-command-events.sql, c2/exotic-cmdline.sql, initial_access/unexpected-shell-parents.sql
権限昇格、検出元: privesc/unexpected-setxid-process.sql, privesc/unexpected-privilege-escalation.sql, privesc/events/unexpected-privilege-escalation-events.sql, evasion/name_path_mismatch.sql
永続化、検出元: persistence/unexpected-cron-entries.sql, execution/unexpected-executable-directory-linux.sql
macOS: CloudMensis (2022年4月)
https://www.welivesecurity.com/2022/07/19/i-see-what-you-did-there-look-cloudmensis-macos-spyware/
特定のクエリによって検出された可能性のあるステージのリストの一部を以下に示します。
初期ドロッパー実行、検出元: c2/unexpected-talkers-macos.sql
セカンドステージ実行、検出元: execution/unexpected-executable-directory-macos.sql, persistence/unexpected-launch-daemon-macos.sql, execution/unexpected-mounts.sql
TCCバイパス、検出元: evasion/unexpected-env-values.sql
スパイエージェント実行、検出元: c2/unexpected-talkers-macos.sql, execution/exotic-command-events.sql, execution/unexpected-executable-directory-macos.sql
ポリシー
貢献
ヘルプ募集!
誤検知を容易に対処できる限り、新しいクエリをサポートします。ユーザーは、人気のあるよく知られたソフトウェアパッケージの誤検知例外を提出できますが、その動作の証拠を提供するよう求められる場合があります。
プラットフォームサポート
当初はLinuxとmacOSに焦点を当てていましたが、osqueryでサポートされている任意のプラットフォームへのクエリの追加をサポートしています。特に、Windowsサポートについて質問を受けています。ChainguardはWindowsマシンを持っていませんが、有用と思われるWindowsクエリがあり、私たちの哲学に合致する場合は、喜んで受け入れます!
誤検知
検出クエリから実際の誤検知を除外するように努めています。誤検知の管理は言うは易く行うは難しです。プルリクエストを歓迎します!
CPUオーバーヘッド
全体として、クエリは展開されたシステムで1日あたりの壁時計時間の2%を超えて消費してはなりません。
間隔
展開された間隔は、パックのアセンブリに使用するosqtoolがサポートするタグに基づいて自動的に決定されます。