- Datadogが開発した、Goアプリケーション向けの安全で信頼性の高い自動計測ツール
- コンパイル時に計測を挿入し、ランタイムオーバーヘッドを最小化
- RASP機能を通じてアプリケーションを保護
- コンパイル過程でソースコードを修正し、Datadog APMトレースのための計測を自動挿入
- Datadog Application Security Management Exploit Prevention機能により、一般的な脆弱性からアプリケーションを保護
仕組み
- Goツールチェーンと連携し、コンパイル過程でソースコードを解析・修正します。
- Abstract Syntax Tree(AST)レベルでコードを操作し、Goコンパイラがすべての変更を検証して型チェックを行えるようにします。
- アプリケーションのあらゆる動作に対する無制限のアクセスを可能にしつつ、コンパイル済みバイナリを直接修正することで起こり得るエラーを防ぎます。
- Goコンパイラの最適化プロセスを経て、修正されたコードも最適化されるため、ランタイムオーバーヘッドを低減します。
- 修正されたソースコードにGoの
//line pragmaディレクティブを挿入し、変更によって行番号が影響を受けないようにするとともに、計測されたアプリケーションで生成されたスタックトレースが元のソースコードの正しい位置を指すようにします。
なぜコンパイル時インストルメンテーションを使うのか
- 安全性、信頼性、データ品質: コンパイル時インストルメンテーションは、バイナリパッチングやeBPFよりも安全で信頼性の高いデータを生成します。
- 自動化: バイナリパッチングとeBPFは高いレベルの自動化を提供しますが、Orchestrionではビルドプロセスの変更とアプリケーションの再デプロイが必要です。
- 性能オーバーヘッド: eBPFはカーネル空間とユーザー空間の間のコンテキストスイッチにより性能オーバーヘッドが発生する可能性があります。Orchestrionはコンパイル時に計測を挿入し、ランタイムオーバーヘッドを最小化します。
- 対応環境: eBPFはLinux環境に限定されますが、Orchestrionはさまざまな環境をサポートします。
- 全体的な機能: eBPFは機能が限定的ですが、Orchestrionはコードレベルで動作するため、より多くの機能を提供します。
セキュリティのためのOrchestrion
- コードレベルでの処理を通じて、プログラムの制御フローを変更できる計測を挿入し、RASP機能を実現します。
- SQLインジェクションやローカルファイルインクルードのような一般的な脆弱性から、アプリケーションを自律的に保護できます。
- 特定のAPIを別のAPIに完全に置き換えられるため、開発者はトレースコンテキストのチェイニングのために、すべてのビジネスロジック層へコンテキスト値を渡す必要を意識しなくて済みます。
まだコメントはありません。