A 社は,従業員数 100 名のソフトウェア開発会社である。A 社では,PC 向けソフトウェア製品として,“青少年が安全に安心してインターネットを利用できる環境の整備等に関する法律”に基づいた青少年有害情報フィルタリングソフトウェア(以下,B フィルタという)を開発することとなった。
A 社では,B フィルタの開発に当たって,F 主任をリーダとした開発チームを編成した。この開発チーム内の体制は,設計を行う D グループ,作成を行う P グループ及び試験を担当する Q グループの三つのグループとした。また,プログラム開発に用いる言語は,JIS X 3014“プログラム言語 C++”(以下,C++という)とした。
次は,この開発におけるセキュリティの脆弱性の発見から修正及び再発防止に至る経緯である。
〔URL マッチングの方式設計〕
D グループでは,B フィルタの概略機能を図 1 のようにまとめた。その後,要件定義を経て,URL マッチングによる有害の度合いを決定する方式設計を行い,図 2 の内容のとおり決定した。
図 1 B フィルタの概略機能図 2 URL マッチングの方式設計結果
〔詳細設計と作成〕
D グループでは,図 2 の方式設計結果に基づいて設計作業を進め,URL をパーセントエンコードする機能を一つの関数として作成することを決定し,その関数の仕様を図 3 のとおりとした。
C 社は,従業員数 400 名の広告代理店である。C 社では,主にテレビ,雑誌,新聞などのマスメディアの広告枠の販売並びに広告の企画及び制作を行っている。C 社のすべてのサーバと PC は,ネットワークで接続されている。C 社の情報システム部の T 部長は,ソフトウェアライセンス(以下,ライセンスという)に対する違反行為が,最近,社会問題になっているという話を聞き,ライセンスに関する社内外の状況を整理して報告するよう,部下の U 主任に指示した。U 主任の報告は図 1 のとおりである。
図 1 ライセンスに関する社内外の状況
〔ライセンスの実態調査〕
T 部長は,U 主任の報告を踏まえて,C 社における保有ライセンスと,ソフトウェアのインストールの詳細な状況を次のような手順で調査することにした。
(2) ソフトウェアをインストールしたときに OS に記録されるソフトウェアの識別情報(以下,インストール情報という)を利用して,PC 上にインストールされているソフトウェアを把握し,使用ソフトウェア一覧表を作成する。
(3) 保有ライセンス一覧表と使用ソフトウェア一覧表を突き合わせる。
なお,サーバ上のソフトウェアのライセンスは適切に管理できていることから,今回の調査は PC 上のソフトウェアだけを対象とすることにした。また,ライセンス料不要のものと OS は,調査の対象外とした。
U 主任が調査した結果,各部門で使用実態に比べて十分な数のライセンスを保有していることが確認できた。ただし,ソフトウェアの使用数に比べて保有ライセンス数がかなり多い部門も存在していた。このようなライセンスの中には,他部門が購入を予定しているものも含まれていた。
〔ソフトウェア資産管理ツールの導入〕
U 主任は,①インストール情報が記録されないソフトウェアがあることや,インストール情報を書き換えてソフトウェアの存在を隠ぺいするツールがインターネット上に存在していることなどから,インストール情報による調査では把握できないソフトウェアが,使用ソフトウェア一覧表以外にもインストールされているおそれがあると T 部長に報告した。そこで,T 部長は,ソフトウェア資産管理ツール(以下,管理ツールという)の導入を経営陣に提案し,承認を得て実行に移した。管理ツールは,保有ライセンスとソフトウェアの使用状況を管理するためのものであり,管理サーバに導入するサーバプログラムと,PC に導入するエージェントで構成されている。管理ツールの主な機能を表 1 に,管理サーバ上に保存される情報を表 2 にそれぞれ示す。
定期人事異動を 2 か月後に控えたある日,T 部長は人事異動のときのライセンス管理手順に問題がないかを確認することにした。C 社では,人事異動に伴い,異動前に使用していた PC を異動前の部門に残していく場合と,PC を異動後の部門に持っていく場合がある。PC 管理情報を更新するとともに,PC を異動前の部門に残していく場合には,使用ライセンス登録機能で,使用ライセンス情報の PC 利用者名を次の利用者に更新する。PC を異動後の部門に持っていく場合には,使用ライセンス登録機能で,使用ライセンス情報の利用者所属部門を更新するとともに,業務内容の変更に伴って新たに必要となるソフトウェアがあれば PC にインストールし,使用ライセンス登録機能で使用ライセンス情報に追加登録する。
T 部長は,②異動後の部門に PC を持っていく場合に PC 上と管理ツール上でそれぞれ更に実施すべきことがあると考え,手順に項目を追加することにした。
〔管理ツール運用上の問題点の改善〕
管理ツールを導入して 1 年後,保有ライセンス情報を不正に登録されると,ライセンス管理がうまく機能しないおそれがあることが分かった。現状では,管理ツール利用者が自分自身で利用するソフトウェアであっても保有ライセンス情報を登録できる一方,登録された保有ライセンスが購入されたライセンスであるかどうかを C 社では確認していない。このため,T 部長は,管理ツール利用者は,自分自身が利用するソフトウェアの保有ライセンス情報を登録できないようにする運用方針を経営陣に提案し,承認を得て実行に移した。その後,C 社では,管理ツールを活用して順調にライセンス管理を行っている。
E 社は,雑貨やアイディア商品の企画・販売を行う従業員数 100 名の会社である。大手通販会社や生活用品店,雑貨店,全国チェーンのドラッグストアなどを顧客にもち,E 社ブランド商品の販売のほか,顧客のプライベートブランドで販売される OEM 商品の企画や各種イベントとタイアップした商品の企画なども手掛けている。
〔情報漏えい事故の発生と対策の指示〕
ある日,E 社の従業員が帰宅後も資料を作成するために,USB メモリに商品の企画書をコピーして持ち帰り,その USB メモリを紛失するという事故が起こった。USB メモリにコピーした企画書は,顧客である L 社のプライベートブランドで販売される予定の OEM 商品に関するものであり,L 社への事情説明と謝罪に加え,商品の企画をやり直す事態となった。
当該商品が企画の初期段階であり,幸い大事に至らなかったが,今後,業務情報の社外持出しに起因する重大な情報漏えい事故が発生しないとも限らないと E 社社長は考えた。そこで,E 社社長は,情報システム部長を通じて,情報システム部の Y 課長に,E 社における業務情報の社外への持出しの現状を調査し,必要であれば情報漏えい対策を検討するよう指示した。
〔業務情報の持出しに関する現状調査〕
Y 課長は,まず,“業務情報の持出し”を,“会社貸与のノート PC(以下,貸与 PC という)や会社貸与の USB メモリ(以下,貸与 USB メモリという)に業務情報を保存して社外に持ち出すこと”と定義した上で,業務情報の持出しの状況についての調査と対策の検討を進めることにした。一方,電子メールやファイル転送などによる社外への情報の送信についての調査と対策の検討は,別途実施することにした。
Y 課長は,E 社における業務情報の持出しの現状を調査するために,情報システム部の Z 君とともに従業員のうちの何人かにヒアリングを行った。
貸与 PC で業務情報が持ち出された場合は,M,H のいずれにおいても,持出先での業務情報へのアクセスには,その貸与 PC 自体が利用されている。一方,H において,貸与 USB メモリで業務情報が持ち出された場合は,従業員が私有する PC(以下,私有 PC という)を利用して業務情報にアクセスすることがあると判明している。
M については,顧客に資料を提示しなければならないという業務上の必要性があるのに対し,H については,E 社オフィス内で資料作成を実施すればよく,必要性に乏しい。そこで Y 課長は,H のための持出しについては,禁止することを会社規則として規定した上でそれを全社に周知することとし,M については,情報漏えい対策の検討を Z 君に指示した。
〔M における情報漏えい対策の検討〕
Z 君は,M における情報漏えい対策を検討するに当たって,M のための業務情報の持出しに関連した情報漏えいリスクへの現状の対応状況を表 2 に整理した。
表 2 M のための業務情報の持出しに関連した情報漏えいリスクへの現状の対応状況
M では,営業担当者が持出情報を持ち歩いていることに加え,②日常業務に利用している貸与 PC を持ち出していることで,万一,情報漏えい事故が発生すると被害が大きくなるおそれがあることから,Z 君は,営業担当者が業務情報を持ち出す必要をなくし,貸与 PC の社外への持出しも禁止することが情報漏えい対策として望ましいと考えた。そこで,情報漏えい対策として,ハードディスクなどの記憶装置をもたず USB メモリなどの外部記憶媒体も利用できないシンクライアント端末(以下,専用端末という)を利用する案(以下,案 1 という)と,公開 Web サーバのディスク領域を利用する案(以下,案 2 という)の二つの案を提案することにした。それぞれの案では,貸与 PC の社外への持出しは禁止した上で,図 1 のような手順によって,業務情報を持ち出すことなく顧客に見せることができる。
図 1 案 1 及び案 2 による顧客への業務情報の提示手順
案 2 の場合は,③万一,公開 Web サーバが不正アクセスされても,業務情報が漏えいするリスクをできるだけ小さくするための運用上の対策を併せて実施する。
案 1,案 2 は,いずれも表 2 の(ア)及び(イ)のリスクを b することができる。表 2 の(ウ)のリスクについては,業務として特定顧客向けの業務情報を取り扱う以上,案 1 と案 2 のいずれであっても b することはできないので,c 策を取ることとし,案 1 と案 2 のそれぞれの場合についてどの程度 c できるかを検討し,次のようにまとめた。
H(自宅での資料作成)では,持出手段に貸与 USB メモリがあり,従業員が私有 PC を使って業務情報にアクセスすることがある。案 2 は公開 Web サーバに業務情報を置き,ダウンロードして使う方式なので,H で使うと従業員が自宅の私有 PC に業務情報をダウンロードすることができる。
表 3 のとおり,私有 PC は,マルウェア対策の状況を把握できておらず,インストールできるソフトウェアの制限やセキュリティパッチの適用も徹底できていない。つまり,会社が管理していない,セキュリティ対策が十分でない可能性のある PC に業務情報が入ってしまい,(イ)のマルウェア感染のリスクに有効な対策が取れない。案 1 の専用端末なら,業務情報を端末に保存せず,私有 PC に置かない形にできる。
55 字以内で,解答例は 49 字。“私有 PC のセキュリティ対策が不十分”と“案 2 では業務情報をダウンロードできてしまう”の二点を,理由として一文にまとめる。
R 社は,おもちゃの会員制オークションサイト(以下,S サイトという)を運用し,その販売手数料を主な収入源としている従業員数 40 名のネットオークション会社である。
S サイトは図 1 のとおり,主に Web サーバ及び Web サーバ上で動作する Web アプリケーションであるオークションアプリケーション(以下,R アプリという),並びにデータベース(DB)で構成されている。
図 1 R 社のシステム構成
S サイトのサーバの管理と R アプリの保守は R 社のシステム課が担当しており,社内 LAN からアクセスしている。DB の保守においては,Web サーバにある DB 接続用クライアントツール(以下,DB 接続ツールという)を使って接続する。
一方,HTML ファイルや画像ファイルなどのコンテンツファイルの保守はホームページデザイン会社である N 社に委託している。N 社の担当者には FTP で Web サーバにコンテンツファイルを転送するためのアカウント(以下,CNT-MGR という)が付与されており,N 社内で作成されたファイルを Web サーバに転送している。
R アプリは,Perl で開発されたスクリプトである。R アプリのスクリプトには,DB への接続情報(DB 利用者 ID,パスワード),ビジネスロジック,及び画面表示処理が含まれている。R アプリが DB に接続するときには,DB 接続ツールとは異なる Perl 用の DB 処理モジュールを利用している。DB には,会員データが約 3 万件あり,暗号化されていない状態で格納されている。
S サイトでは,会員のメールアドレスを会員 ID としており,会員は S サイトのログインページで,会員 ID とパスワードを入力してログインする。
R 社のシステム課は K 課長を中心に,会員向けの機能追加を目的として R アプリの改修に取り組んでおり,現在は設計フェーズである。
〔ペネトレーションテストによる現状確認〕
他社のオークションサイトで,会員情報の流出事件が起きたことから,R 社の経営陣は K 課長に S サイトのセキュリティ対策を確認するように指示した。K 課長は現状のセキュリティ対策の有効性を確認するために,セキュリティ専門会社である W 社に,インターネット及び N 社のオフィスからのペネトレーションテスト(以下,P テストという)を依頼した。表 1 は,W 社が報告した P テストの結果である。
表 1 P テストの結果
〔セキュリティ対策の検討〕
K 課長は,表 1 の結果を踏まえて対策の検討を行うために,W 社の G 氏に相談した。G 氏は表 1 を見ながら,システム課のメンバから状況を聞いた上で,対策について助言した。次は,検討時の会話である。
K 課長:V-1 の対策としては,ログインページで,3 回連続してログインが失敗したらアカウントをロックし,5 分間は当該会員 ID によるログインを受け付けなくします。また,V-2 の対策としては,ログアウト時に a 処理を実装します。
G 氏:それでよいでしょう。少し気になることがありますが,後ほど説明します。
K 課長:P テストの時点では Web サーバのセキュリティパッチの適用を忘れていましたが,V-3 と V-4 の対策としては,システム課が DMZ に配置された全サーバに最新のセキュリティパッチを適用するよう徹底します。
G 氏は,サーバへのセキュリティパッチの適用だけでは V-4 の対策として不十分であるので,外部向けの不要な通信を拒否するように FW のフィルタリングルール(以下,FW ルールという)を変更することを提案した。さらに,①FW ルールに違反してファイルを外部送信する試みの有無をシステム課の担当者が調べるための方法についても説明した。
K 課長:なるほど,そうします。V-5,V-6 の対策としては,パスワードを複雑なものに設定し直した上で,コンテンツファイル転送時の認証方法を FTP の認証ではなく SSH のパスワード認証に変更しようと思います。その場合,ログインが連続失敗したらアカウントをロックするよう SSH を設定します。しかし,N 社の担当者が N 社以外からもアクセスする必要があるので,アクセス元を IP アドレスで制限できません。アクセス元を限定できないのが不安です。
G 氏:SSH では,IP アドレス制限に頼らなくても,認証方式を b にすることによって,更にアクセス者を限定できます。
K 課長:なるほど,そうします。最後に V-7 の対策ですが,現状の Web サーバで CNT-MGR に付与されているファイルアクセス権限は図 2 のようになっています。第三者によって CNT-MGR が不正に使われた場合の対処も必要ですし,N 社の担当者にも DB 内の会員データの閲覧はもちろん DB 接続もさせたくないので,DBMS 標準アカウントの初期パスワードを変更した上で,CNT-MGR からコンテンツファイルの保守には必要のない DB 接続ツールの実行権限を削除します。それから,R アプリで鍵長 256 ビットの AES を使って,会員データを暗号化しようと考えています。その場合,暗号鍵は定数としてスクリプト内に定義します。
図 2 CNT-MGR に付与されているファイルアクセス権限
G 氏は,CNT-MGR に付与されているファイルアクセス権限の現状を考慮すると,K 課長が示した対策だけでは②N 社の担当者に会員データを閲覧されてしまう可能性が残ることを説明した。さらに,本来であればコンテンツファイルの確認のために新たに独立したテスト環境を構築し,N 社にはそのテスト環境にだけアクセスさせ,本番環境にはアクセスさせないようにすべきであることを説明した。その上で,テスト環境を用意するまでの③暫定対策を提示した。
G 氏:先ほどの S サイトへのログインに関する件ですが,多くの会員は,S サイトに登録しているメールアドレスとパスワードの組合せ(以下,認証情報という)と同じものを,ほかの Web サイトでも登録していると思われます。④ほかの Web サイトで大量に盗まれた認証情報が悪用されて S サイトにログイン試行が行われ,結果として幾つかの会員 ID でのログインが成功してしまう可能性があります。V-1 の対策のアカウントロックは一つの会員 ID に対するログイン試行を想定しているので,大量のほかの Web サイトの認証情報を悪用するログイン成功を防ぐことはできません。
K 課長:それは,S サイトの脆弱性ではなく会員のパスワード設定の問題ですが,なりすまして S サイトにログインされた場合には,我々が会員への対応に追われることになるので,何らかの手を打った方がよさそうですね。
G 氏は,下線④のようなログイン試行をできる限り R アプリで検知して遮断するための方法を説明した。こうして K 課長は P テストの結果について対策案をまとめ,経営陣から承認を得た。その後,対策を順調に終え,無事に新しい R アプリをリリースすることができた。