Microsoft の Common Log File System:ハッシュベースの認証コードでセキュリティを確保

Microsoft Tackling Windows Logfile Flaws With New HMAC-Based Security Mitigation

2024/09/04 SecurityWeek — Microsoft が計画しているのは、APT やランサムウェアなどにとって、きわめて魅力的な攻撃対象領域をカバーするための取り組みの一環としての、CLFS (Common Log File System) 解析に対する新たな検証手順の追加である。これまでの5年間において、データとイベントのログ記録に使用されてきた Windows のサブシステム CLFS では、少なくとも 24件の脆弱性が記録されている。そして、Microsoft Offensive Research & Security Engineering (MORSE) チームは、一連の脆弱性に対して対処するオペレーティング・システムの緩和策を設計するよう迫られている。


Microsoft のメモは、「間もなく、この緩和策が Windows Insiders Canary チャネルに組み込まれ、CLFS ログ。ファイルへの不正な変更が、ハッシュベースのメッセージ認証コード (HMAC:Hash-based Message Authentication Codes) を用いて検出させる」と、このエクスプロイトについて説明している。

Microsoft の Software Engineer である Brandon Jackson は、「発見された個々の問題に対処し続けるのではなく、CLFS ログファイルの解析に対して、新しい検証手順を追加する作業を行った。つまり、一連の脆弱性を、一度に解決することを目的としている。この作業により、潜在的なセキュリティ問題の影響を受ける前に、Windows エコシステム全体のユーザーを保護できる」と述べている。

この緩和策の詳細な技術説明は、以下のとおりである。

Brandon Jackson @ Microsoft — ログファイル・データ構造内の、それぞれの値を検証する代わりに、新たなセキュリティ緩和策が導入される。それにより、CLFS ドライバー以外の何ものかによりログファイルが変更されると、それを検出できるようになる。この仕組みは、ログファイルの末尾に対して、ハッシュベースの HMAC を追加することで実現される。

HMAC は特殊な種類のハッシュである。この場合には、入力データであるログファイル・データを、秘密の暗号化キーでハッシュすることで生成される。この秘密キーはハッシュ・アルゴリズムの一部であるため、異なる暗号化キーを使用して同じファイル・データの HMAC を計算すると、異なるハッシュが生成される。

インターネットからダウンロードしたファイルの整合性を、ハッシュやチェックサムで検証するのと同じように、CLFS は HMAC を計算した結果を、ログファイル内に格納されている HMAC と比較することで、ログファイルの整合性を検証できる。したがって、攻撃者が暗号キーを知らない限り、CLFS が受け入れる有効な HMAC を生成するために、必要な情報を得ることが不可能だ。現時点において、この暗号キーにアクセスできるのは、CLFS (SYSTEM) と管理者だけである — Brandon Jackson @ Microsoft

さらに Brandon Jackson は、「特に大きなファイルを処理する際に、その効率性を維持するために、Merkle ツリーを使用する。それにより、ログファイルが変更されるたびに必要となる、頻繁な HMAC 計算におけるオーバーヘッドが削減される」と述べている。