NTFS3のセキュリティ脆弱性がファジングによって暴露された
新しいファジングツールがLinuxシステムのNTFS3の重大な欠陥を特定。
― 1 分で読む
新しいテクノロジーファイルシステム(NTFS)は、マイクロソフトによってWindows NTシリーズの主要なファイルシステムとして作られたんだ。何年も経つうちに、Windowsでの広範な使用のおかげで、多くのハードドライブがNTFSにフォーマットされてきた。NTFSでフォーマットされたドライブを使う人が増えているから、Linuxみたいな他のオペレーティングシステムがNTFSをサポートして、ファイルにアクセスできる必要があるんだよね。
2021年の終わりには、NTFSの改善版であるNTFS3がLinuxカーネルに追加されて、LinuxユーザーがNTFSドライブをもっと効率的に読み書きできるようになった。ただ、オペレーティングシステムに新しいファイルシステムを導入するのはバグやセキュリティ問題が出る可能性があるから、NTFS3の安全性と信頼性を確保することがLinuxコミュニティにはすごく大事なんだ。
NTFS3のセキュリティ確保の課題
進展はあったけど、Linuxの最新のNTFSバージョンには、まだ発見されていないセキュリティの脆弱性があるんじゃないかと懸念されてる。ソフトウェアのバグをテストして見つける方法はあるけど、NTFS3の脆弱性を体系的にテストするための集中した取り組みはまだないんだ。
この問題に対処するためには、NTFS3の潜在的なバグを特定して評価するための特定のツールや手法が必要だよ。ファジングは、脆弱性を発見するために大量のランダムまたは変異した入力をシステムに送り、その反応を観察する方法なんだ。
ファジングとは?
ファジングは、プログラムにランダムなデータを入力してテストすることを含むんだけど、そのデータはプログラムが予期するものとはわずかに異なるように作られることが多いんだ。これによって、クラッシュや予期しない動作を引き起こす隠れたバグや脆弱性を見つけることができるんだ。
従来のファジングツールはext4やHFS+みたいな一般的なファイルシステムに向けて開発されてきたけど、NTFSは特定の構造と包括的なドキュメントがないから、ユニークな課題がある。だから、NTFS3専用のファズァを作る必要があるんだ。
NTFS3用のファジングツールを作成する
この課題に対処するために、NTFS3専用のファズァが作られた。このファズァは、NTFSイメージのユニークな性質とファイル操作に取り組むように設計されているんだ。
カスタムパーサーの必要性
NTFSをファジングすることは、ディスクイメージを操作しながらデータ構造が有効であることを確認することを含むんだ。従来のNTFSパーサーは既存のイメージを検証することに重点を置いているから、修正を可能にするカスタムパーサーが必要なんだ。
このパーサーにはいくつかの重要な役割がある:
- NTFSイメージから重要なメタデータを抽出して、ファズァが問題を引き起こす可能性のある重要な部分に集中できるようにする。
- 変異プロセス中に発生する可能性のあるチェックサムエラーを自動的に修正して、イメージが有効なままにする。
- 変更を元のイメージにマッピングして、ファズァが一貫して作業できるようにする。
効果的なファジングの戦略
ファズァはNTFSイメージのメタデータを変異させるためのさまざまな戦略を用いている:
- ランダムなビットの反転やデータ値の変更をして、システムの反応を見る。
- データからランダムな値を加えたり引いたりして、境界をテストする。
- データの一部を書き換えて、さまざまなシナリオをシミュレートする。
メタデータを変更するだけでなく、ファズァはファイル操作も変異させて、オペレーティングシステムが実行する多様なコマンドを生成する。この組み合わせによって、ファズァがイメージだけでなく、システムがそれとどう相互作用するかもテストできるようになってるんだ。
実験と結果
3ヶ月間のテスト期間中に、このファズァはNTFS3のいくつかの脆弱性を特定することに成功した。具体的には、3つの深刻なセキュリティの欠陥を見つけて、それらには共通脆弱性および曝露(CVE)番号が付けられて、さらに9つの重要なバグも見つけたんだ。
発見されたバグのタイプ
見つかったバグは、どのように現れたかに基づいて2つの主要なタイプに分類された:
- タイプIバグ: これらはNTFSイメージがマウントされると発生して、即座にクラッシュを引き起こす。通常、メタデータの不適切な処理やデータサイズに関する誤った仮定から来る。
- タイプIIバグ: これらのバグは特定のファイル操作が行われたときに現れて、ファイルシステムがユーザーコマンドをどう扱うかに問題があることを示唆している。マウントが成功した後でもね。
脆弱性の理解
見つかったバグのほとんどは、ユーザーが制御するデータに対する適切なチェックが欠けていることが原因だったんだ。これは重要で、潜在的に危険なソースからのデータは慎重に検証しないと予期しない動作を引き起こす可能性があるからね。例えば、攻撃者が不正なオフセットを持つNTFSイメージを作成すると、システムがクラッシュしたり他の脆弱性を悪用したりすることがあるんだ。
発見された中には、バウンズ外の読み取りやヌルポインタの参照エラーが含まれていて、これらは機密データにアクセスしたり、システムを完全にクラッシュさせたりするのに利用される可能性がある。
学んだ教訓
特定された脆弱性やファジングプロセスから、いくつかの重要な教訓が浮かび上がった:
ユーザー入力を信頼しないこと: ファイルシステムイメージから来るデータは潜在的に危険だと考えるべきなんだ。開発者は、セキュリティ問題を防ぐために、ユーザー入力から得られるすべてのデータに厳しいチェックを実装する必要がある。
タイプ混乱の問題に注意すること: ファイルがディレクトリとして扱われたりその逆になったりすると、多くのバグが発生する。これらのタイプを区別するための明確なチェックが必要なんだ。
高いコードカバレッジのファジングが不可欠: NTFSのようなファイルシステムのユニークさを考慮すると、特別なテストが脆弱性を明らかにするために重要なんだ。ターゲットを絞ったファジングの実践は、脆弱性のより効果的な特定につながるよ。
結論
NTFS3がLinuxエコシステムに導入されたことで、ユーザーにとって多くの機会が開かれたけど、対処すべきセキュリティの課題もあるんだ。専用のファズァを開発することで、重要な脆弱性が特定され、これらの問題がどのように発生するかについての理解が深まった。NTFSの実装をテストして検証し続けることは、今後のファイルシステムの安全性と信頼性を確保するために重要なんだ。
タイトル: Fuzzing the Latest NTFS in Linux with Papora: An Empirical Study
概要: Recently, the first feature-rich NTFS implementation, NTFS3, has been upstreamed to Linux. Although ensuring the security of NTFS3 is essential for the future of Linux, it remains unclear, however, whether the most recent version of NTFS for Linux contains 0-day vulnerabilities. To this end, we implemented Papora, the first effective fuzzer for NTFS3. We have identified and reported 3 CVE-assigned 0-day vulnerabilities and 9 severe bugs in NTFS3. Furthermore, we have investigated the underlying causes as well as types of these vulnerabilities and bugs. We have conducted an empirical study on the identified bugs while the results of our study have offered practical insights regarding the security of NTFS3 in Linux.
著者: Edward Lo, Ningyu He, Yuejie Shi, Jiajia Xu, Chiachih Wu, Ding Li, Yao Guo
最終更新: 2023-04-14 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2304.07166
ソースPDF: https://arxiv.org/pdf/2304.07166
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://github.com/ambergroup-labs/papora
- https://www.ctan.org/pkg/graphicx
- https://www.ctan.org/pkg/epslatex
- https://www.tug.org/applications/pdftex
- https://www.ctan.org/pkg/amsmath
- https://www.ctan.org/pkg/algorithms
- https://www.ctan.org/pkg/algorithmicx
- https://www.ctan.org/pkg/array
- https://www.ctan.org/pkg/subfig
- https://www.ctan.org/pkg/fixltx2e
- https://www.ctan.org/pkg/stfloats
- https://www.ctan.org/pkg/dblfloatfix
- https://www.ctan.org/pkg/url