SCAN DISPATCH :PC内のプログラムを組み替えて悪意のあるコードを作成 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2017.12.15(金)

SCAN DISPATCH :PC内のプログラムを組み替えて悪意のあるコードを作成

国際 海外情報

 SCAN DISPATCH は、アメリカのセキュリティ業界及ハッカーコミュニティから届いたニュースを、狭く絞り込み、深く掘り下げて掲載します。

──

 PCに既にインストールされているプログラムを拝借してそのコードを組み替え、悪意のある動作をさせてしまう……、そんな信じられない新しいカテゴリの攻撃を解説したホワイトペーパーが発表されている。カリフォルニア大学サンディエゴ校の研究者らが発表したホワイトペーパー「When Good Instructions Go Bad:Generalizing Return-Oriented Programming to RISC」がそれだ。著者の一人、Ryan Roemer 氏とメールインタビューが成功したので紹介しよう。

 この、「良い」コードから適当に命令を選んで悪意のあるコードを作ることを Return-Oriented Programming と呼ぶ。「ちょうど、700ページある本から語句を適当に選んで、50ページの全く関係ない小説を書いてしまうのと同じ」と、同校のプレスリリースでは説明している。この名前は、悪意のあるコードを作る際に必要な“良い命令”が、リターンで終わっている必要があることからつけられたそうだ。

 Return Oriented Programing のアイデア自体は新しいものではない。今回このペーパーを共著した同校の Hovav Shacham 教授が昨年、そのコンセプトを発表している。が、非常に高度な技術を持った人が、1行づつ手作業でコーディングしなければならなかったし、x86のみに限定されたものだと思われていたため、現実的なエクスプロイトの可能性は低いと考えられていた。ところが、今回のこのペーパーで、プラットフォームを限定しないことと、悪意のあるコードを作る作業が自動化できることがわかり、現実的なセキュリティ・リスクであると再び注目を浴びることになったのだ。

 この攻撃は、まずリモートの攻撃者がなんらかの方法でPCにアクセスすることから始まる。ひとたびターゲットのPCにアクセスできたら、そのPCにあるプログラムのバグを利用して runtime stack を書き換えてしまう。それにより、例えば、ブラウザを勝手に立ち上げてプログラムを勝手にダウンロードさせることやキーロガーとして動作させること、メールクライアントにスパムを送らせることなどが可能となる。

 実際にこの攻撃を行うためには、プログラムの解析をしてバグを見つける必要があるが、例えば、C++のスタンダードのライブラリ・ファンクションにバグがあるとうすると、そのファンクションを使っているプログラムは全て、この攻撃に利用できることになる。ホワイトペーパーの著者が「Return-Oriented Programming は、今まで考えられていたよりも深刻な問題であることが分かった」と言うように、この攻撃により、悪意のあるコードの動作をストップするタイプのセキュリティ製品は全く役に立たなくなってしまう。例えば、IntelやAMDのチップには特定のメモリ領域ではコードが実行できないようになっており、OSはこれを利用してインプットされたデータをコードとして実行できないようにしている。が、 Return-Oriented Programming を利用した攻撃の場合、悪意のあるコードが実効されたのでなく、スタックが“ハイジャック”されて良いコードを悪意のある方法で実行されているため、こうしたセキュリティ手段が無効になってしまう。

 既存のプログラムが改変されていないか、怪しいプログラムやコードが存在しないかをスキャンする方法のアンチウイルスプログラムも無効である。ペーパーの著者の一人、Ryan Roemer 氏によると「(僕らが作ったエクスプロイトでは)32ビットのアドレスを持ったかなり大きいバッファのペイロードのストリングを注入するから、これを固定領域のインテジャーとして認識できるから、インジェクションが行われているかどうかをチェックする方法ならば、Return-Oriented のペイロードを検知することも理論的には可能」ということだ。

 ペーパーでは、エクスプロイトも例としてあげている。それには

(1)インジェクションの脆弱性があるプログラム(ペーパーではstrcpy string buffer overflowの脆弱性があるものを使っている)
(2)Return-Oriented gadgetの命令シークエンスの、アドレスの場所を推測あるいは計算できること
(3)エクスプロイトのペイロードをまとめて注入する、

 というステップがあればエクスプロイトは作れるとしている。そのため Ryan Roemer 氏は、エクスプロイトの現実性という点では「研究成果として発表した、turning-completeのガジェットのセットやエクスプロイトAPI、専用エクスプロイトコンパイラに匹敵する複雑な攻撃はまだ実際には目にしていない。が、これらの技術の一部が、一つのLibc function以外の場所にもジャンプする先進的なreturn-to-libc のエクスプロイト(”古典的”で一般的なreturn-to-libcエクスプロイトの場合は一つのLibc functionにしかジャンプしない)に使用されているという証拠がある。例えば、CCS Security Conferenceでも、他の研究者たちがワイアレス・センサー・ノードへの攻撃に、Return-Oriented Programmingを使っていた」ということで、将来的には「Return-Oriented Programmingを使用した攻撃が増えることは間違いない」とペーパーでは予測している。

 さて、この攻撃を阻止する方法はどうだろうか…


【執筆:米国 笠原利香】

【関連リンク】
When Good Instructions Go Bad:
Generalizing Return-Oriented Programming to RISC
http://cse.ucsd.edu/~rroemer/doc/sparc.pdf
──
※ この記事は Scan購読会員向け記事をダイジェスト掲載しました
購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw
《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

Scan BASIC 会員限定記事

もっと見る

Scan BASIC 会員限定記事特集をもっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)

もっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)特集をもっと見る

カテゴリ別新着記事

国際 カテゴリの人気記事 MONTHLY ランキング

  1. 死亡した男性のメールアカウントを巡るヤフーと裁判所の争い(The Register)

    死亡した男性のメールアカウントを巡るヤフーと裁判所の争い(The Register)

  2. どこかへ跳んでいけ、出来の悪いラビット(The Register)

    どこかへ跳んでいけ、出来の悪いラビット(The Register)

  3. 米軍のSNSに対する膨大なスパイアーカイブ、AWS で数十テラ閲覧可(The Register)

    米軍のSNSに対する膨大なスパイアーカイブ、AWS で数十テラ閲覧可(The Register)

  4. 捜査中だった米大統領選に使用されたサーバのデータが消失(The Register)

  5. 「Tor 禁止令」を解く Facebook、暗号化の onion アクセスポイントを宣伝~これからは暗号化通信も完全に OK(The Register)

  6. ロシアが中印らと独自インターネット構築か、グローバルDNS分裂の危機を追う(The Register)

  7. Anonymousが幼児虐待の秘密の拠点を閉鎖~Tor小児愛者を攻撃し氏名を暴露(The Register)

  8. インドのレジストリで情報漏えい、インドのネットを壊滅させるデータのビットコイン価格とは(The Register)

  9. WPA2の新たな脆弱性への攻撃KRACK、暗号化技術の根底にある欠陥(The Register)

  10. Mac OS X のシングルユーザモードの root アクセス(2)

全カテゴリランキング

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×