外部制御されるコマンドの実行 (TAINTED_EXTERNAL_CMD)
R2026bオペレーティング システムでのコマンドの投入に対し脆弱な、セキュリティで保護されないソース由来のコマンド引数
説明
この欠陥は、コマンドの全体または一部が外部制御された入力から構築された場合に発生します。
リスク
攻撃者は外部制御される入力を、オペレーティング システムのコマンドとして、あるいはアプリケーションの引数として利用できます。攻撃者は、読み取りや変更が可能な機密データの読み取りや変更を行い、意図しないコードを実行し、あるいはプログラムの他の側面にアクセスする可能性があります。
修正方法
入力を検証し、想定どおりの入力値のみが許可されるようにします。たとえば、許容される入力のリストを作成し、入力をそのリストと比較します。
チェッカーの拡張
既定では、Polyspace® は外部ソースからのデータは汚染されていると仮定します。Polyspace 解析での汚染のソースを参照してください。Polyspace 解析の現在のスコープ以外から発生したすべてのデータを汚染されたものと見なすには、コマンド ライン オプション [-consider-analysis-perimeter-as-trust-boundary] を使用します。
例
結果情報
| グループ: 汚染されたデータ |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: TAINTED_EXTERNAL_CMD
|
| 影響度: Medium |
PQL 名: std.defects.TAINTED_EXTERNAL_CMD
|
バージョン履歴
R2015b で導入
参考
外部制御される環境変数を使用しています (TAINTED_ENV_VARIABLE) | 外部で制御される要素を使用したホストの変更 (TAINTED_HOSTID) | 外部制御されるパスから実行されたコマンド (TAINTED_PATH_CMD) | 外部制御されるパスから読み込まれたライブラリ (TAINTED_PATH_LIB) | 相対パスからバイナリを実行すると、外部アクターの制御を受ける可能性があります (RELATIVE_PATH_CMD) | 欠陥の検出 (-checkers) | -consider-analysis-perimeter-as-trust-boundary