コンテンツにスキップ

レガシーアプリのためのAikido Zen

Aikido Zenは、実行中のレガシーアプリケーションを保護するランタイムセキュリティレイヤーです。変更が難しいものの、実際のユーザーや実際のトラフィックにさらされ続ける必要があるシステム向けに設計されています。

レガシーアプリは古いフレームワーク上で動作していたり、大規模なモノリシックなコードベースを持っていたり、限られたエンジニアリングリソースで保守されていたりすることが少なくありません。こうしたシステムを書き換えたり、大幅にリファクタリングしたりすることは、通常現実的ではありません。Zenは、現状のままのアプリケーションと連携して動作します。

Zenはアプリケーションプロセス内部で動作し、リクエストがデータベースクエリ、ファイルアクセス、コマンド実行、送信ネットワーク呼び出しなどの機微な操作とどのように関わるかを監視します。

レガシーシステムの保護は難しい

Section titled “レガシーシステムの保護は難しい”

レガシーアプリケーションは、現代の攻撃手法を想定して構築されていることはほとんどありません。入力検証は一貫性を欠いていることが多く、セキュリティライブラリは古かったり存在しなかったりし、脆弱性のパッチ適用には、壊れやすいコードへのリスクの高い変更が必要になることがあります。

従来型の防御策では、この問題をうまく解決できません。スキャナーは問題を報告しますが、攻撃自体を止めることはありません。ネットワークファイアウォールや従来型のWebアプリケーションファイアウォールはアプリケーションの外部で動作するため、コードが実際に何をしているかについての文脈を欠いています。

これにより、古いシステムはインジェクション、パストラバーサル、安全でないコマンド実行といった、よくあるものの影響の大きい攻撃にさらされたままになります。レガシーアプリは機微なデータを扱っていることが多く、なおかつインターネットに公開され続けていることが多いため、これらの脆弱性は特に危険です。

Aikido Zenは、コード変更やアーキテクチャ上の作業を強いることなく、このリスクを即座に低減します。

悪用トラフィックの緩和

Zenにはトラフィック制御機能が含まれており、ブルートフォース攻撃のような試みを減速・ブロックし、スキャンボットによるノイズがアプリケーションロジックに到達する前に取り除くのに役立ちます。

安全でないデータベース操作のブロック

Zenは実行時にデータベースクエリを検査し、SQLインジェクションや有害なクエリ操作に見えるパターンを停止できます。これにより、カスタムコードやデータモデルと連携するサードパーティモジュールに起因する問題を封じ込めるのに役立ちます。

不正なファイルシステムアクセスの防止

多くのアプリケーションは、設定、添付ファイル、一時ファイルをディスクに保存します。Zenは機微なファイル操作を監視し、パストラバーサルや、許可されたディレクトリ外への予期しないファイルの読み書きをブロックします。

安全でない送信リクエストおよびSSRFからの保護

多くのアプリケーションは、webhookやAPIを通じて外部サービスと連携します。Zenは送信HTTP呼び出しを検査し、信頼できない入力から作られた安全でないリクエストをブロックできます。これにより、SSRFの試みを防ぎ、内部ネットワーク上のターゲットへのアクセスを制限します。

送信先ドメインの監視と制御

Zenは、サーバーが接続するすべてのドメインを表示します。ドメインをブロックまたは許可することで、データの送信先を制御できます。これは、カスタムモジュールからの予期しない呼び出しを検出したり、データの持ち出しを防いだり、チームが承認した連携先だけに限定した厳格な境界を維持したりするのに役立ちます。

ローカルのみでの検査

Zenは、リクエストデータをAikidoに送信することなく、サーバー上でローカルにセキュリティ上の判断を行います。これは、機微なビジネスデータやプライバシーを優先するデプロイメントに適しています。

Aikido Zenでレガシーアプリケーションの保護を始めるには、Aikidoアカウントを作成し、ダッシュボードのZenセクションにあるお使いのランタイム向けオンボーディングガイドに従ってください。

環境によっては、Zenを有効化するために小規模で局所的なコード変更や設定更新が必要になる場合があります。これらの変更は通常、アプリケーションの起動時のみに限定され、ビジネスロジックには影響しません。

接続が完了すると、Zenは実行時に安全でない挙動の監視とブロックを開始します。

始めるにはaikido.devでアカウントを作成してください。