本日の勉強内容
- セッションハイジャック
- DNSサーバに対する攻撃
- DoS攻撃
セッションハイジャック
目的
クライアントとサーバの間に割り込み、セッションを奪い取る。
- サーバになりすます
→クライアントの機密情報を盗む。不正なサイトに誘導する。 - クライアントになりすます
→不正なリクエストの発行。管理者権限の奪取。機密情報の閲覧。情報の改ざん。 - 両者になりすます(Man-in-the-middle Attack:中間者攻撃とも)
通信データを盗聴しつつ不正なリクエストやレスポンスを紛れ込ませ、セッションをコントロールする
TCPにおけるセッションハイジャック
コネクション確立時の初期シーケンス番号を推測(あるいは盗聴)し、偽装したパケットによって正規の相手ホストになりすます。
一部の古いOSでは初期シーケンス番号生成の乱数に規則性があり、そこから推測できてしまうという脆弱性があった。
UDPにおけるセッションハイジャック
クライアントのからのリクエストに対し、正規のサーバよりも先にレスポンスを返すことでセッションハイジャックを行う。
Webサーバとクライアント間のセッションハイジャック
URL、Cookie、hiddenフィールドなどにセットされたセッション管理情報を推測(あるいは盗聴)し、セッションハイジャックを行う。
単純なセッションIDの使用、セッション管理情報を暗号化していない、XSS脆弱性などが原因となる。
認証サーバとクライアント間のセッションハイジャック
認証サーバになりすましてクライアントからのアクセス要求を受付、セッションハイジャックを行う。
偽装ARPによるセッションハイジャック(ARPポイズニング/ARPスプーフィング)
偽のARP応答パケットを送信することでARPキャッシュを買い替え、セッションをハイジャックする。
セッションフィクセーション
セッションIDを含んだURLをターゲットに送り付けることで、そのIDで意図的にセッションを確立させ、そのセッションをハイジャックする。
ログイン画面表示時に発行されたセッションIDをログイン後も使用している、URL Rewriting機能が有効になっているなどが原因。
クリスマスツリースキャン
FIN、PSH、URGすべてのフラグをONにしたパケットを送り、応答からポートの状態を判別。
セッションハイジャックへの対策
ポートスキャン自体はただの調査行為。それのみでシステムへの侵入やデータ破壊が行われるわけではない。
予防・防止
TCP・UDP
- ソフトウェアの最新化、パッチ適用
- TLS、IPsec、SSHなどの使用
- 脆弱性検査の実施
Webサーバとクライアント間
- TLSを使用
- セッション管理システムを自社で開発しない
- 自社で開発する場合は推測困難なセッションIDを生成
- Webアプリケーションに対する脆弱性検査の実施
- リバースプロキシやWAFの設置
認証サーバとクライアント間
- TLSの使用
偽装ARP
- ハブを物理的に保護し、不正な機器の接続を物理的に防ぐ
- 不正PC接続検知システム
- ARPポイズニングを検知・防止する機能を持った製品の使用
セッションフィクセーション
- WebサーバのURL Rewriting機能を無効に
- ログイン後にセッションIDを発行しなおす
検知・追跡
- NW監視型IDS、ホスト監視型IDS、IPS、リバースプロキシ、WAFなどを用いて検知
- 不正PC接続検知システム
- ホストのログから検知(TCPコネクトスキャンの場合)
回復
- 被害状況の調査、データ復旧作業
- 脆弱性の特定、対策の実施
DNSサーバに対する攻撃
不正なゾーン転送要求
プライマリサーバとセカンダリサーバ間の登録内容を同期するための、ゾーン転送(登録内容の一括転送)機能に特に制限がない場合に、
その脆弱性をりようすることでセカンダリサーバ以外(攻撃者など)が、ターゲットのネットワーク構成やサーバ構成の情報を手に入れることができる。
DNSキャッシュポイズニング攻撃
DNSサーバから上位サーバ(権威DNSサーバ)への名前解決要求に対し、応答が返る前に悪意あるDNSサーバが不正な名前解決情報を返しDNSキャッシュに登録させる攻撃。
不正なサイトにユーザが誘導され、機密情報が盗まれるなどの被害を受ける。
カミンスキー攻撃(Kaminsky's attack)
DNSキャッシュポイズニング攻撃の一種で、従来の手法よりも効率的。
存在しないドメイン名の名前解決要求を行い、その応答を上位サーバになりすまして行うことでDNSキャッシュに登録させる。
DNSリフレクション攻撃(DNS apm 攻撃)
反射・増幅型DDos攻撃の一種。他サイトの攻撃のためにDNSサーバ(キャッシュサーバ)を踏み台に利用する。
攻撃対象のIPアドレスを送信元としたクエリを多数のDNSサーバあてに大量に送信し、その応答によってサービス不能状態に陥れる。
DNS水責め攻撃(ランダムサブドメイン攻撃)
オープンリゾルバとなっているDNSキャッシュサーバに対し、攻撃対象ドメインのランダムなサブドメイン名を大量に問い合わせ、権威DNSサーバを過負荷にさせる攻撃。
オープンリゾルバ
アクセス制限を行わず、インターネット上のどこからでも名前解決の問い合わせに応答する状態になっているキャッシュDNSサーバ。
管理者の認識不足やサーバの設定ミスがおもな原因。ルータなどのネットワーク機器にキャッシュDNSサーバの機能があり、それらが意図せずオープンリゾルバとなっているケースもある。
DNSトンネリング
予防・防止
- DNSサーバのソフトウェアの最新化
- DNSの送信元ポート番号をランダムに
- DNSSECの使用
- ゾーン転送をセカンダリサーバのみに許可
- ゾーン転送するデータ範囲を最小限に
- 脆弱性検査の実施
検知・追跡
- DNSキャッシュサーバが不要なクエリを拒否するようアクセス制限
回復
- 脆弱性の特定
DoS攻撃
Denial of Serviceの略。サービス不能攻撃、サービス拒否攻撃、サービス妨害攻撃とも。
ターゲットサイトに対して不正なパケットや膨大なパケットを送り付けることで、サービスやネットワーク全体が正常動作できない状態に陥れる行為。
SYN Flood攻撃
TCPの接続開始要求であるSYNパケットを送信元IPアドレスを偽装した状態で大量に送り付け、SYN/ACKを返したホストがACKを待っている状態を多重に作り出すことで、ホストのシステムリソースを使いつくしてサービス不能状態に陥れる。IPアドレスが偽装されているため攻撃者の特定は困難。
対策
- SYN CookieやSYN Floodプロテクション機能の利用
- コネクション確立時のウェイトタイムを短く
- SYNパケットの帯域制限
SYN Cookie
SYNパケットで得た情報をハッシュ化し、SYN+ACKパケットのシーケンス番号に含めることで、正規クライアントのみに記憶領域を割り当てる機能。
UDP Flood攻撃
ターゲットホストのUDPポートに対し、サイズの大きなパケットを大量に送り続ける(あるいはサイズの非常に小さなパケットを大量に送り続ける)手法。
UDPはコネクションレスであり送信元アドレスの偽装は容易、攻撃者の特定は困難。
対策
- 不要なUDPサービスの停止
- 不要なUDPサービスへのアクセスをFWでフィルタリング
- UDPパケットの帯域制限
ICMP Flood攻撃(Ping Flood攻撃)
ターゲットホストに対してサイズの大きなICMP echo request(ping)を大量に送り続ける手法。
ICMPもコネクションレスであり送信元アドレスの偽装は容易、攻撃者の特定は困難。
対策
- ICMPパケットの遮断
- ICMPパケットの帯域制限
smurf攻撃
攻撃対象のIPアドレスを送信元アドレスとしたICMP echo requestを、踏み台とするネットワークセグメントのブロードキャストアドレスあてに送信し、大量の応答によってネットワークを輻輳状態にしサービス不能状態に陥れる。
対策
- ICMPパケットの遮断
- ICMPパケットの帯域制限
- ブロードキャストアドレスあてのパケットを遮断(踏み台にならないため)
Connection Flood攻撃
攻撃対象に対して次々とコネクションを確立させ、大量のプロセスを起動しソケットを占拠する。コネクション数に制限がない場合はシステムリソースが枯渇。
コネクションを確立するため送信元アドレスの偽装はほぼ不可能だが、攻撃対象へ影響を与える可能性は大きい。
対策
- ソケットオープン数やTCPキュー割り当て数を増やす
- 同じIPアドレスからの同時接続数を制限
- ホストを冗長構成にし、ロードバランサによる負荷分散を行う
- 攻撃元アドレスからのパケットを遮断
DDos攻撃
Distributed Denial of Service attack:分散型サービス不能攻撃
インターネット上にある多数の踏み台サイトにあらかじめ仕掛けておいた攻撃プログラムから、一斉にDoS攻撃を仕掛け攻撃対象のネットワーク帯域をあふれさせる。
対策
- 十分な帯域を持つネットワークを使用
- 公開サーバ・経路上のネットワーク機器の処理能力を増強
- 送信元アドレスが明らかに偽装されているパケットや、ブロードキャストアドレスあてパケットをFWで遮断
- 不要なICMP、UDPパケットの遮断、帯域制限
- CDNサービスの利用
- DDoS攻撃対策サービスの利用
CDN(コンテンツデリバリネットワーク)
Webサイトの静的コンテンツを複数のCDNサーバにキャッシュ、分散配置することで、表示速度の高速化や負荷分散を図る技術。
反射・増幅型DDoS攻撃
各プロトコルの基本的な通信手順やアプリケーションの仕様において生成される様々な応答パケットを大量に発生させてDoS攻撃を行う。
近年ではNTPサーバを踏み台とするNTPリフレクタ攻撃が多く観測されている。NTPリフレクタ攻撃ではmonlistコマンドが使われている。
NTP(Network Time Protocol)
正しい時刻情報を取得・配信しているサーバ。
monlist
NTPサーバが過去にやり取りした最大600件のアドレスを回答するコマンド。
対策
- 攻撃対象となる可能性のあるサーバを外部に公開する必要がない場合は、適切なアクセス制限を施しインターネットからのアクセスを遮断
- 攻撃に悪用されやすいコマンド等を無効に
- 十分な帯域を持つネットワークを使用
IoT機器を使用したDDoS攻撃
IoT機器の脆弱性を悪用して感染を広げ、C&Cサーバからの指令を受けてDDoS攻撃を行う。
マルウェア「Mirai」
ランダムなIPアドレスを生成してtelnetポートにログインを試行し、工場出荷時の脆弱なパスワードが設定されたIoT機器に感染を拡大した後、C&Cサーバからの指令を受けて大規模なDDoS攻撃を行う。
EDoS攻撃
Economic Denial of Service attack, Economic Denial of Sustainability attack)
ストレージ容量やトラフィック量に応じて課金されるクラウドの特性を悪用し、経済的な損失を狙ってリソースを大量消費させる攻撃。
現在有効な対策はない。