*ネットワークを利用した攻撃-その2*


ここでは引き続き、ネットワークを利用した攻撃とその防御について説明します。
以下、2人の会話をご覧ください。


後輩 せんぱ~い (^ー^*)
先輩 ビクッ!(゚Д゚;)
ど、どうした~?(〇o〇;)
後輩 この前のネットワーク攻撃の続き、教えてくださーい!
先輩 そ、そうか。確か途中だったよね。
ホッ。ε-(´▽`;
後輩 でも、最後に言われた一言が、まだ忘れられないんです~!(_ _;)
先輩 そ、そうか。。。(゚Д゚;)
ま、まぁ、なんだ、その、今度昼メシでもおごるから、勘弁してチョ!
後輩 ホントですか?
やったー!ヽ(^▽^@ノ
先輩 じゃ、気を取り直して。。。
攻撃には大きく分けて4種類ある、というところまではイイよね?
後輩 はい。4種類とも、ちゃんと覚えてますよ。d(>_< )
先輩 で、ここからは製品によって違うんだけど、基本的には4種類ともそれなりに防御する機能は付いているんだ。
後輩 攻撃パターンは決まっているから、防御方法は大体同じなんですよね?
先輩 そのとおり。
じゃ、まずは「ピンポンダッシュ」系から。
後輩 でも、呼び鈴が聞こえたときに誰が呼び鈴を押しているかなんて、分からないですよね?
どうやって調べるんですか?
先輩 いや、現実世界では確かにそうだが、パケットには必ず送信元IPアドレスが書いてあるから、実際には誰から来たのかが分かる。
後輩 あ、そういえばそうでした。
でもそれだけじゃ、正規の通信なのか、探られているのかまでは分からないですよね?
先輩 そうだね。確かに分からない。でも、必ずファイアウォールを通過するような構成になっていれば、ファイアウォールがパケットの送信元IPアドレスを見ることは出来るね。
後輩 でもでも、ポリシー上は許可されているわけだから、送信元IPアドレスが分かったところでどうしようもないんじゃないですか?
先輩 さぁ、そこだ。( ゚Д゚)_σ
例えば、自分の家でピンポンダッシュされたら、まずどうする?
後輩 う~ん(ーー;)
きっと、最初は出ちゃうでしょうね。。。
先輩 じゃ、2回目以降はどうだろう?
後輩 その後すぐに来たら、玄関までは行きますけど、いちおうドアスコープで外を確認するでしょうね。
さらに連続したら、さすがに玄関にも行かなくなると思います。
先輩 基本的にはその考え方と一緒だよ。現実世界と違うのは、通過するパケットの送信元IPアドレスが分かるので、「誰が鳴らしているか」が分かる、という点かな?
後輩 そっか!(・0・☆)
同じ送信元IPアドレスのパケットがこちらの環境を探るように何度も来ていたら、次回から拒否すればいいんですね?
先輩 そう( ̄ー ̄)
例えば、普通の端末が一定時間内に大量のSYNパケットを複数の相手に出すなんて、本来あり得ないからね。
後輩 なるほど~。でも、これもステートフルインスペクションの話と同じで、何をもって正しいとするかが難しいですね。
管理者の人とか、構築作業中とか、一時的にそういう通信を使いたい場合もあるんじゃ。。。?
先輩 うん、そのとおり。
それは他の防御機能にも言えることだね。チェックの仕組み自体は単純だから、使う人が指定する条件によって有効にもなるし、無効にもなるんだ。
後輩 「ピンポンダッシュ」系の防御機能では、何か検出条件を変えられるんですか?
先輩 設定があるとしたら、「同一IPアドレスから来る単位時間当たりパケットの頻度」かな?
後輩 じゃ、ゆっくりピンポンダッシュすれば、拒否されないかも。。。?(・o・)
先輩 そうだね。だけど、時間を掛けさせるというのは割と有効な防御策なんだよ。
後輩 なるほど~。
そういえば現実世界でも、空き巣が鍵を開ける努力をするのに費やす時間は決まっているそうですね?
先輩 そういうこと( ̄ー ̄)( ̄ー ̄)
じゃ、次は「人海攻撃」系ね。
後輩 もしかして、これもさっきのピンポンダッシュと同じじゃないですか?
同じ送信元IPアドレスから大量のパケットが来るんですよね?( ̄∇ ̄+)
先輩 そうそうそう( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)
良く分かったね。
後輩 じゃ、もしかして同じように「単位時間当たりの頻度」が指定できるとか?(o・ω・o)b
先輩 おぉ、勘がいいな。
後輩 じゃ、もしかして同じようにゆっくりパケットを出すと検出されないとか?(o・ω・o)b
先輩 おぉ、勘がいいな。と言いたいところだが、さっきとは微妙にニュアンスが違うぞ。(* ̄ー ̄)"b"
ゆっくりパケット出したら大量じゃなくて「少量パケット」だから、ほぼ攻撃を封じたことになる。
後輩 あらら、調子に乗りすぎました。
てへっ(*^▽^;ゞ
先輩 まぁ、でもスジはイイぞ。
調子がいいので、次の「なりすまし」に行こう。
後輩 う~ん、これは難しいですね。
送信元IPアドレスが分かっても、どうやって「なりすまし」かどうか判断するんでしょう。。。?
先輩 これは少し難しいので、図に書いてみよう。
例えばこんな構成があったとして。。。(..)

Attack図1

後輩 このままルータを通過したら、パケットを出した端末ではなくて隣のサーバに戻りのパケットが転送されてしまうわけですね?
先輩 そう。隣のサーバから見たら、「おまえ、何やってんだヨ~!(゚Д゚)」となるわけだ。
で、この場合、本当に隣からパケットが来た場合とは何が違う?
後輩 えっと、、、。
パケットが来た経路の違いぐらいしかないと思うんですけど。。。 (;´Д`)
先輩 おぉ、正解だ!( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)
横から来ているか、上から来ているかの違いがあるね。
後輩 でも、ルータに「横」とか「上」とか言っても分かってくれませんよ?
先輩 いや、分かってもらう方法があるぞ。
それは、ルーティングテーブルだ!
後輩 「ルーティングテーブル」って、経路情報が書いてあるルーティングテーブルのことですか?
先輩 そう。
ルーティングテーブルの中には、何が書いてある?
後輩 えっ?
ネットワークアドレスとマスクに、インターフェースに、ゲートウェイIPアドレスに、あとはコストとかフラグとか、ですか?
Network/MaskInterfaceGatewayFlagMtr
0.0.0.0/0ethernet0(上側NIC)X.X.X.XStatic1
10.0.0.0/24ethernet0(上側NIC)Y.Y.Y.YConnect0
192.168.1.0/24ethernet1(下側NIC)192.168.1.254Connect0
先輩 最初の2列を見ると、ネットワークがどのインターフェースに紐付けされているかが分かる。
つまり、ルータにとって「横」とか「上」とかいうのが分かるだろう?
後輩 あっ、確かにそうですね!(・0・☆)
さっきの図だと、「192.168.1.0/24」は下のインターフェースに存在しなければならないことになりますね?
先輩 そうそうそうそうそう( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)( ̄ー ̄)
経路的には下のインターフェースに向いているはずだから、上から来るのは正しくない、ということになる。
後輩な、なるほど~!
一時はどうなることかと思いましたが、これなら正しく区別できますね!
先輩 もちろん、手動で「こっちからこれが来たらダメ」と個別に設定していく機器もあるけど、そういう設定がない場合は基本的にこういうチェックをしていると思ってくれ。
後輩 了解です(^-^ゞ
先輩 で、最後に「死の言葉」の防御方法だけど。。。
これは単にパケット内の情報を見て、「死の言葉」が入っているかどうかを確認するだけだから簡単だ。
後輩 えっ、それだけですか?
先輩 そう、それだけ。
後輩 。。。(・ー・)
先輩 。。。(・ー・)
後輩 な、なんか、最後は簡単でしたね。 (´・ω・`)
先輩 なんか、尻つぼみになってしまったなぁ~。。。
「なりすまし」を最後に持って来るべきだったか?(_ _;
後輩 いや、何かのセミナーじゃないんだし。
無理に、最後にオチを持って来なくてもいいんですヨ?( ^ -^)/(-_-;)

以上でネットワークを利用した攻撃の話は終わりです。
さらに興味のある人は、案件事例「こんな案件が来たら」をご覧ください。。。

ネットワークセキュリティ関係者の部屋 > ネットワークセキュリティ実践劇場 > ネットワークを利用した攻撃-その2