BleachBit 6.0.4、Windowsでクラスタを飛ばしていた安全消去の不具合を修正

オープンソースのクリーナーツールBleachBitが今週バージョン6.0.4に到達し、Windows・Linux、そして新たにmacOSでもキャッシュやブラウザの痕跡、ファイルの消去に対応しました。

Image

以前のビルドでWindows上の機密ファイルをシュレッダー処理していた場合、消去漏れが生じた部分がディスク上に残っている可能性があります。Windowsは十分な大きさの連続した空き領域を見つけられないと、ファイルを断片化して複数の非連続クラスタに分散して書き込むため、こうした断片化は通常起こり得るケースです。

リリースノートには、どのバージョンにこの不具合が含まれていたか、あるいは対象ファイルのどの程度が残存してしまうのかについては記載がありません。そのため、バージョン番号から影響を受けたファイルの一覧を逆算する方法はありません。すでに削除されたオリジナルファイルを再度シュレッダー処理することは不可能なため、影響を受けた可能性のあるドライブでは空き領域のワイプを行うしかありません。

クッキー削除後も生き残る「スーパークッキー」

ChromiumベースおよびFirefoxベースのブラウザは、どのサイトがHTTPS限定での読み込みを指定したかを記録する「動的HSTSリスト」を保持しています。訪問したどのサイトもこのリストに書き込むことができるため、通常のクッキー削除を生き延びる形で識別情報の断片を保存する場所として悪用され得ます。複数のドメインにまたがってこれらの断片を読み取れば、再びトラッキング識別子として機能してしまいます。BleachBitは今回、6種類のChromiumベースブラウザと、Firefox派生ブラウザのZenにおいて、動的HSTSデータの削除に対応しました。

作業ディレクトリに収束してしまっていたパスの問題

任意のファイルをシュレッダー処理する際、作業ディレクトリやその親ディレクトリを対象として受け付けなくなりました。これにより、空文字列やピリオド1つ、ピリオド2つを渡すとカレントディレクトリに収束してしまっていた抜け穴が塞がれています。POSIXシステムでは、keepリストが空であっても、/、/proc、/sys、/runの削除を拒否するようになりました。ワイプ処理はwipe_writeおよびwipe_contentsでシンボリックリンクをたどらなくなり、Windowsではシンボリックリンク経由でのファイルワイプを拒否し、切り詰め処理ではリパースポイントを拒否します。クリップボード経由で渡されたファイルのシュレッダー処理では、不正な形式のファイルURIを処理せずスキップするようになったほか、シュレッダー処理対象のドライブが誰でも書き込み可能な状態になっている場合は安全でないとして警告が表示されるようになりました。

誤ったバイナリが応答してしまう可能性のあったコマンド

Windows版では、ipconfigおよびtaskkillが絶対パスで呼び出されるようになりました。コマンドをベア名(パス指定なし)で呼び出すプログラムは、実行ファイルの選択を実行ファイル検索パスに委ねることになり、攻撃者がその検索パスの上位に何らかのファイルを配置できれば、そちらが先に応答してしまいます。同様の理由から、DLL検索パスもプリロード攻撃に対して強化されています。信頼できないクリーナー定義ファイルはprocessやwinregのアクションを実行できなくなり、POSIX環境では、誰でも書き込み可能なファイルやディレクトリ内のクリーナーファイルは一切読み込まれなくなりました。

XMLパースの各エントリポイントでは、DTDが一律で拒否されるようになりました。また、アップデートチェックはXMLをバイト列としてパースするため、エンコーディングを宣言しているドキュメントに対してもこの拒否が確実に適用されます。安全でないwinapp2およびアップデートチェック用URLは拒否されます。winapp2.iniのglobパターンにおけるワイルドカードの数には上限が設けられ、正規表現によるサービス拒否攻撃への対策となっています。Special.py内のSQLiteおよびURI構築処理はインジェクション対策として強化され、ダウンロードされるチャフモデルにはチェックサムが付与され、ブラウザで開かれるURLはhttpとhttpsに制限されます。rootとして実行する場合、BleachBitはPATHをサニタイズし、サブプロセスに渡すコード読み込み関連の環境変数を削除するほか、外部コマンドに渡す環境からLD_LIBRARY_PATHを取り除きます。デバッグログは0600のパーミッションで、ダウンロードディレクトリは0700のパーミッションで作成されるようになりました。

WindowsのビルドおよびテストはAppVeyorからGitHub Actionsへ移行し、バグ発見のためのCodeQLワークフローが追加されたほか、CI/CDパイプライン全体を対象とする静的解析ワークフローも導入されました。さらに、CI翻訳更新処理中に発生し得たコードインジェクションの潜在的な脆弱性も修正されています。

新たなクリーナーの追加と、ついに対応したMac

Android Studio、Gradleキャッシュ、fishシェル、Zsh、Pythonのコマンド履歴を対象とするクリーナーが新たに追加されました。シェルやインタプリタの履歴ファイルには、プロンプトに貼り付けられたあらゆる情報が(認証情報を含めて)残っているため、他人が読み取れる可能性のあるマシンでは消去しておく価値があります。Claudeクリーナーは、トップレベルのログファイルも削除するようになりました。

macOS対応はまだ初期段階ながら、実用レベルに達しています。Safariクリーナーの追加、Google ChromeやFirefoxといった既存クリーナーの同プラットフォームでの動作、コマンドラインの全面対応、そして現在も開発が進められているGUIが用意されています。BleachBitは、フルディスクアクセスが無効になっている場合に警告を表示し、ネイティブ通知に対応し、Cmd+Qによる終了をサポートするほか、ゴミ箱のクリーニング時には空フォルダも削除するようになりました。

翻訳元: https://www.helpnetsecurity.com/2026/09/09/bleachbit-6-0-4-released/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。