web-dev-qa-db-ja.com

脆弱性の研究:リバースエンジニアリング、デバッグ、またはファジング?

ハッカーはどのように脆弱性を見つけるのでしょうか。

ファジングを使用する場合、セキュリティエンジニアはそれを実行します。セキュリティエンジニア(会社で働く)は、ハッカーのグループよりも多くのリソースを持っている可能性があります。

リバースエンジニアリングには時間がかかり、信頼できるとは言えません。それは本当ですか、それとも私は何かを逃していますか?

私の頭にあるのは、ハッカーがブラウザの脆弱性を見つけてそれを悪用する一日があるこれらのコンテストです。彼らはそれをどのように行うのですか?また、オープンソースのブラウザー(クロム)に割り当てられる時間は、クローズドソースのブラウザー(Internet Explorer)に割り当てられる時間と同じです。

9
jaja

オーバーフロー関連の脆弱性を悪用するための基本的な方法は、クラッシュ(ファジングによることが多い)を見つけ、そのクラッシュを評価し、それが攻撃パスを示しているかどうかを確認してから、何かを構築して悪用することです。

チャーリーミラーがiOS 4.3に 署名されていないコードを実行する となるメモリのセクションがあることを指摘したときなど、見た目にはアーキテクチャの知識が含まれる場合があります。彼のすべてのApple=攻撃の場合、ソースは閉鎖されたと思います。SQLインジェクションの弱点は似ています。あなたは、どこが良い場所かを知っているベビーベッドから始めています。

クラッシュを発見した後、ソースを介してバグを特定して修正するのが最も簡単ですが、環境を設定する作業は、実用的なエクスプロイトを作成することだけが目的である場合、価値がない場合があります。多くの場合、プログラムの関連スペースには、1 KB未満のマシンコードの調査が含まれます。

私の見解では、オープンソースを使用すると、バグが発生するたびに追加されるバグを確認し、「ちょっと、ソースのその部分は異常に見える」と言うことができます。それを超えて、クローズドソースとオープンソースの作業を利用する作業は、多くの場合同じです。リバースエンジニアリングについては、アプリケーションからエクスプロイトを起動するのではなく、アプリケーションを変更または再作成しようとしない限り、これはまれです。

ハッカーグループが多くのコンピューティングリソースをタスクに費やす能力を過小評価しないでください。 Warezグループは、インターネットの歴史を通じて、大量のストレージと帯域幅のリソースを集めることで知られています。ハッカーグループが同じ規模のCPUパワーを要求しないと考えるのは、世間知らずかもしれません。

最後に、これを十分長い時間行うほとんどの人は、発見されたエクスプロイトをリリースするのではなく、リリースするのではなく、2倍にします。

12
Jeff Ferland

仮定を確認するには:

多くの攻撃グループは、企業のリソースよりもはるかに大きなリソースを持っています

  • 一般的な企業では、セキュリティはコストセンターであるため、スタッフやお金が足りません。
  • ブラックハットの世界では、セキュリティの欠陥を見つけることは収入源です

ファジングはセキュリティエンジニアとブラックハットによって行われます

  • ファジングは、その性質上、誤りの可能性があります。多くの異なるファジングアルゴリズムを使用できるため、すべての問題を見つけることができません(これはすべてのセキュリティテストに明らかに当てはまります)

リバースエンジニアリングには時間がかかります

  • 絶対に、しかし、これは黒い帽子が持っているものです。賢い子供たちのチームを雇って、コードをリバースエンジニアリングするだけです。コードを密輸するために個人を開発チームに配置する人もいます。それがお金を稼ぐ場合、一般的な経験則は誰かがそれを試すことです。

1日のエクスプロイトコンペティション

  • Charlie Miller 彼自身は、これらのコンテストの前にエクスプロイトを開発し、いくつかのツールを用意していると述べています。
9
Rory Alsop

脆弱性の主な原因は、故意ではなく事故です。

ブラウザーがクラッシュすると、セキュリティの専門家がデバッガーで発生した状況をデバッグし、クラッシュを再現できるかどうかを確認します。したがって、それは脆弱性を探すのではなく、発生時に脆弱性に気づくことから来ます。

Webサイトの構築などのプログラミングの際に、不明瞭な機能を使用する場合、専門家はその不明瞭な機能がどのように機能し、誤って使用するとどうなるかを自問します。

Charlie Millerのようなものによって発見された脆弱性は比較的少数です。それらのケースでは、製品をリバースエンジニアリングするのに何年も費やしており、既存の知識に基づいて脆弱性を繰り返し見つけることができるからです。

1