R 団体はある科学技術分野のノウハウを有する,職員数 300 名の一般社団法人である。特殊な用途に用いる精密機器のプロトタイプ製作,民間企業や教育機関への技術情報の提供,安全基準の助言などを行っている。R 団体とステークホルダとの関係を図 1 に,ステークホルダの概要を表 1 に示す。
図 1 R 団体とステークホルダとの関係表 1 ステークホルダの概要
R 団体の各部署の業務内容を表 2 に示す。
表 2 各部署の業務内容(抜粋)
プロトタイプ製作業務において扱う情報は全て機密性が高く,その中でも図面は特に機密性が高い。
R 団体では,一般業務用の PC が職員に 1 台ずつ貸与されており,Web 閲覧,メール送受信,図面作成などに利用されている。各 PC には固定 IP アドレスが割り当てられている。PC にログインする際には各職員の利用者 ID を入力する。R 団体のネットワーク構成を図 2 に示す。
図 2 R 団体のネットワーク構成
R ポータルは,利用者の認証機能,利用者ごとに権限を定義できるアクセス制御機能,ファイルをアップロード及びダウンロードできる文書共有機能,問合せ内容や回答の履歴を記録する掲示板機能を備えている。R ポータルの利用者 ID は,職員,会員組織,及び製作パートナに発行される。
また,R ポータルは,フロントエンドの WebAP サーバと,会員組織情報,要求仕様書や図面が保存されるバックエンドの DB サーバで構成され,WebAP サーバと DB サーバは ODBC(Open Database Connectivity)を用いて特定のポート間で通信している。R 団体のセキュリティ対策基準にのっとり,DB サーバには,システム運用課員によるログインと,WebAP サーバからの接続だけが許可されている。利用者セグメントから DB サーバへのアクセスは,FW によって運用管理 PC の IP アドレスからのアクセスだけが許可されている。
人事サーバ管理での人事データの更新には二つの方法がある。通常の更新は,人事サーバの Web インタフェースを使用して PC 上で行う。期初などの大量の人事異動が発生するタイミングでは,PC からリモートデスクトップ機能を使い,一度,踏み台サーバの利用者 ID(以下,管理 ID という)を用いて踏み台サーバにログイン後,さらに,踏み台サーバからリモートデスクトップ機能を使い,共通の利用者 ID とパスワード(以下,共通管理者アカウントという)で人事サーバにログインして,一括で更新している。管理 ID は職員ごとに異なっている。R 団体では,踏み台サーバを除き,サーバセグメントと DMZ に置くサーバでは,運用負荷軽減の観点から,共通管理者アカウントが設定されている。
サーバセグメント内のサーバでは,表 3 のアクセスだけを許可している。
表 3 サーバへのアクセス許可
踏み台サーバには操作記録機能があり,ログインした利用者のデスクトップ画面が数秒間隔で画像データとして記録され,実行したコマンドやキーボード入力がテキストで記録される。全てのサーバがアクセスログを取得しており,どの利用者 ID によっていつログイン,ログアウトしたかの記録が残る。踏み台サーバの利用者管理はシステム運用課が担当している。
FW のフィルタリングルールを表 4 に示す。
表 4 FW のフィルタリングルール
〔セキュリティ対策の評価〕
今年に入り,関連業界を狙ったサイバー攻撃が急増しているという話を聞き,R 団体の理事がセキュリティコンサルタント(以下,コンサルタントという)に相談したところ,セキュリティ対策の評価を勧められた。そこで,図面及び会員組織情報と,それらが保存されている DB サーバについて,セキュリティ対策が適切か,コンサルタントによる評価を受けることにした。
さらに,R 団体の理事は,かねてから付き合いのあるベンダに相談し,情報処理安全確保支援士(登録セキスペ)の M 氏に,R 団体のシステム企画課に主任として出向してきてもらい,同じシステム企画課の N さんとともに,コンサルタントの評価結果への対応を検討してもらうことにした。評価では,検査ツールを用いた R ポータルの脆弱性検査や,職員へのインタビューを通しての秘密情報の取扱状況確認と,セキュリティ対策基準の妥当性確認などが行われた。
2 か月後,コンサルタントは,評価結果を理事に報告した後,図 3 に示す評価結果の詳細を,M 主任と N さんに説明した。
図 3 評価結果の詳細(抜粋)図 4 2 件の XSS 脆弱性
理事から対応計画を策定するように指示があり,M 主任と N さんは,それぞれの検出事項について,一つ一つ対応方針を検討することにした。
〔検出事項 1 の対応方針の検討〕
次は,XSS 脆弱性についての N さんと M 主任の会話である。
N さん:脆弱性 1 は,検索ページの一部の GET パラメタで起こるようです。今回の脆弱性検査では,脆弱性 1 の検知には,攻撃コードとして,スクリプトに相当する文字列を含めたリクエストをサーバに送信したときに,その文字列がレスポンス中にスクリプトとして出力されるかどうかで判断する方法(以下,検知方法 1 という)を用います。一般的には WAF を導入すれば,攻撃者が脆弱性 1 の有無を分析しようと攻撃試行すると,検知できます。
M 主任:そのとおりだね。R 団体では,WAF は導入していないが,もし導入していて,かつ,攻撃試行があったとしたら,攻撃試行を検知できていたかもしれないな。
A 社は,従業員数 1,200 名のマスメディア関連会社である。A 社では,提供するサービスごとに Web サイトを用意し,インターネット上に公開している。Web サイトには,情報提供サイトやショッピングサイトなど様々なものがある。Web サイトでは,Web アプリケーションソフトウェア(以下,Web アプリという)が動作し,その設計,実装,テスト(以下,この 3 工程を開発という)及び運用は,Web サイトごとに情報システム子会社 B 社又は外部の業者に委託されている。多くの Web サイトでは,キャンペーンなどのたびに,開発とリリースを繰り返している。
〔現状のセキュリティ施策〕
A 社では,脆弱性を作り込まないようにするために,Web サイトのライフサイクルの五つの工程(要件定義,設計,実装,テスト,運用)に関するセキュリティガイドライン(以下,Web セキュリティガイドという)を整備している。現行の Web セキュリティガイド第 1 版を図 1 に示す。
図 1 Web セキュリティガイド第 1 版
Web セキュリティガイドは,開発及び運用を委託している外部の業者にも順守を義務付けている。
〔Web サイトの運用について〕
A 社のカスタマサポートサービス提供用の Web サイト X は,A 社のデータセンタ X に設置されている。Web サイト X は,B 社に開発と運用を委託している。データセンタ X と B 社本社のシステム構成を図 2 に示す。
図 2 データセンタ X と B 社本社のシステム構成
Web サーバ X 上では,Web アプリ X が稼働している。Web アプリ X は,Web アプリケーションフレームワーク(以下,WF という)の一つである WF-K を使用して開発されている。
Web サイト X とシステム構成が全く同じ Web サイト Y を,別のデータセンタ Y に災害対策用として設置している。Web サイト X 稼働時には Web サイト Y は,インターネットに公開しておらず,ホットスタンバイの状態で運用している。
Web サイト X と Web サイト Y のソフトウェアの脆弱性修正プログラム(以下,パッチという)は,3 か月ごとの定期メンテナンス日に B 社運用チームの C さんが適用している。C さんは,新しいパッチが公開されているかを定期メンテナンス日の前に確認し,もしあれば,まず Web サイト Y にパッチを適用している。Web サイト Y での稼働に問題がなければ,Web サイト X にもパッチを適用している。コンテンツも,まず Web サイト Y を更新し,問題がなければ,Web サイト X を更新している。パッチ適用とコンテンツ更新は,B 社 PC-LAN 上の C さんの PC から行っている。
なお,B 社では,全従業員に PC が 1 台ずつ貸与されており,その PC で Web サイトを閲覧して情報を収集したり,電子メール(以下,メールという)を送受信したりしている。
〔セキュリティインシデントの発生〕
ある日,Web サイト X の利用者から,Web サイト X のダウンロードページでファイルをダウンロードしたところ,マルウェア対策ソフトが警告を表示したという連絡があった。C さんがダウンロードページを確認したところ,あるダウンロードファイルへのリンクが外部の URL に改ざんされていた。C さんは運用チームのリーダである D さんに報告し,Web サイト Y に切り替えるべきかを相談した。D さんは,切り替えると Web サイト Y も改ざんされてしまうことを懸念して,Web サイト Y には切り替えないよう C さんに伝えた。代わりに,DNS サーバの設定を変更して,メンテナンス中であることを表示するサーバに切り替えるよう C さんに指示した。D さんは,すぐに A 社に連絡し,ファイルへのリンクが改ざんされたと伝えた。その後,A 社の Web サイト X 及び Web サイト Y の担当部署の E さんがセキュリティ専門業者に連絡して,今後の対応について相談することになった。
〔セキュリティ専門業者による調査〕
セキュリティ専門業者の情報処理安全確保支援士(登録セキスペ)である F 氏が,被害の状況を調査した。調査内容と調査結果を表 1 に示す。
表 1 F 氏の調査内容と調査結果
F 氏は,D さんと E さんに調査結果を伝えた。次は,その時の F 氏,D さん,E さんの会話である。
F 氏:脆弱性 K は,改ざんの 3 週間前に公表されたものです。
D さん:そうですか。その脆弱性は,認識していませんでした。すぐに確認して,パッチを適用します。仮に,認識していたとしてもパッチ適用は定期メンテナンス日,つまり,来週の月曜日にしていたと思うので,やはり改ざんされていましたね。
F 氏:ダウンロードページのリンク以外に外部の URL に改ざんされているページはありませんでした。しかし,スクリプトを埋め込まれるなど,他の形でページが改ざんされている可能性もあるので確認が必要です。
D さん:分かりました。ページの改ざんは,実際にはどのように確認すればよいでしょうか。
F 氏:Web サイト X の全ファイルをaして確認すると漏れがなく,効率も良いでしょう。
D さん:なるほど。分かりました。
F 氏:調査結果は以上です。
E さん:ありがとうございました。攻撃手法 K によって Web サーバ X を実際に改ざんできるかどうかを知りたいので,調査してもらえないでしょうか。また,他に脆弱性がないかについても調査をお願いします。
F 氏:分かりました。
F 氏が,まず,Web サイト X に対して,攻撃手法 K による攻撃を実施したところ,実際に Web サーバ X を改ざんできることが確認できた。
次に,他に脆弱性がないか,Web サイト Y に対して B 社 PC-LAN から OS 及びミドルウェア(以下,プラットフォームという)の診断並びに Web アプリ X の診断を実施した。
プラットフォームの診断では,メンテナンスで使っている SSH サービスに対して辞書攻撃が容易に成功することが確認された。F 氏が C さんにセキュリティ上の問題がないか確認したところ,“SSH サービスは B 社 PC-LAN からだけアクセスできるように設定しているので問題はないと考えている”とのことであった。F 氏によると B 社 PC-LAN 内に攻撃者が侵入できると,Web サイト Y に不正にログインできる。そこで,F 氏は,②SSH の認証方式をパスワード認証方式以外に設定するよう D さんにアドバイスした。また,この設定をしたとしても,メンテナンスに自分の PC を利用するのはセキュリティ上の問題があるので,新たにメンテナンス専用 PC を準備し,それを B 社運用チームだけが利用できるようにすることをアドバイスした。
次に,Web アプリ X を診断したところ,XSS の脆弱性が 5 件検出された。
F 氏の調査結果を基に,D さんは,脆弱性 K に対するパッチ適用,SSH サービスの設定変更,メンテナンス専用 PC の準備,XSS が検出されたプログラムの修正及び Web サイト X の復旧を行うよう C さんに指示した。C さんは 1 週間で対応を完了し,Web サイト X が再稼働した。
〔全社の Web サイトのセキュリティ強化〕
セキュリティインシデントの発生及び F 氏の調査結果を受けて,A 社の情報システム担当役員である G 取締役は,全社の Web サイトのセキュリティを強化するよう,A 社情報システム部長を通じて同部の H 課長に指示した。H 課長は,WF,プラットフォーム及び Web アプリの脆弱性について調査を開始し,対策を検討することにした。
WF 及びプラットフォームの脆弱性については,Web サイトの改ざんなどの被害につながるので,全社の Web サイトについて脆弱性への対応状況を調査した。その結果,対応漏れがある Web サイトが 5 サイト見つかった。漏れがあった理由を各 Web サイト担当者にヒアリングしたところ,脆弱性が発表されていることを知らなかったとのことであった。
そこで,今後は情報システム部が一括して脆弱性情報を収集し,各 Web サイト担当者にその情報を提供することにした。それに先立って,効率的な情報収集ができるよう,各 Web サイト担当者には,bを報告させた。また,Web サイトの更改などに伴ってbに変更がある場合は,その都度報告させることにした。
パッチ適用は従来どおり各 Web サイト担当者に任せることにしたが,脆弱性情報を提供するだけでは,パッチ適用の遅れによって被害が出ることも考えられるので,パッチ適用期限を Web セキュリティガイドに追加することにした。
Web アプリの脆弱性については,まず,今回検出された XSS を作り込んだ原因について,B 社にヒアリングした。その結果,Web セキュリティガイドの記載が抽象的なので,誤った実装をしてしまったことが分かった。そこで,全ての担当者が正しい実装方法を理解できるように,Web セキュリティガイドを改訂して具体的な実装方法を追加することにした。改訂後の Web セキュリティガイド第 2 版を図 3 に示す。
図 3 Web セキュリティガイド第 2 版
また,Web アプリの診断の実施状況について各 Web サイト担当者にヒアリングしたところ,“Web サイトの開発スケジュールが短くて,診断をセキュリティ専門業者に依頼するとリリースに間に合わないので,診断できずにリリースすることがある”とのことであった。そこで,H 課長は情報システム部が中心となって,いつでもすぐに診断を実施できるように,A 社内に Web アプリを診断できる体制を作ることを G 取締役に提案し,採用された。
〔自社による診断の実施検討〕
的確な診断を実施できる体制を作るには,A 社内で診断する項目(以下,A 社診断項目という)を定め,その項目の診断手順に診断員が習熟する必要があり,H 課長は,診断手順の作成と習熟には,1 年は掛かると考えた。それを少しでも短くするために,診断経験があり,登録セキスペでもある部下の Q さんと一緒に A 社診断項目と診断手順を検討した。
検討の結果,外部で公開されていた診断項目を参考にして,Web アプリに関する A 社診断項目を図 4 のとおり定めた。
A 社のある部署が,新規に構築したショッピング用の Web サイト Z をリリースするに当たり,セキュリティ専門業者に診断を依頼した。その際に,診断チームのメンバの L さんにも診断を担当させることにした。Web サイト Z の開発は,外部の業者の P 社に委託しており,委託時に Web セキュリティガイドの最新版を渡している。Web サイト Z の画面遷移図を図 6 に,画面遷移の仕様を表 2 に示す。
図 6 Web サイト Z の画面遷移図(抜粋)表 2 Web サイト Z の画面遷移の仕様(抜粋)
L さんは,Web サイト Z に対して診断を実施し,結果をとりまとめた。L さんは,L さんの診断結果と,セキュリティ専門業者の診断結果とを比較した。すると,両者ともに検出したものが 1 件,セキュリティ専門業者だけが検出したものが 3 件あった。Web サイト Z の診断結果を表 3 に示す。
攻撃手法Kは,特定の文字列を含むHTTPリクエストを送る攻撃である。一般的なWebサーバのアクセスログは,リクエストの1行目(メソッド,URL,HTTPバージョン)を記録する書式が標準で,たとえばApache HTTP Serverのログ書式の%rは“First line of request”(リクエストの最初の行)を記録し,共通ログ書式(CLF)もこの%rを使う。GETのパラメタはURLの一部なのでこの行に残るが,POSTデータはリクエストの本文に入るので,標準設定ではアクセスログに残らない。表2のとおり,WebサイトZの操作例でもPOSTデータでパラメタを送っている。攻撃に使われる文字列がPOSTデータに含まれていれば,ログを見ても痕跡は見付からない。解答例は“攻撃に使われる文字列がPOSTデータ内に含まれている場合”である。
表4のNo.3は,keywordの値がbagのとき30件だった。No.1のbag' and '1'='1は,bagの条件に“'1'='1”という常に成り立つ条件をANDでつないだものである。SQLインジェクションが存在すれば,この入力がSQL文の条件の一部として実行されるので,絞り込みの結果は変わらず,gは30である。No.2のbag' and '1'='2は,“'1'='2”という常に成り立たない条件をANDでつないだものなので,bagに該当する商品も含め1件も該当せず,hは0である。ステータスコードは3件とも200で,画面の表示だけで違いが分かる。