TCP/IPモデルと一般的なポート
OSIモデルとTCP/IPモデル、ウェルノウンポート番号を復習し、通常のトラフィックを理解して異常を見つける方法を学びます。
「TCP/IPモデルと一般的なポート」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
OSIモデル:7つのレイヤー
OSI(Open Systems Interconnection)モデルは、ネットワーク通信を物理、データリンク、ネットワーク、トランスポート、セッション、プレゼンテーション、アプリケーションという7つのレイヤーに分けます。各レイヤーは固有の役割を担い、直接上下に位置するレイヤーとのみ通信します。セキュリティ制御はどのレイヤーにも適用できるため、このモデルを理解すると、特定の攻撃や防御がどこで機能するのかを特定しやすくなります。Please Do Not Throw Sausage Pizza Awayという語呂合わせを使うと、下から上へのレイヤーの順番を思い出せます。
TCP/IPモデルとOSIモデル
TCP/IPモデル(DoDモデルとも呼ばれます)は、OSIのレイヤーを4つにまとめたものです。ネットワークアクセス(OSIレイヤー1~2)、インターネット(OSIレイヤー3)、トランスポート(OSIレイヤー4)、アプリケーション(OSIレイヤー5~7)で構成されます。実際のネットワーク運用やセキュリティ分析では、TCP/IPの用語が使われることがほとんどです。攻撃や制御がどこで機能するかを説明する際、Security+の試験問題ではどちらのモデルも参照される可能性があるため、両方のモデルの対応関係を理解することが重要です。
# OSI to TCP/IP layer mapping:
# Application (OSI 5,6,7) -> Application (TCP/IP)
# Transport (OSI 4) -> Transport (TCP/IP)
# Network (OSI 3) -> Internet (TCP/IP)
# Data Link, Physical (OSI 1,2) -> Network Access (TCP/IP)IPアドレスとサブネット
IPアドレスは、ネットワーク上のデバイスを一意に識別します。IPv4では32ビットのアドレスをドット付き10進表記(例:192.168.1.10)で記述し、IPv6では128ビットのアドレスを使用します。サブネットマスクによって、アドレスのどの部分がネットワークを識別し、どの部分がホストを識別するかが決まります。CIDR表記(例:/24)は、サブネットマスクを簡潔に表します。セキュリティ担当者は、サブネットを使用してネットワークを分割し、信頼ゾーン間のトラフィックの流れを制限します。
# Display IP address and routing table on Linux
ip addr show
ip route show
# Check connectivity
ping -c 4 192.168.1.1TCPの3ウェイハンドシェイク
TCPでデータを交換する前に、3ウェイハンドシェイクによって接続を確立します。クライアントがSYNを送信し、サーバーがSYN-ACKで応答し、クライアントがACKを送信して処理を完了します。攻撃者は、ハンドシェイクを完了させずに大量のSYNパケットを送信し、サーバーのリソースを枯渇させるSYNフラッドDoS攻撃によって、このシーケンスを悪用します。通常のハンドシェイクの動作を理解すると、パケットキャプチャやSIEMログの異常を見つけやすくなります。
# Capture TCP handshakes with tcpdump
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
# View established connections
ss -tnp state establishedUDP:コネクションレス型トランスポート
UDP(User Datagram Protocol)は、最初にセッションを確立せずにパケットを送信するコネクションレス型のトランスポートプロトコルです。確認応答や再送がないため、TCPより高速ですが信頼性は低くなります。DNS、DHCP、NTP、SNMPなどのサービスでは、配信の保証よりも低遅延が重視されるため、UDPが使用されます。セキュリティ上の影響として、UDPを利用した増幅攻撃があります。これは、小さなリクエストによって大容量のレスポンスを生成し、被害者に送り付けて過負荷にする攻撃です。
# Common UDP services and ports:
# DNS UDP 53
# DHCP UDP 67/68
# NTP UDP 123
# SNMP UDP 161
# Syslog UDP 514ウェルノウンポート:0~1023
ウェルノウンポート(0~1023)は、一般的なサービス用に予約され、IANAによって割り当てられています。主要なポート番号を暗記することは、Security+試験対策で不可欠です。ポート22はSSH、ポート443はHTTPS、ポート80はHTTP、ポート25はSMTP、ポート53はDNSです。サービスが使用するポートを把握しておくと、アナリストは正規のトラフィックと攻撃を区別し、正確なファイアウォールルールを作成できます。
# Key well-known ports:
# 20/21 FTP (data/control)
# 22 SSH
# 23 Telnet (insecure)
# 25 SMTP
# 53 DNS
# 80 HTTP
# 110 POP3
# 143 IMAP
# 443 HTTPS
# 3389 RDP登録ポートと動的ポート
登録ポート(1024~49151)は、一貫性のある、ただし特権ポートではないポートを必要とするアプリケーションで使用されます。例として、3389(RDP)、3306(MySQL)、1433(MSSQL)、8080(HTTP代替ポート)があります。動的ポート(エフェメラルポート)(49152~65535)は、クライアント側の接続用にOSが一時的に割り当てます。攻撃者は、ウェルノウンポートだけをブロックするファイアウォールルールを回避するため、高い番号のポートで悪意のあるサービスを実行することがあります。
# Show all listening ports and associated processes
ss -tlnp
# Check which process owns port 3389
ss -tlnp 'sport = :3389'ICMPとそのセキュリティ上の影響
ICMP(Internet Control Message Protocol)は、診断とエラー通知に使用されます。pingコマンドは、到達可能性を確認するためにICMP Echo Request/Replyを使用します。便利な一方で、ICMPは悪用される可能性があります。pingスイープは稼働中のホストを発見し、ICMPリダイレクトメッセージはルーティングテーブルを操作する可能性があります。また、ステルスチャネルによってICMPペイロード内にデータをトンネル化することもできます。多くの組織では、トラブルシューティングのために内部ではICMPを許可しつつ、境界ではブロックしています。
# Ping sweep example (host discovery)
nmap -sn 192.168.1.0/24
# Block ICMP redirects on Linux
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirectsARP:IPアドレスからMACアドレスへの解決
ARP(Address Resolution Protocol)は、ローカルネットワークセグメント上でIPアドレスをMACアドレスに対応付けます。ホストが192.168.1.1にトラフィックを送信したい場合、ARPリクエストをブロードキャストして「192.168.1.1を持っているのは誰ですか?」と尋ね、該当するホストが自身のMACアドレスを返信します。ARPには認証機能がないため、ARPスプーフィング(ARPポイズニングとも呼ばれます)に対して脆弱です。この攻撃では、攻撃者が偽のARP応答を送信し、トラフィックを自分のマシン経由に変更して中間者攻撃を行います。
# View ARP cache
arp -n
# Dynamic ARP Inspection (DAI) enabled on Cisco switch
# ip arp inspection vlan 10
# Monitor ARP requests with tcpdump
tcpdump -i eth0 arpDNS:ドメイン名の解決
DNS(Domain Name System)は、人間が読みやすいホスト名(www.example.com)をIPアドレスに変換します。DNSクエリは階層構造をたどります。クライアントが再帰リゾルバーに問い合わせ、再帰リゾルバーがルートサーバー、TLDサーバー、権威ネームサーバーの順に問い合わせます。セキュリティ上の影響は重大です。DNSキャッシュポイズニングは偽のレコードを挿入し、DNSトンネリングはクエリにデータを埋め込んでデータを持ち出したりC2サーバーに接続したりします。また、タイポスクワッティングは、よく似たドメインを登録してユーザーをフィッシングします。
# Query DNS records
nslookup example.com
dig example.com A
dig example.com MX
# Check for DNS tunneling indicators
# Look for unusually long subdomain labels or high query volumeWiresharkとNmapによるトラフィックの読み取り
TCP/IPトラフィックを分析するために不可欠なツールが、WiresharkとNmapです。Wiresharkはパケットアナライザーであり、個々のフレームを調査したり、プロトコルでフィルタリングしたり、TCPストリームを追跡してセッションを再構成したりできます。Nmapはネットワークスキャナーであり、稼働中のホスト、開いているポート、実行中のサービス、OSのバージョンを特定します。両者を組み合わせることで、セキュリティ担当者はネットワーク上を実際に通過しているものを可視化でき、異常の検出や、ファイアウォールルールが意図どおりに機能していることの確認が可能になります。
# Nmap scan examples
nmap -sV 192.168.1.0/24 # Version detection
nmap -sS -O 192.168.1.10 # SYN scan + OS detection
nmap -p 22,80,443 192.168.1.0/24 # Specific ports
# Wireshark capture filter examples
# tcp.port == 443
# ip.src == 192.168.1.10クイックチェック
このレッスンで扱ったCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、OSIモデルとTCP/IPモデルが、セキュリティ制御が動作するネットワーク層を表すこと、ウェルノウンポート(0~1023)が一般的なサービスを識別し、試験のために暗記する必要があること、そしてARP、DNS、ICMPなどのプロトコルには、スプーフィング、キャッシュポイズニング、トンネリングなど、それぞれ固有のセキュリティリスクがあることを学びました。次は、ファイアウォールとネットワークトラフィックのフィルタリングについて学びます。
よくある質問
「TCP/IPモデルと一般的なポート」レッスンは無料ですか?
はい。「TCP/IPモデルと一般的なポート」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「TCP/IPモデルと一般的なポート」で何を学びますか?
OSIモデルとTCP/IPモデル、ウェルノウンポート番号を復習し、通常のトラフィックを理解して異常を見つける方法を学びます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「TCP/IPモデルと一般的なポート」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。