For the complete documentation index, see llms.txt. This page is also available as Markdown.

複数ファイル / ファイル間脆弱性トレース

テイント解析 プログラム内でデータがどのように移動するかを追跡することで、コード内のセキュリティリスクを見つける方法です。これは、Web リクエストやユーザーフォームのようにシステムの外部から来る「テイントされた」入力から始まります。次に、そのデータがどこへ行くのかを追跡し、データベースクエリやシステムコマンドなどのコードの重要な部分に、先にチェックや無害化されないまま到達していないかを確認します。途中でそのデータが悪用される可能性がある場合、Aikido はそれを潜在的な脆弱性としてフラグ付けします。テイント解析は、信頼されていない入力がソフトウェア内をどのように移動し、適切に処理されないと実際のセキュリティ問題を引き起こす可能性があるかを、開発者が把握するのに役立ちます。

Aikido は信頼できないコードの流れを追跡し、それが危険なシンク(たとえば SQL やコマンド実行)に到達するとフラグを立てます。Aikido は、1つのファイル内だけでなくファイルをまたいだテイント解析にも対応しています。ある場所で受け付けた入力が、別の場所でのリスクのある操作につながる可能性があるためです。

データフローに加えて、Aikido は 到達可能性 もチェックするため、実際にはアプリで実行されない問題(たとえば呼び出していない脆弱な関数や、テストでのみ実行されるコード)について通知されることはありません。これがノイズを減らす仕組みの一部です。

Aikido におけるテイント追跡

脆弱性が見つかると、Aikido は関連する関数呼び出しをたどって追跡します。セキュリティ問題を開くときは、 コード分析を表示 を選択すると、脆弱性の発生源と、実行フローを示すコールグラフの詳細を確認できます。

マルチファイルのテイント解析が利用できる場所

Aikido は現在、以下の言語でファイルをまたいだテイント追跡をサポートしています:

  • JavaScript

  • TypeScript

  • PHP

  • .NET/C#

  • Java

  • Rust

  • Go

  • Ruby

  • Python

その他の言語では、現在ファイル内テイント解析をサポートしています:

  • C/C++

  • Swift

  • Android

  • Scala

  • Kotlin

  • Dart

  • Elixir

最終更新

役に立ちましたか?