壁と仮定を打ち破る:Windowsでの特権昇格のテクニック Part 1
これまでの年々で、ZDIプログラムに提出されるリンクフォローイング脆弱性の数が顕著に増加している。これらの脆弱性は、競争状態をプログラム的に悪用し、 標高された特権で実行されるアプリケーションで見つかるものが多い。研究者は、標準ユーザーがアクセス可能な場所でファイルを作成、変更、削除するファイル操作を特定し、リンクのチェックが行われていないかどうかを確認する。開発者がリンクフォローイングを防ぐために採用する戦略には、FILE_FLAG_OPEN_REPARSE_POINTフラグの使用、リパースタグのチェック、保護された隠しファイルの使用、impersonationなどが含まれる。ただし、すべての方法が効果的なわけではない。ひとつの有望なテクニックは、不適切なimpersonationを悪用するものだったが、2023年9月のMicrosoftの緩和策(ObpUseSystemDeviceMap)によって、システムドライブ上でのファイルのルックアップに限定された。このテクニックは、AVGとAvast製品の脆弱性でリンクフォローイング特権昇格バグのチェックが失敗している例を示す。ひとつの場合、ディレクトリーの作成中のリンクフォローイング防止の欠如を悪用し、サービス拒否状態を引き起こすことができた。もうひとつの場合、隔離されたファイルの復元中にファイルパス再構築の競争状態を悪用し、ローカル特権昇格を達成することができた。これらの脆弱性は、標高された特権でファイル操作を実行するアプリケーションでリンクフォローイングを適切に防ぐことが非常に重要であることを強調する。