Race Condition
競合状態(レースコンディション)とは、複数のスレッドが共有リソースに同時にアクセスし、実行の交錯によって想定外の状態が生じる問題である。チェックのバイパスに悪用される恐れがある。
目的
並行処理の競合によるセキュリティチェックのバイパスとその防御を理解するための、マルチスレッドプログラムでよくある欠陥である。
メカニズム
TOCTOU:チェックと使用の間の時間窓が攻撃者に悪用される(例:ファイルの存在を確認した後に、攻撃者がシンボリックリンクにすり替える)。防御策はアトミック操作、ロック、ファイルディスクリプタである。
ユースケース
- 並行処理セキュリティの監査
- TOCTOU脆弱性の分析
- マルチスレッドの不具合