]IT用語/DoS攻撃あれこれDoS攻撃あれこれ(2014-09-27、更新:2016-11-18)この手の話題は尽きること無いので、適宜更新していきたいな~とは思っていますが、とりあえず現状整理しておきたいものだけでも列挙していきます。attack:サービス停止攻撃、サービス拒否攻撃など)DDoS攻撃(ディードス。一般的には、攻撃対象のシステムに対して過剰な負荷をかけて、そのシステム本来の機能/サービスを停止させる攻撃手法。やり方は様々で(後述)、システムの脆弱性を突くものから正常な通信だけど異常なほど大量に送りこむものなど、何でもあり。それらに対して真面目に対策を講じなければならないシステム管理者はたまったものではないですね。↑DDoS攻撃(ディードス。何が「分散」かというと、攻撃者が分散(不特定多数)ということ。犯人は一人でも、他の複数の踏み台サーバを経由したり、ボット(BOT*1)等のウィルスで感染させたPC群から、1つの攻撃対象めがけて一斉に攻撃します。メリット(?)は、防御側は不特定多数の攻撃元(IPアドレス)から来るのでファイアウォール等で防ぐのが面倒になる(逆に特定の攻撃元の場合は、そのIPアドレスからの通信をDenyしてしまうだけで済む)。攻撃側としては、足がつきにくい、自分の正体がバレにくいなど。対策は難しいですが、例えば過剰な通信(攻撃とみなせる通信)を自動で止めたり、通信に優先度をつけたりする等(電話で言えば119番とかの緊急回線用の帯域は別枠として確保しておく、とか)。ここまでくると単純なファイアウォールより一段上の設備が必要になりそうですね。送信元IPアドレスを詐称して攻撃を仕掛ける方法。プログラミングやらない人はイメージつきにくいかもしれませんが、送信元IPアドレスって簡単に詐称でます。*3また、DoS攻撃が目的なら当然応答なんて期待してないので、むしろ送信元IPなんて詐称した方がお得です。ファイアウォールの設定は送信元IPアドレスが社内か社外かを基準にすることが多いので、社内のネットワークIPアドレス*4を詐称して攻撃を仕掛けます。グローバルなIPアドレスで詐称してくるようなら、IPSec等のセキュアな通信と組み合わせて対応する必要が出てくるので、面倒くさいですね。†まずTCPの3Wayハンドシェイクはググってくださいという前提で。・・・ごめんなさい、概要だけ書きます。太郎さんは、次郎さんと通信がしたいので、まず、太郎さんが「おい次郎、聞こえるか!(SYN)」と声をかけます。次郎さんは、「聞こえたぞ(ACK)、こっちの声は聞こえるか?(SYN)」と返します。太郎さんが「聞こえた(ACK)」と言います。「ところで、次郎、おまえに貸した金の件だが・・・」とここから通信が始まります*5。以上、これが3WAYハンドシェイクのイメージです。2人がお互いのSYNとACKを交換し合って、はじめて通信を開始できるという話です。要は、通信開始の合図(SYNパケット)だけを攻撃対象に送り続けること。攻撃される側は、通信相手(攻撃者)の最後の通信(ACK)を一定時間待ち続けることになる、攻撃なのか単に応答が遅いだけなのか区別がつかないので待たざるを得ない。通信を待つということは、その分メモリやらスレッドやらのリソースを消費するわけで、それが大量になるとシステムはダウンする、という仕組みです。対策の例としては、通信を待つ際のリソースを減らすこと。大量の通信が来ても大してリソースは必要がない、という原理です。例として、IPで情報を送信する時、そのデータが大きいときは分割(断片化)して少しずつ送ります。受信側は残りの1つをいつまで待てばいいのでしょう・・・という事を大量に行う攻撃。対策例は、ネットワーク監視機器(ファイアウォールやIDSなど)で怪しい通信を見張る、など。spoofingとは逆で、pingの「応答」を利用した攻撃。送信元IPアドレスを攻撃対象のアドレスに設定して、ping*6要求を例えば世界中にばら撒く。すると、頼んでもいないping応答が世界中から攻撃対象に帰ってくる、というたちの悪い攻撃の一つ。対策例はIPスプーフィング同様、ファイアウォールでの送信元IPのチェックなど。環境によってはICMP*7自体をファイアウォールでDenyしてしまう事も珍しくはないですね。†amplificationは「拡大」の意味。理屈は前述のスマーフ攻撃と同じで、送信元IPアドレスを詐称した要求をばら撒いて、攻撃対象に頼んでもない応答をにたらふく喰らわせる方法。特徴として、攻撃の効率が良い。うまくやればDNS*8/NTP*9の数byte~数十byteの要求に対して、その数百倍の応答が帰ってくる。この辺が「amp」ということです。前述のスマーフも「応答」を攻撃に利用したことから、「リフレクション攻撃」ともいう。対策例はIPスプーフィングやスマーフと同じですが、重要なのは攻撃に加担しないことになります。具体的には自社でNTPサーバやDNSサーバを用意したときに、無用な外部からの要求には応答しないようにしたり、DNSならキャッシュサーバは外部には公開しない、とかになります。コンピュータウィルスの形態の1つ。何らかの方法で攻撃者との通信手段を持っていて、攻撃者が攻撃タイミングを指示したりできる場合が多い。ボットの一例として「Mirai」があります。System:侵入防止システム。通信状況を監視して動的にフィルタリングのルールを変えたりできる。その動的な部分で「誤検知」が多くて、僕には玄人向けの装置ってイメージが強いです。pingといえばネットワークエンジニア御用達のコマンド。IPレベルの疎通を確認する為に対象に「生きてますか?」リクエストを送信して、その応答の有無や応答速度を測る。潜水艦のアクティブソナーが由来。プロトコルがTCPでもUDPでもなくICMPな所が試験にしょっちゅう出るポイント。名前の通り、通信制御状態を調査できるプロトコル。その為「攻撃」の為の調査に利用されることもしばしば。ドメイン名(null-i.net)の問合せに対してIPアドレス(219.94.~)を返したりする便利なプロトコル。使用して作成しています。使用しています(このサイトについて)。