【情報処理安全確保支援士試験 令和4年度 春期 午後2 問1 No.6】

情報処理安全確保支援士試験 令和4年度 春期 午後2 問1

【出典:情報処理安全確保支援士試験 令和4年度 春期 午後2 問1(一部、加工あり)】

[開発プロセスの見直し]
 B社のWebサイトのセキュリティ水準について、Rさんは、開発プロセスの観点からも調査を進めた。
 B社では、顧客の機能の追加要望や性能の改善要望をヒアリングしながら、開発部内で目標を設定し、アジャイル開発を行っている。また、社外の研修などでセキュアプログラミングの知識を習得し、その知識を生かしてWebサイトを開発している。
 B社の開発プロセスの概要を図7に示す。

 Rさんは、B社のWebサイトのセキュリティ水準を十分なものにするためには、A社のようなWebセキュリティ管理基準をB社に導入する必要があると考えた。次は、B社の開発プロセスについてのRさんとE課長の会話である。

Rさん:B社でも表1のとおりに実施できますか。
E課長:開発フェーズにおいてはできると思います。しかし、改良リリースの周期は2週間程度です。専門技術者による脆弱性診断には、その周期の大半を費やしてしまうので、省略できないでしょうか。
Rさん:⑤ソースコードレビューやツールによる脆弱性診断では発見できないが、専門技術者による脆弱性診断では発見できる脆弱性が多くあります。専門技術者による脆弱性診断を改良リリースにおいて毎回実施できない場合でも、当該診断が長期間行われないことを避けるために、⑥時期を決めて実施することや、⑦開発プロセスを見直すことを検討してみてください。
E課長:分かりました。そのほかに、アジャイル開発に合った脆弱性対策はないでしょうか。
Rさん:Webサイトの実装に必要となる一般的な機能や定型コードを、ライブラリとしてあらかじめ用意したフレームワークには、⑧脆弱性対策が組み込まれていて、それがデフォルトで有効になっている物もあるので、利用を検討してみてください。

 その後、B社は、セキュリティを考慮したアジャイル開発を行うことになった。

下線⑤について、該当する脆弱性を二つ挙げ、それぞれ15字以内で答えよ。:一部のセッション管理の脆弱性/許可・アクセス制御の脆弱性

⑤ソースコードレビューやツールによる脆弱性診断では発見できないが、専門技術者による脆弱性診断では発見できる脆弱性が多くあります。
 「Rさんは、B社のWebサイトのセキュリティ水準を十分なものにするためには、A社のようなWebセキュリティ管理基準をB社に導入する必要があると考えた。」とあることから、A社のWebセキュリティ管理基準を確認します。

 ソースコードレビューによる脆弱性診断(項番2)、ツールによる脆弱性診断(項番4)で発見できないことは、「セッション管理の脆弱性は、一部だけが対象である。」「認可・アクセス制御の脆弱性は、対象外である。」とあります。
 一方、専門技術者による脆弱性診断(項番5)では、「セッション管理の脆弱性は、対象である。」「認可・アクセス制御の脆弱性は、対象である。」とあります。

下線⑥について、専門技術者による脆弱性診断が長期間行われないことを避けるためには、どのような時期に実施すればよいか。改良リリースの実施に影響を与えないことを前提に、20字以内で答えよ。:改良フェーズにおける1か月の休止期間

専門技術者による脆弱性診断を改良リリースにおいて毎回実施できない場合でも、当該診断が長期間行われないことを避けるために、⑥時期を決めて実施することや、⑦開発プロセスを見直すことを検討してみてください。
 専門技術者による脆弱性診断は表1から「期間は、10日間くらいが目安である。」とあります。
 これが改良リリースにおいて毎回実施できないのは、「しかし、改良リリースの周期は2週間程度です。専門技術者による脆弱性診断には、その周期の大半を費やしてしまうので、省略できないでしょうか。」とあるように、専門技術者による脆弱性診断を行うタイミングが取れないからです。
 ただ、図7(B社の開発プロセスの概要)の改良フェーズには「1か月の休止期間」があり、注記2に「改良フェーズにおいて、半年に1回、1か月間の休止期間を設けている。その間、開発部のメンバは、長期休暇の取得、長期研修の受講、Webサイトの点検などを実施している。」とあります。
 したがって、改良リリースの実施に影響を与えず専門技術者による脆弱性診断を行うには、この期間に実施すればいいでしょう。

下線⑦について、専門技術者による脆弱性診断が長期間行われないことを避けるためには、開発プロセスをどのように見直せばよいか。アジャイル開発の継続を前提に、40字以内で述べよ。:専門技術者による脆弱性診断が必要なときは、改良リリースを次回に持ち越す。/半年に一度、改良リリースの期間を長くする。/定期的に、期間の長い改良リリースを設ける。

専門技術者による脆弱性診断を改良リリースにおいて毎回実施できない場合でも、当該診断が長期間行われないことを避けるために、⑥時期を決めて実施することや、⑦開発プロセスを見直すことを検討してみてください。
 アジャイル開発の継続を前提とあるため、開発プロセス自体は現状を維持すると考え、改めて図7(B社の開発プロセスの概要)を確認します。
 注記1の記述「ライブラリの活用などで2週間周期での改良リリースを実現しているが、およそ20回に1回は大規模な改修があり、改良リリース期間を1か月とすることがある。」に着目すると、E課長が憂慮している「しかし、改良リリースの周期は2週間程度です。専門技術者による脆弱性診断には、その周期の大半を費やしてしまうので、省略できないでしょうか。」に対して、改良リリース期間はある程度柔軟に修正することができそうです。
 したがって、回答例の中では「定期的に、期間の長い改良リリースを設ける。」というのが一番導きやすい回答だったと思われます。

下線⑧について、CSRF脆弱性の場合では、どのような処理を行う機能が考えられるか。その処理を、55字以内で具体的に述べよ。:CSRF対策用トークンの発行、HTMLへの埋め込み、必要なひも付け、及びこれを検証する処理

Webサイトの実装に必要となる一般的な機能や定型コードを、ライブラリとしてあらかじめ用意したフレームワークには、⑧脆弱性対策が組み込まれていて、それがデフォルトで有効になっている物もあるので、利用を検討してみてください。
 CSRF脆弱性の場合ということなので、問題文前半の[サイトXのCSRF脆弱性]での対策を確認していきます。
この結果から、csftokenと(a:利用者ID)又は(b:セッションオブジェクト)とをひも付けるという対策ができていないことが分かった。」とあるように、CSRF対策用トークンの発行と、利用者とセッションのひも付けが挙げられています。
 フレームワークの機能として、これらの処理に補足して具体的に記述すればいいでしょう。