[論文レビュー] Identifying Cache-Based Side Channels through Secret-Augmented Abstract Interpretation
この論文では、秘密拡張記号的(SAS)と呼ばれる新しい抽象ドメインを用いた静的解析ツールであるCacheSを提案する。このツールは、実世界の暗号バイナリにおけるキャッシュベースの側面チャネルを検出することを目的としている。秘密の細粒度追跡と、公開データの粗粒度過剰近似を組み合わせることで、CacheSはスケーラブルで正確かつフルカバレッジの取れる関数間静的解析を可能にし、OpenSSL、Libgcrypt、mbedTLSにおいて54件の以前未知の情報漏洩を同定した。
Cache-based side channels enable a dedicated attacker to reveal program secrets by measuring the cache access patterns. Practical attacks have been shown against real-world crypto algorithm implementations such as RSA, AES, and ElGamal. By far, identifying information leaks due to cache-based side channels, either in a static or dynamic manner, remains a challenge: the existing approaches fail to offer high precision, full coverage, and good scalability simultaneously, thus impeding their practical use in real-world scenarios. In this paper, we propose a novel static analysis method on binaries to detect cache-based side channels. We use abstract interpretation to reason on program states with respect to abstract values at each program point. To make such abstract interpretation scalable to real-world cryptosystems while offering high precision and full coverage, we propose a novel abstract domain called the Secret-Augmented Symbolic domain (SAS). SAS tracks program secrets and dependencies on them for precision, while it tracks only coarse-grained public information for scalability. We have implemented the proposed technique into a practical tool named CacheS and evaluated it on the implementations of widely-used cryptographic algorithms in real-world crypto libraries, including Libgcrypt, OpenSSL, and mbedTLS. CacheS successfully confirmed a total of 154 information leaks reported by previous research and 54 leaks that were previously unknown. We have reported our findings to the developers. And they confirmed that many of those unknown information leaks do lead to potential side channels.
研究の動機と目的
- 実世界の暗号システムにおけるキャッシュベースの側面チャネルを、高精度、フルカバレッジ、スケーラビリティを満たすように検出する課題に対処すること。
- 低カバレッジ、低精度、またはスケーラビリティの欠如といった既存の静的・動的解析ツールの限界を克服すること。
- 大規模でプロダクション品質の暗号実装における側面チャネル脆弱性の実用的検出を可能にすること。
- 秘密の記号的表現に対する制約充足による具体例の生成を通じて、デバッグを効果的に行えるようにすること。
提案手法
- 秘密の細粒度追跡とそのデータ依存関係の追跡を可能にする、秘密拡張記号的(SAS)抽象ドメインを導入する。
- 抽象値の記号的表現を用いることで、正確な漏洩検出のための制約充足を可能にする。
- SASを用いた抽象解釈を適用し、バイナリコードのコンテキストセンシティブで関数間の静的解析を実行する。
- スケーラビリティを確保しつつ、秘密依存パスにおける高精度を維持するため、公開値を過剰近似する。
- 漏洩検出における整合性を損なわせることなく、パフォーマンス最適化を図るための軽量で不正確なメモリモデルを採用する。
- 制約充足を統合し、デバッグのための具体例を生成することで、ツールの使いやすさを向上させる。
実験結果
リサーチクエスチョン
- RQ1静的解析アプローチは、実世界の暗号システムにおけるキャッシュベースの側面チャネルを、高精度かつフルカバレッジで検出可能か?
- RQ2抽象解釈をどのように拡張すれば、大規模バイナリにスケーリングしつつも、秘密依存動作における精度を維持できるか?
- RQ3抽象ドメイン内での記号的推論により、検出に加えてデバッグに役立つ具体例の生成が可能か?
- RQ4SASのような新しい抽象ドメインは、既存のドメインに比べて、未知の側面チャネル漏洩の検出においてどの程度優れているか?
主な発見
- CacheSは、OpenSSL、Libgcrypt、mbedTLSにおける154件の以前報告済みの情報漏洩を正常に確認した。
- 研究コミュニティが以前に知らなかった54件の新たな情報漏洩サイトを発見した。
- 295,000指令を超えるバイナリに対して、0.5 CPU時間未満で、コンテキストセンシティブで関数間のフルカバレッジ解析を達成した。
- 全208件の漏洩サイトに対して、誤検出は1件のみ報告され、高精度であることが示された。
- 実世界の暗号システムを処理するのに十分なスケーラビリティを備えており、CacheAudit や CacheD よりもカバレッジとパフォーマンスで優れていた。
- 影響を受けるライブラリの開発者らが、新しく発見された漏洩の多くが実際の側面チャネル脅威をもたらすと確認した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。