情報セキュリティ・ポリシーの整備が進み,パスワードの定期的な変更を義務付ける会社が増えてきた。その一方で,業務アプリケーションやバッチ・ファイルに接続先サーバーのアカウントを埋め込んでいる場合も数多くある。こうしたアカウントもセキュリティ・ポリシーに従って,定期的にパスワードを変更しなければならない。

 だが,「変更できる設計ではない」「変更作業のためには長時間業務停止しなければならない」などの理由で実質例外扱いされている場合が多い(図1)。しかし,これは危険な行為だ。

図1●パスワードの埋め込みによる問題
図1●パスワードの埋め込みによる問題
パスワードをアプリケーション・プログラムに埋め込むことで情報セキュリティ・ポリシーに従わないアカウントが発生する

犯人の特定が困難になる

 セキュリティの観点からは埋め込まれたアカウントも通常の利用者用アカウントも区別は無い。むしろパスワードが変更されずに使用される埋め込みアカウントは,攻撃の対象として狙われやすい。

 また,アカウントを記述したプログラムを複数システムで使った場合,その複数システムで同じアカウントで動作する状態になってしまいかねない。こうなると万が一パスワードが漏えいした場合,同じプログラムを使うシステムすべてが侵害を受けることになり,被害が大規模になる。

 これらの危険を低減するには,実直にポリシーに従うことである。アプリケーションやバッチ・ファイルに埋め込んだアカウントも例外扱いせずに定期的に変更しよう。

設定ファイルにアカウント情報を格納すればよい

 アプリケーションに変更を加えずにアカウント情報を変更できるようアプリケーションやバッチ・ファイルから切り離して管理すれば,定期的なパスワード変更の負担を減らすことができる。例えば,設定ファイルやレジストリを用意し,そこにアカウント情報を格納して必要時に読み込むようにするのも一つの方法である(図2)。こうすることで,パスワード変更の際にアプリケーション自体を修正する必要がない。設定ファイルの更新のみでパスワードを変更できる。

図2●パスワードの分離
図2●パスワードの分離
パスワードをアプリケーションから切り離すことで変更作業を容易にする

 当然ながら,アカウント情報を格納したファイルやレジストリが権限のない者に読み取られることがないように,暗号化やOSによるアクセス制限などによって適切に保護しておくことが重要だ。アカウントを実行する権限でのみ閲覧を可能にし,書き込みは管理者権限でのみ許可する。

 また,パスワード変更が容易になったとしても,それを運用業務に組み込んでいなければ結局変更されないままとなってしまう。そのため業務フローに定期的なパスワード変更を組み込み,変更作業に伴う運用コストをあらかじめ盛り込んでおくことが欠かせない。こういった対策は,アプリケーションの設計時から考慮しておくことが望ましい。


西村篤志
ラック セキュリティ事業本部 コンサルティング事業部 コンサルティング部 グループリーダ
 これまで企業システムのインフラ構築や,脆弱性の調査・研究などを手掛ける。現在は,システムに対する脅威分析やセキュリティ対策実施状況の評価を実施するコンサルティング業務に就く