Upload
slankdev
View
39
Download
0
Embed Size (px)
Citation preview
ARP スプーフィングによる中間者攻撃
Slank ( すらんく )
アジェンダ
・ ARP スプーフィングを利用したMITM攻撃 ( 中間者攻撃 )
・ 攻撃検知について少しだけ
ARP の攻撃について話します
Address Resolution Protocol ( アドレス解決プロトコル、略称: ARP 、アープ ) は、イーサネット環境において、 IP アドレスからそれに対応する MAC アドレスを動的に得るために用いられるプロトコル。 RFC 826 で定義され、その後 RFC 5227 、 RFC 5494 により内容のエンハンスが行われている。
TCP/IP において、 IP パケットを送受信するためには、下位のデータリンク層のアドレスを取得する必要があり、MAC アドレスが必要な場合に ARP が用いられる。イーサネットの場合論理的な IP アドレスを物理的なハードウェア・アドレスである MAC アドレスに変換する必要がある。
( 引用 :Wikipedia)
ARP スプーフィングARPスプーフィング(アープスプーフィング)とは、 ARP プロトコルの応答を偽装することにより、LAN 上で通信機器のなりすましを行なう技法である。とある IP アドレス宛にパケットを送信したい場合、まず「この IP アドレスに対応する通信機器はどれか ? 」という質問を記述した ARP 要求がブロードキャストで発信され、該当するノードが ARP 応答で「その IP アドレスに対応する MAC アドレスは私である」とユニキャストで答える。これにより IP アドレスと MAC アドレスの対応付けが実現し、以降はその MAC アドレスを宛先とする通信が行なわれることとなる。イーサネットは、この仕組みによって作成された ARP テーブル ( アドレス対照表 ) を信じる事で成り立っているので、この ARP の応答を偽装すること により誤った ARP テーブルを覚え込ませてしまえば、異なる通信機器へパケットを流す事が可能となる。すなわち、機器のなりすましを行なうことができてし まい、特にルーターになりすますと LAN から WAN への通信をことごとく盗聴することができることになる。一般に、 LAN に使うハブに単純なハブではなくスイッチ / ブリッジ機能を持つものを導入すれば盗聴に対して強固となる事が言われるが、上記の手法を用いればスイッチド・ネットワークにおいてもその危険性は存在する。
( 引用 :Wikipedia)
ARP スプーフィングについてターゲット攻撃者
IP: 192.168.0.2MAC: bb:bb:bb:*
IP: 192.168.0.3MAC: cc:cc:cc:*
ARP Table (Before)IP MAC192.168.0.1 aa:aa:aa:*
ARP Table (After)IP MAC192.168.0.1 cc:cc:cc:*
改竄
operation ARP Replysrc hardware addr cc:cc:cc:*src protocol addr 192.168.0.1dst hardware addr bb:bb:bb:*dst protocol addr 192.168.0.2
ARP Reply偽装偽装 ARP を送信
「 192.168.0.1 は cc:cc:cc:* ですよー」というメッセージを送信。ターゲットは、ルータ (192.168.0.1) に送信するはずが、攻撃者の
コンピュータに通信をしてしまう。。。。
ルータ
IP: 192.168.0.1MAC: aa:aa:aa:*
攻撃者
IP: 192.168.0.3MAC: cc:cc:cc:*
ターゲット
IP: 192.168.0.2MAC: bb:bb:bb:*
ルータ
IP: 192.168.0.1MAC: aa:aa:aa:*
正常なパケットと異常なパケット
operation ARP Replysrc hardware addr cc:cc:cc:*src protocol addr 192.168.0.3dst hardware addr bb:bb:bb:*dst protocol addr 192.168.0.2
ARP Reply 正常な パケット
operation ARP Replysrc hardware addr cc:cc:cc:*src protocol addr 192.168.0.1dst hardware addr bb:bb:bb:*dst protocol addr 192.168.0.2
ARP Reply 異常な パケット
送信者 hardware アドレスとProtocol アドレスが一致
送信者 hardware アドレスとProtocol アドレスが不一致
このような送信元を偽装したパケットを送って、
ターゲットの ARP テーブルを強制的に改竄させる
MITM 攻撃 ( 中間者攻撃 )
暗号理論において、中間者攻撃 ( ちゅうかんしゃこうげき、 man-in-the-middle attack 、 MITM と略記されることもある ) またはバケツリレー攻撃 ( バケツリレーこうげき、 bucket-brigade attack) は、能動的な盗聴の 方法である。中間者攻撃では、攻撃者が犠牲者と独立した通信経路を確立し、犠牲者間のメッセージを中継し、実際には全ての会話が攻撃者によって制御されて いるときに、犠牲者にはプライベートな接続で直接対話していると思わせる。攻撃者は 2 人の犠牲者の間で交わされている全てのメッセージを横取りし、間に別 のメッセージを差し挟む。これは多くの状況で容易なものである。( 例えば、公開された無線アクセスポイントの所有者は、ユーザへの中間者攻撃を実行することが、本質的に可能である。 )
( 引用 :Wikipedia)
インターネット
インターネット
正常な通信異常な通信 ( 中間者攻撃をされている )
ターゲット攻撃者
ターゲットとルータの通信の中間に入っている
ターゲット
中間者攻撃について
ARP スプーフィング攻撃で、ルータとターゲットの
ARP テーブルを改竄して、通信に入り込んで、
通信内容を傍受、改竄することができてしまう。
攻撃実験実験環境
ターゲット windows 8.1 IP 192.168.179.10MAC 5c:51:4f:*
攻撃者 Ubuntu gnome 14.04 LTSIP 192.168.179.6MAC a6:12:42:*
攻撃環境攻撃コードは libpgen を使用して作成。ARP スプーフィング攻撃をルータとターゲットに行い、それらの通信内容を盗聴する MITM 攻撃 ( 中間者攻撃 )を行う。
実験は自己責任で、からなず自分のテスト環境のみで行いましょう。パブリックネットワークでこの実験をすると、もちろん犯罪になります。。。
攻撃実験インターネッ
ト
SW
ターゲット
ルータ
攻撃者
攻撃者の作業準備1 カーネルの ip_forrward を有効にする2 ARP スプーフィング攻撃で、ルータとターゲットの ARP テーブルを書き換える。 (作成した攻撃プログラムを使用する。)
MITM 攻撃が成功したら1 pcap ファイルに通信内容が保存されているので、あとは煮るなり約なり某パケットキャプチャに食べさせるなり。2 sslstrip などを使えば、 ssl の通信も丸見えになるかも。。。
攻撃者の作業● カーネルの ip_forrward を有効にする
攻撃者の作業● ARP スプーフィング攻撃で、ルータとターゲットの ARP テーブルを書き換える。 (作成した攻撃プログラムを使用する。)
これで攻撃が成功しているはずなので、あとは気長に待つ… ..
ターゲットでの作業● 普段どうりにネットサーフィンなどをしましょう。今回は、解析が楽な画像検索を行います。
ターゲットでの作業● slankdev.net につないでみた
どの作業も、不自由なく行えているが……
攻撃者側では…● 保存されている pcap ファイルを wireshark で開いて、 http object を見てみると… ..
調べている画像がばれてしまう ..こんな画像程度ならいいけど、見られたくないものだったりしたら… .
攻撃者側では…● ディスプレイフィルタで DNS パケットに絞って、内容を見てみると…
DNS クエリの情報から、つないでいるサイトがばれてしまう。この程度なら問題ないが、大事なログイン情報などまで筒抜けだったら… ..
ARP スプーフィングを検知する方法① 怪しい通信を発見するIP アドレスと MAC アドレスのリストをネットワーク管理者が一定時間ごとに調べ、リストと異なるARPパケット (MAC アドレスのみの変化 ) などをリストアップする。また、ネットワーク管理者のコンピュータ自体が攻撃されることもあるので、リストの変化も攻撃による可能性もある。
IP MAC192.168.0.1 aa:aa:aa:*192.168.0.2 bb:bb:bb:*192.168.0.3 cc:cc:cc:*192.168.0.4 dd:dd:dd:*
IP MACある時刻での アドレスと アドレスの対応表1
IP MAC192.168.0.1 aa:aa:aa:*192.168.0.2 cc:cc:cc:*192.168.0.3 cc:cc:cc:*192.168.0.4 dd:dd:dd:*
IP MACある時刻での アドレスと アドレスの対応表2
例2二つのホストが同じ MAC アドレスになっているので、明らかにおかしい
例1リストと違うペアのパケットが
流れていて、怪しい。。
ARP スプーフィングを検知する方法② ①のパケットを解析して、攻撃者を特定するリストアップされたパケットの改竄部分が攻撃者のアドレスとなるので、そのアドレスのコンピュータを攻撃者と特定。
operation ARP Replysrc hardware addr cc:cc:cc:*src protocol addr 192.168.0.1dst hardware addr bb:bb:bb:*dst protocol addr 192.168.0.2
ARP Reply 異常な パケット ARP スプーフィングによる中間者攻撃の場合この部分が攻撃者のアドレスである可能性が高い
攻撃者の MAC アドレスは cc:cc:cc:* の可能性が高い
このようにして、攻撃者を特定していくのだが、検知ミスなどや、攻撃検知をかいくぐってくる攻撃もあるかもしれないので、安心はできない
まとめ:どのようにして攻撃検知をするか
① 攻撃ごとの特徴をつかみ、その通信を論理的にまとめたルールを作る。② 定めたルールに引っかかる通信を解析して、攻撃者を割り出す。③ 誤検知や検知できないものもあるので完璧ではない。 (今後もっと調べていきます。 )
実際に目だけで攻撃を探してみたARP スプーフィングのみを探すことにします。ディスプレイフィルタで ARP のみを絞ってみていると、、、Wiresahrk さんが教えてくれている。。。??
なんか言ってる… ..
実際に目だけで攻撃を探してみた攻撃より前にパケットキャプチャを初めていれば、 IP アドレスと、 MAC アドレスの対応リストと違うパケットが流れていたら、教えてくれる!! (やはり wireshark すごい!! )
攻撃後にキャプチャを始めても、別々の IP アドレスなのに MAC アドレスが重複しているものがある。
まとめ
超頑張ってパケットを目で見れば、どんな攻撃でも、わかるかもしれない。一つ一つの攻撃を理解するのには、プロトコルの知識が必要不可欠なので、勉強になる。
今後は、コンピュータに攻撃を検知させて、ネットワーク管理者に通知する、などについてもやってみようと思った。Snort など。
厨二心をくすぐられるので、面白かった。
実際に、この攻撃に対する厳密な防御法はまだ確立されていなく、いろいろなところで攻撃が成功してしまうかもしれない。