ネットワークのセキュリティと具体的な攻撃方法を知り、アクセス制御の重要性を理解する
フラッド攻撃
-
ネットワークやシステムに対して大量のリクエストやデータを送り込むことで、その処理能力を超過させて正常なサービス提供を妨害する攻撃
- フラッド(flood):洪水
-
DoS攻撃の一種
- DoS:Denial of Service
- 意図的に過剰な負荷をかけたり脆弱性をついたりすることでサービスを妨害する攻撃
SYN Flood
-
TCP通信ではデータ通信を行う前に3ウェイハンドシェイクを行う
- 大量のSYNリクエストを送信し、ターゲットのサーバーがTCP接続を確立するためのリソースを枯渇させる
- サーバーはSYN-ACK応答を送信するが、攻撃者はACK応答を返さないため、接続が完了しない
UDP Flood
- 大量のUDPパケットを送信することでネットワーク帯域や処理能力を消耗させる
- UDPはTCPと違い、コネクションの確立は行わない
ICMP Flood
- ICMPエコー要求(Ping)を大量に送信し、ネットワーク帯域を消耗させる
- ICMP Floodは特に帯域を圧迫させやすい
Smurf attack
- ICMP Floodの一種
- 送信元IPアドレスを標的のコンピュータのものに偽装(スプーフィング)し、ICMPパケットを ブロードキャスト する
- 全端末からの応答パケットが標的のコンピュータに送信される
上記は一例です。他にもいろいろなフラッド攻撃の手法があります。
スプーフィング攻撃
-
不正なデータを使用して別の人物やプログラムになりすまして攻撃する
- spoof : なりすまし
ARPスプーフィング
-
ARP:IPアドレスからMACアドレスを求めるプロトコル
192.168.1.20 → 00:1B:44:11:3A:B7
- ルータやL3スイッチはARPテーブルを持っている
-
ARP応答を偽装することでLAN内の機器になりすます
- ARPキャッシュポイズニングともいう

引用: https://www.scskserviceware.co.jp/topics/primedesk/665.html
IPスプーフィング
- 送信者のIPアドレスを詐称して別のIPアドレスになりすます
- DoSアタックでは同一のIPアドレスからの大量アクセスの制限を回避するために使用される
-
「WANは危険だがLAN内は比較的安全」という考えを利用して、WANからの通信をLANの通信に見せかけるためにLAN内のIPアドレス(ローカルIPアドレス)に詐称することもある
- 攻撃が成功するとインターネットからLAN内に侵入される可能性がある

上記は一例です。他にもいろいろなスプーフィング攻撃の手法があります。
引用: https://blogs.trellix.jp/38-ip-39e0
リフレクション攻撃
- 第三者のサーバーを利用してターゲットに大量の通信を送りつける攻撃
- サーバーが攻撃を反射しているように見えることからリフレクション攻撃と呼ばれる
-
主にUDPを使用するプロトコルが攻撃に利用される
- UDPはなりすましが容易なため
- TCPはスリーウェイハンドシェイクがある
攻撃の流れ
- 攻撃者は送信元IPを「ターゲットのIPアドレス」に偽装したパケットを作る
- そのパケットを、応答を返すタイプのサーバー(DNS、NTP、SNMPなど)に送信する
- サーバーは、送信元(=ターゲット)から来た正当なリクエストとして応答を返す
- 大量の応答パケットがターゲットに集中し、ネットワークやサービスがダウンする
DNSリフレクション攻撃
- 送信元IPアドレスを偽った通常のDNS問い合わせをDNSサーバーに送ることでDNSサーバーが応答パケットを攻撃対象に送り、サービス不能の状態に陥らせる
- DNS amp攻撃ともいう
-
リフレクション攻撃の手法として最も有名
引用: https://jprs.jp/glossary/index.php?ID=0156
NTPリフレクション攻撃
- 攻撃者が送信元IPをターゲットに偽装したNTPリクエストを送信することで、ターゲットに大量の応答が返されるように仕向ける攻撃
- 小さなリクエストで大量のデータを返すことができるため、増幅攻撃(Amplification Attack)として有名
monlist
- NTPサーバーにはmonitoringという機能があり、monlistというコマンドを実行するとNTPサーバーが過去にやり取りしたクライアントのIPアドレスを一覧で返す
- monlistを悪用すると大量の応答の通信させることができる
- 古いバージョンのntpdではデフォルトで有効になっているため、手動で無効化する必要がある
事例
上記は一例です。他にもいろいろなリフレクション攻撃の手法があります。
アクセス制御
-
ネットワークのセキュリティを保護するためには適切なアクセス制御が重要となる
- ファイアウォール
- ACL
- 接続認証
- VPN接続 etc…
ACL(Access Control List)
- リソースへのアクセスを適切に管理する方法としてACLの設定がある
- システムやファイル、ネットワーク上のリソースなどへのアクセス可否の設定をリストとして列挙したもの
- サーバやルータに設定されている
- ACLの内容(ルール)に基づき、送られてくる通信を許可する通信と、拒否する通信にパケットを分ける フィルタリング を行う
- 上から順に、最初に一致したルール が適用される
SGとACLの大きな違いは戻りの通信を許可する設定が必要か否かにあります(SGがステートフル、ACLがステートレス)
ACLの書式(拡張ACL)
[項番] [permit/deny] [プロトコル] [送信元IP(host),ポート番号] [宛先IP(host),ポート番号]
-
項番:適用される順番(低い方が優先度)
- 10ずつインクリメントされることが多い
- permit/deny:アクセスの許可/拒否を指定する
-
プロトコル:通信プロトコルを指定する
-
tcp
、udp
、icmp
など -
ip
を指定するとIPアドレス単位で許可/拒否設定が可能
-
-
送信元IP、宛先IP
-
ホストを指定する場合はIPアドレスの直前に
host
を記述する-
ワイルドカードマスク
0.0.0.0
でもよい
-
ワイルドカードマスク
- IPアドレス帯(CIDR)を指定する場合はIPアドレスの直後に ワイルドカードマスク を記述する
-
ホストを指定する場合はIPアドレスの直前に
-
ポート番号
-
eq [ポート番号]
で指定 -
range [ポート番号] [ポート番号]
で範囲指定 - 指定なしはany
-
-
例:
次のACLは、送信元IPアドレスが192.168.1.0/24
のIPアドレス帯から、ホスト192.168.2.1
の14022番ポートへのTCP通信を許可している
10 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.1 eq 14022
※ワイルドカードマスク
-
ACLでは
ワイルドカードマスク
を使用してIPアドレスの範囲を記述する
-
IPアドレスのどの部分をチェックするかを表す
- 0はチェックしない、1はチェックする
- サブネットマスクと同じように記述できるが、意味は異なる
- 例えば次のような記述もできる
192.168.0.1 0.0.127.0
- このワイルドカードマスクでは第3オクテットの7ビット目までチェックする
-
つまり
192.168.[0..127].1
の128個のホストIPアドレスを指定している
-
IPアドレスのどの部分をチェックするかを表す
ACLには暗黙のdenyと呼ばれるdeny設定が存在します
記述はされませんが、ACLの最終行で全ての通信を拒否します
つまり、ACLが存在するだけでdeny ip any anyがデフォルトで設定されていることを意味します
明示的に記述されていることも多いです
ACLを作ってみよう
※戻りの通信は許可されているものとします
-
172.16.1.0/24 -> 172.18.1.254:8080/TCP
を許可 -
ただし、
172.16.1.128/25 -> 172.18.1.254
の通信はすべて拒否する
解答例
- denyをpermitよりも若い項番に投入する
- 通信をすべて許可/拒否する場合はIP単位で設定する
10 deny ip 172.16.1.128 0.0.0.127 host 172.18.1.254
20 permit tcp 172.16.1.0 0.0.0.255 host 172.18.1.254 eq 8080
ACLを読んでみよう
※通信ポートはデフォルトから変更していないものとします
※戻りの通信は許可されているものとします
10 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.1 eq 443
20 permit udp 192.168.8.0 0.0.0.255 any eq 53
30 deny ip host 192.168.8.1 192.168.0.0 0.0.1.255
40 permit ip 192.168.8.0 0.0.0.255 host 192.168.1.1 eq 80
50 permit icmp any any
60 deny ip any any
ア:192.168.1.1から192.168.2.1へのHTTPS通信
イ:192.168.8.1から192.168.1.1へのHTTP通信
ウ:192.168.8.1から192.168.1.1へのDNS名前解決通信
エ:192.168.8.1から192.168.1.1へのICMP通信
オ:192.168.1.1から192.168.8.1へのHTTP通信
解答
ア、ウ
解説
ア:項番10で許可されます
permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.1 eq 443
→192.168.1.0/24から192.168.2.1へのHTTPS通信を許可するACL
イ:項番30で拒否されます
項番40に許可設定がありますが、項番30のdeny設定が優先されます
deny ip host 192.168.8.1 0.0.0.255 192.168.0.0 0.0.1.255
→ 192.168.8.1 から 192.168.0.0/23 への通信をすべて拒否するACL
ウ:項番20で許可されます
permit udp 192.168.8.0 0.0.0.255 any eq 53
→ 192.168.8.0/24 からすべてのホストに対してDNS名前解決要求を許可するACL
エ:項番30で拒否されます
項番50に許可設定がありますが、項番30のdeny設定が優先されます
deny ip host 192.168.8.1 192.168.0.0 0.0.1.255
→ 192.168.8.1 から 192.168.0.0/23 への通信をすべて拒否するACL
オ:項番10~項番50のどれにも一致しないため、項番60で拒否されます
deny ip any any