質問:
正式な難読化
Ta Thanh Dinh
2013-07-02 04:35:26 UTC
view on stackexchange narkive permalink

私の質問はこの質問に関連しており、@ RollfRollesの優れた回答があります。 M.D. Preda et alの論文はかなり技術的であるため、彼らの考えを理解しているかどうか疑問に思います。次のフレーズは、この論文から引用されています。

基本的な考え方は、攻撃者を具体的なプログラムの動作、つまり具体的なプログラムのセマンティクスの抽象的な解釈としてモデル化することです。このフレームワークでは、攻撃者は、不透明な述語の抽象的な検出が具体的な検出と同等である場合に、不透明な述語を破ることができます。

私が理解しているように、攻撃者は正式な抽象解釈(AI)としての健全な近似を使用してプログラムのプロパティを取得しようとしている誰かとしての攻撃者のモデル。 AI手順が完了すると、攻撃者は成功します(非公式に言えば、抽象ドメインで取得された固定小数点は、具体的なドメインの固定小数点にも「マップ」されます)。

具体的には、攻撃者はモデルは、不透明な述語を解決するAIベースのアルゴリズムと見なすことができます。実際、このアイデアはいたるところに広がっています(たとえば、この論文で、著者はSMTソルバーで使用されるDPLLアルゴリズムも一種の抽象解釈であることを証明しています)。

明らかに、抽象解釈が完了していない最悪の場合、攻撃者は必要なプロパティを回復できない可能性があります(たとえば、近似することはできますが、適切に設計された不透明な述語の正確なソリューションを回復することはありません)。すべての攻撃をAIでモデル化できるかどうかはまだわからないため、抽象ドメインとしての攻撃者のモデルにはいくつかの制限があるのではないかと思います。次に、簡単な質問が私に届きます。「攻撃者が他の方法を使用して不透明な述語を解決するとどうなりますか?」

簡単な例として、攻撃者は動的分析を使用して不透明な述語をバイパスできます(彼はいくつかの誤りを受け入れますが、最終的には必要なプロパティを取得できる可能性があります)。

いくつか提案をお願いします?

実際の質問をより明確かつ具体的にするために言い換えてください。
私は質問をリファクタリングしましたが、それが十分に明確で具体的であるかどうかはわかりません。
二 答え:
debray
2013-07-02 09:11:40 UTC
view on stackexchange narkive permalink

難読化手法(またはその形式化)は、あるクラスの分析Aによって行われた1つ以上の仮定を対象としています。本質的に、難読化はプログラムP0を、P0と同じ実行動作を持つが、違反する別の表現P1に変換します。分析によってなされた仮定A.そうすることで、難読化は必然的にそれが効果的である攻撃のクラスを定義します。そのクラスに分類されない攻撃については何も述べていません。

抽象解釈は、健全な静的分析を前提としたプログラム分析の形式化です(たとえば、抽象ドメインおよび抽象化/具体化関数に課せられた要件を考慮してください)。 )。したがって、抽象解釈は、それらの仮定を行う難読化を形式化するのに役立ち、それらの仮定を満たす分析/攻撃について推論するのに役立ちます。考えられるすべての難読化について説明しているわけではありません。たとえば、ランタイムコードの生成または変更に依存する難読化については説明していません。また、これらの前提条件を満たさない攻撃についても説明していません。したがって、あなたが提案するように、動的分析または潜在的に不健全な手法を使用する攻撃者は、本質的に、抽象解釈によって想定されるルールを回避します。

PSS
2013-07-02 06:21:07 UTC
view on stackexchange narkive permalink

私がそれを正しく理解した場合、あなたは実際にあなた自身の質問に答えました:

...攻撃者は単に動的分析を使用して不透明な述語をバイパスできます(彼はいくつかの誤りを受け入れますが、最終的に、彼は必要なプロパティを取得できます。

不透明な述語、デバッグ防止手法、逆転防止手法、およびその他の保護メカニズムは、逆転を困難にするように設計されていますが、不可能になることはありません。時々、何かがどれほど正確に設計されたか、そしてそれが実際に何をするかはそれほど重要ではありません。優れたリバーサーは、コードと設計を設計した人よりもはるかによく理解し、攻撃を実装したり、パッチを作成したりできるようになることがあります。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...