ファイアウォールの基礎まとめ【仕組み・方式・DMZ・WAFまで解説】

ファイアウォールに関するブログのアイキャッチ画像 ネットワーク
広告

 ネットワークを安全に利用するためには,外部からの不正アクセスや攻撃を防ぐしくみが必要です。その中心となるセキュリティ技術の一つがファイアウォールです。ファイアウォールは,通信の通過や遮断を制御することにより,内部ネットワークを保護する役割を持っています。ファイアウォールのしくみや種類,どのようにネットワークを防御しているのかを正しく理解できていますか?

ファイアウォール=必要な通信のみを通過させ,不必要な通信を遮断することでネットワークを保護するしくみ

 このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,ファイアウォールについてシンプルにまとめています。ファイアウォールの基本的な役割や機能,DMZやバリアセグメントなどのネットワーク構成,パケットフィルタリングやプロキシ方式などの動作方式,ログ管理や付加機能,WAFについて整理して理解しましょう。

  1. ファイアウォールとは(役割と基本機能)
    1. ファイアウォールの主な機能(通信制御とログ)
    2. DMZ(DeMilitarized Zone;非武装地帯)とは(役割と構成)
      1. バリアセグメントとは(セキュリティ境界の強化)
    3. ファイアウォールの構成例(設置パターン)
      1. ファイアウォールを1台設置し公開サーバーをバリアセグメントに設置する場合の例
      2. ファイアウォールを1台設置し公開サーバーをDMZに設置する場合の例
      3. ファイアウォールを2台設置する場合の例
        1. 公開サーバーとは
    4. ファイアウォールの分類(動作方式別)
      1. パケットフィルタリング方式とは(ルールによる制御)
        1. ACL(Access Control List;アクセス制御リスト)とは(役割)
        2. 静的フィルタリング(スタティックパケットフィルタリング)とは
        3. 動的フィルタリング(ダイナミックパケットフィルタリング)とは
          1. ステートフルインスペクションとは(状態追跡型制御)
      2. サーキットレベルゲートウェイ(トランスポートゲートウェイ)方式とは(接続追跡型)
      3. アプリケーションレベルゲートウェイ方式とは(プロキシ型)
        1. プロキシサーバーとは(中継と制御)
        2. リバースプロキシサーバーとは(サーバー保護)
    5. ファイアウォールの管理(運用とログ対策)
      1. ACLの管理(定期チェックと保守)
      2. ログの管理(取得・保管・分析)
        1. ログサーバーとは(集中管理)
          1. syslogとは(ログ転送プロトコル)
          2. SIEM(Security Information and Event Management)とは(一元ログ管理と分析)
    6. ファイアウォールの付加機能とは
  2. WAF(Web Application Firewall)とは(Web アプリ保護のファイアウォール)
  3. まとめ
広告

ファイアウォールとは(役割と基本機能)

 ファイアウォールとは,必要な通信のみを通過(不必要な通信は遮断)させる,アクセス制御の概念のことをいいます。サーバーでソフトウェアとして動作するものや,専用の機器として提供されるものがあり,セキュリティレベルが異なるネットワークの境界(セキュリティ境界)に設置されます。

※ ファイアウォールは,ルーターなどに,機能の一つとして実装されることもある。OSなどに含まれることもある

ファイアウォールの説明画像

ファイアウォールの主な機能(通信制御とログ)

  • パケットの中継機能(ルーターとしての機能)
  • 必要な通信のみを通過(フォワーディング)させ,不必要な通信は遮断(フィルタリング)する機能
  • 通過/遮断した通信のログを取得する機能
  • コンピューターやネットワーク,ログを管理・監視する機能

※ ログ…システムなどで起こった出来事を時系列に記録したデータ(IPアドレスやポート番号,通過/遮断の区別などが記録される)

※ ログは,不正アクセスの兆候を調べたり,不正アクセスが行われた際に,どのようなアクセスが行われていたかを調べるためなどに使用する

※ ログの記録方法には,ローカルの記憶装置に記録する方法や,独立した専用のログサーバーに記録し一元管理する方法がある

※ ファイアウォールの機能として,プロキシサーバーやNAT(NAPT)機能を含むものも多くある

※ ログの管理,ログサーバー,プロキシサーバーの詳細は後述

DMZ(DeMilitarized Zone;非武装地帯)とは(役割と構成)

 DMZとは,外部ネットワークと内部ネットワークの中間に位置するネットワークで,一般的には,外部に公開するサーバー(Webサーバーやメールサーバーなど)を設置します。

※ 公開サーバーを設置するネットワークと,外部ネットワーク,内部ネットワークのセキュリティレベルが異なるため,DMZを設ける

バリアセグメントとは(セキュリティ境界の強化)

 バリアセグメントとは,インターネットに接続するための(境界)ルーターとファイアウォールの間のネットワークのことをいいます。バリアセグメントに公開サーバーを設置する場合は,ファイアウォールで防御することはできませんので,公開サーバーそのものを要塞化する必要があります。

※ サーバーの要塞化…不要なポートを閉じたり,セキュリティパッチ(修正プログラム)を適用したり,不要なアカウントを無効にしたりする防御策。ログの管理も行う

※ 不要なポートを閉じるというのは,通信アプリケーションごとに割り当てられたポート番号(HTTP=80など)を使用できないようにすることをいい,外部からの攻撃を防ぐことができる

ファイアウォールの構成例(設置パターン)

ファイアウォールを1台設置し公開サーバーをバリアセグメントに設置する場合の例

ファイアウォールの構成例(バリアセグメントに公開サーバーを設置)に関する説明画像

 この構成の場合,公開サーバーはバリアセグメントに設置されますので,セキュリティの確保が課題になります。

ファイアウォールを1台設置し公開サーバーをDMZに設置する場合の例

ファイアウォールの構成例(DMZに公開サーバーを設置)に関する説明画像

 この構成の場合,公開サーバーは,DMZに設置されますので,ファイアウォールにより外部の攻撃から保護されます。ただし,ファイアウォールの設定が複雑になるので,設定ミスに気を付けなければなりません。

ファイアウォールを2台設置する場合の例

ファイアウォールの構成例(ファイアウォールを2つ使用する場合)に関する説明画像

 この構成の場合,ファイアウォールを2台使用しますが,それぞれを別々の製品にすることにより,1台目のファイアウォールに欠陥があった場合でも,2台目のファイアウォールにより内部ネットワークを保護することができます。

公開サーバーとは

 DNSサーバーやメールサーバーなどは,DMZに設置することが多いです。

※ DMZに設置するサーバーは,外部に公開する。内部ネットワークに設置するサーバーは,外部に公開しない

公開サーバーの設置に関する説明画像

広告

ファイアウォールの分類(動作方式別)

 ファイアウォールは,ネットワーク通信の制御方法(OSI基本参照モデルの,どの層で動作するかの違い)により分類することができます。

パケットフィルタリング方式とは(ルールによる制御)

 パケットフィルタリング方式の場合は,ファイアウォールに届いたパケットの送信元IPアドレス,あて先IPアドレス,送信元ポート番号,あて先ポート番号,プロトコル(TCP,UDPなど)を確認し,通過させるか,遮断するかを判断します。

※ OSI基本参照モデルの,ネットワーク層とトランスポート層で動作する

ACL(Access Control List;アクセス制御リスト)とは(役割)

 ACLは,パケットの通過/遮断を判断するためのリストです。

※ ACLは,ルーターやファイアウォールのフィルタリングテーブルに登録する

 たとえば,上記の,「ファイアウォールを1台設置し公開サーバーをDMZに設置する場合」の場合,ACLは次のように登録します。

ACLの説明画像

 ACLのルールは,上の行が優先され条件に合致するまで順に検索されますので,重要なルールほど上の行に登録します。また,いちばん下の行では,すべてを遮断するようにします。

 パケットフィルタリングに関する具体例は,「インターネットへの接続と通信の流れ」を参照してください。

静的フィルタリング(スタティックパケットフィルタリング)とは

 静的フィルタリングでは,行きのルールと戻りのルールを,それぞれ登録します。静的フィルタリングは,構造が単純で,高速に処理できますが,戻りのパケットが詐称されていた場合,対処できません。

動的フィルタリング(ダイナミックパケットフィルタリング)とは

 動的フィルタリングでは,行きのルールのみを登録します(戻りのルールは登録しません)。TCPやUDPの接続情報を管理して,該当するセッションのパケットであれば,戻りのパケットを通過させます。

ステートフルインスペクションとは(状態追跡型制御)

 ステートフルインスペクションとは,通信の状態(セッション情報)を記憶して,その状態に基づいてパケットの通過/遮断を判断する動的フィルタリングをいいます。

 たとえば,TCPで3ウェイハンドシェイクによりコネクションを確立する場合,最初のSYNパケットを記憶しておき,その後の,SYN+ACKパケットやACKパケットについては,該当するセッションのパケットのみを通過させるようにします。

※ 該当しないACKパケットが送られてきたら,動作の不具合か,攻撃が疑われる

サーキットレベルゲートウェイ(トランスポートゲートウェイ)方式とは(接続追跡型)

 サーキットレベルゲートウェイ方式の場合は,TCPやUDPで動作するアプリケーションのポート番号に対する制御規則を登録し,通過させるか,遮断するかを判断します。

※ OSI基本参照モデルのトランスポート層で動作するので,TCPセッションの確立を確認することにより,不正な通信を遮断することができる

※ 実装時には,パケットフィルタリングでIPレベルの制御を行い,サーキットレベルゲートウェイでTCPのセッション単位に制御を行う

アプリケーションレベルゲートウェイ方式とは(プロキシ型)

 アプリケーションレベルゲートウェイ方式の場合は,HTTPなどのアプリケーションごとに細かく制御規則を登録し,通過させるか,遮断するかを判断します。一般的には,プロキシサーバーがプロトコル処理を代行します。

※ OSI基本参照モデルの,アプリケーション層で動作するので,(パケット単位ではなく,パケットを組み立てた)実データの内容を確認することができる

プロキシサーバーとは(中継と制御)

 プロキシサーバーは,内部ネットワークから(インターネットなど)外部への通信を代行するサーバーです。一般的には,DMZに設置され,内部ネットワークのコンピューターから外部Webサーバーへのアクセスを中継します。

※ プロキシ…代理という意味

※ プロキシサーバーは,HTTPだけでなく,SMTP,IMAPなど,さまざまなプロトコルに対応可能

プロキシサーバーの説明画像

 プロキシサーバーには,次のような機能があります。

キャッシュとは

 一度アクセスした情報を,一時的にプロキシサーバーに保存しておく機能。再度,同じ情報へのアクセスがあった場合,保存しておいたキャッシュの情報を返すことにより2回目以降のアクセスを高速にすることができる(トラフィックの軽減にもなる)

セキュリティとは

 外部へのアクセスをプロキシサーバーが代理で行うため,内部ネットワーク(コンピューターのIPアドレスなど)の情報を秘匿できる(外部からはプロキシサーバーしか見えないため)

URLフィルタリングとは

 特定の(有害な)Webサイト(URL)の閲覧を禁止(フィルタリング)する機能

※ キャッシュ…一度アクセスした情報を一時的に保存しておく仕組み

リバースプロキシサーバーとは(サーバー保護)

 リバースプロキシサーバーとは,(インターネットなど)外部の不特定多数から公開サーバーへの通信を代行するサーバーです。一般的には,DMZに設置されます。

※ 通常のプロキシサーバーとは,逆の働きをする

リバースプロキシサーバーに関する説明画像

 リバースプロキシサーバーには,次のような機能があります。

キャッシュとは

 外部に応答した情報を,一時的にリバースプロキシサーバーに保存しておく機能。再度,同じ情報へのアクセスがあった場合,保存しておいたキャッシュの情報を返す(Webサーバーの負荷を軽減できる)

負荷分散とは

 同じ処理をするWebサーバーが複数台ある場合に,より負荷の少ないWebサーバーにアクセスを振り分けることにより負荷を分散する機能。また,リバースプロキシサーバーを複数台使用すれば,リバースプロキシサーバー自体の負荷も分散できる

SSL高速化とは

 Webサーバーとクライアントの間で行うSSL/TLS通信を,リバースプロキシサーバーとクライアントの間で行うことにより,Webサーバーの負荷(暗号化,復号の負荷)を軽減することができる。この場合,リバースプロキシサーバーとクライアントの間の通信は暗号化されるが,リバースプロキシサーバーとWebサーバーの間の通信は暗号化されない

※ キャッシュ…一度アクセスした情報を一時的に保存しておく仕組み

広告

ファイアウォールの管理(運用とログ対策)

 ファイアウォール自体の脆弱性や,アクセス制御規則に漏れや誤りが存在する可能性があるので,日頃から脆弱性情報の収集や,定期的な点検,セキュリティパッチの適用など,ファイアウォールの管理体制を整えておく必要があります。

ACLの管理(定期チェックと保守)

 ACLについては,悪意のある第三者によって変更される恐れがあるため,チェックリストを使用して定期的にチェックする必要があります。

ログの管理(取得・保管・分析)

 ログについては,不正アクセスの解析に使用したり,不正アクセスした者を告発するための証拠として使用することがあるため,確実に保存するようにします。次のような情報を,ログとして記録します。

※ ログ…システムなどで起こった出来事を時系列に記録したデータ

※ 一般的なファイアウォールにはログを保存する機能がある

許可したアクセス

通信の開始日時,送信元IPアドレス,あて先IPアドレス,送信元ポート番号,あて先ポート番号,接続の方向,アプリケーション,通信時間,アクセス回数など

遮断したアクセス

遮断日時,遮断コード,送信元IPアドレス,あて先IPアドレス,送信元ポート番号,あて先ポート番号,アクセス回数など

ファイアウォールへのログイン

ログイン日時,ユーザーID,成功/失敗,設定変更内容など

 また,取得したログは,定期的にバックアップするようにします。さらに,ログの解析ツールを利用して,アクセス状態を分析するようにします。アクセス量を定期的に測定して閾値を設定することにより,DoS攻撃などの兆候を検知することができます。

※ ログは,ファイアウォールの増強計画を立案する際にも利用できる

ログサーバーとは(集中管理)

 ログの取得に関しては,ログサーバーを設置して,ログを集約する方法もあります。

ログサーバーに関する説明画像

 ログサーバーを使用する利点は,次のとおりです。

  • (攻撃などにより)ログファイルが失われても,直前までに集約したログは失われない(バックアップできている)
  • 集約したログを解析することで,不正アクセスの経路や手口を分析できる

※ ログを集約して分析するためには,各サーバーから送られてきたログの時刻の正確性を確保しなければならないので,NTPを利用する

※ NTP(Network Time Protocol)…時刻同期を行うためのプロトコル

syslogとは(ログ転送プロトコル)

 syslogとは,ログを転送するためのプロトコルです。

※ UDPで動作することが多いが,TCPやTLSを使用する実装もある

SIEM(Security Information and Event Management)とは(一元ログ管理と分析)

 SIEMとは,複数のサーバーやネットワーク機器のログを集めて一元管理する仕組みのことをいいます。

ファイアウォールの付加機能とは

 ファイアウォール製品には,次のような付加的機能を備えたものがあります。

認証と暗号化特定のユーザーやホストに対してのみアクセスを許可し,暗号化通信を行う機能(VPN機能)
侵入検知と侵入防止通信の状況をアプリケーション層レベルで分析し,DoS攻撃などを検知・阻止する機能
ウイルススキャンアプリケーションのプロトコルを解析し,ダウンロードするファイルや,電子メールの添付ファイルなどに対してウイルススキャンを実行する機能
スパムメール
フィルタリング
電子メールのヘッダーやコンテンツを解析し,スパムメールの特徴を持つ電子メールであった場合に,その電子メールを取り除く機能

広告

WAF(Web Application Firewall)とは(Web アプリ保護のファイアウォール)

 WAFは,Webアプリケーション用のファイアウォールで,HTTPなどのアプリケーションごとに細かく制御規則を登録することができます。SQLインジェクションやクロスサイトスクリプティングなどの攻撃に対応できます。

※ IPパケットのペイロードをチェックする

※ ペイロード…ヘッダーを除いたデータ本体のこと

 不正アクセスや攻撃を検知する方法には,次のようなものがあります。

ブラックリスト方式外部とWebサーバーの間の通信を調べ,あらかじめ登録しておいた攻撃と判断できるパターン(ブラックリスト)と比較して,合致した場合に警告や遮断を行う方式。ブラックリストは,管理者が手動で登録する
ホワイトリスト方式外部とWebサーバーの間の通信を調べ,あらかじめ登録しておいた許可するパターン(ホワイトリスト)と比較して,合致した場合にだけ通信し,それ以外の場合は,警告や遮断を行う方式。ホワイトリストは,管理者が手動で登録する
シグネチャベース方式開発元が,ブラックリストとホワイトリストをデータベース化し,定期的に(自動)更新する方式。現在の主流
ルールベース方式蓄積されたブラックリストやホワイトリストをデータマイニングツールなどで分析してルールベースとして登録しておき,通信内容が安全か危険かを判断する方式(人工知能(AI)方式)。新しい攻撃にも対応できる

※ ルールベース方式は,シグネチャベース方式の問題(更新するたびにデータベースの容量が大きくなり,検索時間が増える問題)への対応として開発された

まとめ

 今回は,ファイアウォールについてシンプルにまとめてみました。ファイアウォールは,必要な通信のみを通過させ,不必要な通信を遮断することでネットワークを保護する重要なセキュリティ技術です。パケットフィルタリング方式やプロキシ方式などの動作方式,DMZなどのネットワーク構成,ログ管理や付加機能などの役割を整理して理解しておきましょう。

 理解が進んだら,基本情報技術者試験の過去問題等にもチャレンジしてみてください。