1. プロジェクト背景
SOX法に基づく監査法人からの以下の対応要請に伴い、筆者担当システムに対して情報セキュリティ強化が求められたためシステム対応を実施したもの。
- OSとDBMS共通
パスワード変更、パスワードポリシー設定(※)、不要IDの無効化または削除
(※)文字長8文字以上、文字記号数字の組み合わせ、100日以内の変更運用等
- DBMS個別
アクセス元制限
2. 筆者の立ち位置
プロジェクトマネージャ兼アーキテクト兼情報セキュリティ分野の有識者として参加
3. 対応内容
筆者担当の3システムのOSとDBMSに対して以下を実施。いずれもOSはAIXで、DBMSはOracle。ただし1システムだけOracleは11gR1を使用。それ以外は12cR1。
- AIX OSとOracle IDのパスワード変更
- AIX OSのOracle DBの設定変更によるパスワードポリシー設定
- Oracle設定ファイルでアクセス元IPセグメントを指定することによる指定外IPからのアクセスを遮断
4. プロジェクトで発生した課題と解決策
以下の課題が発生するも解決し計画通りのサービスインを実現。
- SSH鍵認証で接続している既存システムへの影響
OS IDのパスワード変更による影響が懸念されたものの、鍵認証であり影響はないことを確認済み。
- Oracle11gR1の機能制約とシステム制約
Oracle設定ファイルでアクセス元IPセグメントを指定しようとしたが、1システムだけOracle11gR1の機能制約でセグメント単位ではなくIPアドレス単位で指定する必要があった。またそのシステムは世界中からアクセスされアクセス元IPセグメントは300近くあった。単純計算で7万個以上のIPアドレスを指定する必要があり、誤設定に伴う予期せぬ誤作動やメンテナンス性を損なうためアクセス元IP指定に伴うアクセス制御は断念。
監査法人と協議し、Oracle監査ログを取得し定期的に不正アクセス・操作の有無をチェックする運用を設けることで決着。その際、監査ログからアクセス元IP、ID、日時、操作内容を抽出して本番環境からダウンロードするジョブスクリプトを開発してリリースした。
- 固定パスワードでのOracleアクセス
別のシステムではOracle DBへの接続に関する問題が発生した。そのシステムのDBへアクセスするIDは全て固定パスワードになっていた。定期的なパスワード変更運用に乗せようと考えるも、IDの多くは利用部門の反対で実現は不可。ただこのシステムでは、例えばID「AAA」であればXサーバからしか来ない、ID「BBB」であればYサーバからしか来ないというように、IDとアクセス元セグメントが紐づいている特徴があった。従って、以下の機能を持つスクリプトを開発してリリースした。
1.Oracle監査ログを一定間隔で監視。
2.設定ファイル上に「ID=アクセス元セグメント」という形で設定、例えば「AAA=192.168.1.0」であれば192.168.1.0以外のセグメントからAAAのIDを使ってアクセスした場合はアラートを出力。
- 欧州からの固定パスワードのFTPアクセス
更に別のシステムではFTP接続の問題が発生した。欧州のサーバがそのシステムのIDを使ってFTP getをしているわけだが、そのパスワードは固定のままだった。これを機に、SSH化またはFTPパスワードの定期的な変更運用を欧州側に提案したが、先方は予算、人員等の都合から対応は不可との回答。粘り強く協議するも難航。以下の対応を行うことで決着。
1.当該FTP IDの「ログイン可」設定を「不可」に変更することで当該IDを使ったOSログインを防止。FTPへの影響はないことは確認済み。
2.FTPは欧州のサーバからしか来ないため(正確にはネットワークで絞っているため)、ログを定期監視し欧州以外のサーバからFTPでのアクセスがあった場合にアラートを出すスクリプトを開発してリリースした。