カスタム falco ルールをテストするために、minikube を使用してローカル テスト環境を作成しました。
目標は、名前空間と Pod 名でキーワードを検索し、それらに Info 優先度を設定して、Kibana でフィルター処理できるようにすることです。
以下は、私が作成したカスタム マクロとルールです。
- macro: ns_contains_whitelist_terms
condition: k8s.ns.name = monitoring or k8s.ns.name = jenkins
- macro: pod_name_contains_whitelist_terms
condition: >
(k8s.pod.name startswith meseeks or
k8s.pod.name startswith jenkins or
k8s.pod.name startswith wazuh)
- rule: priority_whitelist_ns_alert
desc: add an Info priority to the monitoring and jenkins namespaces
condition: ns_contains_whitelist_terms
output: "Namespace is jenkins or monitoring findme1"
priority: INFO
tag: whitelist
- rule: priority_whitelist_pod_name_alert
desc: add an Info priority to pods that start with wazuh, jenkins or meseeks
condition: pod_name_contains_whitelist_terms
output: "Pod name starts with wazuh, jenkins or meseeks findme2"
priority: INFO
tag: whitelist
ルールをテストするために名前空間とポッドを作成しましたが、期待どおりに起動しています (たとえば、falco の起動時、シェルのスポーン時、ポッドとの対話時など)。
ただし、アラートは繰り返し発生し、一度に数百回発生することもあるため、ログを grep したときの出力はこのサンプルのようになります。
好奇心から、さまざまなイベントが発生したときのさまざまなルール アラートの行数を調べたところ、同じではないことがわかりました。以下の表を参照してください。
イベント | 名前空間ルールが実行されました #: | Pod 名ルールが起動されました #: |
---|---|---|
起動 | 6 | 4 |
スポーンシェル | 106 | 55 |
適切な更新 | 943 | 23 |
wgetをインストール | 84 | 26 |
これらのルールが何度もトリガーされる理由として、私が考えることができる唯一の 2 つの理由は次のとおりです。
- ルールを間違って書いた、または
- バックグラウンドで (私が直接トリガーしたものではない) イベントが発生し、ルールが繰り返し起動されます。
2の可能性が高いと思いますが、私が書いたルールが問題ないように見えるか、他の洞察を持っていることを確認できる人に感謝します.