観察して効率良く学ぶ「ネットワークセキュリティ」

## はじめに

◆この記事は何？
ネットワークセキュリティを効率良く学ぶために、実例や観察方法とともに概要を説明する記事

◆対象
情報処理安全支援士の試験対策をしたい人、ネットワークセキュリティを学びたい人

◆この記事のねらい
実際に観察できる方法を紹介することで、理解のハードルを下げる

## TCP(Transmission Control Protocol)

### ◆TCP(Transmission Control Protocol)とは
TCPは信頼性の高い通信を行うためのプロトコルです。
トランスポート層で動作します。

データを送る前にスリーウェイハンドシェイクを行い、コネクションを確立します。

通信相手に通信状況を伝える手段が、TCPヘッダにある6ビットのコントロールフラグです。
相手に伝えたい項目は1にします。そうでない場合は0にします。

「SYN」はSynchoronizeを意味します。
1なら通信の開始を要求を意味します。

「ACK」はAckonwledgementを意味します。
1なら通信の確認に対してい確認応答を意味します。

```mermaid
sequenceDiagram
	participant 送信者
	participant 受信者
	autonumber
	送信者->>受信者: SYN=1 「通信しましょう」
    受信者-->>送信者: SYN=1、ACK=1 「了解。通信しましょう。」
    送信者->>受信者: SYN=1 「了解」
 ```

### ◆目的
TCPの目的は「データを確実に届けるため」です。

チェックサムやシーケンス番号、確認応答、再送制御、コネクション管理、ウィンドウ制御などにより信頼性のある通信を実現しています。

### ◆実例
パケットキャプチャツールを使えば、TCP接続確立時のパケット交換を観察することができます。

https://www.planex.co.jp/articles/lan/no10/

次の動画では、SYNやACKなどパケットの中身まで紹介されています。
ヘッダの実データがわかり、理解が深まります。
序盤のTCP/IPの解説もわかりやすいです。

https://www.youtube.com/watch?v=fmN3xrqEz_0

## UDP(User Datagram Protocol)

### ◆UDP(User Datagram Protocol)とは
UDPは即時性が求められる通信や軽量な通信で利用されるプロトコルです。
トランスポート層で動作します。

UDPは、事前の打ち合わせをせずに一方的にデータを送りつけるようなコネクションレス型通信です。
低遅延や高効率が求められる場面に向いています。

UDPは、複数の相手に同時にデータを送信できます。
特定の複数人に送ることを**マルチキャスト**、不特定多数に送ることを**ブロードキャスト**といいます。

### ◆目的
UDPプロトコル自体の処理が簡単なため、高速に動作します。
よってUDPの目的は「データを速く届けるため」と考えることができます。

オーバーヘッドが小さく、高速でデータを届けることができます。
また、シンプルなのでアプリケーション層での柔軟性を提供できます。

### ◆実例
次の動画では、パケットトレーサー（ビジュアルシミュレーションツール）を用いてTCPとUDPの動きがわかります。
UDPを使う代表例であるDNSを用いた説明です。

https://www.youtube.com/watch?v=pq6vSG3jp4o

## ファイアウォール

### ◆ファイアウォールとは

ファイアウォールは、ネットワーク間の通信を制御します。

あらかじめ設定しておいたルールに従って、通してはいけないデータを止める機能です。

あらかじめ設定しておいたルールを「フィルタリングルール」といいます。

多くは「ダイナミックパケットフィルタリング」で記述されます。
ダイナミックパケットフィルタリングは、フィルタリングルールでどちらか一方の通信のみを設定することで、その要求に関する応答のメッセージは自動で許可される仕組みです。

### ◆目的
ネットワーク間の通信を制御するため
外部からの攻撃や不正アクセスなどから守るため

### ◆実例

パケットキャプチャツールを使えばファイアウォールがパケットを許可または拒否している様子を観察できます。

次のページが参考になります。

https://www.planex.co.jp/articles/lan/no10/

https://www.manageengine.jp/products/NetFlow_Analyzer/solution_packet-capture-analysis.html

## WAF(Web Application Firewall)

### ◆WAF(Web Application Firewall)とは

WAFはウェブアプリケーションの防御に特化したファイアウォールです。

SQLインジェクションやクロスサイトスクリプティングを防御できます。

WAFで検知できる攻撃は既知の攻撃パターンが多く、未知の攻撃を防ぐことはできません。

HTTPS通信は暗号化されているため、WAFで監視することができません。
通信を暗号化、復号化できるSSLアクセラレーション機能を利用する必要があります。

### ◆目的

Webアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護するため

### ◆実例

AWS WAFを実際に触ることで理解が深まります。

https://aws.amazon.com/jp/waf/

AWS WAFのコンソール画面を用いた動画です。設定の流れが分かります。

https://www.youtube.com/watch?v=Ueg407kCedM

## IDS(Intrusion Detection System)/IPS(Intrusion Prevention System)

### ◆IDS(Intrusion Detection System)とは

IDSは侵入検知システムです。
IDSは検知と通知を行いますが、通信を遮断するなどの防御は行いません。

### ◆IPS(Intrusion Prevention System)とは

IPSは侵入防止システムです。
脅威となりうる通信を検知し、自動的に防御も行います。

### ◆目的

IDSの目的は脅威と見られる通信が発生したとき管理者に通知するため

IPSの目的は検知とともに防御することで被害を最小限に抑えるため

### ◆実例

VMwareのIDSとIPSのデモ動画です。
実際にブロックされている様子が分かります。

https://www.youtube.com/watch?v=NYz7XfGUeqY

## プロキシサーバ

### ◆プロキシサーバとは

プロキシサーバとは、クライアントとサーバーの中間で、両者の通信を代理するサーバです。
プロキシサーバには、キャッシュ機能、フィルタリング機能、クライアント機能、認証機能などがあります。

### ◆目的
次のような目的があります。
- セキュリティの強化
- キャッシュ機能による読み込み速度の向上
- アクセス制御

### ◆実例
こちらの動画でプロキシサーバーの実演があります。「動作確認」のパートがわかりやすいです。

https://www.youtube.com/watch?v=PipcedFzOv4

## リバースプロキシ

### ◆リバースプロキシとは

リバースプロキシは、DMZでインターネットから通信を待ち受け、内部サーバーへの通信を代理します。

### ◆目的
リバースプロキシの目的は、セキュリティの強化や内部サーバーへの負荷分散などです

### ◆実例

こちらの動画では、Nginx（エンジンエックス）を使ってリバースプロキシサーバーの設定をしています。
ファイルの中身もあるので理解しやすいです。

https://youtu.be/H1P2H5HI0dA?si=KA27fE37cXz-XmCL

## VPN(Virtual Private Network)

### ◆VPN(Virtual Private Network)とは
VPNは、インターネット上に仮想の専用回線を設け、特定の人のみが使用できる仕組みです。
暗号化、認証、改ざん検定によって安全性の高い通信を実現できます。

専用線は高額なコストがかかるため、コストメリットがあります。

VPNの種類にはインターネットVPNとIP-VPNがあります。

### ◆目的
VPNの目的は、安全に通信するために仮想的な専用線をつくることです。

### ◆実例

次の動画では、実際にVPN接続されている様子がわかります。
知識と実践が繋がり、理解が深まる動画です。

https://www.youtube.com/watch?v=WKLbbtffeUo

## IPsec(Security Architecture for Internet Protocol)

### ◆IPsec(Security Architecture for Internet Protocol)とは

IPsecとは、主にインターネットVPNで利用される安全な通信を実現するための仕組みです。

AH、ESP、IKEのプロトコルで構成されます。（後述します）

IPsecはSA（Security Association）というコネクションを作って通信します。

アプリケーション層、トランスポート層、ネットワーク層が対象です。

```mermaid
sequenceDiagram
	participant 端末A
	participant 端末B
    Note over 端末A, 端末B:ISAKMP SA(鍵などの制御情報のやり取り)：双方向
    端末A-->>端末B: IPsecSA（暗号通信）：単方向
    端末B->>端末A: IPsecSA（暗号通信）：単方向
 ```

IPsecには二つのモードがあります。

トランスポートモード
主にモバイル端末で使われます。

トンネルモード
VPN機器を利用します。トンネルモードの方がよりセキュアです。

### ◆目的
インターネットVPNで利用される安全な通信を実現するため



## AH（Authentication Header）, ESP(Encapsulated Security Payload), IKE(Internet Key Exchange)

### ◆AH（Authentication Header）とは

認証、改ざん検知を行うプロトコルです。
暗号化通信ができない場合に利用されます。

### ◆ESP(Encapsulated Security Payload)とは

認証、改ざん検知、暗号化を行うプロトコルです。
暗号化通信ができる場合に利用されます。

AHよりもESPが利用されます。

### ◆目的
AHの目的は、認証、改ざん検知を行うこと
ESPの目的は、認証、改ざん検知、暗号化を行うこと

### ◆IKE(Internet Key Exchange)とは

IKEは鍵交換を行うためのプロトコルです。

IKEにはバージョン1とバージョン2があります。

IKEバージョン1には、フェーズ1とフェーズ2があります。

フェーズ1では、ISAKMP SAを確立して認証を、フェーズ2ではIPsecSAを確立して鍵交換をします。

フェーズ1では、認証方法によってメインモード、アグレッシブモードがあります。

メインモードは認証情報としてIPアドレスを利用します。
IPアドレスが固定されている必要があるため、VPN機器を用意した拠点間通信で利用されることが多いです。

アグレッシブモードは認証情報としてIPアドレス以外を利用します。モバイル端末などのVPN通信で利用されることが多いです。

### ◆目的

IKEの目的は鍵交換を行うためです。


### ◆実例

次の動画では、パケットトレーサを用いた実演があります。
IKEの流れが分かりやすいです。

https://www.youtube.com/watch?v=33gvq5cXxMo


## おわりに

この記事では、ネットワークセキュリティの基本について、実際に様子を観察できるような実例を紹介しました。

勉強のお役に立てれば幸いです。

## 参考

[「ゼロからスタート! 教育系YouTuberまさるの情報処理安全確保支援士1冊目の教科書」](https://amzn.asia/d/dSYLc7n)

[「マスタリングTCP/IP入門編」](https://amzn.asia/d/2Xc6oVq)

[「TCP/IPの絵本」](https://amzn.asia/d/59XVqqM)