セキュリティバイデザインとは(全体像)
セキュリティバイデザイン(Security by Design)とは、ものを作る最初の段階から、セキュリティを設計に組み込んでおくという考え方。家にたとえれば、建ててから防犯設備を後付けするのではなく、間取りを決める時点で鍵や窓の位置まで考えておくイメージ。
これと対になるのがシフトレフト(Shift Left)という言葉。開発の工程を「設計→製造→テスト」と左から右に並べたとき、問題探しをできるだけ左(早い段階)に寄せるという意味。
なぜ早いほど良いかというと、バグや弱点は、見つかるのが遅いほど直すのに手間とお金がかかるから。完成間近で見つかれば作り直しになるが、設計段階なら図面を直すだけで済む。だから「早く見つける=安く直せる」。
そして、この考え方を開発と運用の流れ全体にセキュリティを溶け込ませる形にしたのがDevSecOps。開発(Dev)・セキュリティ(Sec)・運用(Ops)を一つにつなげた言葉で、セキュリティを専任の部署だけに任せず、開発の流れの中で自動的にチェックするのが特徴。
詳しく:シフトレフトと検査ツール4分類
ここが心臓部。まず考え方、次に試験本命の検査ツール4分類を表で押さえる。
後付け vs セキュリティバイデザイン
| 昔のやり方 | セキュリティバイデザイン | |
|---|---|---|
| 守りを考える時期 | 完成後に後付け | 設計の最初から組み込む |
| 問題を探す工程 | テスト段階(右) | 設計段階へ前倒し(左=シフトレフト) |
| 直すコスト | 遅く見つかり大きい | 早く見つかり小さい |
検査ツールは、いつ・どうやって調べるかで4つに分かれる。ここが一番出る。
検査ツール4分類(SAST・DAST・IAST・SCA)
| 種類 | 調べ方 | かみくだくと |
|---|---|---|
| SAST | 静的:動かさずソースコードを読む | 設計図を机の上で読んで点検 |
| DAST | 動的:実際に動かして外から攻撃を試す | 完成した建物に侵入を試す |
| IAST | 動かしながら内部のコードも分析 | 中に検査員を置いて動作を見る |
| SCA | 使っているOSS部品の弱点を調べる | 取り寄せた部品の安全性を確認 |
いちばん混同しやすいのがSASTとDAST。SASTは「静(Static)」でソースコードという中身を直接読む検査、DASTは「動(Dynamic)」で実際に動かして外側から弱点を探す検査。読むか動かすか、で区別すると間違えない。
SCAは、自分で書いたコードではなく、外から取り入れたOSS(無料で公開された部品)に弱点がないかを調べるもの(SnykやDependabotなど)。最近のソフトは多くの部品を借りて作るので、その部品の安全確認が重要になっている。
なお、設計段階で「どんな攻撃がありえるか」を洗い出す手法にSTRIDEという脅威モデルがあり、これも名前が問われる。
わかりやすく言い換えると
要するに、セキュリティバイデザインは「作ってから守る」ではなく「作りながら守る」への発想転換。
そしてシフトレフトは「早期発見・早期治療」と同じ。病気も、早く気づくほど軽くて安く治る。ソフトの弱点も同じで、早い工程で見つけるほど直すのがラク。
検査ツールは、つまり「読む(SAST)・動かす(DAST)・中で見る(IAST)・部品を確かめる(SCA)」の4つの目線で守る、と覚えるとスッキリする。
試験のツボ
🔴 一番出る:SASTとDASTの対比
①SAST=静的・ソースコードを読む(動かさない)
②DAST=動的・実際に動かして外から試す
🔴 次に出る:検査ツール4分類
①SAST=コードを読む
②DAST=動かして試す
③IAST=動かしながら内部も分析
④SCA=OSS部品の弱点を調べる
🟡 押さえると安定:考え方の用語
シフトレフト=問題探しを早い工程に前倒し(早く見つけるほど安く直せる)。DevSecOps=セキュリティを開発の流れに組み込む(専任部署だけに任せない)。脅威の洗い出し手法がSTRIDE。
よくある間違い
①「SASTもDASTも同じ検査」→ ✗ SASTは動かさずコードを読む静的検査、DASTは動かして試す動的検査で別もの。
②「DevSecOpsはセキュリティ専任の担当者がやるもの」→ ✗ 開発の流れにセキュリティを組み込むのがねらい。専任部署だけに任せない。
③「セキュリティは完成後に後付けすればよい」→ ✗ 早い工程で見つけるほど安く直せるので、設計段階から組み込む(シフトレフト)。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(シフトレフトの考え方)
セキュリティバイデザインとシフトレフトに関する次の記述のうち、正しいものはどれか。
- シフトレフトとは、セキュリティの確認を完成後のテスト段階にできるだけ後回しにする考え方とされる
- シフトレフトは、問題をできるだけ早い工程のうちに見つけ、直す手間とコストを小さくおさえる考え方
- セキュリティバイデザインは、完成したソフトに後からセキュリティ機能を足していくやり方を指している
- シフトレフトとは、開発の担当を右側の運用チームへ順番にずらして引き継いでいくことを意味している
解答は 2 である。
シフトレフトは、問題探しを開発の早い工程(左側)に前倒しする考え方だ。早く見つけるほど、直す手間もコストも小さくなる。本機はこの早期発見を推奨する。
選択肢1は「後回し」が逆で誤り、選択肢3は「完成後に後付け」がセキュリティバイデザインの逆、選択肢4は担当をずらす意味ではない点で誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 後回しでなく早い工程へ前倒しする |
| 2 | ✓ | 早く見つけて手間とコストを下げる考え方で正しい |
| 3 | ✗ | 後付けは逆。最初から組み込むのがSbD |
| 4 | ✗ | 担当を順にずらす意味ではない |
オリジナル問題2(SASTとDAST)
検査ツールのSASTとDASTに関する次の記述のうち、正しいものはどれか。
- SASTもDASTもソフトを実際に動かして外側から攻撃を試す動的な検査で、両者に違いはないとされる
- SASTは実際に動かして試す動的検査、DASTはソースコードを読む静的検査、という対応になっている
- SASTはソースコードを動かさずに読む静的検査、DASTは実際に動かして試す動的検査という対応になる
- SASTもDASTもソースコードを読むだけの静的な検査で、ソフトを動かして調べることはしないとされる
解答は 3 だ。
SASTは静的で、ソフトを動かさずソースコードという中身を読んで弱点を探す。DASTは動的で、実際に動かして外側から攻撃を試す。「SはStaticで静、DはDynamicで動」と結びつけよ、と本機は提案する。
選択肢1は両者を同じとし、選択肢2は静と動の説明が逆、選択肢4は両方を静的としている点で誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | SASTとDASTは静的・動的で別もの |
| 2 | ✗ | SASTとDASTの説明が逆になっている |
| 3 | ✓ | SAST静的・DAST動的で正しい |
| 4 | ✗ | DASTは動かして試す動的検査 |
オリジナル問題3(DevSecOpsとSCA)
DevSecOpsと検査ツールに関する次の記述のうち、正しいものはどれか。
- DevSecOpsはセキュリティ専任の部署だけが行う活動で、開発や運用の流れとは切り離されているとされる
- SCAとは、ソースコードの文字数を数えて開発の進み具合だけを管理する種類のツールのことを指している
- DevSecOpsはソフトの完成後にだけセキュリティを確認する考え方で、開発の途中では何も検査しないとされる
- SCAは、ソフトが使っているOSS(外から借りた公開部品)に弱点がないかを調べる検査の種類のことである
解答は 4 だ。
SCAは、ソフトが借りて使っているOSS(無料で公開された部品)に弱点がないかを調べる検査だ。SnykやDependabotがその例である。
選択肢1は「専任部署だけ」が誤りで、DevSecOpsは開発の流れにセキュリティを組み込む。選択肢2はSCAの説明として誤り、選択肢3は「完成後だけ」が誤りで途中の工程から検査する。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 専任部署だけでなく開発の流れに組み込む |
| 2 | ✗ | 文字数を数えるツールではない |
| 3 | ✗ | 完成後だけでなく早い工程から検査する |
| 4 | ✓ | OSS部品の弱点を調べる検査で正しい |
まとめ
押さえどころ
- 🔴 SAST=静的(コードを読む)/DAST=動的(動かして試す) … SとD、静と動で結びつけると混ざらない。
- 🔴 検査ツール4分類 … SAST(読む)・DAST(動かす)・IAST(中で見る)・SCA(OSS部品を確かめる)。
- 🟡 シフトレフト&DevSecOps … 問題探しを早い工程へ前倒し(早く見つけて安く直す)。セキュリティを開発の流れに組み込む。
次に学ぶ
- 脆弱性管理(EPSS・Dependabot) ── 見つけた弱点をどの順で直すか。SCAで見つけたOSSの弱点の優先順位づけにつながる。
- CVSS(脆弱性評価) ── 弱点の深刻さを点数で表すしくみ。検査で見つかった弱点の危険度を測る土台になる。
執筆: SikakuQuest編集部