Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バックドアの発見と検証

lumin
July 08, 2022

 バックドアの発見と検証

サーバやネットワーク機器、IoT機器のバックドアの分類と検証方法について。

lumin

July 08, 2022
Tweet

Other Decks in Technology

Transcript

  1. バックドアを仕掛ける意味 • 侵入を継続する 侵入してから仕掛けるもの、bind shell, reverse shell, web shell, root

    kit • メンテナンスやサポート、実装を容易にする • ディフォルトパスワード、メーカーアカウント、サポートアカウント, IPMI • 予め製品に仕込む • 個体識別アップデート、トレースビーコン、アクセス解析、故意の脆 弱性 • ソフトウェアサプライチェーン攻撃 • コンパイラ、Makefile、プルリクエスト
  2. 検査を逃れる方法と、逃れられない方法 • OSに依存する検査方法は、OSや検査するツールの書き換えで 発見できなくできる。(root kit) • * ファイルシステムから隠す、偽装する • *

    プロセスを隠す、偽装する • * 空きポートを隠す • * 再起動時すると消える • * メモリのみに存在する • パケット解析とフォレンジック解析、ファームウェア解析から は、どのような状態であれ、バックドアが動作したときには、 発見できる。
  3. バックドア検証のフロー • 対象を事前調査以内と必要な工数や見積れない。 • 必要なスキルを持つエンジニアをそれから確保する必要がある。 • x86 リバース • ARMリバース

    • 暗号解読 • ソースコード診断(各言語ごと) • フォレンジック • ペネトレーションテスト • バックドアがないことの証明は、バックドアがあることの証明より証明が必要な 範囲が広い。
  4. ログインプログラム 197x年に仕掛けられ 、1984に発表され普 及した。 この攻撃はコンパイ ラに仕掛けられたた め、ソースコードの みではわからないの で、バイナリコード での検査必要。UNIX

    系OSのバックドアプ ログラムではよく実 装された。Linux kernel kitなどにも使 用される。 ソースコードのみで は半手できないもの で、コンパイラに仕 掛けられたので、バ イナリでの検査が必 要とされた。
  5. • ルータやファイアウォールがある場 合に任意のポートやtcp/443,80,53 な どで待ち受けて、任意のコマンドを 実行できるマシン上でshellアクセス を可能にします。プライベートアド レスしか持っていなくてもアクセス 可能です。各言語ごとに開発されて います。これらのコードはウイルス

    対策ソフトで止まるケースも多々あ ります。 • プロセスとして残っているので全プ ロセスを検証かメモリフォレンジッ クをします。プロセス名などは変更 する偽装がされていることもありま す。 reverse shell
  6. Web shell Webサイトや、Web系システムに仕込んで利用する 。 PHP, Java, Ruby on Rails, Djangoなど様々なプラッ

    トホーム用にある。単純なコマンドインジェクション 、SQLインジェクションが可能になるようにコードを 仕込むこともある。 既存のWebShellはウィルス対策ソフトで発見できる ことが多い、組込み型は、発見が難しくすべてのコー ドを解析する必要がある。
  7. RAT

  8. バックドアの検証サービス • バックドアがないことを証明することを目的とする。バックドアが あった場合はその時点で終わることもある。 • IoTはファームウェアを入手もしくは取り出すことが第一ハードル (別途提供できる場合はした方が良い) • バイナリ解析はバックドアが仕掛けられる部分を中心に •

    かかる期間は解析すべきデータのサイズによる。2~12週ぐらい が一般的 • できる人は少ない。間違ったところに発注すると、脆弱性検査しか しない、Webしかできないなど実施すべき内容が不充分になる。