aaaiiuie

学習(備忘録)のため運用

情報処理安全確保支援士 5.5 ファイアウォール

概要

ファイアウォールを用いることでネットワーク環境において一定レベルの機密性を確保するとともに、不要なパケットを遮断することによって、ネットワークの利用効率を高めることが可能となる。なお、このような正当のものを選別し、不要な物を取り除くことをフィルタリングという。

上記のようにACLに基づいてアクセス制御を行う製品を通常「ファイアウォール」と呼ぶが、近年親友制御システム(IPS)やWebアプリケーションファイアウォール(WAF)、パーソナルファイアウォールと呼ばれる製品などが登場したこともあり、ファイアウォールの概念や範囲が拡大するとともに、その境界線が曖昧になってきている。つまり。競技では主にネットワーク層においてACLに基づいてアクセス制御を行う製品を「ファイアウォール」と呼ぶが、広義ではマルウェアの侵入を防ぐ製品などをもファイアウォールの一種ということになる。

攻撃を検知・防御する技術の種類

侵入や攻撃を検知しもしくは防御する技術の種類と特徴
f:id:arakakikikaku427821:20210228233406p:plain

ファイアウォールの役割

ファイアウォールは元々インターネットから不正アクセスや攻撃などを主にインバウンド方向のパケットから組織内のネットを守「盾」として機能することを主な役割としていた。 とはいえ、一般的なファイアウォールは全く穴のない完全なたてというわけではなく、Web(HTTP)やメール(SMTP)など、組織がインターネットに後悔しているサービスを通す必要があるため、いくつかの穴のあいた盾である。

つまり盾というよりは接続されているネットワークセグメント間でのフィルタとしての役割をしている。

ファイアウォールはフィルタとして機密性を確保するだけではなく、インターネットから自社サイトへの快適なアクセスや、組織内からの快適なインターネット利用環境を常時提供するという可能性の面での重要な役割もある。

ファイアウォールに求められる役割
f:id:arakakikikaku427821:20210228233414p:plain

5.5.2 ファイアウォールの基本的な構成

①公開サーバをバリアセグメントに接続

下の図は代表される公開サーバをインターネット側のセグメントに接続した構成である。 ファイアウォールは二つのネットワークインターフェースを持ち、インターネット側と内部セグメント間のパケットをフィルタリングする。

公開サーバをバリアセグメントに接続した例
f:id:arakakikikaku427821:20210228233424p:plain

特徴

  • ファイアウォールによっていなtーネットから異内部ネットワークへのアクセスについては全て遮断することが可能である。
  • バリアセグメント上の公開サーバから内部ネットワークへのアクセスについては、一部許可する。
  • ファイアウォールは公開サーバへの攻撃や不正アクセスについては一切防ぐことができない
  • 内部からインターネットへの各種プロトコルが許可されているため、内部侵入したマルウェアによって、C&Cサーバなどへの不正通信が行われる可能性がある

②公開サーバを内部ネットワークに接続

公開サーバを内部ネットワークに接続した例
f:id:arakakikikaku427821:20210228233433p:plain

特徴

  • ファイアウォールによって公開サーバへのアクセスを最小限のサービスにのみ制限することが可能
  • インターネットから内部ネットワークの公開サーバ以外のホストへのアクセスについて全て遮断することが可能
  • 公開サーバのOSやアプリケーションの脆弱性などにより、同サーバへの侵入を許してしまうとそこから経由して内部ネットワーク上の他のホストにまで被害が及ぶ可能性がある
  • 内部からインターネットへ各種プロトコルが許可されているため、内部に新n湯したマルウェアによってC&Cサーバなどへの不正な通信が行われる可能性がある。

③2台のFWに挟まれたDMZに公開サーバを接続

2台のファイアウォールを縦列に接続し、その間セグメント(DMZ)に公開サーバを接続する。バリアセグメントと内部セグメント間のセグメントは、両セグメントにとって感傷的な存在となるため、一般的にDMZ(De-Militaarized Zone:非武装領域)と呼ばれる

2台のファイアウォールに挟まれたセグメント(DMZ)に公開サーバを接続した例
f:id:arakakikikaku427821:20210228233448p:plain

特徴

  • ファイアウォール1によって公開サーバへのアクセスを最小限のサービスのみに制限する
  • ファイアウォール1、2によってインターネットから内部ネットワークへのアクセスについては全て遮断する。
  • DMZから内部ネットワークへのアクセスについては最小限のサービスのみに制限する。従って、万が一公開サーバに侵入されたとしても、そこから内部ネットワークにもあで被害が及ぶ可能性が最小限にトドメいることが可能
  • ファイアウォール1、2を別のベンダの製品やフィルタリング方式の異なる製品にすることで、ファイアウォールのバグなどによって内部ネットワークに侵入あsれる可能性を最小限に止めることが可能
  • 内部から稲ターネットへのHTTP,HTTPSが許可されているため、内部に新n油脂たマルウェアによって、C&Cサーバなどへの不正な通信が行われる可能性がある。

④FWにもうけた第三のセグメントに公開サーバを接続

一台のファイアウォールに新たなネットワークセグメント(DMZ)をもうけ、そこに公開サーバを接続する。新設したネットワークセグメントは3同様にDMZとなる。

第三のセグメントに公開サーバを接続した例
f:id:arakakikikaku427821:20210228233458p:plain

特徴

  • ファイアウォールによって公開サーバへのアクセスを最小限のサービスのみに制限する
  • インターネットから内部ネットワークへのアクセスについては全て遮断する
  • DMZから内部ネットワークへのアクセスについても最小限のサービスのみに制限する。従って、万が一公開サーバに侵入を許してしまっても、そこから内部ネットワークにまで被害が及ぶ可能性を最小限に止めることが可能
  • 内部からインターネットへのHTTP、HTTPSが許可されているため、内部に侵入したマルウェアによって、C&Cサーバなどへの不正な通信が行われる可能性がある

⑤セキュリティレベルに応じて複数のDMZを構成

上記4に加え、公開サーバや内部ネットワークのホストはセキュリティレベルの異なるホストを接続するために、さらに別のDMZをもうけた構成である。

セキュリティレベルに応じて複数のDMZを構成した例
f:id:arakakikikaku427821:20210228233507p:plain

特徴

  • 各ホストの用途や瀬kyルイティレベルに応じた最適なアクセス制御が可能となるほか、特別な用途に用いられるホストなどの別セグメントに切り離すことで、ネットワーク全体のパフォーマンス向上や不可分さんが可能である。
  • 内部からインターネットへの通信を全て遮断し、必ずDMZ1、DMZ2を経由させることで、内部に侵入を許したマルウェアがC&Cサーバなどと通信するリスクを提言することが可能となる

5.5.3 フィルタリング方式から見たFWの種類

ファイアウォールにはパケットをフィルタリングする際の仕組みによって次のような種類がある。

①パケットフィルタ型

パケットフィルタ型(スタティックパケットフィルタ型)とは、パケットのヘッダ情報に含まれるIPアドレス、ポート番号などによって中継の可否を遮断するもので、ルータがベースになっている方式である。フィルタリングの設定において利用できる情報としては、発信元IPアドレス、送信先IPアドレス、プロトコル種別、パケットの方向、発信元ポート番号、送信先ポート番号、などがある。

パケットフィルタ型ファイアウォールによるフィルタリングのイメージ
f:id:arakakikikaku427821:20210228233538p:plain

この方式では、ファイアウォールはルータと同様にインターネット層(第三層)のレベウrでパケットを中継するため、クライアントとサーバが直接コネクションを確立する。

ACLの例

パケットフィルタ型ファイアウォールのACLの例
f:id:arakakikikaku427821:20210228233549p:plain

ACLの上の行から順番に照合され、条件に合致した時点でアクションが実行され、以降の条件は参照されないため、優先順位の高いルールほど上に記述する必要がある。 内部ネットワークからインターネット上の任意のWebサイトへのアクセスを許可する場合、上り方向(アウトバウンド)のパケットしてNo1のルールを登録するだけではなく、その応答である下り方向(インバウンド)のパケットとしてNo2のル=るを登録する必要がある。 しかしNo2のパケットは必ずACKフラグがONになっていることが条件となり、SYNフラグがONでACKフラグがOFFになっている場合などは拒否される。つまりサーバ側からこのルールを悪用して新たなコネクションを確立することはできない。しかしTCP ACKスキャンをはじめ、パケットを偽装した攻撃などは受ける可能性がある。

特徴

  • フィルタリング処理がOSレベルで行われファイアウォールがコネクションを確立することもないため、処理効率が高い
  • 新たなプロトコろを許可する必要が生じても、単純なプロトコルであれば該当するポートへのアクセスを許可するのみで住むため、容易な設定によって不正アクセスを許してしまう可能性がある。
  • シンプルなアクセスし絵魚しかできないため、複雑な処理をyいつようとするプロトコルには対応できないか、非常に脆弱なACLになる可能性がある。
  • アクセス制御のルールが複雑になるとALの記述が煩雑になり設定ミスなどが起こりやすい

フィルタリング設定上の留意点

  • 接続先のポート番号が固定されている
  • クライアントからサーバ方向にのみセッション確立され、その逆方からセッションが確立されることがない
  • 発信元のIPアドレス、ポート番号が変換されていても問題がない
  • ペイロード内にIPアドレスやポート番号が含まれていない

②アプリケーションゲートウェイ型

アプリケーションゲーウェイ型とはHTTP、SMTP,FTPなどのアプリケーションプログラムごとに別々のプロキシを持ち、パケットのアプリケーション層も含めた情報に基づいてパケットの中継可否を判断するタイプである。これは一般的なプロキシサーバの仕組みに近い。

IPアドレス、ポート番号に加え、ペイロードに含まれるコマンドやポート番号などの情報についてもチェックするため、パケットフィルタ型に比べよりきめ細かな制御が可能となる。

この方式ではクラインとは目的にサーバではなく、ファイアウォールとの間でコネクションを確立して通信を行う。ファイアウォールは暗いなとからのアクセス要求を一旦受け、接続を許可する場合には、クライアントに変わって目的のサーバにアクセスし、コネクションを確立させる。

アプリケーションゲートウェイ型ファイアウォールによるフィルタリングのイメージ
f:id:arakakikikaku427821:20210228233614p:plain

ACLの例

アプリケーションゲートウェイ型ファイアウォールに設定するACLの例
f:id:arakakikikaku427821:20210228233624p:plain

特徴

  • フィルタリング処理がアプリケーションで行われ、一回のアクセス要求でクライアントとファイアウォール間、ファイアウォールとサーバ間で個別にコネクションを確立させるため、パケットフィルタリング型に比べると処理効率が低下する
  • 新たなプロトコルを許可するには、それに対応した専用のプロキシが必要である
  • プロトコルごとにきめ細かい制御ができるため、セキュアで柔軟なフィルタリングを行うことが可能
  • パケットフィルタ型に比べACLの作成が容易であり、設定ミスが発生しにくい

③サーキットレベルゲートウェイ型

アプリケーションゲートウェイ型と同様に、ファイアウォールがクライアントから接続要求を一旦受け取り、接続を許可する場合には、目的のサーバに対してトランスポート層レベルでコネクションを確立し、クライアントサーバを結ぶ仮想通信路(バーチャルサーキット)を確立するタイプである。

サーキットレベルゲートウェイ型ファイアウォールによるフィルタリングのイメージ
f:id:arakakikikaku427821:20210228233633p:plain

特徴

  • フリーのプロキシといsて有名なSOCKSがこの方式を用いている
  • フィルタリング処理は第三層、第四層レベルの情報に基づいて行われている
  • ペイロードに含まれる情報についてはチェックしない
  • 使用するにはクライアント側のアプリケーションプログラムがこの方式に対応している必要がある。

④ダイナミックパケットフィルタ型

最初にコネクションを確立する方向のみを意識した基本的なACLを事前に登録しておき、実際に接続要求があると、ここの通信をセッション管理テーブルに登録すつとともに必要なルールが動的に生成され、フィルタリング処理を行う方式である。

セッション管理テーブルによって通過したパケットの応答やそれに付随するコネクションなどを総合的に管理し、自動的に必要な処理を行う。 セッションが終了すると、動的に生成したルールは破棄される。

ダイナミックパケットフィルタ型ファイアウォールによるフィルタリングのイメージ
f:id:arakakikikaku427821:20210228233642p:plain

特徴

  • 従来のスタティックパケットフィルタでは、上りも下りも別個の通信としてしか捉えられなかったため、不正アクセスによっては順序に矛盾したパケットが送られてきたとしても、該当する条件がACLに登録されてさえいれば中継していた。一方ダイナミックパケットフィルタでは、過去の通信状況が記録されており、それと矛盾するパケットは不正パケットして遮断することができる
  • 常に必要最小限おルールが動的に生成され、必要がなくなれば破棄されるため、ACL設定のバグを悪用した不正アクセスなどが発生する可能性が非常に低い
  • スタティックパケットフィルタでは問題だったFTPについても、動的にデータコネクションようのACLを生成し、転送が終了すれば直ちに破棄することでセキュリティを確保可能

⑥ステートフルインスペクション型

CheckPoint社が開発し、特許を保有するファイアウォールのアーキテクチャで、現在多くのファイアウォール製品に実装されている。基本的な仕組みはダイナミックパケットフィルタ型と同様だが、アプリケーションごとの通信フローなどの情報を持っており、それに基づいてレイヤを限定しないきめ細かな制御を行う。

アクセス制御のルール設定における考え方

二つの考え方がある

  • ポジティブセキュリティモデル
    デフォルトは全て拒否する状態であり、そこに許可するルール(ホワイトリスト)を登録するという考え方
  • ネガティブセキュリティモデル
    デフォルトでは全てを許可する状態であり、そこに拒否するルール(ブラックリスト)を登録するという考え方

5.5.4 ファイアウォールのアドレス変換機能

一般的になファイアウォールにはグローバルアドレスとプライベートアドレスを相互に変換する機能がある。

  1. 枯渇するグローバルアドレスを有効に活用する
  2. 内部ネットワークに接続されたホストのアドレスをインターネットに公開しないことによってセキュリティを高める

アドレス変換機能には、IPアドレスのみを変換するNATとIPアドレスに加えポート番号も変換するNAPTがある。

NATのイメージ
f:id:arakakikikaku427821:20210228233656p:plain
NAPTのイメージ
f:id:arakakikikaku427821:20210228233704p:plain

5.5.5 ファイアウォールでは防御できない攻撃

ファイアウォールで防御できない攻撃の例
f:id:arakakikikaku427821:20210228234121p:plain