Androidで見つかったスクリーンショット編集機能の脆弱性が、Windows 11の純正スクリーンショットツールにもあることが分かりました。
Windows 11 / 10標準のSnipping Tool (Win+Shift+S)でスクリーンショットを撮影してから、切り取ったりマークアップで塗り潰して上書き保存した場合、切り取った範囲外や消したはずの部分がファイルに含まれる場合があります。
メールで誰かに送信したり、ネットに投稿するなどして共有していた場合、スクリーンショットを復元して個人情報などを取得できる可能性があります。
先週には Android 純正のスクリーンショット編集ツール Markup で、同様の脆弱性が発見されていました。
そちらの原因は、Markup ツールが画像を切り取ったり加工して上書き保存する際、画像データを単純に書き込むのみで、ファイルサイズを新たに切り詰めない挙動から。
上書きされた範囲より後ろにはオリジナル画像データの部分が残ることから、部分を復元できる可能性があります。
Windows 11で見つかったのもほぼ同じ現象で、Snipping Toolを使いスクリーンショットを撮影した際、または既存のPNGファイルを開いた際、切り取りや編集を施して上書き保存してもファイルサイズが変わらず、バイナリデータにオリジナルのファイルの部分が含まれている可能性があります。
(エディタで開くと、PNG形式で画像データの終端を示すIENDチャンクより後ろに元データの残りが続く状態)。
Windows 10で加わった新Snipping Tool (Win+Shift+S) は、スクショを取得すると同時に保存するため、切り取りやマークアップしたあとに保存を押すとデフォルトで上書き保存になります。
この際、たとえば大きなスクリーンショットからごく一部を切り取って上書き保存しても、ファイルサイズが変わらないことで現象が確認できます。(別名で保存すると小さなファイルになる)。
マイクロソフトはこの問題を認識しており、調査中としていますが、現時点ではこの上書き時にファイルサイズを切り詰めず元データが残る状態です。
回避するには、別名で保存する、最初から必要部分のみキャプチャする、ファイルを別形式やリサイズで再圧縮・保存する、PrintScreen でクリップボードにキャプチャしてから、直接編集ツールに貼り付けて編集後に新規ファイルとして保存するなどが考えられます。
しかし、これまでに(新) Snipping Tool で加工した画像を誰かに送信したり、ウェブやSNSに掲載していた場合、消した部分を復元されて明かしたくない情報を公開してしまう可能性があります。
SNS等は画像のメタデータを使ったストーカー等の対策や、サイズ削減のため、アップロード時点で画像を変換したり再圧縮することが多く、そうしたサービスでは回避できている可能性はありますが、ファイルをそのまま掲載するサービスやツールで共有した場合は復元できる可能性が高くなります。
個人情報を多く扱うスマートフォンでも危険な脆弱性ですが、デスクトップでは業務データを扱ったり、多くのウィンドウやタブを開いてマルチタスクする可能性が高く、まず大きく撮ってからクロップやマークアップのワークフローだった場合は明かしたくない情報を含んだスクリーンショットをウェブに放流しているかもしれません。