web-dev-qa-db-ja.com

MeltdownやSpectreなどのエクスプロイトはどのように認識されますか?

私が行った簡単な調査から、メルトダウンとスペクターの両方は、主に同じ人(ジャン・ホーン(Google Project Zero))によって発見されました。そのようなエクスプロイトは通常どのように気づかれますか/発見されますか?

3
Karan Shishoo

exploitvulnerabilityという用語を混乱させているかもしれません。

vulnerabilityは、バグまたは不十分な実装によって引き起こされる、セキュリティの「穴」です。セキュリティリサーチャー(ホワイトハットハッカー)、クラッカー(ブラックハットハッカー)、またはその間の人(グレーハットハッカー)によって検出されます。それらの人々はシステムに侵入して脆弱性に関する情報とそれらを修正(パッチ)する方法を提供するか、またはこれらの脆弱性をさまざまな目的に使用しようとしています。脆弱性の発見は非常に複雑なプロセスであり、非常に高いスキルが必要です。多くの場合、マシンコードレベルでの操作がほとんどです。研究者はコードを実行し、システムメモリの内容をデバッガーで読み取り、システムの動作を期待(または設計)とは異なるものにしようとします。たとえば、最近の脆弱性の場合のように、バグにより、プロセスが読み取ることを想定されていないメモリ領域を読み取ることができる場合があります。

exploitは、脆弱性を利用するソフトウェアの一部です。それはITの世界のロックピックです。エクスプロイトはハッカー(白、灰色、または黒の帽子)によって記述され、脆弱性の使用方法(このようなエクスプロイトはPoC-Proof of Conceptと呼ばれます)、またはシステムにアクセスするために脆弱性を使用します。検出された脆弱性に対するエクスプロイトが作成されます。

8
Jakub

Jakubの回答は一般的な質問に対応していますが、ここでは特にMeltdownについて説明します。ロイターはこの発見に関する記事を発表したばかりです 研究者が自分のコンピューターをハッキングして「最悪の」チップ欠陥を発見した方法

基本的に、発見は、科学における通常のように、複数のステップを必要としました。

  • 基本的な原理である サイドチャネル攻撃 は、何十年も前から知られています。特に、CPUには他のサイドチャネル攻撃があります。たとえば、2014年に最初に記述された row hammer などです。
  • Joanna Rutkowskaが書いている 2010年、彼女とRafałWojtczukは投機的実行を使用して、プロセッサを騙して特権メモリにアクセスさせようとしました。ただし、実際に攻撃を行っていなかったため、作品を公開することはありませんでした。
  • その上に、2017年7月にAnders Foghは ブログ投稿 投機的実行とサイドチャネル攻撃を組み合わせてユーザーモードコードからカーネルメモリを読み取る方法を推測(意図的にしゃれた)しました。しかし、彼は何とかして実際のエクスプロイトを実装しませんでした。彼の投稿は、2016年のCPUサイドチャネル攻撃に関する出版物を基にしています(引用している)。ちなみに、フォグはロウハンマーの研究も行っていました。
  • 複数の研究者がFoghの研究に基づいて構築を試み、2017年末までに実用的なエクスプロイトを生み出すことに成功しました。
  • 機能するエクスプロイトは、これらの脆弱性の実際のリスクと潜在的可能性への洞察を提供しました。
5
sleske