システムACL (システムエーシーエル) とは | 意味や読み方など丁寧でわかりやすい用語解説
システムACL (システムエーシーエル) の読み方
日本語表記
システムアクセス制御リスト (システムアクセス制御リスト)
英語表記
System ACL (システム アクル)
システムACL (システムエーシーエル) の意味や用語解説
「システムACL」は、アクセス制御リスト(ACL)の一種であり、主にWindows系のオペレーティングシステムでセキュリティ監査の目的で使用される機能である。アクセス制御リストとは、ファイルやレジストリキー、Active Directoryオブジェクトといったシステムリソースに対して、どのユーザーやグループがどのような操作を許可または拒否されるかを定義する情報の一覧を指す。このACLには大きく二つの種類がある。一つは、実際のアクセス権限を制御する「任意アクセス制御リスト(DACL:Discretionary Access Control List)」であり、もう一つが、今回解説するセキュリティ監査のための「システムACL(SACL:System Access Control List)」である。 DACLが「誰が何を実行できるか」を決定するのに対し、SACLは「誰が何を試行したか」を記録することを目的とする。具体的には、特定のシステムリソースに対するアクセス試行が成功したか、失敗したかに関わらず、その活動を監視し、セキュリティイベントログに記録するためのルールをSACLが定義する。システム管理者やセキュリティ担当者は、SACLを設定することで、不正なアクセス試行の検出、ユーザーの不審な行動の監視、あるいはセキュリティポリシーへの準拠状況の確認などを行うことが可能となる。 SACLは、複数の「システム監査制御エントリ(SACE:System Audit Control Entry)」で構成される。各SACEは、監査対象となるユーザーやグループ、監視するアクセスタイプ、そして監査条件(成功した試行を記録するか、失敗した試行を記録するか、あるいはその両方を記録するか)を指定する。SACEの主要な構成要素は以下の通りである。まず、「セキュリティ識別子(SID)」は、監査対象となるユーザー、グループ、またはコンピューターを一意に識別する。次に、「アクセスマスク」は、読み取り、書き込み、削除、実行など、監視対象とする具体的なアクセス権の種類を指定する。そして、「監査フラグ」は、その操作が成功した場合にログを記録するか(SUCCESS_AUDIT)、失敗した場合にログを記録するか(FAILURE_AUDIT)、あるいはその両方を記録するかを指定する。 システム内でリソースへのアクセス要求が発生すると、オペレーティングシステムはまずDACLを参照し、アクセスが許可されるべきか拒否されるべきかを判断する。このDACLによるアクセス判断後、システムはSACLを参照する。SACLに設定されたSACEの条件(SID、アクセスマスク、監査フラグ)と現在のアクセス試行が一致した場合、その試行に関する情報がWindowsのセキュリティイベントログに書き込まれる。これにより、管理者はイベントログから、いつ、誰が、どのリソースに対して、どのようなアクセス試行を行い、それが成功したか失敗したか、といった詳細な履歴を把握できる。 SACLは、一般的なファイルやフォルダ、レジストリキーだけでなく、Active Directoryのオブジェクトに対しても設定できるため、組織全体のセキュリティイベントを詳細に監視し、ポリシー違反や潜在的な脅威を早期に発見する上で非常に重要な役割を果たす。例えば、重要なファイルへのアクセス失敗が多数記録された場合、それはブルートフォース攻撃や権限昇格を試みる不正な活動を示唆する可能性がある。また、法令遵守(コンプライアンス)の要件として、特定のシステム操作の監査記録が求められる場合にもSACLが活用される。 SACLの設定や変更は、通常、管理者権限を持つユーザーによって行われる。Windowsのグラフィカルユーザーインターフェース(GUI)からファイルのプロパティやレジストリエディタを通じて個々のオブジェクトにSACLを設定することもできるが、大規模な環境ではグループポリシーを使用して、組織内の複数のコンピューターやオブジェクトに対して一貫した監査ポリシーを適用することが一般的である。また、`auditpol`コマンドや`icacls`コマンドといったコマンドラインツールもSACLの管理に利用される。 SACLの運用には注意点も存在する。広範な監査設定を行うと、システムが生成するセキュリティイベントログの量が非常に多くなる可能性がある。ログの量が増加すると、ログファイルがすぐに満杯になり、重要なイベントが上書きされて失われるリスクがあるだけでなく、イベントログの書き込み処理がシステムのリソース(CPUやディスクI/O)を消費し、パフォーマンスに影響を与える可能性もある。したがって、必要なイベントのみを効果的に記録するよう、SACLの設定は慎重に行う必要がある。定期的なイベントログのレビューと適切なログ管理(ログのアーカイブ、クリア、サイズ設定など)も、SACLを効果的に運用する上で不可欠となる。 DACLがアクセスそのものを「許可・拒否」する権限を定義するのに対し、SACLはアクセス試行を「記録・監査」するためのルールを定義する。この二つは互いに補完し合い、システム全体のセキュリティを確保するために不可欠な要素である。SACLを正しく理解し、適切に設定・運用することは、システムエンジニアとして、システムの安全性を高め、問題発生時の原因究明を支援するために非常に重要である。