‹ ぱすてく

情報処理安全確保支援士試験

平成23年度 特別試験 午後Ⅰ(旧試験)

平成23年度 特別試験に実施された情報処理安全確保支援士試験 午後Ⅰの全4問(記述式)の全設問に,運営者が独自に書いた解説を付けています。事例本文のどこが根拠になるかを示し,IPA の解答例・採点講評と並べています。

この試験について:情報処理安全確保支援士試験について

この年度を解いてみる

問1 セキュアプログラミング

セキュアプログラミングに関する次の記述を読んで,設問 1~4 に答えよ。

A 社は,従業員数 100 名のソフトウェア開発会社である。A 社では,PC 向けソフトウェア製品として,“青少年が安全に安心してインターネットを利用できる環境の整備等に関する法律”に基づいた青少年有害情報フィルタリングソフトウェア(以下,B フィルタという)を開発することとなった。

A 社では,B フィルタの開発に当たって,F 主任をリーダとした開発チームを編成した。この開発チーム内の体制は,設計を行う D グループ,作成を行う P グループ及び試験を担当する Q グループの三つのグループとした。また,プログラム開発に用いる言語は,JIS X 3014“プログラム言語 C++”(以下,C++という)とした。

次は,この開発におけるセキュリティの脆弱性の発見から修正及び再発防止に至る経緯である。

〔URL マッチングの方式設計〕

D グループでは,B フィルタの概略機能を図 1 のようにまとめた。その後,要件定義を経て,URL マッチングによる有害の度合いを決定する方式設計を行い,図 2 の内容のとおり決定した。

B フィルタの概略機能。
(1) B フィルタの提供形態は,特定のブラウザ(以下,X ブラウザという)へのプラグインとする。
(2) X ブラウザから Web サイトへのアクセスを監視し,有害情報と判定されるアクセスをブロックする。
(3) 次の要素を総合して,有害情報であるか否かを判定する。
 (a) URL マッチング:アクセスしようとした URL と,有害情報の URL リストとのマッチングによって有害の度合いを決定する。有害情報の URL リストは A 社が逐次更新し,自動ダウンロード機能によって B フィルタに取り込まれる。
 (b) キーワードマッチング:表示するコンテンツの内容と,有害情報であるか否かを判定するためのキーワードリストとのマッチングによって有害の度合いを決定する。キーワードリストは,青少年の保護者が設定する。
(4) 保護者による設定で,動画へのアクセスをすべてブロックすることが可能である。
(以下,省略)
図 1 B フィルタの概略機能
URL マッチングの方式設計結果。
(1) X ブラウザのプラグイン用インタフェースを利用し,X ブラウザから Web サイトへのアクセスをトリガにして URL マッチング処理を開始する。なお,X ブラウザからプラグインには,利用者がアクセスしようとした URL がそのまま渡される。
(2) マッチングに先行して,X ブラウザから渡される URL を次のとおり正規化する。
・文字コード:UTF-8 とする。
・URL エンコード:RFC 3986 に準拠する(パーセントエンコード)。
・正規化後の文字列長:128 バイト以下とする。128 バイトを超える部分は切り捨てる。
(以下,省略)
図 2 URL マッチングの方式設計結果

〔詳細設計と作成〕

D グループでは,図 2 の方式設計結果に基づいて設計作業を進め,URL をパーセントエンコードする機能を一つの関数として作成することを決定し,その関数の仕様を図 3 のとおりとした。

関数 urlPercentEncode の仕様。
void urlPercentEncode(char *dst, char *src, int n)
返却値:なし。
効果:src が指す文字列(終端ナル文字を含む)から dst が指す文字列に文字をすべて転記する。その際,エンコードすべき文字を検出した場合は,当該文字をパーセントエンコードした上で dst が指す文字列に転記する。
なお,n の値は dst が指す文字列に書き込める最大バイト数とする。
dst が指す文字列への転記に当たって,バイト数が n を超える場合は,n バイトを書き込んだ時点で処理を打ち切って終了する。この場合,dst が指す文字列がナル文字で終了することは保証されない。
図 3 作成するパーセントエンコード関数の仕様

その後,P グループでは,パーセントエンコード関数の作成に取り掛かり,図 4 に示すソースコードを作成した。

行番号付きのソースコード(C++)。
1 void urlPercentEncode(char *dst, char *src, int n){
2    int srcPos = 0;
3    int dstPos = 0;
4    char x = 0;
5
6    while(src[srcPos] != '\0' && dstPos < n){
7       /* エンコードすべきか否かを判定 */
8       if(src[srcPos] == '-' || src[srcPos] == '.' ||
9               src[srcPos] == '_' || src[srcPos] == '~' ||
10              ((src[srcPos] >= '0') && (src[srcPos] <= '9')) ||
11              ((src[srcPos] >= 'A') && (src[srcPos] <= 'Z')) ||
12              ((src[srcPos] >= 'a') && (src[srcPos] <= 'z'))){
13      /* エンコードしない場合 */
14         dst[dstPos++] = src[srcPos++];
15      }
16      else{
17      /* エンコードする場合 */
18         dst[dstPos++] = '%';
19         x = (src[srcPos] & 0x00f0) >> 4;
20         dst[dstPos++] = x <= 9 ? x + '0' : x - 10 + 'A';
21         x = src[srcPos++] & 0x000f;
22         dst[dstPos++] = x <= 9 ? x + '0' : x - 10 + 'A';
23      }
24   }
25   if(dstPos < n){
26      dst[dstPos] = '\0';
27   }
28   return;
29 }
図 4 最初に作成したソースコード

〔脆弱性の発見〕

開発計画に基づき,URL マッチング機能だけがおおよそ完成した時点のものをプロトタイプ 1 として,Q グループによる試験を実施した。その試験の結果,ある特定の条件下で URL マッチング機能が正常に動作しない不具合が発見された。その結果を受けてプロトタイプ 1 の動作について詳細に確認したところ,パーセントエンコード関数が実行された直後に,ほかの関数でフラグとして使用している変数(以下,フラグ変数という)が想定外の値に書き換わり,URL マッチング機能が正常に動作しないことが判明した。

ソースコードの調査を行ったところ,パーセントエンコード関数にバッファオーバフロー脆弱性があり,隣接したメモリ領域に置かれたフラグ変数が想定外の値に書き換えられることが分かった。

〔関数の仕様変更〕

B フィルタの開発チームは,B フィルタで同様の脆弱性を作り込まないようにするために,標準 C++ライブラリの文字列クラスを使用してパーセントエンコード関数を作り直すとともに,ほかの関数においても作り直しを行った。パーセントエンコード関数の作り直しに当たって,引数及び返却値を文字列型に変更するのに伴い,D グループでは関数の仕様を図 5 に示すように変更した。その後,P グループは図 5 の仕様に基づいた関数の作成に取り掛かり,図 6 のソースコードを作成した。

なお,図 3 の仕様に基づく関数 urlPercentEncode()を呼び出していた部分は,すべて図 5 の仕様に基づく関数 urlPercentEncodeString()を呼び出すように修正した。

変更したパーセントエンコード関数の仕様。
string urlPercentEncodeString(string src)
返却値:処理済の文字列。
効果:src 文字列から,返却値に文字をすべて転記する。その際,エンコードすべき文字を検出した場合は,当該文字をパーセントエンコードした上で返却値に転記する。
図 5 変更したパーセントエンコード関数の仕様
作り直したソースコード(C++)。空欄 a,b は枠で囲まれている。
#include <string>
#include <iterator>

using namespace std;

string urlPercentEncodeString(string src){
   string dst("");
   string::iterator readPoint = src.[ a ]();
   string::iterator atEOL = src.[ b ]();
   char x = 0;

   while(readPoint != atEOL){
      /* エンコードすべきか否かを判定 */
      if(*readPoint == '-' || *readPoint == '.' ||
              *readPoint == '_' || *readPoint == '~' ||
              ((*readPoint >= '0') && (*readPoint <= '9')) ||
              ((*readPoint >= 'A') && (*readPoint <= 'Z')) ||
              ((*readPoint >= 'a') && (*readPoint <= 'z'))){
      /* エンコードしない場合 */
         dst.push_back(*(readPoint++));
      }
      else{
      /* エンコードする場合 */
         dst.push_back('%');
         x = (*readPoint & 0x00f0) >> 4;
         x = x <= 9 ? x + '0' : x - 10 + 'A';
         dst.push_back(x);
         x = *readPoint++ & 0x000f;
         x = x <= 9 ? x + '0' : x - 10 + 'A';
         dst.push_back(x);
      }
   }
   return dst;
}
図 6 作り直したソースコード

図 4 のソースコードでは文字列を配列として取り扱っていたので領域の境界をプログラムで管理する必要があったが,図 6 のソースコードでは c ので,バッファオーバフローが発生することはなくなった。

〔修正後の確認と再発防止〕

その後,Q グループでは,作り直したプロトタイプ 1 を試験して,バッファオーバフローが発生しないことを確認した。最後に,F 主任は再発防止策として,従来の A 社における C++開発標準ルールを図 7 に示すように改訂した。

なお,図 7 中の下線部は,この改訂によって追加した項目である。

A 社における C++開発標準ルール(改訂版)。下線が引かれた項目は,この改訂によって追加した項目である。
1. 識別子
 (省略)
2. 型・定数
 - 共用体の使用を禁止する。構造体の使用は,最小限にとどめる。
 - オブジェクトを生成する場合,できる限り標準 C++ライブラリで定義されたクラスを使用する。
 (省略)
3. 宣言・定義・初期化
 - 直接アクセス可能なグローバル変数は使用しない。必要な場合は,専用のアクセサを使用する。
 - すべてのオブジェクトは,明示的に初期化する。
 (省略)
4. ポインタ・配列
 - ポインタ変数に対する演算操作は禁止する。
 - (下線あり)文字列処理を行う場合,文字列を格納するための [ d ] の使用を禁止する。
 - (下線あり)配列又はポインタに添字を指定して書込みを行う場合,[ e ] を毎回実施する。
 (省略)
5. 関数
 - 関数の返却値及び引数に関して,明示的に型を宣言する。
 - 関数内で値を変更する場合を除き,関数の引数であるポインタは const へのポインタとする。
 - (下線あり)引数としてポインタを受け取った場合,添字指定での [ f ] は禁止する。
 - (下線あり)文字列処理を行う関数では,処理が成功したときは,原則として処理結果の文字列を返却値として返す。
(以下,省略)
図 7 A 社における C++開発標準ルール(改訂版)

この改訂によって,A 社におけるプログラム開発では本件と類似した問題点を作り込むことがなくなり,より安全なソフトウェアを提供することができるようになった。

出題趣旨(IPA)

堅ろうなプログラムを開発するためにはバッファオーバフロー脆弱性を作り込まないことが重要なポイントである。本問では,バッファオーバフロー脆弱性の理解と,その対策について問う。特に対策については,脆弱性の発見と修正だけでなく,そもそも脆弱性を作り込まないための仕組みまで踏み込める能力を問う。

採点講評(問全体・IPA)

問1では,C++におけるバッファオーバフロー対策について出題した。全体として,正答率は想定どおりだった。

設問と解答例

設問1 解答欄2つ

図 6 中の a,b に入れる適切なメンバ関数名(メソッド名)を解答群の中から選び,記号で答えよ。解答群 ア begin イ clear ウ end エ get オ set カ size キ start ク tail

〔a〕解答例

  • ア

〔b〕解答例

  • ウ
解説

本文の根拠

図 6

string::iterator readPoint = src.a();

図 6

string::iterator atEOL = src.b();

図 6

while(readPoint != atEOL){

図 6 は,文字列を指すイテレータ readPoint を 1 文字ずつ進めながら処理し,readPoint が atEOL に等しくなったら while を抜ける。したがって a には“先頭の文字を指すイテレータ”を返すメンバ関数,b には“終わりの位置を表すイテレータ”を返すメンバ関数が入る。

C++ の std::string(basic_string)では,begin() が先頭の文字へのイテレータを返し(ア),end() が最後の文字の次の位置へのイテレータを返す(ウ)。end() が返す位置は番兵として比較にだけ使い,参照してはならない(cppreference.com の std::basic_string::begin,end の説明)。図 6 の while の条件は readPoint != atEOL であり,ループの中では readPoint が指す文字だけを読むので,この使い方と合っている。

解答群の中で,図 6 の“先頭から終わりの位置まで走査する”処理に当たる組合せは begin と end だけである。a は begin(ア),b は end(ウ)で,a と b の記号を逆にしないよう注意する。

設問2(1) 20字以内

バッファオーバフローが発生するメモリ領域はどこか。図 4 中の変数名を用いて 20 字以内で述べよ。

解答例

  • dstが指し示す領域
解説

本文の根拠

図 3

なお,n の値は dst が指す文字列に書き込める最大バイト数とする。

図 4

dst[dstPos++] = '%';

図 4 の関数が値を書き込むのは,14 行目,18 行目,20 行目,22 行目,26 行目の dst[…] である。dst は呼出し側が用意した領域を指す引数で,図 3 のとおり書き込める最大バイト数は n と決められている。この n を超えて dst[dstPos++] に書き込むと,領域の外のメモリを書き換えるので,バッファオーバフローが起きるのは dst が指す領域である。

フラグ変数が書き換わったという本文の記述は,dst の領域の隣にフラグ変数が置かれていたことによる結果であり,オーバフローが発生する場所そのものではない。src は読み出しだけに使われ,srcPos や dstPos,x は int や char のローカル変数で,書込み先ではない。

20 字以内で,図 4 中の変数名を使うことが求められている。解答例は“dstが指し示す領域”の 10 字で,“dst が指す領域”のように,変数名 dst を使って領域を特定する。

設問2(2) 60字以内

図 4 の 6 行目から始まる while 文の副文(ループ本体)の実行において,バッファオーバフローが発生するための条件を,図 4 中の変数名を用いて 60 字以内で述べよ。

解答例

  • dstが指し示す領域の残りが2バイト以下となった時点で,srcにエンコードすべき文字があった場合
解説

本文の根拠

図 4

while(src[srcPos] != '\0' && dstPos < n){

図 4

dst[dstPos++] = '%';

図 4

dst[dstPos++] = x <= 9 ? x + '0' : x - 10 + 'A';

6 行目の while は dstPos < n の間だけ副文を実行する。副文のうち,エンコードしない場合は dst に 1 バイトを書くだけだが,エンコードする場合(else 側)は '%' と 16 進 2 桁の合計 3 バイトを続けて書き込む(18,20,22 行目)。そして書込みの前には,領域に残りがあるかどうかを確かめていない。

そのため,残りが n - dstPos で表されるとき,残りが 3 バイト未満(2 バイト以下)の時点でエンコードすべき文字が来ると,3 バイトを書き込む途中で n を超え,オーバフローが起きる。残りが 1 バイトのときに while の条件は真になるので,この状態でも副文に入る点が見落としやすい。

60 字以内なので,解答例は 48 字。“残りが 2 バイト以下”と“エンコードすべき文字があった場合”の二つの要素を両方入れる。dstPos < n という while の条件だけを書き写すと,エンコードで 3 バイト書くことに触れていないので条件として足りない。

設問3 60字以内 解答欄1つ

本文中の c では,図 4 で存在したバッファオーバフロー脆弱性が,図 6 では存在しない技術的理由を述べている。c に入れる適切な字句を 60 字以内で述べよ。

〔c〕解答例

  • 文字列をstringクラスとして取り扱っており,領域の境界は処理系が管理することとなる
解説

本文の根拠

〔関数の仕様変更〕

図 4 のソースコードでは文字列を配列として取り扱っていたので領域の境界をプログラムで管理する必要があったが,図 6 のソースコードでは c ので,バッファオーバフローが発生することはなくなった。

図 6

dst.push_back(*(readPoint++));

図 4 は dst を char のポインタ,つまり配列として受け取り,領域の大きさを n で別に渡して dstPos < n と照合する必要があった。図 6 には n に当たる引数も,書込み位置を数える変数もなく,dst は string 型で,書込みは push_back で行い,ループの終わりも atEOL との比較だけである。

つまり,文字列の長さや領域の確保・拡張は string クラス(標準ライブラリの処理系)に任せており,領域の境界をプログラム側で管理しなくてよい。これが,図 4 にあって図 6 に無い“技術的理由”である。

60 字以内で,解答例は 43 字。“string クラスとして扱っている”だけでなく,“領域の境界は処理系が管理する”という,管理の主体まで書く。

採点講評(IPA)

設問3は,正答率が低かった。図6では領域の境界をプログラムで管理する必要がないことは問題中の記述から読み取れる。その上で,なぜ必要がないのか,代わりにどのような仕組みで管理するのかという点を具体的に解答してほしかった。これは類似の脆弱性を回避するために重要な点であり,確実に理解しておいてほしい。

設問4 解答欄3つ

図 7 について,文字列の取扱いで本件と類似した問題点の作り込みを未然に防ぐのに有効となるように d~f に入れる適切な字句を,それぞれ 8 字以内で答えよ。

〔d〕解答例

  • 文字型の配列

〔e〕解答例

  • 上限チェック

〔f〕解答例

  • 代入
解説

本文の根拠

図 7

文字列を格納するための d の使用を禁止する。

図 7

配列又はポインタに添字を指定して書込みを行う場合,e を毎回実施する。

図 7

引数としてポインタを受け取った場合,添字指定での f は禁止する。

d:2 の項目に“オブジェクトを生成する場合,できる限り標準 C++ライブラリで定義されたクラスを使用する”とあるのと対になる規定で,文字列の取扱いでは,図 6 のように string クラスを使うことにして,文字列を格納する“文字型の配列”(char の配列)の使用を禁止する。

e:配列やポインタへ添字で書き込む場合は,図 4 の dst[dstPos++] のように,書込み位置が領域の大きさ(n)を超えないかを確かめなければならない。この確認が“上限チェック”で,書込みのたびに行う(毎回実施する)。

f:引数でポインタを受け取った関数は,指す領域の大きさをポインタだけからは知れないので,図 3 のように大きさ n を別に渡す必要がある。そのような領域へ添字を指定して値を“代入”する(図 4 の dst[dstPos++] = …)のを禁止すれば,同様の問題が防げる。各 8 字以内で,解答例は d が 6 字,e が 6 字,f が 2 字。

採点講評(IPA)

設問4では,開発標準ルールの具体的な記述を問うた。プログラム開発では,脆弱性対策だけでなく品質確保の面からも,開発標準ルールを決めることは重要である。具体的な開発標準ルールなどを参考に学習してほしい。

出典:平成23年度 特別試験 情報処理安全確保支援士試験 午後Ⅰ 問1(表記を一部改変)

問2 ソフトウェア資産管理

ソフトウェア資産管理に関する次の記述を読んで,設問 1~5 に答えよ。

C 社は,従業員数 400 名の広告代理店である。C 社では,主にテレビ,雑誌,新聞などのマスメディアの広告枠の販売並びに広告の企画及び制作を行っている。C 社のすべてのサーバと PC は,ネットワークで接続されている。C 社の情報システム部の T 部長は,ソフトウェアライセンス(以下,ライセンスという)に対する違反行為が,最近,社会問題になっているという話を聞き,ライセンスに関する社内外の状況を整理して報告するよう,部下の U 主任に指示した。U 主任の報告は図 1 のとおりである。

ライセンスに関する社内外の状況。
(1) ライセンスの形態には,PC の台数,CPU 数,利用者数などに応じてライセンス料を支払うものと,ライセンス料不要というものがある。社内で使用しているライセンスは,PC の台数に応じてライセンス料を支払う法人向けのものか,ライセンス料不要のもののいずれかである。
(2) 通常のライセンスに加えて,学校などの教育機関に所属する利用者だけに許諾されるアカデミックライセンスや,旧バージョンのライセンス保持者だけに許諾される [ a ] ライセンスが提供される場合もある。
(3) ライセンス契約違反に問われた場合は,ソフトウェア開発元から,正規のライセンス料のほかに,[ b ] 金や訴訟費用を請求される場合もある。また,海賊版の使用,許諾ライセンス数を超えるインストールなどが [ c ] 法に違反すると指摘された事例もある。
(4) 社内の各部門が購入するソフトウェアは,購買部が依頼を受け,発注・受領を行い,各部門に渡している。各部門にソフトウェアの購入履歴はあるが,購入後のライセンス管理は行われていない。
図 1 ライセンスに関する社内外の状況

〔ライセンスの実態調査〕

T 部長は,U 主任の報告を踏まえて,C 社における保有ライセンスと,ソフトウェアのインストールの詳細な状況を次のような手順で調査することにした。

なお,サーバ上のソフトウェアのライセンスは適切に管理できていることから,今回の調査は PC 上のソフトウェアだけを対象とすることにした。また,ライセンス料不要のものと OS は,調査の対象外とした。

U 主任が調査した結果,各部門で使用実態に比べて十分な数のライセンスを保有していることが確認できた。ただし,ソフトウェアの使用数に比べて保有ライセンス数がかなり多い部門も存在していた。このようなライセンスの中には,他部門が購入を予定しているものも含まれていた。

〔ソフトウェア資産管理ツールの導入〕

U 主任は,①インストール情報が記録されないソフトウェアがあることや,インストール情報を書き換えてソフトウェアの存在を隠ぺいするツールがインターネット上に存在していることなどから,インストール情報による調査では把握できないソフトウェアが,使用ソフトウェア一覧表以外にもインストールされているおそれがあると T 部長に報告した。そこで,T 部長は,ソフトウェア資産管理ツール(以下,管理ツールという)の導入を経営陣に提案し,承認を得て実行に移した。管理ツールは,保有ライセンスとソフトウェアの使用状況を管理するためのものであり,管理サーバに導入するサーバプログラムと,PC に導入するエージェントで構成されている。管理ツールの主な機能を表 1 に,管理サーバ上に保存される情報を表 2 にそれぞれ示す。

管理ツールの主な機能(機能名称と機能の説明)。
保有ライセンス登録機能:管理ツール利用者が入力した保有ライセンスの情報を,管理サーバ上に保有ライセンス情報として登録する。保有ライセンス情報は,削除又は更新することも可能である。
インストール情報収集機能:PC 上のソフトウェアのインストール情報を定期的に収集し,PC ごとの収集インストール情報として管理サーバ上に保存する。
実行情報収集機能:PC 上でソフトウェアが実行されたときに,PC の OS が採取した実行情報を収集し,PC ごとの収集実行情報として管理サーバ上に保存する。
ソフトウェア比較機能:・収集インストール情報又は収集実行情報が,それまでになかった新しい情報の場合には,ライセンス未登録とマークした上で,既存インストール情報又は既存実行情報に追加する。・既存インストール情報又は既存実行情報にライセンス未登録とマークされたものが存在する場合には,警告を表示して,管理ツール利用者に,使用ライセンス登録機能を用いてライセンスを割り当てるよう促す。
使用ライセンス登録機能:ライセンス未登録とマークされたものに対応するライセンスの情報は,管理サーバ上の保有ライセンス情報に余裕があることを確認した上で,使用ライセンス情報として追加登録する。さらに,ライセンス未登録とマークされた既存インストール情報及び既存実行情報のうち,管理ツール利用者が指定したものについて,ライセンス未登録のマークを取り消す。使用ライセンス情報,既存インストール情報,及び既存実行情報は削除又は更新することも可能である。
表 1 管理ツールの主な機能
管理サーバ上に保存される情報(情報名称,格納されている情報,管理単位)。
保有ライセンス情報:ライセンス管理番号,ソフトウェア名称,購入日,ライセンス数,ライセンス購入申請部門など。管理単位は C 社全体。
使用ライセンス情報:ライセンス管理番号,ライセンス使用 PC 名,PC 利用者名,利用者所属部門など。管理単位は C 社全体。
収集インストール情報:各エージェントが収集したソフトウェアのインストール情報。管理単位は PC ごと。
収集実行情報:各エージェントが収集した実行ファイル名,実行プロセス名などの実行情報。管理単位は PC ごと。
既存インストール情報:以前に収集され,まだ削除されていないインストール情報。管理単位は PC ごと。
既存実行情報:以前に収集され,まだ削除されていない実行情報。管理単位は PC ごと。
表 2 管理サーバ上に保存される情報

〔管理ツールの活用〕

管理ツールを導入して 1 か月たったある日,新種のウイルスが急速に感染を拡大しているという情報が入ってきた。そのウイルスは,PC 用のあるソフトウェアの脆弱性を悪用して感染するもので,そのソフトウェアに特定のセキュリティパッチを適用すれば感染しないというものであった。T 部長が管理ツールの機能を確認したところ,表 1 中の機能で,該当するセキュリティパッチの適用状況を把握できることが判明した。C 社では,管理ツールの機能を活用して,このウイルスの感染を未然に防ぐことができた。

その 1 週間後,T 部長は,開発元のセキュリティパッチ提供が終了したソフトウェアの利用が問題になっているという記事を見た。管理ツールには,インストール情報の一部として,ソフトウェアのバージョン(セキュリティパッチの情報を含む)を管理する機能がある。T 部長は,この機能を活用して,開発元のセキュリティパッチ提供が終了したソフトウェアを抽出できるのではないかと考え,早速,活用を開始することにした。

定期人事異動を 2 か月後に控えたある日,T 部長は人事異動のときのライセンス管理手順に問題がないかを確認することにした。C 社では,人事異動に伴い,異動前に使用していた PC を異動前の部門に残していく場合と,PC を異動後の部門に持っていく場合がある。PC 管理情報を更新するとともに,PC を異動前の部門に残していく場合には,使用ライセンス登録機能で,使用ライセンス情報の PC 利用者名を次の利用者に更新する。PC を異動後の部門に持っていく場合には,使用ライセンス登録機能で,使用ライセンス情報の利用者所属部門を更新するとともに,業務内容の変更に伴って新たに必要となるソフトウェアがあれば PC にインストールし,使用ライセンス登録機能で使用ライセンス情報に追加登録する。

T 部長は,②異動後の部門に PC を持っていく場合に PC 上と管理ツール上でそれぞれ更に実施すべきことがあると考え,手順に項目を追加することにした。

〔管理ツール運用上の問題点の改善〕

管理ツールを導入して 1 年後,保有ライセンス情報を不正に登録されると,ライセンス管理がうまく機能しないおそれがあることが分かった。現状では,管理ツール利用者が自分自身で利用するソフトウェアであっても保有ライセンス情報を登録できる一方,登録された保有ライセンスが購入されたライセンスであるかどうかを C 社では確認していない。このため,T 部長は,管理ツール利用者は,自分自身が利用するソフトウェアの保有ライセンス情報を登録できないようにする運用方針を経営陣に提案し,承認を得て実行に移した。その後,C 社では,管理ツールを活用して順調にライセンス管理を行っている。

出題趣旨(IPA)

ソフトウェアライセンスに対する違反行為が,最近,社会問題になっている。本問では,管理ツールによるソフトウェアの実態把握を通じて,ソフトウェアライセンス,セキュリティパッチ,運用管理に関する知識と対応能力を問う。

採点講評(問全体・IPA)

問2では,ソフトウェア資産管理に関連する情報セキュリティ対策について出題した。全体として,正答率は想定どおりだった。

設問と解答例

設問1 解答欄3つ

図 1 中の a~c に入れる適切な字句をそれぞれ答えよ。

〔a〕解答例

  • アップグレード

〔b〕解答例

  • 損害賠償

〔c〕解答例

  • 著作権
解説

本文の根拠

図 1 (2)

旧バージョンのライセンス保持者だけに許諾される a ライセンスが提供される場合もある。

図 1 (3)

正規のライセンス料のほかに,b 金や訴訟費用を請求される場合もある。

図 1 (3)

許諾ライセンス数を超えるインストールなどが c 法に違反すると指摘された事例もある。

a:学校などの教育機関の利用者だけに許諾されるアカデミックライセンスと並べて,“旧バージョンのライセンス保持者だけに許諾される”ライセンスが挙げられている。旧バージョンの保持者が新しいバージョンへ移行するときのライセンスなので,“アップグレード”が入る。

b:契約違反に問われたときに,正規のライセンス料のほかに訴訟費用と並べて請求される金は“損害賠償”金である。

c:海賊版の使用や許諾数を超えるインストールは,ソフトウェア(プログラム)の著作物を無断で複製する行為に当たる。プログラムの著作物は著作権法第 10 条第 1 項第 9 号に著作物の例として挙げられているので,違反するのは“著作権”法である。いずれも字数の指定は無く,解答例は a がアップグレード,b が損害賠償,c が著作権の 3 語。

設問2 25字以内

〔ライセンスの実態調査〕において,部門内だけの調査結果からは把握できないが,全社としての調査結果から把握できることは何か。25 字以内で述べよ。

解答例

  • 遊休ライセンスを全社で有効利用する可能性
解説

本文の根拠

〔ライセンスの実態調査〕

ただし,ソフトウェアの使用数に比べて保有ライセンス数がかなり多い部門も存在していた。

〔ライセンスの実態調査〕

このようなライセンスの中には,他部門が購入を予定しているものも含まれていた。

各部門は,自部門が保有するライセンス数と自部門で使うソフトウェアの数だけを見るので,部門内の調査だけでは,自部門の余りが他の部門の不足を埋められるかどうかは分からない。全社の保有ライセンス一覧表と使用ソフトウェア一覧表を突き合わせて初めて,ある部門に余っているライセンスと,他部門が購入を予定しているソフトウェアが一致していることが分かる。

本文の調査結果では,使用数に比べて保有数がかなり多い部門があり,その中に他部門が購入を予定しているものが含まれていた。このような使われていないライセンスを部門の壁を越えて使えば,新規購入を減らせる。全社の調査から把握できるのは,この“遊休ライセンスを全社で有効に使える見込み”である。

25 字以内なので,解答例は 20 字。“ライセンスが不足している”“不正にインストールされている”のように,各部門の調査でも分かることを書かない。

採点講評(IPA)

設問2は,正答率が低かった。全社としての調査で初めて把握できる内容を解答してほしかったが,各部門の調査でも把握できるような誤った解答が散見された。

設問3 40字以内

〔ソフトウェア資産管理ツールの導入〕において,管理ツールが,本文中の下線①のようなソフトウェアを検出できる理由は何か。40 字以内で述べよ。

解答例

  • インストール情報が存在しなくても,実行情報は存在するから
解説

本文の根拠

〔ソフトウェア資産管理ツールの導入〕

①インストール情報が記録されないソフトウェアがある

表 1

PC 上でソフトウェアが実行されたときに,PC の OS が採取した実行情報を収集し,PC ごとの収集実行情報として管理サーバ上に保存する。

下線①のソフトウェアは,インストール時に OS へ識別情報が記録されないので,インストール情報を集めるだけでは見つからない。管理ツールには,これと別に,表 1 の実行情報収集機能がある。この機能は PC 上でソフトウェアが実行されたときに OS が採取する実行情報を収集する。

ソフトウェアは実行されれば,インストール情報の有無にかかわらず OS に実行情報が残る。さらにソフトウェア比較機能は,新しい収集実行情報をライセンス未登録とマークして警告を出すので(表 1),インストール情報に載らないソフトウェアも,実行情報から検出してライセンスの割当てを促せる。

40 字以内で,解答例は 28 字。“実行情報を収集するから”だけでなく,“インストール情報が存在しなくても”という前提を入れて,下線①の場合に検出できる理由として完結させる。

設問4(1) 45字以内

ウイルスの感染を防ぐために,管理ツールの機能をどのように活用したのか。45 字以内で述べよ。

解答例

  • インストール情報に,特定のセキュリティパッチが含まれていないPCを抽出する。
解説

本文の根拠

〔管理ツールの活用〕

表 1 中の機能で,該当するセキュリティパッチの適用状況を把握できることが判明した。

表 1

PC 上のソフトウェアのインストール情報を定期的に収集し,PC ごとの収集インストール情報として管理サーバ上に保存する。

〔管理ツールの活用〕

インストール情報の一部として,ソフトウェアのバージョン(セキュリティパッチの情報を含む)を管理する機能がある。

表 1 のインストール情報収集機能は,PC ごとにソフトウェアのインストール情報を定期的に集めて管理サーバに保存する。本文のとおり,インストール情報にはバージョン(セキュリティパッチの情報を含む)が含まれる。

ウイルスは,あるソフトウェアに特定のセキュリティパッチを適用すれば感染しないものだったので,管理サーバ上のインストール情報から,そのパッチが含まれていない PC を抽出すれば,感染するおそれのある PC を事前に特定でき,適用を促せる。これが“管理ツールの機能の活用”に当たる。

45 字以内で,解答例は 38 字。“管理ツールで調べた”だけにとどめず,何を条件に PC を抽出するのか(特定のパッチが含まれていない)まで書く。

設問4(2) 45字以内

管理ツールの機能を利用して,開発元のセキュリティパッチ提供が終了したソフトウェアを抽出することは,情報セキュリティの観点からどのような意義があるか。45 字以内で述べよ。

解答例

  • 脆弱性が発見されても対処する手段がない,という状況を回避することができる。
解説

本文の根拠

〔管理ツールの活用〕

開発元のセキュリティパッチ提供が終了したソフトウェアの利用が問題になっているという記事を見た。

〔管理ツールの活用〕

開発元のセキュリティパッチ提供が終了したソフトウェアを抽出できるのではないか

開発元のセキュリティパッチの提供が終了したソフトウェアは,あとから脆弱性が見つかっても,開発元から修正が提供されない。その状態で使い続けると,脆弱性を悪用されても,パッチの適用という通常の対処ができない。

管理ツールでそのようなソフトウェアを抽出できれば,どの PC がそうしたソフトウェアを使っているかを把握でき,使い続けるリスクがある状況を認識して避ける手を打てる。つまり,“脆弱性が発見されても対処する手段がない”という状況を回避できることが,情報セキュリティの観点での意義である。

45 字以内で,解答例は 37 字。“新たな脆弱性が発見されたら速やかに対処できる”と書くのは誤りで,提供が終了していれば,脆弱性が見つかっても開発元のパッチは出ない(講評が指摘する誤答)。

採点講評(IPA)

設問4(2)は,正答率が低かった。セキュリティパッチの提供が終了したソフトウェアを抽出することの意義として,“新たな脆弱性が発見されたら速やかに対処できる”という解答も見られたが,脆弱性が発見されたとしても,開発元からセキュリティパッチは提供されない。このような危険な状況は,直ちに回避する必要がある。

設問4(3) 30字以内

本文中の下線②について,PC 上で実施すべきと T 部長が考えたことは何か。30 字以内で述べよ。

解答例

  • 異動に伴い不要になったソフトウェアを削除する。
解説

本文の根拠

〔管理ツールの活用〕

PC を異動後の部門に持っていく場合には,使用ライセンス登録機能で,使用ライセンス情報の利用者所属部門を更新するとともに,業務内容の変更に伴って新たに必要となるソフトウェアがあれば PC にインストールし,使用ライセンス登録機能で使用ライセンス情報に追加登録する。

表 1

使用ライセンス情報,既存インストール情報,及び既存実行情報は削除又は更新することも可能である。

異動後の部門へ PC を持っていく場合の手順は,利用者所属部門の更新と,新たに必要なソフトウェアのインストール・使用ライセンス情報への追加登録だけで,業務内容の変更で要らなくなったソフトウェアの扱いが書かれていない。

そのまま使い続けると,不要なソフトウェアが PC に残り,使用ライセンス情報にも残る。そこで下線②の“PC 上で更に実施すべきこと”は,異動に伴い不要になったソフトウェアの削除(アンインストール)で,管理ツール上では対応する使用ライセンス情報を削除し,ライセンスを再び割り当てられる状態にする(表 1 のとおり,使用ライセンス情報は削除又は更新できる)。

30 字以内で,解答例は 23 字。問われているのは PC 上のことなので,管理ツール上の作業(使用ライセンス情報の削除)には触れない。

設問5 30字以内

〔管理ツール運用上の問題点の改善〕において,T 部長が提案した運用方針が,保有ライセンス情報の不正登録の対策となる理由は何か。30 字以内で述べよ。

解答例

  • ライセンスの利用者と登録者の間で相互けん制が働くから
解説

本文の根拠

〔管理ツール運用上の問題点の改善〕

管理ツール利用者が自分自身で利用するソフトウェアであっても保有ライセンス情報を登録できる一方,登録された保有ライセンスが購入されたライセンスであるかどうかを C 社では確認していない。

〔管理ツール運用上の問題点の改善〕

管理ツール利用者は,自分自身が利用するソフトウェアの保有ライセンス情報を登録できないようにする運用方針

現状では,ソフトウェアを使う本人が保有ライセンス情報を登録でき,しかも登録内容が実際に購入されたものかを確認していない。本文は,保有ライセンス情報を不正に登録されると,ライセンス管理がうまく機能しないおそれがあるとしている。

運用方針は,利用者が自分のソフトウェアの保有ライセンス情報を登録できないようにするものである。そうすると登録は利用者以外の第三者が行うことになり,利用する人と登録する人が別々になる。権限を分けて,互いにチェックが働く(相互けん制)仕組みになるので,不正な登録をしにくくなる。

30 字以内で,解答例は 26 字。“不正を防げるから”だけでは理由にならない。利用者と登録者が別であることによって,互いにけん制が働く点まで書く(講評の“権限分離”“相互けん制”)。

採点講評(IPA)

設問5は,正答率が低かった。権限の集中による不正行為を防ぐために,“権限分離”又は“相互けん制”という考え方に基づき,ソフトウェアの利用者以外の第三者が登録することを理解してほしかった。

出典:平成23年度 特別試験 情報処理安全確保支援士試験 午後Ⅰ 問2(表記を一部改変)

問3 情報漏えい対策

情報漏えい対策に関する次の記述を読んで,設問 1~4 に答えよ。

E 社は,雑貨やアイディア商品の企画・販売を行う従業員数 100 名の会社である。大手通販会社や生活用品店,雑貨店,全国チェーンのドラッグストアなどを顧客にもち,E 社ブランド商品の販売のほか,顧客のプライベートブランドで販売される OEM 商品の企画や各種イベントとタイアップした商品の企画なども手掛けている。

〔情報漏えい事故の発生と対策の指示〕

ある日,E 社の従業員が帰宅後も資料を作成するために,USB メモリに商品の企画書をコピーして持ち帰り,その USB メモリを紛失するという事故が起こった。USB メモリにコピーした企画書は,顧客である L 社のプライベートブランドで販売される予定の OEM 商品に関するものであり,L 社への事情説明と謝罪に加え,商品の企画をやり直す事態となった。

当該商品が企画の初期段階であり,幸い大事に至らなかったが,今後,業務情報の社外持出しに起因する重大な情報漏えい事故が発生しないとも限らないと E 社社長は考えた。そこで,E 社社長は,情報システム部長を通じて,情報システム部の Y 課長に,E 社における業務情報の社外への持出しの現状を調査し,必要であれば情報漏えい対策を検討するよう指示した。

〔業務情報の持出しに関する現状調査〕

Y 課長は,まず,“業務情報の持出し”を,“会社貸与のノート PC(以下,貸与 PC という)や会社貸与の USB メモリ(以下,貸与 USB メモリという)に業務情報を保存して社外に持ち出すこと”と定義した上で,業務情報の持出しの状況についての調査と対策の検討を進めることにした。一方,電子メールやファイル転送などによる社外への情報の送信についての調査と対策の検討は,別途実施することにした。

Y 課長は,E 社における業務情報の持出しの現状を調査するために,情報システム部の Z 君とともに従業員のうちの何人かにヒアリングを行った。

ヒアリングの結果,従業員が業務情報を持ち出す目的は,顧客との打合せ(以下,M という)か,自宅での資料作成(以下,H という)のいずれかであることが分かった。現状,いずれの場合においても申請や承認などについて規定されていない。

Z 君は,E 社の業務情報の持出しの状況について,概要を表 1 に整理した。

E 社の業務情報の持出しの状況(持ち出す目的,持ち出す者,持出先,持出情報の内容と開示可能範囲,現状の持出手段)。
持ち出す目的 M:持ち出す者は E 社営業担当者,持出先は顧客先,現状の持出手段は貸与 PC。
・E 社ブランド既存商品の情報:開示可能範囲は制限なし。
・OEM 商品やタイアップ商品の企画書及び提案書:開示可能範囲は E 社内の案件関係者並びに OEM 又はタイアップ先の顧客。
持ち出す目的 H:持ち出す者は E 社従業員,持出先は自宅,現状の持出手段は貸与 PC 又は貸与 USB メモリ。
・公開前のプレスリリース,E 社ブランド商品の企画書,キャンペーン,プロモーションなどの企画書:開示可能範囲は E 社内の案件関係者。
・E 社ブランド既存商品の情報:開示可能範囲は制限なし。
・OEM 商品やタイアップ商品の企画書及び提案書:開示可能範囲は E 社内の案件関係者並びに OEM 又はタイアップ先の顧客。
表 1 E 社の業務情報の持出しの状況

貸与 PC で業務情報が持ち出された場合は,M,H のいずれにおいても,持出先での業務情報へのアクセスには,その貸与 PC 自体が利用されている。一方,H において,貸与 USB メモリで業務情報が持ち出された場合は,従業員が私有する PC(以下,私有 PC という)を利用して業務情報にアクセスすることがあると判明している。

M については,顧客に資料を提示しなければならないという業務上の必要性があるのに対し,H については,E 社オフィス内で資料作成を実施すればよく,必要性に乏しい。そこで Y 課長は,H のための持出しについては,禁止することを会社規則として規定した上でそれを全社に周知することとし,M については,情報漏えい対策の検討を Z 君に指示した。

〔M における情報漏えい対策の検討〕

Z 君は,M における情報漏えい対策を検討するに当たって,M のための業務情報の持出しに関連した情報漏えいリスクへの現状の対応状況を表 2 に整理した。

M のための業務情報の持出しに関連した情報漏えいリスクへの現状の対応状況(情報漏えいリスク,リスクに対して有効と考えられる対策,E 社における左記対策の実施状況)。
(ア) 盗難,紛失:持出中に貸与 PC が盗まれる又は紛失する。有効と考えられる対策は,・情報を秘匿するための [ a ],・貸与 PC の安全な持運びに関する注意点の周知(この内容に下線①が付いている)。実施状況は,・情報は [ a ] していない。・貸与 PC の社外での取扱方法に関する規定はない。
(イ) マルウェアに感染:・持出中に貸与 PC がマルウェアに感染する。・マルウェアに感染した貸与 PC で情報を持ち出す。有効と考えられる対策は,・社外でのインターネット接続の禁止,・ウイルス対策ソフトの導入,・会社指定ソフトウェア以外のインストール禁止,・セキュリティパッチ適用の徹底。実施状況は,・貸与 PC による社外でのインターネット接続は禁止していない。・貸与 PC にウイルス対策ソフトを導入済。・会社指定ソフトウェアの規定はないが,従業員に貸与 PC の管理者権限が与えられていないので,管理者権限が必要なソフトウェアのインストールはできない。・貸与 PC に対してセキュリティパッチの強制適用を定期的に実施している。
(ウ) 不正開示:持出中に E 社従業員が,開示が許可されている対象者以外に(故意又は過失で)情報を開示してしまう。有効と考えられる対策は,開示可能範囲の周知。実施状況は,開示可能範囲は規定されているが,それを制限する技術的な対策は導入していない。
(エ) 盗み見:持出中に貸与 PC の画面をのぞき見される。有効と考えられる対策は,・プライバシフィルタの利用,・第三者から見られる場所での利用を禁止した規定の周知。実施状況は,・プライバシフィルタは利用していない。・貸与 PC の社外での取扱方法に関する規定はない。
表 2 M のための業務情報の持出しに関連した情報漏えいリスクへの現状の対応状況

M では,営業担当者が持出情報を持ち歩いていることに加え,②日常業務に利用している貸与 PC を持ち出していることで,万一,情報漏えい事故が発生すると被害が大きくなるおそれがあることから,Z 君は,営業担当者が業務情報を持ち出す必要をなくし,貸与 PC の社外への持出しも禁止することが情報漏えい対策として望ましいと考えた。そこで,情報漏えい対策として,ハードディスクなどの記憶装置をもたず USB メモリなどの外部記憶媒体も利用できないシンクライアント端末(以下,専用端末という)を利用する案(以下,案 1 という)と,公開 Web サーバのディスク領域を利用する案(以下,案 2 という)の二つの案を提案することにした。それぞれの案では,貸与 PC の社外への持出しは禁止した上で,図 1 のような手順によって,業務情報を持ち出すことなく顧客に見せることができる。

案 1 及び案 2 による顧客への業務情報の提示手順。
(案 1 の場合)
(1) E 社内のサーバ上に,専用端末からアクセス可能なディスク領域をあらかじめ作成しておく。
(2) E 社の営業担当者は,(1)で作成したディスク領域に業務情報を保存する。
(3) E 社の営業担当者は,専用端末を用いて顧客先からそのサーバに VPN でリモートアクセスする。
(案 2 の場合)
(1) E 社の公開 Web サーバ上に,各顧客専用のディスク領域をあらかじめ作成しておく。
(2) 各顧客には,専用のディスク領域にアクセスするための ID とパスワードを登録しておいてもらう。
(3) E 社の営業担当者は,業務情報を当該顧客専用のディスク領域にアップロードした上で,当該顧客にダウンロードをしておくよう依頼する。
図 1 案 1 及び案 2 による顧客への業務情報の提示手順

案 2 の場合は,③万一,公開 Web サーバが不正アクセスされても,業務情報が漏えいするリスクをできるだけ小さくするための運用上の対策を併せて実施する。

案 1,案 2 は,いずれも表 2 の(ア)及び(イ)のリスクを b することができる。表 2 の(ウ)のリスクについては,業務として特定顧客向けの業務情報を取り扱う以上,案 1 と案 2 のいずれであっても b することはできないので,c 策を取ることとし,案 1 と案 2 のそれぞれの場合についてどの程度 c できるかを検討し,次のようにまとめた。

(案 1 の場合)

業務情報ごとに開示が許可されている範囲を明確にし,ディスク領域に保存することを周知することはできるが,E 社従業員の故意又は過失による他社への情報開示を技術的に禁止することは困難である。

(案 2 の場合)

アップロード時に故意又は過失で当該顧客向け業務情報を他社に開示するリスクがあるが,業務情報のアップロードに際して,④アップロードする営業担当者の上司による確認がなされれば,そのリスクを c することができる。

表 2 の(エ)のリスクについては,案 2 では顧客が業務情報をダウンロードすることによって b できる一方で,案 1 では b できない。

Z 君は,以上の検討結果から,M においては案 2 を採用するという対策をまとめ,Y 課長に報告し,了承を得た。

〔対策案の見直し〕

Y 課長が情報漏えい対策について情報システム部長に報告したとき,部長から次のコメントがあり,H のための業務情報の持出しについて追加の検討をすることになった。

Y 課長と Z 君は,H が許可された場合の対策を検討するに当たって,表 2 の内容を見直し,H のための業務情報の持出しの対応状況も含めて整理することにした。

なお,表 3 は,変更後の表 2 から,(ア)及び(イ)の行を抜粋したものである。

M と H のための業務情報の持出しに関連した情報漏えいリスクへの対応状況(変更後の表 2 の抜粋)。
(ア) 盗難,紛失:持出中に貸与 PC 又は貸与 USB メモリが盗まれる又は紛失する。有効と考えられる対策は,・情報を秘匿するための [ a ],・貸与 PC 及び貸与 USB メモリの安全な持運びに関する注意点の周知。実施状況は,・情報は [ a ] していない。・貸与 PC 及び貸与 USB メモリの社外での取扱方法に関する規定はない。
(イ) マルウェアに感染:・持出中に貸与 PC 又は貸与 USB メモリがマルウェアに感染する。・マルウェアに感染した貸与 PC 又は貸与 USB メモリで情報を持ち出す。・マルウェアに感染した私有 PC で持出情報を扱う。有効と考えられる対策は(表 2 から変更なし)。実施状況は,(表 2 の内容に次を追記)・私有 PC におけるマルウェアの対策状況を定常的に把握できていない。・私有 PC については,インストールできるソフトウェアを会社指定のものだけに制限できていない。・私有 PC については,セキュリティパッチの適用は徹底できていない。
表 3 M と H のための業務情報の持出しに関連した情報漏えいリスクへの対応状況(変更後の表 2 の抜粋)

表 3 に基づいて,Y 課長と Z 君は,M について検討した案 1 と案 2 を H のための案として読み替えたものを対策候補として検討を進めた。H の場合,⑤案 2 では,(イ)のリスクに対する有効な対策を取ることが困難なので,案 1 の方が有効であると考えられる。(ウ)と(エ)のリスクも検討の上で総合的に判断し,Y 課長と Z 君は,M は案 2,H は案 1 で対応することとした。手順が複数となることで業務効率上の問題が生じた場合は,手順の一本化について後日検討することとした。

Y 課長は,これらを情報システム部長に報告し,了承を得た。また,社長にも概要報告がなされ,了解が得られた。

出題趣旨(IPA)

情報セキュリティ対策の立案に当たっては,情報資産の利用状況から想定されるリスクへの対応の有効性確保という観点が必要である。利用状況からは想定されないリスクにだけ対応した対策や,想定されるリスクに対して無効な対策を立案するようなことは避けなければならない。本問では,情報(情報を保存した機器や媒体)の持出しという題材を通して,リスクを考慮して情報セキュリティ対策を立案する能力を問う。

採点講評(問全体・IPA)

問3では,PCや記憶媒体による情報の社外への持出しを題材として,情報漏えい対策について出題した。全体として,正答率は想定どおりだった。

設問と解答例

設問1(1) 3字以内 解答欄1つ

a に入れる適切な字句を 3 字以内で答えよ。

〔a〕解答例

  • 暗号化
解説

本文の根拠

表 2 (ア)

情報を秘匿するための a

表 2 (ア)

情報は a していない。

表 2 の(ア)は,持出中に貸与 PC が盗まれる又は紛失するリスクで,有効と考えられる対策の一つが“情報を秘匿するための a”,実施状況が“情報は a していない”である。持ち出した PC が第三者の手に渡っても,中身を読めなくするための対策なので,情報を暗号化することが入る。

暗号化しておけば,PC 本体を失っても,保存された情報は鍵が無ければ読めない。ただし,貸与 PC の取扱方法に関する規定が無いことから分かるように,この対策は PC の持運び方(設問 2)の対策とは別に必要な,もう一つの対策である。

3 字以内なので,解答例は“暗号化”の 3 字。表 3 の a も同じ語が入る。“秘匿”“暗号”のような字数不足や不適切な語にしない。

設問1(2)

b,c に入れる適切な字句の組合せを解答群の中から選び,記号で答えよ。解答群 ア b:移転,c:回避 イ b:回避,c:低減 ウ b:低減,c:移転 エ b:低減,c:回避

解答例

  • イ
解説

本文の根拠

〔M における情報漏えい対策の検討〕

案 1,案 2 は,いずれも表 2 の(ア)及び(イ)のリスクを b することができる。

〔M における情報漏えい対策の検討〕

業務として特定顧客向けの業務情報を取り扱う以上,案 1 と案 2 のいずれであっても b することはできないので,c 策を取ること

案 1,案 2 は,貸与 PC を社外へ持ち出さず,業務情報も持ち出さない対策である。そのため,表 2 の(ア)(持出中の盗難・紛失)と(イ)(持出中のマルウェア感染)のリスクは,原因となる持出しそのものをやめることで発生させない。これはリスクの“回避”に当たり,b には回避が入る。

(ウ)の不正開示は,特定顧客向けの業務情報を顧客に開示する以上,開示すること自体をやめるわけにはいかず,回避できない。そこで,不正開示が起きる可能性や影響を小さくする“低減”策を取ることになり,c には低減が入る。組合せは b が回避,c が低減のイ。

ア・ウ・エは,b が移転や低減になっていたり,c が回避や移転になっていたりする。(ウ)は,案 2 でも上司の確認によって“低減”できるとされており(本文),c が回避ではない点でも確かめられる。

設問2 15字以内

表 2 中の下線①の持運びに関する注意点を 15 字以内で具体的に述べよ。

解答例

  • 移動中は肌身離さず持つ。
解説

本文の根拠

表 2 (ア)

貸与 PC の安全な持運びに関する注意点の周知(この内容に下線①が付いている)

表 2 (ア)

持出中に貸与 PC が盗まれる又は紛失する。

下線①は,(ア)のリスク(持出中の貸与 PC の盗難・紛失)に対する対策としての“安全な持運びに関する注意点”である。盗まれる,なくすのは,PC から手や目を離したときに起こるので,注意点は PC を手元から離さないことになる。

本文は,この設問のリスクを,貸与 PC を社外へ持ち出すことを前提にしたものとして整理している(表 2 の(ア)の“持出中に”)。したがって“持ち出さない”という答えは,問われている持運びの注意点にならない。

15 字以内で,解答例は“移動中は肌身離さず持つ。”の 12 字。“具体的に”とあるので,“盗難に注意する”のような一般論でなく,“肌身離さず”のように行動を書く。講評は,持運び自体を禁止するという誤答を指摘している。

採点講評(IPA)

設問2は,正答率が低かった。PCの持運びに関する注意点を問うているにもかかわらず,持運び自体を禁止するといった誤った解答が散見された。設問で何が問われているのかを,落ち着いて把握するようにしてほしい。

設問3(1) 45字以内

本文中の下線②について,被害が大きくなるおそれがある理由を 45 字以内で述べよ。

解答例

  • 当該持出時に必要な情報以外に貸与PCに入っている業務情報も漏えいする可能性があるから
解説

本文の根拠

〔M における情報漏えい対策の検討〕

日常業務に利用している貸与 PC を持ち出していることで,万一,情報漏えい事故が発生すると被害が大きくなるおそれがある

〔M における情報漏えい対策の検討〕

営業担当者が業務情報を持ち出す必要をなくし,貸与 PC の社外への持出しも禁止することが情報漏えい対策として望ましいと考えた

M で営業担当者が持ち出す貸与 PC は,持出情報(顧客に見せる情報)だけを入れたものではなく,日常業務で使っている PC である。そのため,持ち出す必要のあった情報のほかにも,日常業務の業務情報がこの PC に入っている。

持出中にこの PC が盗まれる又は紛失すると,持出情報だけでなく,PC に入っていた他の業務情報まで漏えいする可能性がある。被害が大きくなるのはそのためで,下線②が,業務情報を持ち出す必要をなくし,貸与 PC の持出しも禁止する対策につながっている。

45 字以内で,解答例は 42 字。“持ち出す情報が多いから”のような量の話ではなく,“持出時に必要な情報以外の業務情報も”入っている点を明示する。

設問3(2) 45字以内

本文中の下線③とは,どのような運用上の対策か。45 字以内で述べよ。

解答例

  • 顧客を訪問する直前に業務情報をアップロードし,ダウンロードされたらすぐに削除する。
解説

本文の根拠

図 1 案 2 (3)

E 社の営業担当者は,業務情報を当該顧客専用のディスク領域にアップロードした上で,当該顧客にダウンロードをしておくよう依頼する。

〔M における情報漏えい対策の検討〕

万一,公開 Web サーバが不正アクセスされても,業務情報が漏えいするリスクをできるだけ小さくするための運用上の対策

案 2 では業務情報を公開 Web サーバに置く。公開 Web サーバはインターネットから到達できるので,不正アクセスされる可能性がある。その場合に漏えいするリスクを小さくするには,業務情報が公開 Web サーバに置かれている時間を短くすればよい。

そこで,運用上の対策は,顧客を訪問する直前にアップロードし,顧客がダウンロードしたらすぐに削除することである。アップロードを前日などに行わず,ダウンロード後に消すので,サーバ上に情報がある間だけが危険にさらされる。

45 字以内で,解答例は 41 字。“直前にアップロード”と“ダウンロード後すぐに削除”の二点が要素。講評は,認証・アクセス制限や DMZ の設置を挙げた誤答に触れており,これらは不正アクセスを防ぐ方法で,不正アクセス後の被害を抑える運用ではない。

採点講評(IPA)

設問3(2)は,正答率が高かったものの,認証やアクセス制限,DMZの設置によるWebサーバ自体の防御といった誤った解答が散見された。これらは,いずれも不正アクセスを防ぐための方法であり,設問で問われている不正アクセス後の被害の拡大防止には寄与しない。各種の対策がどのようなリスクに対して効果をもっているのかを,改めて確認しておいてほしい。

設問3(3) 35字以内

本文中の下線④では,何を確認すべきか。35 字以内で述べよ。

解答例

  • アップロードする業務情報が,当該顧客向けの情報であること
解説

本文の根拠

〔M における情報漏えい対策の検討〕

アップロード時に故意又は過失で当該顧客向け業務情報を他社に開示するリスクがあるが

図 1 案 2 (1)

E 社の公開 Web サーバ上に,各顧客専用のディスク領域をあらかじめ作成しておく。

案 2 は,各顧客専用のディスク領域に業務情報をアップロードする方式で,顧客ごとに領域が分かれている。アップロード時の不正開示のリスクは,間違った顧客のディスク領域に,あるいは別の顧客向けの情報を,アップロードしてしまうことで起きる。

そのため,上司が確認すべきことは,アップロードしようとしている業務情報が,アップロード先の顧客向けの情報であることである。この確認があれば,リスクを低減できると本文は述べている。

35 字以内で,解答例は 28 字。“アップロード先が正しいか”だけでなく,“業務情報が当該顧客向けのものか”という情報の中身との対応を書く。

設問4 55字以内

〔対策案の見直し〕について,本文中の下線⑤の有効な対策を取ることが困難な理由を 55 字以内で述べよ。

解答例

  • セキュリティ対策が十分でない可能性のある私有PCに業務情報をダウンロードすることができてしまうから
解説

本文の根拠

〔対策案の見直し〕

案 2 では,(イ)のリスクに対する有効な対策を取ることが困難

表 3 (イ)

マルウェアに感染した私有 PC で持出情報を扱う。

表 3 (イ)

私有 PC におけるマルウェアの対策状況を定常的に把握できていない。

H(自宅での資料作成)では,持出手段に貸与 USB メモリがあり,従業員が私有 PC を使って業務情報にアクセスすることがある。案 2 は公開 Web サーバに業務情報を置き,ダウンロードして使う方式なので,H で使うと従業員が自宅の私有 PC に業務情報をダウンロードすることができる。

表 3 のとおり,私有 PC は,マルウェア対策の状況を把握できておらず,インストールできるソフトウェアの制限やセキュリティパッチの適用も徹底できていない。つまり,会社が管理していない,セキュリティ対策が十分でない可能性のある PC に業務情報が入ってしまい,(イ)のマルウェア感染のリスクに有効な対策が取れない。案 1 の専用端末なら,業務情報を端末に保存せず,私有 PC に置かない形にできる。

55 字以内で,解答例は 49 字。“私有 PC のセキュリティ対策が不十分”と“案 2 では業務情報をダウンロードできてしまう”の二点を,理由として一文にまとめる。

採点講評(IPA)

設問4は,正答率が低かった。マルウェア対策が困難な理由を問うたが,Webサーバへの感染拡大といったウイルス感染後の事象を述べた誤った解答が散見された。感染後に何が起こるかは,感染対策が困難であることとは直接の関係がないことを理解した上で解答してほしかった。

出典:平成23年度 特別試験 情報処理安全確保支援士試験 午後Ⅰ 問3(表記を一部改変)

問4 Web サイトのセキュリティ対策

Web サイトのセキュリティ対策に関する次の記述を読んで,設問 1,2 に答えよ。

R 社は,おもちゃの会員制オークションサイト(以下,S サイトという)を運用し,その販売手数料を主な収入源としている従業員数 40 名のネットオークション会社である。

S サイトは図 1 のとおり,主に Web サーバ及び Web サーバ上で動作する Web アプリケーションであるオークションアプリケーション(以下,R アプリという),並びにデータベース(DB)で構成されている。

R 社のシステム構成。
インターネットに,会員の PC(複数),N 社の担当者の PC(N 社内に複数),及び N 社担当者の PC(N 社の外にも 1 台)が接続されている。インターネットは R 社のルータにつながり,ルータは FW(ファイアウォール)に接続されている。
FW には DMZ,内部 LAN,社内 LAN の三つのネットワークが接続されている。
DMZ には DNS サーバ,メールサーバ,及び S サイトを構成する Web サーバ(R アプリが動作する)が接続されている。
内部 LAN には S サイトを構成する DB サーバ(DB を持つ)だけが接続されている。Web サーバは DMZ にだけ接続されており,DB サーバとは FW を介して通信する。
社内 LAN には R 社の PC(複数)が接続されている。
FW:ファイアウォール
注記 FW ではドロップログ(通信を拒否したログ)だけを収集している。
図 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 テストの結果である。

P テストの結果(項番,問題点)。
V-1:S サイトのログインページで,P テスト用の会員 ID によるログインが何度も失敗したにもかかわらずアカウントがロックされなかった。
V-2:S サイトからいったんログアウトした後に,再びログインせずに,URL を直接指定することで S サイトの会員個人の専用情報ページを閲覧できた。
V-3:Web サーバの HTTP サービスの脆弱性を突いて,Web サーバに侵入できた。
V-4:V-3 の侵入方法によって Web サーバに侵入後,Web サーバ内のファイルを FTP で R 社の外部に送信できた。
V-5:CNT-MGR のパスワードを推測して,Web サーバへの FTP 接続を何度か試行し,最終的に成功した。
V-6:Web サーバへのコンテンツファイル転送時の通信を盗聴して,CNT-MGR のパスワードを窃取できた。
V-7:CNT-MGR で Web サーバにログインした後,Web サーバ内の DB 接続ツールを実行し,DBMS 標準アカウントの初期パスワードで DB に接続できた。
表 1 P テストの結果

〔セキュリティ対策の検討〕

K 課長は,表 1 の結果を踏まえて対策の検討を行うために,W 社の G 氏に相談した。G 氏は表 1 を見ながら,システム課のメンバから状況を聞いた上で,対策について助言した。次は,検討時の会話である。

G 氏は,サーバへのセキュリティパッチの適用だけでは V-4 の対策として不十分であるので,外部向けの不要な通信を拒否するように FW のフィルタリングルール(以下,FW ルールという)を変更することを提案した。さらに,①FW ルールに違反してファイルを外部送信する試みの有無をシステム課の担当者が調べるための方法についても説明した。

CNT-MGR に付与されているファイルアクセス権限。
・スクリプトファイルに対して,読取り,書込み及び実行が可能である。
・コンテンツファイルに対して,読取り及び書込みが可能である。
・コンテンツ保守に必要なコマンドと,DB 接続ツールの実行が可能である。
(以下,省略)
図 2 CNT-MGR に付与されているファイルアクセス権限

G 氏は,CNT-MGR に付与されているファイルアクセス権限の現状を考慮すると,K 課長が示した対策だけでは②N 社の担当者に会員データを閲覧されてしまう可能性が残ることを説明した。さらに,本来であればコンテンツファイルの確認のために新たに独立したテスト環境を構築し,N 社にはそのテスト環境にだけアクセスさせ,本番環境にはアクセスさせないようにすべきであることを説明した。その上で,テスト環境を用意するまでの③暫定対策を提示した。

G 氏は,下線④のようなログイン試行をできる限り R アプリで検知して遮断するための方法を説明した。こうして K 課長は P テストの結果について対策案をまとめ,経営陣から承認を得た。その後,対策を順調に終え,無事に新しい R アプリをリリースすることができた。

出題趣旨(IPA)

インターネットに公開するWebシステムでは,セッション管理の不備,クロスサイトスクリプティング,SQLインジェクションなどのアプリケーションの脆弱性に加え,アカウント窃取やコンテンツ管理業者による内部不正についての対策も欠かせない。本問では,インターネットに公開するWebシステムにありがちな脆弱性と攻撃手法という題材を通して,これらへのセキュリティ対策を立案する能力を問う。

採点講評(問全体・IPA)

問4では,Webサイトのセキュリティ対策について出題した。全体として,正答率は低かった。

設問と解答例

設問1(1)

本文中の a に入れる適切な処理を解答群の中から選び,記号で答えよ。解答群 ア クッキーにパスワードをセットする イ 再認証を行う ウ セッション情報を破棄する エ ログを採取する

解答例

  • ウ
解説

本文の根拠

表 1 V-2

S サイトからいったんログアウトした後に,再びログインせずに,URL を直接指定することで S サイトの会員個人の専用情報ページを閲覧できた。

〔セキュリティ対策の検討〕

V-2 の対策としては,ログアウト時に a 処理を実装します。

V-2 は,ログアウトしたのに,URL を直接指定するだけで会員の専用ページを閲覧できた問題である。ログアウト後もサーバ側で“ログイン済み”の状態が残っていて,その状態が使われていると考えられる。したがって対策は,ログアウト時にサーバ側のセッション情報を破棄する処理(ウ)である。

ア(クッキーにパスワードをセットする)は,パスワードを保存・送信する側を増やすだけで,ログイン状態を終わらせない。イ(再認証を行う)は,ログアウトの時点で行っても,その後の URL 直接指定による閲覧を防ぐ働きがない。エ(ログを採取する)は,閲覧の記録を残すだけで,閲覧自体を止められない。

解答群から選ぶ設問で字数制限は無いので,記号は“ウ”の 1 つだけを答える。選択肢は文の形が似ているので,“ログアウト時に行う処理”として意味が通るかを,V-2 の症状から確かめる。

設問1(2) 5字以内

表 1 中の V-6 の対策として,コンテンツファイル転送時に使用するサービスを SSH に変更した際,N 社の担当者がコンテンツファイル転送時に使用するコマンドを,5 字以内で答えよ。

解答例(2通り)

  • scp
  • sftp
解説

本文の根拠

表 1 V-6

Web サーバへのコンテンツファイル転送時の通信を盗聴して,CNT-MGR のパスワードを窃取できた。

〔セキュリティ対策の検討〕

コンテンツファイル転送時の認証方法を FTP の認証ではなく SSH のパスワード認証に変更しようと思います。

V-6 は,転送時の通信を盗聴されてパスワードが盗まれた問題で,対策は転送を SSH(暗号化された通信路)の上で行うことである。SSH を使ったファイル転送には scp と sftp がある。OpenBSD の OpenSSH のマニュアルでは,scp は“ホスト間でファイルをコピーする”コマンドで認証と通信に ssh を使い,sftp は“暗号化された ssh の通信路の上であらゆる操作を行う”ファイル転送プログラムと説明されている。

従来の FTP の転送では,ftp コマンドを使う。これは,SSH による暗号化の対象ではないので,答えにならない。

5 字以内で,scp(3 字)と sftp(4 字)のどちらでもよい。解答例も“scp 又は sftp”と,別解が示されている。

設問1(3) 10字以内 解答欄1つ

本文中の b に入れるべき,表 1 中の V-5 の問題を解決できる SSH の認証方式を 10 字以内で答えよ。

〔b〕解答例

  • 公開鍵認証方式
解説

本文の根拠

表 1 V-5

CNT-MGR のパスワードを推測して,Web サーバへの FTP 接続を何度か試行し,最終的に成功した。

〔セキュリティ対策の検討〕

SSH では,IP アドレス制限に頼らなくても,認証方式を b にすることによって,更にアクセス者を限定できます。

V-5 の問題は,パスワードを推測して何度も試すことで認証を突破されることである。K 課長は,N 社の担当者が N 社以外からもアクセスするので,アクセス元を IP アドレスで限定できないことを不安としている。

SSH のサーバは,認証方式ごとに許可するかどうかを設定できる(OpenSSH の sshd_config では,公開鍵認証 PubkeyAuthentication とパスワード認証 PasswordAuthentication を別に指定する)。認証方式を公開鍵認証にし,パスワード認証を許可しなければ,パスワードを推測する攻撃は成立しない。また,秘密鍵を持つ人だけがログインできるので,IP アドレスに頼らず,アクセスする人を限定できる。

10 字以内で,解答例は“公開鍵認証方式”の 7 字。講評も,パスワード認証の SSH はブルートフォース攻撃で危険性が高く,公開鍵認証の理解が不可欠だとしている。

採点講評(IPA)

設問1(3)は,正答率が低かった。パスワード認証方式のSSHは,活発なブルートフォース攻撃によって危険性が高くなっているので,公開鍵認証方式の理解が不可欠である。

設問1(4) 35字以内

本文中の下線①の,FW ルールに違反してファイルを外部送信する試みの有無を調べるための方法を 35 字以内で具体的に述べよ。

解答例

  • 定期的にFWのドロップログを分析し,拒否した通信から調べる。
解説

本文の根拠

図 1

注記 FW ではドロップログ(通信を拒否したログ)だけを収集している。

〔セキュリティ対策の検討〕

外部向けの不要な通信を拒否するように FW のフィルタリングルール(以下,FW ルールという)を変更することを提案した。

G 氏が提案した FW ルールの変更は,外部向けの不要な通信を拒否するものである。FW ルールに違反してファイルを外部へ送信しようとする試みは,FW に拒否されることになるので,拒否された通信の記録が残る。

図 1 の注記のとおり,この FW が収集しているのはドロップログ(通信を拒否したログ)だけである。したがってシステム課の担当者は,このドロップログを,ログを保存するだけでなく,定期的に分析して,拒否された外部向けの通信に試みがないかを調べればよい。

35 字以内で,解答例は 30 字。講評は,ログを保存するという趣旨だけの誤答が多かったとしており,“分析する”と“拒否した通信(ドロップログ)”を両方入れる。

採点講評(IPA)

設問1(4)は,ログを保存するという趣旨だけの誤った解答が多く見受けられた。FWのドロップログを分析することで様々なインシデントやその予兆を検知できることを理解しておいてほしい。

設問1(5) 解答欄2つ

本文中の下線②の可能性について,N 社の担当者がスクリプトファイルを悪用して会員データを閲覧するための方法を 50 字以内で具体的に述べよ。また,本文中の下線③の暫定対策の内容を 40 字以内で述べよ。

〔閲覧するための方法〕解答例

  • DBに接続して会員データを復号し表示するスクリプトファイルを作成し,実行して閲覧する。

〔暫定対策の内容〕解答例

  • CNT-MGRから全てのスクリプトファイルへのアクセス権限を削除する。
解説

本文の根拠

図 2

スクリプトファイルに対して,読取り,書込み及び実行が可能である。

〔ペネトレーションテストによる現状確認〕

R アプリのスクリプトには,DB への接続情報(DB 利用者 ID,パスワード),ビジネスロジック,及び画面表示処理が含まれている。

〔セキュリティ対策の検討〕

R アプリで鍵長 256 ビットの AES を使って,会員データを暗号化しようと考えています。その場合,暗号鍵は定数としてスクリプト内に定義します。

〔セキュリティ対策の検討〕

本来であればコンテンツファイルの確認のために新たに独立したテスト環境を構築し,N 社にはそのテスト環境にだけアクセスさせ,本番環境にはアクセスさせないようにすべきである

閲覧するための方法:図 2 のとおり,CNT-MGR はスクリプトファイルを読み取り,書き込み,実行できる。スクリプトには DB への接続情報が含まれ,K 課長の案では暗号鍵も定数としてスクリプト内に定義するので,N 社の担当者はこれらを読み取れる。これを使って,DB に接続して会員データを復号し表示するスクリプトを作成し,実行すれば,会員データを閲覧できる。

暫定対策の内容:テスト環境を用意するまで,N 社の担当者を本番環境に近づけない手段が要る。コンテンツファイルの保守にスクリプトファイルの読取り・書込み・実行は必要でないので,CNT-MGR からスクリプトファイルへのアクセス権限を全て削除すればよい。必要な権限だけを与える最小権限の考え方で,講評も,必要のないスクリプトファイルへのアクセス権限を付与するとリスクが増すとしている。

閲覧の方法は 50 字以内で解答例は 43 字,暫定対策は 40 字以内で解答例は 35 字。前者は“作成”と“実行”,後者は“全てのスクリプトファイル”と“アクセス権限の削除”が要素。

採点講評(IPA)

設問1(5)は,正答率が低かった。本来ならば必要のないスクリプトファイルへのアクセス権限を付与することでリスクは増大する。最小権限の原則を改めて意識してほしい。

設問2 60字以内

本文中の下線④に示すログイン試行を,R アプリで検知して遮断するためには,どのような条件を用いて検知することが適切か。60 字以内で述べよ。

解答例

  • 一定時間内に同一IPアドレスから複数の会員IDでログイン試行し,かつ,一定回数以上認証失敗していること
解説

本文の根拠

〔セキュリティ対策の検討〕

V-1 の対策のアカウントロックは一つの会員 ID に対するログイン試行を想定しているので,大量のほかの Web サイトの認証情報を悪用するログイン成功を防ぐことはできません。

〔セキュリティ対策の検討〕

多くの会員は,S サイトに登録しているメールアドレスとパスワードの組合せ(以下,認証情報という)と同じものを,ほかの Web サイトでも登録していると思われます。

下線④の攻撃は,ほかのサイトで盗まれた認証情報(メールアドレスとパスワードの組合せ)を使い,S サイトに次々とログインを試す。アカウントロックは一つの会員 ID に対する試行を想定しているため,大量の認証情報を使う試行には効かない(G 氏の説明)。

検知条件には,一つの会員 ID でなく,攻撃全体の特徴を使う必要がある。時間(一定時間内),アクセス元(同一 IP アドレス),回数(複数の会員 ID に対する試行が一定回数以上),結果(認証に失敗している)を組み合わせる。

60 字以内で,解答例は 51 字。講評は,時間・アクセス元・回数は書けているが,ログイン試行の結果(成功か失敗か)の条件が欠けた解答が多いとしている。結果を条件にしないと誤検知が大量に発生する。

採点講評(IPA)

設問2は,ログイン試行の時間,アクセス元,回数に関しては触れていたが,ログイン試行の結果(成功又は失敗)に関する条件が欠けている解答が多く見られた。結果に関する条件を明確にしないで検知しようとすると誤検知が大量に発生してしまうことを覚えておいてほしい。

出典:平成23年度 特別試験 情報処理安全確保支援士試験 午後Ⅰ 問4(表記を一部改変)