ファイアウォールについて

:::note warn
自分用のメモとして書いていますので、詳細は自身でご確認ください。
:::

## 1.ファイアウォールの定義
ファイアウォールの言葉の定義を調べてみました。
とりあえず、辞書、記事、メーカーでそれぞれ何と言ってるのか調べてみました。

### 1.1 コトバンク（デジタル大辞泉）
> ~~１ 銀行・証券両業務兼営から生じる利益相反や不正取引を防止するため、銀行と証券子会社の間に設ける規制。~~
>２ ネットワークやコンピューターに、インターネットあるいは公衆回線などを通して部外者が無断で侵入できないように防御するシステム。

https://kotobank.jp/word/%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB-7952#:~:text=%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E2%80%90%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%EF%BC%88fire%20wall%EF%BC%89,%E3%82%88%E3%81%86%E3%81%AB%E9%98%B2%E5%BE%A1%E3%81%99%E3%82%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%80%82

ネットワーク以外でも使われるんかーい:astonished:

### 1.2.Cambridge Dictionary
>a device or program that stops people from seeing or using information on a computer without permission while it is connected to the internet

https://dictionary.cambridge.org/ja/dictionary/english/firewall

最初に、デバイスかプログラムであることが記載されていてわかりやすい:thumbsup:

### 1.3.Juniper Networks Products
>ファイアウォール(Firewall)とは、企業などの社内ネットワークにインターネットを通して外部から侵入してくる不正アクセスや、社内ネットワークから外部への許可されていない通信から守るための“防火壁”です。
>WANの発展により、企業内のネットワークをWebに接続することが当たり前になった結果、Web経由で社内ネットワークに侵入できるようになり、内部データの盗聴、改ざん、攻撃などが行われる可能性が大きくなりました。そのため、高度なセキュリティシステムの構築が必要となり、ファイアウォールが誕生しました。

https://www.hs-juniperproducts.jp/check/firewall.html

ビジネス向けの記事だったので"企業"や"社内"といった言葉が使われてますね。
"防火壁"という単語が無くても良いような...:sweat_smile:

### 1.4.Cisco
>ファイアウォールとはネットワーク セキュリティ デバイスであり、出入りするネットワークトラフィックをモニターして、定義済みのセキュリティルールセットに基づき、特定のトラフィックを許可するかブロックするかを決定します。

https://www.cisco.com/c/ja_jp/products/security/firewalls/what-is-a-firewall.html

日本語だと、機械語翻訳っぽく感じたので、英語版も探してみました。

>A firewall is a network security device that monitors incoming and outgoing network traffic and decides whether to allow or block specific traffic based on a defined set of security rules.

https://www.cisco.com/c/en_uk/products/security/firewalls/what-is-a-firewall.html?dtid=osscdc000283

### 1.5.Microsoft

>ファイアウォールとは、標的型攻撃など外部のネットワーク経由の悪意ある攻撃から、社内や組織内のネットワークやネットワークに接続するパソコンやサーバーなどの端末を守る情報セキュリティ対策のことです。

https://www.microsoft.com/ja-jp/biz/smb/column-firewall

ビジネス向けのページだったので、"社内"や"組織内"にスポットが当たっていますね。

### 1.6.Fortinet

>「ファイアウォール」という言葉は、本来はインターネット用語ではなく、火災などから建物を守るための「防火壁」のことを指す言葉です。
>例えば、火災が発生すると火は一気に建物に燃え広がります。
>しかし、ファイアウォールによって火の燃え広がりを防ぎ、火災による被害を最小限に抑えられるのです。
>このように、「防火壁」を示す言葉であるファイアウォールにネットワークがつくと、企業や家庭のネットワーク全体を防御するファイアウォール(防火壁)となります。
>ここでのファイアウォールとは、当然PCを火災から守るものではなく、トラフィックからの被害を防ぐ壁を意味します。

"防火壁"をがっつり使って説明してますね。

### 1\.7\. 解釈
ファイアウォールとは、ネットワークトラフィックに特化した<font color="rgb(0,0,0)">**セキュリティ対策の1種**</font>と定義しておきます。
アプライアンスだけでなく、ソフトウェア、サービスとしても存在し、現物として存在しないケースもあるようなので、"デバイス"だけに捉われないよう定義してみました。

## 2.タイプ
『ファイアウォールとは何ですか？』の動画で説明されていたものを記載しています。

https://youtu.be/kDEX1HXybrU?si=w3pP7ChWqrGIsD_I

### 2.1 Host-based firewall
ソフトウェアファイアウォールで、末端のパソコン自身にインストールされているもの。
パソコン(computer_n)が3台ある状態で、Mermaidによるダイアグラムを表示すると、こんなイメージ。

```mermaid
graph LR;
    Internet-->ROUTER;
    ROUTER-->Host-based_firewall_1;
    ROUTER-->Host-based_firewall_2;
    ROUTER-->Host-based_firewall_3;
    Host-based_firewall_1-->computer_1;
    Host-based_firewall_2-->computer_2;
    Host-based_firewall_3-->computer_3;
```

3台のパソコンに対して、3個分のファイアウォール(Host-based_firewall_n)が存在し、個々のパソコンに対して各々で保護していることがわかる。
ホストベースのファイアウォールで身近な例だと、Windows ファイアウォール。

https://learn.microsoft.com/ja-jp/windows/security/operating-system-security/network-security/windows-firewall/

### 2.2 Network-based firewall
ネットワークベースのファイアウォールは、ハードウェアとソフトウェアの組み合わせたもので、ネットワーク層で動作する。
パブリックのネットワークと、プライベートのネットワークの間に置かれる。
先ほどと同じように、パソコン(computer_n)が3台ある状態で、Mermaidによるダイアグラムを表示すると、こんなイメージ。
```mermaid
graph LR;
    Internet-->Network-based_firewall;
    Network-based_firewall-->ROUTER;
    ROUTER-->computer_1;
    ROUTER-->computer_2;
    ROUTER-->computer_3;
```

メリット:thumbsup:
ホストベースと異なり、ネットワーク全体を保護することができる。

デメリット:thumbsdown:
ネットワーク管理者がネットワーク全体に適応されるルールを管理する必要がある。


さて、先の2つのファイアウォールをまとめて、Mermaidによるダイアグラムを表示すると、こんなイメージ。
```mermaid
graph LR;
    Internet-->Network-based_firewall;
    Network-based_firewall-->ROUTER;
    ROUTER-->Host-based_firewall_1;
    ROUTER-->Host-based_firewall_2;
    ROUTER-->Host-based_firewall_3;
    Host-based_firewall_1-->computer_1;
    Host-based_firewall_2-->computer_2;
    Host-based_firewall_3-->computer_3;
```
悪意のある攻撃から、2段階で防御できることがわかる。
①ネットワークベースのファイアウォールでの防御
②ホストベースのファイアウォールでの防御

図では、ネットワークベースのファイアウォール(stand-alone)とルータを分けているが、小さな組織で利用する際はルータに内蔵されているものを使うことがある。

### 2.3 Cloud firewall
上記以外のファイアウォール。
>Firewall as a Service（略してFWaaS）と同義。
>FWaaS はクラウド上で動作し、インターネットを介してアクセスされ、サードパーティのベンダーがアップデートやメンテナンスを行います。

https://www.cloudflare.com/ja-jp/learning/cloud/what-is-a-cloud-firewall/

## 3.歴史

### ~1988年 First Generation
・Packet filter (e.g. an access-list)
　→パケットフィルタリング型
　→自身を通過しようとするパケットのヘッダ（送信元や宛先など）の情報だけを検査して通過可否を判断する方式
　→検査が簡素なので、通信速度が速くコストもかからない:thumbsup:
　→通信のヘッダ情報しか確認しないため、中身の安全性は担保できない:thumbsdown: ヘッダが偽装された情報は見破れない:weary:
・NAT
　→プライベートのIPアドレスからパブリックのIPアドレスに変換しているもの。Network Address Translationの頭文字をとってきたもの。
・Stateless

### ~1989-1990年 Second Generation
・Stateful filter(records connections)
　→ステートフルパケットインスペクション
　→ダイナミックパケットフィルタリングの一種で、過去の通信記録を記憶し、コンテキスト（文脈）からパケットが正当な手順を踏んで送信されたかを判断する仕組み。
・Connection-State
　→ダイナミックパケットフィルタリング
 →通信のやり取りをファイアウォールが記憶して、必要に応じて利用するポートを動的に開け閉めする仕組み。


### ~1994年 Third Generation
・Application-level filter (e.g. inspection)
・"Understands" certain applications and protocols

### ~2012年 Next-Generation
・Wider, deeper inspection of applications

【参考】

https://youtu.be/uk-rq_b2aig?si=76hAtVet-9AR9AD6

https://www.hitachi-solutions.co.jp/paloalto/products/ngfw/history.html

 https://it-trend.jp/firewall/article/60-0009

https://www.rworks.jp/system/system-column/sys-entry/21277/

https://office110.jp/security/knowledge/technology/firewall