Share
Embed
Transcript
30 slides
-
バックドアを仕掛ける意味 • 侵入を継続する 侵入してから仕掛けるもの、bind shell, reverse shell, web shell, root
kit • メンテナンスやサポート、実装を容易にする • ディフォルトパスワード、メーカーアカウント、サポートアカウント, IPMI • 予め製品に仕込む • 個体識別アップデート、トレースビーコン、アクセス解析、故意の脆 弱性 • ソフトウェアサプライチェーン攻撃 • コンパイラ、Makefile、プルリクエスト -
作為と不作為 • バックドアがあった場合、そのバックドアがどのようない意図 で設置されたのかは、バックドアの種類によって分類できる。 しかしながら、バックドアの存在だけでは判定できないものも ある。 • 作為のバックドア • 侵入後に作成するバックドア(bind
shell, root kit)、RAT • 不作為のバックドア • IPMI • 不作為の作為バックドア • 修正しない脆弱性 -
検査を逃れる方法と、逃れられない方法 • OSに依存する検査方法は、OSや検査するツールの書き換えで 発見できなくできる。(root kit) • * ファイルシステムから隠す、偽装する • *
プロセスを隠す、偽装する • * 空きポートを隠す • * 再起動時すると消える • * メモリのみに存在する • パケット解析とフォレンジック解析、ファームウェア解析から は、どのような状態であれ、バックドアが動作したときには、 発見できる。 -
バックドア検証のフロー • 対象を事前調査以内と必要な工数や見積れない。 • 必要なスキルを持つエンジニアをそれから確保する必要がある。 • x86 リバース • ARMリバース
• 暗号解読 • ソースコード診断(各言語ごと) • フォレンジック • ペネトレーションテスト • バックドアがないことの証明は、バックドアがあることの証明より証明が必要な 範囲が広い。 -
ログインプログラム 197x年に仕掛けられ 、1984に発表され普 及した。 この攻撃はコンパイ ラに仕掛けられたた め、ソースコードの みではわからないの で、バイナリコード での検査必要。UNIX
系OSのバックドアプ ログラムではよく実 装された。Linux kernel kitなどにも使 用される。 ソースコードのみで は半手できないもの で、コンパイラに仕 掛けられたので、バ イナリでの検査が必 要とされた。 -
• ルータやファイアウォールがある場 合に任意のポートやtcp/443,80,53 な どで待ち受けて、任意のコマンドを 実行できるマシン上でshellアクセス を可能にします。プライベートアド レスしか持っていなくてもアクセス 可能です。各言語ごとに開発されて います。これらのコードはウイルス
対策ソフトで止まるケースも多々あ ります。 • プロセスとして残っているので全プ ロセスを検証かメモリフォレンジッ クをします。プロセス名などは変更 する偽装がされていることもありま す。 reverse shell -
Web shell Webサイトや、Web系システムに仕込んで利用する 。 PHP, Java, Ruby on Rails, Djangoなど様々なプラッ
トホーム用にある。単純なコマンドインジェクション 、SQLインジェクションが可能になるようにコードを 仕込むこともある。 既存のWebShellはウィルス対策ソフトで発見できる ことが多い、組込み型は、発見が難しくすべてのコー ドを解析する必要がある。 -
個体識別可能なサーバープッシュアップ デートプログラム 機器の個体番号やシリアル番号等をサーバーに送 信して、利用者を特定できる状態で、サーバー側 でファームウェアのアップデートの配信と自動更 新を行える仕組みを持つファームウェア、ソフト ウェア。 上記のLTEモジュールは、IMEIをHUAWEIのアッ プデートサーバに送信して、定期的にアップデー ト確認をしている。アップデートするファームウ
ェアはHUAWEI側の判断で任意のファームウェア に入れ替えが可能である。中身は組込みAndroid Linuxである。できる機能は、アプリケーション 間で正しく暗号化されていないものは制御できる 可能である。 自動アップデートプログラムを 検査する。 -
ディフォルトパスワード ディフォルトパスワードは一番多く利用されるバ ックドアである。IoT機器では一番多い脆弱性で 最も最も危険なものである。個別のパスワードは 実装が固定パスワードより様々な工数がかかるた め、よく使われている。マニュアルに書いてある ことが多いため、マニュアルを入手できれば書い てある。検査方法はマニュアルを検査するだけで よい。admin :
password や root: 12345678 admin : admin 、 パスワードなしなどわかりやす いものも多い。 -
メーカーアカウント ユーザには公開していないメーカーエンジニア用のメンテ ナンスのアカウント。 ibm, nec, fujitsu など企業名や製品名そのままのことが多い 。 などわかりやすいものが多い。主として機器のメンテナンス 用に利用されるが、ファームウェアの解析により第三者に悪
用されることも多い。 ファームウェアのリバースエンジニアリングによって検証で きる。 -
ハードウェアディバッグポート ハードウェアに残っているシ リアルポート。JTAGポート。 ハードウェアのデバッグ用に 意図的に残っていることが多 い。 CPUのデータシートからシリ アルとJTAGのピンを特定しパ ターンからポートがあるかど うかをかくにんし、通電状態
などから動作するかどうかを 検証する。JTAGはパスワード がかかっていることもあり容 易に使えないケースも多い。 -
バックドアの検証サービス • バックドアがないことを証明することを目的とする。バックドアが あった場合はその時点で終わることもある。 • IoTはファームウェアを入手もしくは取り出すことが第一ハードル (別途提供できる場合はした方が良い) • バイナリ解析はバックドアが仕掛けられる部分を中心に •
かかる期間は解析すべきデータのサイズによる。2~12週ぐらい が一般的 • できる人は少ない。間違ったところに発注すると、脆弱性検査しか しない、Webしかできないなど実施すべき内容が不充分になる。