🚀 ニフティ’s Notion

🛡️ 【セキュリティ2024 #5】ネットワークセキュリティ

🏁
目標
ネットワークのセキュリティと具体的な攻撃方法を知り、アクセス制御の重要性を理解する

フラッドアタック

  • ネットワークやシステムに対して大量のリクエストやデータを送り込むことで、その処理能力を超過させて正常なサービス提供を妨害する攻撃
    • フラッド:洪水
  • DoS攻撃の一種
    • DoS:Denial of Service
    • 意図的に過剰な負荷をかけたり脆弱性をついたりすることでサービスを妨害する攻撃
フラッドアタックの例
  • フラッドアタックにはいろいろな手法が存在するが、代表的なものを紹介する
SYN Flood
  • TCP通信ではデータ通信を行う前に3ウェイハンドシェイクを行う
    image block
    引用:
  • 大量のSYNリクエストを送信し、ターゲットのサーバーがTCP接続を確立するためのリソースを枯渇させる
  • サーバーはSYN-ACK応答を送信するが、攻撃者はACK応答を返さないため、接続が完了しない
    image block
    引用:

UDP Flood
  • 大量のUDPパケットを送信することでネットワーク帯域や処理能力を消耗させる
  • UDPはTCPと違い、コネクションの確立は行わない

ICMP Flood
  • ICMPエコー要求(Ping)を大量に送信し、ネットワーク帯域を消耗させる
  • ICMP Floodは特に帯域を圧迫させやすい
Smurf attack
  • ICMP Floodの一種
  • 送信元IPアドレスを標的のコンピュータのものに偽装(スプーフィング)し、ICMPパケットを ブロードキャスト する
  • 全端末からの応答パケットが標的のコンピュータに送信される


スプーフィング攻撃

  • 不正なデータを使用して別の人物やプログラムになりすまして攻撃する
ARPスプーフィング
  • ARP:IPアドレスからMACアドレスを求めるプロトコル
  • ARP応答を偽装することでLAN内の機器になりすます
    • ARPキャッシュポイズニングともいう
image block
引用:
IPスプーフィング
  • 送信者のIPアドレスを詐称して別のIPアドレスになりすます
  • DoSアタックでは同一のIPアドレスからの大量アクセスの制限を回避するために使用される
  • 「WANは危険だがLAN内は比較的安全」という考えを利用して、WANからの通信をLANの通信に見せかけるためにLAN内のIPアドレス(ローカルIPアドレス)に詐称することもある
    • 攻撃が成功するとインターネットからLAN内に侵入される可能性がある
image block


引用: https://blogs.trellix.jp/38-ip-39e0

アクセス制御

  • ネットワークのセキュリティを保護するためには適切なアクセス制御が重要となる
    • ファイアウォール
    • ACL
    • 接続認証
    • VPN接続 etc…

ACL(Access Control List)
  • リソースへのアクセスを適切に管理する方法として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アドレスの直後に ワイルドカードマスク を記述する
  • ポート番号
    • 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アドレスを指定している

💡
参考: 暗黙のdeny
ACLには暗黙のdenyと呼ばれるdeny設定が存在します
記述はされませんが、ACLの最終行で全ての通信を拒否します
つまり、deny ip any anyがデフォルトで設定されていることを意味しますが、明示的に記述されることも多いです

ACLを作ってみよう
次の条件を満たすACLを考えてみましょう
  1. 172.16.1.0/24 -> 172.18.1.254/TCP:8080 を許可
  2. ただし、 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 0.0.0.255 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