Meltdown、Spectre、Foreshadow、Falloutなどの最近の攻撃によってメモリ内のデータが盗まれるような方法でアプリケーションを開発することは可能ですか?ゾンビロード?すべての緩和策は、ハードウェア、BIOS、またはOSのパッチ適用に重点を置いています。しかし、パスワードマネージャーなどの機密性の高いアプリケーションにも追加の保護メカニズムを実装できるでしょうか。
たとえば、KeePassはL1キャッシュからパスワードを保護できますか(常にメモリから直接ロードします)?これは、L1キャッシュを標的とする攻撃から保護する可能性があります。
他のキャッシュやレジスタをリークする他の脆弱性があるため、すべての攻撃に対して十分ではない可能性があります。この機密データのキャッシュを最小限に抑える方法に関する他のアイデアはありますか?
また、keepassはメモリ内のパスワードを暗号化しますが、L1キャッシュでも暗号化されますか?そして、復号化キーはこれらのキャッシュにもありませんか?
はい、理論的にはアプリケーションでこれらの問題を回避できます。しかし、それはおそらく平均的なユーザーが直面する脅威ではありません。
さらに、これらの回避策はパフォーマンスに悪影響を及ぼします。ほとんどの場合、危険な可能性のある命令が使用されていないことを確認するために多くの作業が必要であり、それでも、すべてが正しく行われたかどうかを100%確信することはできません。
その結果、ソフトウェアベンダーは、比較的小さなセキュリティの向上と比較して、必要な作業量を確認し、それだけの価値がないと判断します。適切に名前が付けられたWebサイト cpu.fail には、新しく発見されたいくつかのバグとそれらに関するFAQがリストされています。
ZombieLoad FAQ(私の強調))を引用するには:
Q:これらのソフトウェアのバグはありますか?
A:いいえ。これらはプロセッサのバグです。 ソフトウェアはこれらのバグを回避できるため、パフォーマンスが低下します。将来のプロセッサには修正が組み込まれます。