多くの組織は、Linuxホスト、コンテナ、Kubernetes環境にわたるランタイムのクラウドセキュリティにおける主要ソリューションとしてFalcoに依存しています。しかし、同じチームでも、これまでFalcoをWebアプリケーションセキュリティに活用することはできませんでした。
そのため、Sysdig Open Source CommunityとTK Shimizuは、Falcoya — オープンソースのセキュリティエコシステムに新たに加わった存在で、Falcoの機能を、重要でありながらこれまで十分にカバーされてこなかった領域である「Webアプリケーションセキュリティ」へと拡張するプロジェクト — を紹介できることを嬉しく思います。
ランタイムにおいてWebアプリケーションセキュリティが重要な理由
ランタイムセキュリティの第一選択としてFalcoを運用しているなら、次のような挙動の検知に優れていることはすでにご存じでしょう:
- 権限昇格
- 不正なファイルアクセス
- 不審なプロセス挙動
では、アプリケーション層の脅威はどうでしょうか?
NginxのようなWebサーバーはインフラのエッジに位置し、次のような攻撃手法の標的になりがちです:
- SQLインジェクション(SQLi): 信頼できない入力がSQLクエリに挿入され、バックエンドのSQLコマンドを操作することで、攻撃者がデータベースのデータを読み取り・改ざん・削除できてしまうWebアプリケーション攻撃。
- クロスサイトスクリプティング(XSS): 攻撃者が悪意のあるJavaScriptを他ユーザーが閲覧するWebページに注入し、ユーザーのブラウザ上でセッションハイジャックや改ざんなどを可能にする脆弱性。
- ディレクトリトラバーサル: ファイルパス入力を操作してWebルート外の制限されたディレクトリやファイルにアクセスし、機密性の高いアプリケーション/システムデータが露出する可能性があるWebベースの攻撃。
- コマンドインジェクション(CMDi): サニタイズされていないユーザー入力がシステムのシェルコマンドに渡され、攻撃者がWebアプリケーションをホストするサーバー上で任意のコマンドを実行できてしまうセキュリティ上の欠陥。
しかしFalcoは、HTTPリクエストやWebペイロードをネイティブに検査するようには作られていません。Falcoはシステムおよびインフラレベルのイベントに焦点を当てる目的で設計されています。
そこで登場するのがFalcoyaです。
Falcoyaの紹介:FalcoのためのNginxログ解析
Falcoya(falco-plugin-nginx)は、Webアプリケーションセキュリティの可視性におけるギャップを埋めるために設計された、Falco向けの軽量プラグインです。
Falcoya(falco-plugin-nginx)により、FalcoはNginxのアクセスログをリアルタイムに解析し、発生中のアプリケーション層攻撃を検知できるようになります。Nginxのアクセスログファイルをtailし、新しいエントリをパースして、YAMLで定義された検知ルール(Falcoで既に使っているのと同じルール形式!)と照合することで動作します。
仕組み:
- 受信リクエスト → Nginxに到達
- Nginxアクセスログ →
/var/log/nginx/access.logに書き込み - Falcoyaプラグイン → 新しい行をリアルタイムにパース
- ルールエンジン → 既知の攻撃パターンと照合
- Falcoアラート → メタデータ付きの構造化出力をログに記録
結果はどうなるでしょう? 既存のFalcoセットアップを使ったまま、SQLi、XSS、CMDiなどをリアルタイムで検知できるようになります。
Falcoyaの主な機能
- リアルタイムのWeb攻撃検知:SQLインジェクション、XSS、コマンドインジェクションなどを含む脅威を、Nginxアクセスログから即座に発見します。
- 超軽量なパフォーマンス:Goで実装されており、システムオーバーヘッドは最小限。コンテナ環境に最適です。
- カスタムルール作成:FalcoスタイルのYAMLで独自の検知ロジックを定義できます。アナリストはコードに触れずに新しいルールを作成できます。
以下は、潜在的なコマンドインジェクションを検知するルール例です:
# SQLi: Require both "words + symbols/encoding" to reduce false positives-rule:NGINXSQLiAttemptdesc:LikelySQLinjectionattemptdetectedinURLorquerystringenabled: true priority:CRITICALsource:nginxcondition:>(notnginx_is_static)and(nginx_is_readonlyornginx_has_body_method)andnginx_has_sqli_wordsandnginx_has_sqli_rawcharsoutput:>[NGINXSQLi] ip=%nginx.remote_addrmethod=%nginx.methodpath=%nginx.pathqs=%nginx.query_stringua=%nginx.user_agentstatus=%nginx.statustags: [web, attack, sqli]
セキュリティチームにとってのメリット
Falcoyaは、単なるプラグインにとどまらない、現場で役立つ複数のメリットを提供します:
- 可視性の向上:インフラ向けツールでは見えにくいWeb層の攻撃を検知
- 迅速な対応:攻撃からアラートまでの時間を最小化
- コスト効率:サードパーティWAFのコストなしに、高性能なオープンソース検知を実現
- 容易な統合:既存のFalcoベースの監視ワークフローにシームレスに適合
Falcoyaを試してみる
公式インストールスクリプトを使って、数分でFalcoyaをデプロイできます:
curl-sSLhttps://raw.githubusercontent.com/takaosgb3/falco-plugin-nginx/main/install.sh|sudobash
安全な環境で実際の攻撃をテスト:
curl-sSLhttps://raw.githubusercontent.com/takaosgb3/falco-plugin-nginx/main/install.sh|sudoSETUP_TEST_CONTENT=yesbash
これにより、疑似攻撃用エンドポイント、サンプルログ、検証ツールを備えた、テスト可能な環境が立ち上がります。
結論:Falcoのランタイム適用範囲を拡張する
Falcoはすでに、ランタイムにおける異常なシステム挙動を検知するための定番エンジンです。FalcoyaのNginxプラグインを利用する組織は、Falcoのスピード、透明性、カスタマイズ性を損なうことなく、Falcoの検知範囲をWebアプリケーションのアクティビティへと拡張できるようになります。
すでにFalcoを運用していてWebセキュリティのカバレッジを強化したいなら、ぜひ今日からFalcoyaを試してみてください。
オープンソースの議論に参加したい方は、Sysdig Open Source Communityに立ち寄って、ぜひ参加してください!
プロジェクトを見る: https://falcoya.dev
プラグインを入手: GitHub – falco-plugin-nginx
翻訳元: https://www.sysdig.com/blog/bringing-web-application-security-to-falco-with-falcoyas-nginx-plugin