一般的なネットワーク攻撃:DoS、スプーフィング、MITM
DoS、IP/ARPスプーフィング、中間者攻撃を特定し、それぞれを検知または防止するネットワーク制御を理解します。
「一般的なネットワーク攻撃:DoS、スプーフィング、MITM」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
DoS攻撃の基礎
サービス拒否(DoS)攻撃は、トラフィックでシステム、サービス、ネットワークを過負荷状態にするか、クラッシュを引き起こす脆弱性を悪用することで、正規ユーザーが利用できない状態にすることを目的とします。DoS攻撃は、CIAトライアドの可用性を標的にします。単一の送信元からのDoSは、送信元IPにレート制限を適用することで比較的簡単にブロックできます。しかし、現代の攻撃の多くは複数の送信元を同時に使用するため、緩和がはるかに困難です。
分散型サービス拒否(DDoS)
DDoS攻撃は、侵害された数千台または数百万台のデバイス(ボットネット)を使用し、多数の異なる送信元アドレスから同時に標的へ大量のトラフィックを送り付けます。そのため、送信元IPによるブロックは現実的ではありません。DDoS攻撃は、帯域幅を消費させるボリューム型(例:UDPフラッド)、ステートフルなリソースを枯渇させるプロトコル型(例:SYNフラッド)、正規の通信に見えるHTTPリクエストでサーバー容量を枯渇させるアプリケーション層型(例:Slowloris)に分類されます。Cloudflare、Akamai、AWS Shieldなどの緩和サービスは、ボリューム型攻撃がオリジンサーバーに到達する前に吸収します。
# Types of DDoS attacks:
# Volumetric: UDP flood, ICMP flood, DNS amplification
# Protocol: SYN flood, Ping of Death, Smurf attack
# Application: HTTP flood, Slowloris, R.U.D.Y
# SYN flood defense: SYN cookies
# sysctl -w net.ipv4.tcp_syncookies=1増幅攻撃とリフレクション攻撃
増幅攻撃は、最初のリクエストよりもはるかに大きなレスポンスを生成するプロトコルを悪用します。DNS増幅では、小さなUDPクエリから最大70倍の大きさのレスポンスを生成し、それらをすべて被害者に向けて送信します。NTP monlist増幅では、4,000倍の増幅率に達することがあります。攻撃者は送信元アドレスとして被害者のIPをスプーフィングするため、数千台のリフレクターが大きな応答を被害者へ送信します。これがリフレクション攻撃とも呼ばれる理由です。緩和策には、BCP38(ISPレベルの送信元アドレス検証)や増幅サービスの無効化などがあります。
# DNS amplification example:
# Attacker sends 40-byte query for 'ANY example.com'
# Spoofed source: victim's IP (1.2.3.4)
# Open DNS resolver replies with 3000-byte response to victim
# With 1000 reflectors: 40KB request -> 3GB response to victim
# Disable NTP monlist (amplification mitigation):
# ntpdc -c 'disable monitor'IPスプーフィング
IPスプーフィングとは、偽造した送信元IPアドレスを含むパケットを作成する行為です。スプーフィングは、DoS/DDoSのリフレクション攻撃、IPベースのアクセス制御リストの回避、攻撃者の実際の所在地の隠蔽などに利用されます。スプーフィングしたパケットを送信するには、Raw Socketの権限が必要です。防御策には、イングレスフィルタリング(BCP38)があります。これは、正規にそのネットワークから送信されたとは考えられない送信元IPを持つパケットを、ISPやルーターがインターフェイスで破棄するようにするものです。ステートフルファイアウォールも、確立済みのセッションに一致しない未承諾のインバウンドパケットを拒否することで役立ちます。
# BCP38 ingress filtering on a router:
# If a packet arrives on the Internet-facing interface
# with a source IP from the internal RFC1918 range,
# it is clearly spoofed and should be dropped.
ip access-list extended ANTI-SPOOF
deny ip 10.0.0.0 0.255.255.255 any
deny ip 172.16.0.0 0.15.255.255 any
deny ip 192.168.0.0 0.0.255.255 any
permit ip any anyARPスプーフィング(ARPポイズニング)
ARPスプーフィング(ARPポイズニングとも呼ばれます)は、攻撃者のMACアドレスを正規のIPアドレスに関連付ける、未承諾のARP応答を送信する攻撃です。偽のARP更新を受信したホストはARPキャッシュを更新し、そのIPアドレス宛てのトラフィックを攻撃者のMACアドレスへ送信するようになります。これにより、ローカルセグメント上で中間者攻撃が可能になります。Arpspoof、Ettercap、Bettercapなどのツールを使うと、この攻撃を自動化できます。防御策には、管理対象スイッチでのDynamic ARP Inspection(DAI)があります。DAIは、信頼できるDHCPスヌーピングバインディングテーブルと照合してARPパケットを検証します。
# Attack: ARP spoof (attacker poisons victim and gateway)
# arpspoof -i eth0 -t 192.168.1.10 192.168.1.1
# Defense: Dynamic ARP Inspection on a Cisco switch
ip arp inspection vlan 10
ip dhcp snooping vlan 10
# Verify DAI:
show ip arp inspection vlan 10中間者(MitM)攻撃
中間者(MitM)攻撃は、攻撃者が、互いに直接通信していると考えている2者間の通信を密かに中継し、場合によっては改ざんすることで成立します。MitM攻撃は、ARPスプーフィング、DNSスプーフィング、不正なWi-Fiアクセスポイント、BGPルートハイジャックなどによって実行できます。通信の中間に位置すると、攻撃者は盗聴、コンテンツの挿入、暗号化の解除(SSLストリッピング)、認証情報のリプレイなどを行えます。重要な防御策は相互認証と暗号化です。正規の証明書を使用するTLSでは、クライアントがサーバーの身元を検証できるため、ほとんどのMitM攻撃を防止できます。
# SSL stripping attack flow:
# 1. Victim requests http://bank.com
# 2. Attacker intercepts, upgrades to HTTPS with bank.com
# 3. Attacker maintains HTTP connection with victim
# 4. Victim sees HTTP; attacker sees plaintext credentials
# Defense: HTTP Strict Transport Security (HSTS)
# Strict-Transport-Security: max-age=31536000; includeSubDomainsDNSスプーフィングとキャッシュポイズニング
DNSキャッシュポイズニングは、悪意のあるDNSレコードをリゾルバーのキャッシュに注入し、正規のドメイン名を攻撃者が管理するIPアドレスに解決させます。古典的なKaminsky攻撃(2008年)は、予測可能なトランザクションIDを悪用し、大規模にリゾルバーを汚染しました。ユーザーが利用するリゾルバーが汚染されると、偽サイトへリダイレクトされ、認証情報を盗まれたり、マルウェアを配布されたりする可能性があります。DNSSEC(DNS Security Extensions)はDNSレコードにデジタル署名を付け、リゾルバーが真正性を検証できるようにします。また、DNS over HTTPS(DoH)は経路上でのクエリの傍受を防ぎます。
# Check if a domain has DNSSEC enabled:
dig +dnssec example.com
# Valid DNSSEC response includes RRSIG records
# If DNSSEC is enabled and signatures are invalid,
# a validating resolver will return SERVFAIL (rejects poisoned records)オンパス攻撃者とオフパス攻撃者
オンパス(インパス)攻撃者は、転送中のトラフィックを閲覧・変更できるネットワーク上の位置にいます。つまり、通信する2つのエンドポイントの間に、物理的または論理的に位置しています。ARPスプーフィングは、ローカルセグメント上にオンパスの位置を作り出します。オフパス攻撃者はトラフィックを閲覧できませんが、推測したシーケンス番号を使ってスプーフィングしたTCP RSTパケットを注入し、接続を切断するなど、ブラインド攻撃を試みることがあります。TLSは、トラフィックを傍受されても秘密鍵なしでは復号や偽造ができないため、どちらの状況に対しても有効です。
BGPハイジャック
BGP(Border Gateway Protocol)ハイジャックは、悪意のある、または設定を誤ったAutonomous Systemが、別の組織宛てのトラフィックを引き寄せるために、より具体的なIPプレフィックスをアナウンスすると発生します。これにより、インターネット全体に及ぶトラフィックを攻撃者のネットワーク経由へリダイレクトできます。BGPハイジャックは、暗号資産取引の傍受、メールの窃取、銀行向けトラフィックのリダイレクトなどに悪用されてきました。防御策には、ルートオリジン認可を暗号学的に検証するRPKI(Resource Public Key Infrastructure)や、予期しないBGPアナウンスの変更を監視することなどがあります。
SYNフラッド攻撃と防御策
SYNフラッドは、スプーフィングした送信元IPを使って大量のSYNパケットを送信し、TCPの3ウェイハンドシェイクを悪用します。これによりサーバーは、決して到着しないACKを待つハーフオープン接続の状態を確保することになります。接続テーブルが満杯になると、サーバーは新しい正規の接続を受け付けられなくなります。防御策には、SYN Cookie(サーバーがSYN-ACKのシーケンス番号に状態情報を埋め込み、ACKを受信するまでリソースを割り当てない仕組み)、SYNタイムアウトの短縮、送信元アドレスごとのSYNパケットへのレート制限などがあります。
# Enable SYN cookies on Linux:
sysctl -w net.ipv4.tcp_syncookies=1
# Reduce SYN-RECEIVED timeout:
sysctl -w net.ipv4.tcp_synack_retries=2
# Rate-limit SYN packets with iptables:
iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROPネットワーク攻撃の検知と対応
DoS、スプーフィング、MitM攻撃を検知するには、複数の地点を可視化する必要があります。NetFlow/IPFIXデータからは、多数の送信元から突然トラフィックが急増したことが分かります。SIEMの相関ルールを使えば、異常なARPアクティビティ(1つのMACアドレスが多数のIPアドレスを名乗るなど)や、不審なほどTTLが短いDNS応答を検知してアラートを発報できます。IDS/IPSシグネチャは、SYNフラッドやARPスプーフィングツールを検知します。対応には、エッジルーターでのレート制限、DDoSスクラビングサービスの有効化、影響を受けたセグメントの隔離、Dynamic ARP Inspectionの再有効化、汚染されたキャッシュの消去などがあります。
# Detect ARP poisoning:
arp -n | awk '{print $3}' | sort | uniq -d
# Duplicate MACs for different IPs = possible ARP spoofing
# Monitor for SYN flood:
netstat -n | awk '/SYN_RECV/ {count++} END {print count}'
# Check NetFlow for DDoS:
# Look for high packet-per-second rates from diverse source IPsクイックチェック
このレッスンで扱ったCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、次のことを学びました。DDoS攻撃はボットネットを使い、多数の送信元から標的を過負荷にする攻撃で、ボリューム型、プロトコル型、アプリケーション層型に分類されます。ARPスプーフィングはローカルネットワークのキャッシュを汚染してMitM攻撃を可能にし、Dynamic ARP Inspectionによって緩和できます。SYNフラッドはサーバーの接続状態を枯渇させる攻撃で、SYN Cookieやレート制限によって防御します。次は、WEPからWPA3までのWi-Fiセキュリティプロトコルについて学びます。
よくある質問
「一般的なネットワーク攻撃:DoS、スプーフィング、MITM」レッスンは無料ですか?
はい。「一般的なネットワーク攻撃:DoS、スプーフィング、MITM」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「一般的なネットワーク攻撃:DoS、スプーフィング、MITM」で何を学びますか?
DoS、IP/ARPスプーフィング、中間者攻撃を特定し、それぞれを検知または防止するネットワーク制御を理解します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「一般的なネットワーク攻撃:DoS、スプーフィング、MITM」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- TCP/IPモデルと一般的なポート
- ファイアウォール:パケットフィルタリングと次世代型
- ネットワークセグメンテーションとVLAN
- 一般的なネットワーク攻撃:DoS、スプーフィング、MITM