本文書の目的 
本文書は、一般的な業務等のWebアプリケーションが動作するシステムを想定し、そのシステムを運用管理する上での役割や、その権限について述べたものである。
本文書では、各役割の権限や、役割の兼任を判断する際のガイドラインとして、以下の二点を明確にする。
- 運用管理する上での役割の分類と、各役割が持つべき権限範囲
- 各役割を兼任させた場合のセキュリティ上の危険性と推奨度
本文書では、強制アクセス制御機能を提供するセキュアOS及び、その強制アクセス制御機能を用いた役割分割を前提としている。しかし、セキュアOSを利用しないシステムの場合では、役割分割に強制力が働かないものの、役割分割の考え方については参考にすることができる。
役割の分類 
Webアプリケーションが動作するシステムに対する役割を以下のように分類する。
Webアプリケーションユーザ 
ブラウザ経由などでWebアプリケーションを利用する。以下の2つが存在する。
- 一般ユーザ
Webアプリケーションを利用する一般的なユーザ。
Webインタフェースから、Webアプリケーションで提供される機能を用いて業務を行う。
- 管理ユーザ
Webアプリケーション上の管理者権限を持つユーザ。
Webインタフェースから、Webアプリケーションの管理者ページを通じて、一般ユーザの管理や内容の管理等を行う。
Webアプリケーションユーザは、実業務に利用しているWebアプリケーションが動作するシステム(以降本番システムと記す)のOSに対するログイン権限は持たない。
システムオペレータ 
システムオペレータは、本番システムに対する日々の運用に責任を持つ。
具体的には、以下のようなルーチンワークを行い、本番システムが常時正常に動作していることを保ち、何らかの障害が起こった時の初期対応(再起動等)を行う。
システムオペレータで対応できない障害については、システムアドミニストレータに依頼する。
- バックアップ
定期的に行われる本番システム全体のバックアップ
- 死活監視
本番システムのOSやWebアプリケーション、DBなどが正常に動作しているかを確認するための、常時もしくは定期的な監視
- OSレベル、アプリケーションレベルの再起動
死活監視の結果及び何らかの障害が起こった時の初期対応として行われる再起動
システムオペレータは、本番システムのOSに対するログイン権限を持つ。また、上記のルーチンワークを行う上で、必要に応じてroot権限を持つ。
システムアドミニストレータ 
システムアドミニストレータは、本番システムの全般的な管理責任を持つ。
具体的には、本番システムに対し以下の作業を行い、適切なパッチ適用やバージョンアップが行われ、正しい設定で稼動するようにする。システムオペレータで対応できない障害が起こった際には、設定変更やリストアなどで対応する。
さらに、システムオペレータなど本番システムのOSに対するログイン可能ユーザの管理を行う。
- OS、ミドルウェア、Webアプリケーション等の設定変更
システムオペレータや管理ユーザなどからの要求などに伴い、障害対応、機能追加変更、セキュリティ強化を目的として、OSなどの設定を変更する作業。
- OS、ミドルウェア、Webアプリケーション等のパッチ適用
ベンダーやコミュニティが提供するパッチを、定期的もしくは非定期に本番システムに適用する作業。
- OS、ミドルウェア、Webアプリケーション等のバージョンアップ
ベンダーやコミュニティが提供する新しいバージョンを、本番システムに導入する作業。
- リカバリー(設定・データの復旧)
本番システムの障害時に、バックアップデータを用いて正常動作時の設定やデータに戻す作業。
- 本番システムのOSに対するユーザの追加変更
システムオペレータなどの人員に変更があった際に、本番システムのOSにログインするユーザの追加や削除を行う作業。
システムアドミニストレータは、本番システムのOS対して、root権限でのログイン権限を持つ。
ログ監視管理者 
ログ監視管理者は、本番システムが正常に動作しているか、不正が行われていないかなどを監視する責任及び、ログを必要に応じて適正に保管する責任を持つ。
具体的には、本番システムの各種ログを常時もしくは不定期に監視する。さらに、不要ログの削除や、ログの保管のために別媒体への移動などを行う。
本番システムのOSに対するログイン権限を持つ。必要に応じてroot権限を持つ。
データ管理者 
データ管理者は、本番システムのWebアプリケーションが保持する業務情報等のデータに対する責任を持つ。
具体的には、Webアプリケーションユーザなどの要求に応じて、Webアプリケーションが持つデータファイルやDB上のテーブルに対し、OS及びミドルウェアの層(DBMSなど)から変更修正を行う。また、業務情報等のデータに対して、バックアップ/リストア作業を行う場合もある。
本番システムのOSに対するログイン権限を持つ。基本的にroot権限は持たない。
アクセス権限管理者 
各役割やアプリケーションのアクセス権限に対して責任を持つ。
具体的には、セキュアOS(強制アクセス制御機能)の設定変更を行う。
本番システムに対するログイン権限を持つ。基本的にroot権限を持つ。
ここで、アクセス権限管理者は、各役割やアプリケーションのアクセス権限を自由に変更することが出来てしまうため、以下の事柄を考慮する必要がある。
- アクセス権限管理者
責任を持たせることが可能な役職や立場を持つ人を任命しなければならない。
外部の人や組織に依頼することは望ましくないが、やむ終えない場合は、別途契約等で責任や違反時の罰則などを明確にしておく必要がある。
- アクセス権限管理者のユーザ認証
アクセス権限管理者のユーザ認証は、他の役割に比べて強固にすることが望ましい。
例えば、二要素認証や特別な認証機構を利用することなどである。また、特定の端末からしかセキュリティ管理者の作業が出来ないようにするなど、物理的なセキュリティと組み合わせても良い。
- アクセス権限管理者の監査強化
アクセス権限管理者は、単独もしくは他の役割と共謀することで、不正を引き起こしそれを隠蔽することが可能である。そのため、アクセス権限管理者のログインや作業履歴などの監査を強化する必要がある。
権限 
各役割が持つべき、本番システム上のリソースに対する権限を示す。
Webアプリケーションユーザ 
本番システム上の全てのリソースに対しアクセス権限を持つべきではない。
ブラウザ等を用いたWebアプリケーション経由の場合のみ、業務データ等へのアクセスを可能とすべきである。
システムオペレータ 
バックアップについては、バックアップ用のコマンド及びツールの実行権限を持つ。また、バックアップ用のコマンド及びツール経由に限定して、全てのリソースに対する参照権限のみを持つ。
可能であれば、バックアップツール等を導入し、運用者はバックアップエージェントの操作に関連する権限のみ持たせることが望ましい。
再起動や活死監視については、これらに利用するコマンドの実行権限を持ち、これらの実行に必要最小限の権限を持つ。
システムアドミニストレータ 
設定変更やパッチ適用、バージョンアップのために、設定ファイル、実行ファイルに対して書き込み権限を含め全ての権限を持つ。
設定変更などの作業結果を確認するために、ログに対して参照権限のみを持つ。
パッチ導入やバージョンアップの際に必要となる再起動のために、これらのコマンドの実行権限を持ち、これらの実行に必要最小限の権限を持つ。
兼務に対する検討 
すべきで無い兼務 
以下では推奨しない兼務と、その危険性の具体例を列挙する。
- システムアドミニストレータがログ監視管理者と兼務すること
- システムアドミニストレータが、ログの改ざんや消去などを行うことで、不正の監視や監査から逃れることが出来てしまう。
- 例えば、誰にも知られずに、不正なアプリケーションを導入したり、不正な設定変更が可能で、その証拠を消すことも出来る。
- また、アップデート等の作業の証拠を改ざんすることで、ログが確実な作業記録にならなくなる。
- システムオペレータがログ監視管理者と兼務すること
- システムオペレータが、ログの改ざんや消去などを行うことで、不正の監視や監査から逃れることが出来てしまう。
- 例えば、誰にも知られずに、不正な再起動を繰り返しによるサービス停止攻撃が可能で、証拠を消すことも出来る。
- また、バックアップ等の作業の証拠を改ざんすることで、ログが確実な作業記録にならなくなる。
- データ管理者がログ監視管理者と兼務すること
- データ管理者が、ログの改ざんや消去などを行うことで、不正の監視や監査から逃れることが出来てしまう。
- 例えば、誰にも知られずに不正なアプリケーションのデータを改ざん等が可能で、証拠を消すことも出来る。
- システムアドミニストレータがアクセス権限管理者と兼務すること
- システムオペレータやデータ管理者の持つ権限を不正に得ることが可能で、これらの役割を分割しても意味をなくしてしまう。
- ログ監視管理者の権限を不正に得ることが可能で、上記で挙げたログ監視管理者と他の役割の兼任と同様の問題が起こる。
- システムオペレータがアクセス権限管理者と兼務すること
- システムアドミニストレータがアクセス権限管理者と兼務する場合と同様の問題が起こる。
- データ管理者がアクセス権限管理者と兼務すること
- システムアドミニストレータがアクセス権限管理者と兼務する場合と同様の問題が起こる。
- Webアプリケーション開発者がシステムアドミニストレータと兼務すること
- テスト用のWebアプリケーションを本番システムに入れることが出来てしまうという問題が起こる。
- Webアプリケーション開発者がデータ管理者と兼務すること
- テスト用のデータを本番システムに入れることが出来てしまうという問題が起こる。
- Webアプリケーション開発者がシステムオペレータと兼務すること
- 本番システムのバックアップデータを開発用システムに無断で利用することができてしまうという問題が起こる。
- Webアプリケーション開発者がアクセス権限管理者と兼務すること
- 上記で挙げたWebアプリケーション開発者と他の役割の兼務と同様の問題が起こる。
推奨される役割適用 
上記を踏まえ、少なくとも役割を以下の三つに分類し、一人には以下の何れかの一つを割り当てるべきである。このためには、最低三名以上の人的リソースが必要となる。
- アクセス権限管理者とログ監視管理者(かつ、Webアプリケーションユーザ)
- 自らもWebアプリケーションユーザとして、Webアプリケーションを利用する。
- システムアドミニストレータとシステムオペレータ、データ管理者の作業を、ログにより監視しつつ、必要に応じてセキュアOS(強制アクセス制御機能)の設定変更(権限付加及び削除)を行う。
- システムアドミニストレータとシステムオペレータ、データ管理者(かつ、Webアプリケーションユーザ)
- 自らもWebアプリケーションユーザとして、Webアプリケーションを利用する。
- 通常運用における全ての運用管理やシステム管理を、セキュリティ管理者に与えられた権限の範囲で、ログ管理者の監視の元で行う。
- Webアプリケーション開発者(かつ、Webアプリケーションユーザ)
- 自らもWebアプリケーションユーザとして、Webアプリケーションを利用する。
- 本番システムの動作等を参考にしながら、Webアプリケーション開発を行う。
- Webアプリケーションの開発やテストに必要となる、本番システムの設定やデータなどは、システムアドミニストレータやデータ管理者に依頼して取得する。
- 開発したWebアプリケーションやパッチの本番システムへの適用は、システムアドミニストレータが行う。
| Page Info | |
|---|---|
| Page Name : | セキュアな運用管理に向けた役割と権限のガイドライン |
| Page aliases : | None |
| Page owner : | saisho |
| Can Read | |
| Groups : | All visitors |
| Users : | All visitors |
| Can Edit | |
| Groups : | No one |
| Users : | saisho |
