セキュア開発(バイデザイン原則と脆弱性対策)
頻出約 34 分5 用語過去問 3 題
この単元の目標
- セキュリティバイデザインとプライバシーバイデザインを、守る対象の違いで分けられる。
- クロスサイトスクリプティングと SQLインジェクションを、攻撃に悪用されるものと主な対策で分けられる。
- 設計段階で組み込む対策と、運用中にセキュリティパッチで行う修正の役割の違いを説明できる。
用語総表(5 語)
用語
セキュリティバイデザインは、情報セキュリティの対策を完成後に付け足すのではなく、企画や設計といった開発の初期から組み込んでおく考え方である。
完成した後で対策を足そうとすると、設計のやり直しが必要になるなど手戻りが大きくなりやすい。初期の段階で脅威を洗い出して要件や設計に対策を入れておけば、脆弱性 (セキュリティ上の弱点) を作り込みにくくなり、修正にかかる費用も抑えられる。
たとえ家を建てるとき、完成してから鍵や柵を買い足すのではなく、図面の段階で出入口や窓の位置まで防犯を考えて決めておくようなもの。
覚え方英語の by design は「設計によって・意図的に」という意味で、「たまたま安全」ではなく「設計の時点から狙って安全」と読む。
出題のポイント
- 出題セキュリティバイデザインは、開発の初期から安全性を作り込む原則であり、IoT システムの開発や運用でも基本とされる。
- 混同注意セキュアブートは機器の起動時に不正なソフトウェアが読み込まれていないかを検証する技術で、開発の進め方の原則であるセキュリティバイデザインとは別物である。
この用語の過去問 1 題 セキュリティバイデザイン →
プライバシーバイデザインは、システムやサービスの企画・設計の初期から、個人情報とプライバシーの保護を組み込んでおく考え方である。
例えば、集める個人データを利用目的に必要な範囲に絞る、利用者が何も設定しなくても保護の強い状態になるよう初期設定を決める、といった配慮を設計の時点で行う。後から個人データの扱いを変えようとすると、すでに集めたデータや作ったしくみの見直しが必要になるため、最初から組み込んでおく。
たとえ会員カードの申込用紙を作るとき、配る前の段階で、本当に必要な記入欄だけを残しておくようなもの。
覚え方1990 年代にカナダ・オンタリオ州でプライバシー保護を担当していた行政官が提唱した考え方で、海外では頭文字から PbD と略される。
「セキュリティバイデザイン」と「プライバシーバイデザイン」の違い
クロスサイトスクリプティング対策は、利用者が入力した文字列が、Webページを見た人のブラウザでスクリプト (ブラウザ上で動く簡単なプログラム) として実行されないようにする対策である。
クロスサイトスクリプティング (XSS) は、入力内容をそのまま表示してしまう Webサイトを通じて、攻撃者が仕込んだスクリプトを閲覧者のブラウザで動かす攻撃で、ログイン情報の盗み取りなどに使われる。主な対策は、入力された文字列をページに表示する前に、「<」や「>」のように HTML で特別な意味を持つ記号を、ただの文字として表示される形に置き換えるエスケープ処理である。このように入力中の危険な文字列を無害な形に変える処理を、まとめてサニタイジングと呼ぶ。
たとえ掲示板の管理人が、届いた貼り紙をそのまま貼らず、中の仕掛けが動かないよう透明なケースに入れてから掲示するようなもの。
覚え方「クロスサイト」は「サイトをまたぐ」という意味で、攻撃者が用意した罠のページなどから、脆弱な別の Webサイトへとスクリプトが渡され、そのサイトの上で実行されることが名前の由来。
出題のポイント
- 混同注意クロスサイトリクエストフォージェリは、ログイン中の利用者に意図しない操作のリクエストを送らせる攻撃で、名前は似ているが、スクリプトを閲覧者のブラウザで実行させる XSS とは別の攻撃である。
この用語の過去問 1 題 クロスサイトスクリプティング対策 →
SQLインジェクション対策は、入力欄に入れられた文字列が、データベースへの命令である SQL 文の一部として実行されないようにする対策である。
SQLインジェクションは、入力欄に SQL 文の断片を紛れ込ませ、データベースに本来許されない検索や改ざん、削除を実行させる攻撃である。代表的な対策は、SQL 文の形を先に確定させ、入力値は後から値としてだけ当てはめるプレースホルダ (バインド機構) の利用である。あわせて、入力値のサニタイジングも行う。
たとえ申込用紙の氏名欄に「ついでに全員分の名簿を渡すこと」と書かれていても、係員はそれを氏名としてしか扱わない、と決めておくようなもの。
覚え方インジェクション (injection) は英語で「注射・注入」で、SQL 文に異物を注入する攻撃と字面から思い出せる。
出題のポイント
- 出題サニタイジングは、入力内容に含まれる危険な文字列を無害な形に置き換える処理の総称で、SQLインジェクション対策にも使われる。
- 混同注意プレースホルダは SQL 文の組み立て方によって入力を命令から切り離すしくみで、入力値そのものを書き換えるサニタイジングとは働き方が異なる。
この用語の過去問 1 題 SQLインジェクション対策 →
「クロスサイトスクリプティング対策」と「SQLインジェクション対策」の違い
セキュリティパッチは、OS やアプリケーションなどのソフトウェアに見つかった脆弱性を修正するために、開発元が提供する更新プログラムである。
脆弱性は製品の提供が始まった後にも見つかるため、パッチが公開されたら速やかに適用して弱点をふさぐことが、運用・保守での基本の対策になる。適用しないままでいると、手口が広く知られた脆弱性を突く攻撃を受けやすくなる。
たとえ建物の点検で見つかった窓の鍵の不具合を、メーカーから届いた交換部品で直しておくようなもの。
覚え方英語の patch は「つぎ当ての布」で、脆弱性という穴に当てる布と字面で覚える。
出題のポイント
- 混同注意修正パッチが公開される前の脆弱性を突く攻撃はゼロデイ攻撃と呼ばれ、パッチの適用だけでは防ぎきれない。
要点
- セキュリティバイデザインは、企画・設計の初期から情報セキュリティを組み込む原則で、IoT システムの開発でも基本とされる。
- プライバシーバイデザインでは、集める個人データを絞る、初期設定を保護の強い側にするといった配慮を設計の時点で決める。
- クロスサイトスクリプティング対策とSQLインジェクション対策は、どちらも入力された文字列を、ブラウザやデータベースに命令として実行させないための対策である。
- セキュリティパッチは提供後に見つかった脆弱性を修正する更新プログラムで、公開されたら速やかに適用する。
この分野の過去問をすべて見る →