アクセスコントロールリスト: 定義、タイプ、用途

アクセスコントロールリスト(ACL)には、特定のデジタル環境内でユーザーが実行できる操作と実行できない操作を指定する一連のルールがあります。ACLは、ユーザーが何にアクセスできるか、またそのアクセスによってどのようなタイプの操作を実行できるかを規定する許可のリストです。

ACLにはいくつかのタイプがあります。ネットワーク全体へのアクセス、ネットワーク内の特定のファイルやディレクトリへのアクセスをフィルタリングすることができます。ACLは、ネットワーク内のトラフィックのフローを決定する他のセキュリティテクノロジーとともによく利用されます。

ACL は多くの場合、ITセキュリティの手順、ポリシー、テクノロジーの重要な構成要素です。

ACLの定義

ACLには、アクセスコントロールエントリ(ACE)が含まれており、デジタルネットワーク内のトラフィックをフィルタリングする方法をシステムに指示します。ACLは、どのユーザーに何を表示するのかをシステムに指示するだけでなく、誰があるいは何がネットワーク内で変更を加えることができるかを指示することができます。

ACLは、ファイルやディレクトリへのアクセス、さらにはネットワーク自体へのアクセスを決定することができます。ACLは、ユーザーへの読み取り権限と書き込み権限を指定することもできます。

一時は、ACLがファイアウォールによる保護の主要な方法でした。現在、 ファイアウォールには、それに代わるものや追加機能を備えたものがあります。

ACLは、仮想プライベートネットワーク(VPN)を含む他のセキュリティテクノロジーと組み合わせて使用することができ、どのトラフィックを暗号化し、それをどこに転送するかを決定することができます。

ACLの種類

  • ファイルシステムACLとネットワークACL: ACLは、ネットワーク全体へのアクセス(ネットワーキングACL)、またはファイルやディレクトリへのアクセス(ファイルシステムACL)をフィルタリングします。ネットワーキングACLは、ルーターやスイッチに、どのトラフィックがネットワークへのアクセスを許可され、どのような種類のアクティビティが許可されるかを伝えます。ファイルシステムACLは、オペレーティングシステムに、どのユーザーがシステムにアクセスできるか、どのような権限が与えられているかを指示します。
  • LinuxやWindowsを使ったACL:  ACLはLinuxまたはWindowsで設定できます。Linuxは、より柔軟に設定できますが、多くの場合、メンテナンスに高度な専門知識が必要です。Windowsは、使いやすく安定したプラットフォームを提供しますが、Linuxのようにカーネルを変更することはできません。
  • 標準ACL vs 拡張ACL: ACLには大きく分けて標準ACLと拡張ACLの2種類があります。標準ACLは、IPトラフィックを区別しませんが、代わりにソースIPアドレスに基づいてトラフィックを許可またはブロックします。拡張ACLは、ソースIPアドレスと宛先IPアドレスの両方を使用して、IPトラフィックを区別し、アクセスを許可または拒否する内容を規定することができます。
  • システムアクセスコントロールリスト(SACL)と任意アクセスコントロールリスト(DACL): SACLは、特定のオブジェクトへのアクセス施行を記録します。これを使用することで、アクセスを許可する場合、アクセスを拒否する場合、またはその両方を判断するための監査記録を生成することができます。DACL は、保護されたオブジェクトへのアクセスが許可される人物と対象を特定します。システムは アクセスコントロールエントリ(ACE)を体系的にチェックして、アクセスを許可すべきか拒否すべきかを判断します。

ACLを使う理由とは?

ACLは、システム内でどのユーザーが何を実行できるか、誰がアクセスできるかを判断することにより、ネットワークセキュリティを提供できます。保護されたオブジェクトの周りのトラフィックを制限することで、システムの安全性を高め、ネットワークをスムーズに動かすのに役立ちます。トラフィックが減れば、ネットワークのパフォーマンスも向上します。

ACLはトラフィックのフローを制御し、あるべきでないものを排除し、あるべきものを受け入れます。また、システムに出入りするトラフィックを監視することにも役立ちます。

ACLは特定のものから広範囲のものまで設定できます。ACLは、特定のユーザーだけをシステムに受け入れるようにし、ユーザーがシステム内で持つ特権を決定することができます。ACLは、システム内で誰がアクセス権を持つかを決めることで、 セキュリティ侵害のリスクを最小限に抑えることに 役立ちます。

ACLの仕組み

ACLは、ACEを使用してトラフィックフローを指示、管理、監視します。ネットワークACLは、ルーターやスイッチにインストールされるトラフィックフィルターで、ネットワークへのパケットやルーティングアップデートのアクセスを許可または拒否するための事前に定義されたルールを含んでいます。ACLを使用しているルーターやスイッチは、パケットを拒否または転送するパケットフィルターとして機能するようにフィルタリング基準が設定されています。

ファイルシステムACLは、特定のファイルやディレクトリなどの特定のシステムオブジェクトに対してユーザーがどのようなアクセス権を持つかをオペレーティングシステムに指示します。これらのオブジェクトはそれぞれ、セキュリティプロパティとしてACLに接続されており、システムへのアクセス権を持つすべてのユーザーは、ACLにエントリを持っています。

ACL が指示できるユーザー権限には、ディレクトリ内の特定のファイルまたはすべてのファイルの読み取りアクセスを許可することが含まれます。ACLは、ユーザーがファイルの実行または書き込みの権限を持っているかどうかを決定することもできます。ユーザーがオブジェクトへのアクセスのリクエストを送信すると、オペレーティングシステムはACLを使用して、ユーザーに要求された許可を出す関連エントリを検索します。一致するエントリが見つからない場合、アクセスは拒否またはブロックされます。

ACLの使用に関するベストプラクティス

ACLは、システムとネットワークが迅速かつ安全に実行できるようにする有用なセキュリティツールですが、ネットワークを安全かつ円滑に維持するためには、適切に設定することが重要です。これには、ACLを設定する際に以下のベストプラクティスに従うことが含まれます。

  • 各インターフェイスで ACL を使用する: ACLは、保護されたネットワークへの出入りを制御するために、公衆アクセスのネットワークインターフェースに必要です。各拠点で異なるルールが必要になるため、ACLはすべてのセキュリティおよびルーティング機器に適用することが必要です。

外部インターフェイスは許可されるアクセスを指定する必要があり、内部インターフェイスはシステム内のユーザー権限とパーミッションを決定する必要があります。保護されたネットワーク内のACLは、システムにさらなるセキュリティを加えることができます。

ACLによって設定されるルールは、ACLが配置される場所によって異なる場合があります。これらのルールは、セキュリティ侵害とその影響を最小限に抑え、機密性の高いリソースを保護し、ネットワークのパフォーマンスを向上させることができます。 

  • ACLは必ず正しい順序で配置する: ACLは最初に遭遇したルールを実行します。そのため、ネットワークを円滑に実行させ、許可を意図したとおりに動作させるためには、ルールを正しい順序で入力することが重要です。ルールの順序を誤ると、適切な人のアクセスを拒否したり、ネットワークの速度を低下させたり、保護されている機密性の高いリソースが誤ったユーザーによって脆弱な状態になったりする可能性があります。

ACLを作成する際は、より一般的なルールから始め、より具体的なルールへと段階的に減らしていきます。これにより、パケットがシステム内に留まる時間を制限することができ、システムを必要な速度に保つことができます。

ACLにルールを追加するときは、イベントの連鎖をどのように発生させたいか、ルールをいつトリガーさせたいかを考慮することが重要です。 

  • 個々のユーザーではなく、特定のグループに対してルールを設定することを検討する: ユーザーベースのACLは、新しいユーザーが増えるたびにACLを更新する必要があることを意味します。つまり、新規採用、配置転換、解雇のたびに、ACLを更新し、管理する必要があります。

このように個々のユーザーに対してルールを書くのではなく、ユーザーのグループに対してルールを設定することができます。この方法では、特定のグループの全員が同じ許可とアクセス権を持つことになります。

通常、企業内のユーザー数は非常に動的であり、常に変更が発生します。そのため、個別ではなくグループベースのACLルールを使用することで、時間と労力を節約することができます。 

  • すべての作業を文書化する: すべてのACLルールを記録しておくようにします。新しいルールを追加する場合は、それがいつ追加されたのか、なぜ追加されたのか、誰が追加したのか、そのルールは何をするためのものなのかを文書化します。ACLシステムでは詳細な情報を入力することができるため、ACLの管理がより簡単になります。

コメントは、ルールのグループに対しても追加できるため、各ルールに対して特別に記述する必要はありません。多くの場合、組み合わせて使用するのが最善です。より具体的な詳細が必要なルールもあれば、グループ化できるルールもあります。 

  • ACL管理ツールを使用する: ネットワークにACLを追加すればするほど、ACLはより複雑になります。また、ACLは更新されるとかなり長くなることもあります。ACL管理ツールは、確実に、ルールが正しい順序にあり、必要なときにアップデートが展開され、ACLが可能な限り効率的に実行され続けるようにします。

ACL管理ツールは、変更ログ、通知、監査証跡を提供し、システムとネットワークを安全に保ち、望ましいパフォーマンスを維持することができます。

RBACとACLの比較

ACLに代わるものとして、ロールベースのアクセスコントロール(RBAC)モデルがあります。RBACは、ACLのように個々のユーザーレベルではなく、社内におけるユーザーのロールに基づいてネットワークアクセスを制限または許可します。RBACは、特定のロールが持つことのできるアクセスレベルを決定します。

社内の誰もがシステム全体にアクセスする必要があるわけではありません。例えば、下位レベルの管理者は、職務に関係のない機密性の高いデータにアクセスすべきではありません。RBACは、ユーザーが組織内で持つロールに基づいて、ネットワーク内のセキュリティを管理することができます。

RBACをACLと組み合わせることで、さらにセキュリティと柔軟性を高めることができます。例えば、ACLを通じてユーザーのグループにアクセスを許可している場合、組織内の別のプロジェクトに従業員がいる場合は、RBACを使用して、関連性のない部門には完全なアクセスを許可せずに、必要なリソースへのアクセスを許可することができます。

こちらの情報も併せてご活用ください

Windowsオペレーティングシステムをご利用の場合、 Microsoft は、ACLの作成および変更方法について詳しく解説しています。また、 Cisco は、IPアクセスリストの設定方法に関するチュートリアルを用意しています。

SolarWindsが提供するようなアクセス管理システムを使用することもできます。30日間の無料トライアルを入手して、貴社のネットワークと組織で機能するかどうかを確認できます。ACL管理ツールは、セキュリティを強化し、ネットワークパフォーマンスを最適化するのに役立ちます。

参考文献

Domain 1 (2021年、 CISSP Study Guide (Second Edition)

Enhancing Network Security and Performance Using Optimized ACLs(2014年11月、International Journal in Foundations of Computer Science & Technology (IJFCST)

Creating or Modifying an ACL(2021年1月、Microsoft)

Access Management System(2021年、SolarWinds Worldwide, LLC.)

Configuring IP Access Lists(Cisco)