本文の内容は、2021年6月9日にEric Lugoが投稿したブログ(https://sysdig.com/blog/falco-rule-tuning)を元に日本語に翻訳・再構成した内容となっております。
先日、Sysdig SecureのFalcoルール自動チューニング機能をリリースしました。
アウトオブボックスのセキュリティルールは諸刃の剣です。すぐに使い始めることができますが、その一方で、アプリケーションに合わせてルールをカスタマイズできるようにするには、技術、構成、構文を学ぶために多くの作業時間が必要になります。
Falcoのデフォルトのセキュリティルールも同様です。Sysdig Secureを使用する際のメンテナンスを削減しつつ、Falcoルールのカスタマイズを容易にするために、Falcoルールチューナーをリリースしました。
この機能が、ノイズを減らし、アラートの疲労を回避しながら、チームがセキュリティに関するより良い洞察を得るためにどのように役立つかをご紹介します。
ノイズ vs. シグナル
さて、あなたはセキュリティツールを使い始め、デフォルトのセキュリティポリシーをすべて有効にしました。よくやりました! これであなたの環境は安全です😎。しかし、すぐに通知が殺到し、1つ1つ確認して、それらが実際にセキュリティ上の脅威であるかどうかをチェックしなければなりません🚨。これでいいんだ、と自分に言い聞かせます。”私は安全だ “と。
結局のところ、デフォルトのセキュリティポリシーは、どんなシナリオにも適用できるように、広範囲のセキュリティイベントを検出するための広い範囲を持つ必要があります。しかし、あまりにも範囲が広いため、多くのアプリケーションやツール、あるいは通常の日々の活動がセキュリティイベントにつながる可能性があります。
そのため、それぞれのイベントをチェックし、さまざまな名前、属性、環境を調べなければならず、ノイズを切り分けるのが難しくなります。誤検知が多すぎると、実際に必要な問題から目をそらすことになり、重要なイベントを見逃してしまう危険性があります。
Sysdigではこの問題を認識しています。Sysdig Secureを有効にした直後は、何百ものセキュリティイベントが発生する可能性があるほど、アウトオブボックスのルールセットは多岐にわたります。
この問題に取り組むための最初のステップは、素晴らしいFalcoルールエディターでした。
管理者は、Falcoのルール言語をすぐに覚えて、いくつかのルールを調整することができるかもしれませんが、これはまだ手動のステップです。そのため、より多くのアプリケーションがオンライン化されると、新しいイベントが頻繁に発生します。我々の管理者は最終的に圧倒され、イベントを無視し始めたり、最悪の場合は通知をオフにしてしまうかもしれません。
人工知能ユニコーンの約束の地
コンテナやマイクロサービスの良い点は、特定のタスクに集中しているため、不審な行動があれば明確に逸脱し、容易に特定できることです。そして、機械学習はその部分でまさに光り輝いています。機械学習によって、セキュリティツールがアウトオブボックスで使えるようになるという約束の地に近づくことができます。そのため、多くの人がセキュリティ通知のノイズ問題を複雑な機械学習アルゴリズムで解決しようとしています。残念ながら、セキュリティ分野ではまだそこまで至っていませんが、これは正しい方向への一歩だと考えています。
この理想を信じて、私たちはずっと前に機械学習によるイメージプロファイリングを導入しました。そしてそれは、コンテナイメージのセキュリティをさらに簡略化した素晴らしい機能です。
しかし、Sysdigでは、月を目指しているわけではありません。私たちは星を目指しています。
同じような使い勝手の良さを、コンテナイメージだけでなく、クラウドインフラ全体に広げていきたいのです。
Falcoルールチューナーの出番
2020年後半にSysdig Cloud Connectorを発表して以来、Falcoルールを使って、コンテナランタイムとクラウドインフラの両方を保護することができます。そこで私たちは、両方の環境でセキュリティイベントをチューニングするためのアプローチに取り組んできました。Falcoルールチューナーは、セキュリティチームに、デフォルトまたはカスタムでノイジーなポリシーを自動的にチューニングする仕組みを提供します。
管理者がこの機能をオンにすると、推奨される「例外」のセットが1日1回以上追加されます。その後、セキュリティチームは、提案された例外を恒久的に維持するか削除するかを選択できます。
Falcoルールチューナーについて、注目したい点が2つあります。
まず、ルールの自動分析です。そして、それが毎日少なくとも1回は行われていることを再確認しておきます。
第二に、これらの例外がどのようにモデル化されたかを誇りに思っています。
この機能をリリースする前は、ルールエディターで作成した例外は、ルールの条件に付加されていました。そのために、ルールの最後にand not macro_nameを使用していました。これは基本的に、無視したいオブジェクトのリストにマッチする条件に過ぎませんでした。例えば、Jenkins のジョブを実行する際に、docker デーモンをマウントするコンテナを無視したい場合があります。
- macro: docker_proc condition: proc.name="docker" - macro: nginx_proc condition: proc.name="nginx" - rule: Always True condition: always_true and not docker_proc and not nginx_proc
私たちは、Falcoの中で例外を第一級市民にしたいと考えました。そこで、今回のチューニング作業の一環として、アップストリームのOSSであるFalcoプロジェクトに例外フィールドをプッシュしました。これまでのルールは、今では:
- rule: Always True condition: always_true exceptions: - name: docker_proc fields: proc.name comps: in values: [docker, nginx]
このようにして、Falcoコミュニティ全体が私たちの新機能の一部の恩恵を受けることができます。
まとめ
ノイジーなポリシーは、セキュリティにとって問題です。アラート疲弊を起こし、重要なセキュリティイベントを見逃してしまうことがあります。手動でポリシーを調整するのは時間のかかる作業であり、ワークロードが一定以上に大きくなると、実行不可能な方法となります。
自動化や機械学習のアプローチは、セキュリティツールがアウトオブボックスで使えるようになるという約束の地に近づきます。しかし、最終的な判断を下すためには、やはり人間の手が必要です。
新しく導入されたFalcoルールチューナーは、ノイズの多いポリシーを自動的に識別し、それを簡単にチューニングするボタンを提供します。
最後に、この新機能には、Falcoコミュニティの誰もが利用できるFalcoルール構文のアップグレードが付いています。
Falcoについてもっと知りたい方は、こちらをご覧ください:
- Falco.orgで始める
- GitHubでFalcoプロジェクトをチェックしてください
- Falco コミュニティに参加する。
- Falco Slackでメンテナと交流する。
- ツイッターで @falco_org をフォローする。
Sysdig Secureでは、他のオープンソースプロジェクトとともに、アウトオブボックスのルールでFalcoを拡張し、Kubernetesのセキュリティとの連携や管理をさらに容易にしています。30日間の無料トライアルに登録して、ご自身の目で確かめてください!