---
title: "シフトレフトとは？早い段階でセキュリティを確認する考え方【SG試験】"
description: "シフトレフトは、開発工程の早い段階で品質やセキュリティを確認し、手戻りや脆弱性の作り込みを減らす考え方です。SG試験で迷いやすいDevSecOpsやCI/CDとの違いを整理します。 選択肢で問われる目的・対象・責任範囲を押さえ、似た用語や対策との違いを判断できるようにします。"
last_modified_at: "2026-05-06"
canonical_url: "https://stemtazoo.github.io/sg/shift-left/"
section: "sg"
---

## まず結論
- **シフトレフト**とは、開発工程の後半で行っていたテストやセキュリティ確認を、できるだけ早い段階に移して行う考え方です。
- SG試験では、**「最後にまとめて確認する」のではなく「早い段階で問題を見つける」**考え方として判断します。

## 直感的な説明
シフトレフトは、問題を後で見つけるのではなく、早めに見つけるための考え方です。

たとえば、製品づくりにたとえると分かりやすいです。

完成品になってから不具合が見つかると、分解して直したり、設計からやり直したりする必要があります。

一方で、設計段階や部品を作っている段階で問題に気づけば、修正は比較的簡単です。

ソフトウェアでも同じです。

リリース直前に脆弱性が見つかると、修正の影響範囲が大きくなり、リリース延期につながることがあります。

そのため、開発の早い段階で次のような確認を行います。

- セキュリティ要件を設計に入れる
- セキュアコーディングを意識する
- ソースコードレビューを行う
- SASTを自動実行する
- 依存ライブラリの脆弱性を確認する

つまり、シフトレフトは**「問題を早く見つけて、早く直す」**ための考え方です。

## 定義・仕組み
シフトレフトは、開発工程の後半に偏りがちなテストやセキュリティ確認を、工程の前半へ移す考え方です。

「左」という言葉は、開発工程を左から右へ進む流れとして表したときの左側、つまり早い段階を意味します。

一般的な流れは、次のようにイメージできます。

1. 要件定義
2. 設計
3. 実装
4. テスト
5. リリース
6. 運用

従来は、セキュリティ確認がテストやリリース直前に集中しがちでした。

シフトレフトでは、要件定義、設計、実装の段階からセキュリティを確認します。

たとえば、次のような取り組みがあります。

- 要件定義でセキュリティ要件を明確にする
- 設計段階で認証・認可・ログ設計を確認する
- 実装段階でセキュアコーディングを行う
- コード変更時にSASTを実行する
- CI/CDに自動テストや脆弱性チェックを組み込む

IPAでは、安全な実装や脆弱性を作り込まない考え方として、[セキュア・プログラミング講座](https://www.ipa.go.jp/archive/security/vuln/programming/)を公開しています。開発の早い段階で安全性を考える資料として参考になります。

シフトレフトは、特定のツール名ではありません。

SAST、ソースコードレビュー、セキュアコーディング、CI/CDの自動検査などを使いながら、早い段階で品質やセキュリティを確認する考え方です。

## どんな場面で使う？
シフトレフトは、開発中に問題を早く見つけたい場面で使われます。

たとえば、次のような場面です。

- リリース直前の手戻りを減らしたい
- 開発中に脆弱性を早く見つけたい
- コード変更時に自動で検査したい
- セキュリティ担当だけでなく開発者も安全性を意識したい
- DevSecOpsの考え方を取り入れたい

特に、短いサイクルで頻繁にリリースする開発では、最後にまとめて検査する方法では追いつかないことがあります。

そのため、コードを書いた時点、レビュー時点、CI/CDでの自動実行時点など、早い段階で問題を見つけることが重要になります。

ただし、シフトレフトは、後半のテストや運用中の確認を不要にする考え方ではありません。

早い段階で見つけられる問題は早く見つける一方で、実行中のアプリの挙動や運用中のログ監視などは、後工程でも確認が必要です。

SG試験では、**早い段階で確認することで、手戻りや脆弱性の作り込みを減らす考え方**として整理します。

## よくある誤解・混同
シフトレフトは、DevSecOps、CI/CD、SAST、セキュアコーディングと混同しやすいです。

| 混同しやすい用語 | 判断ポイント |
|---|---|
| シフトレフト | テストやセキュリティ確認を開発の早い段階へ移す考え方 |
| DevSecOps | 開発・運用の流れにセキュリティを組み込む考え方 |
| CI/CD | ビルド、テスト、リリースなどを自動化する仕組み |
| SAST | ソースコードを実行せず、ツールで危険な実装を検出する手法 |
| セキュアコーディング | 開発時に脆弱性を作り込まない安全な実装の考え方 |

SG試験では、次のような表現に注意します。

- **「開発工程の早い段階で確認する」**  
  → シフトレフトを疑います。

- **「リリース直前ではなく、設計や実装段階で問題を見つける」**  
  → シフトレフトに近い説明です。

- **「開発と運用にセキュリティを組み込む」**  
  → DevSecOpsです。

- **「ビルドやテストを自動化する」**  
  → CI/CDです。

- **「ソースコードを実行せずに解析する」**  
  → SASTです。

よくあるひっかけは、**シフトレフトをSASTそのものだと思うこと**です。

SASTは、シフトレフトを実現するために使われる手法の一つです。

しかし、シフトレフトはSASTだけを指す言葉ではありません。

設計段階でセキュリティ要件を確認すること、コードレビューを早めに行うこと、CI/CDで自動検査を行うことなども、シフトレフトの考え方に含まれます。

また、シフトレフトは「左に寄せる」、つまり開発工程の早い段階へ確認を移す考え方です。

このイメージを持っておくと、選択肢を切りやすくなります。

## まとめ（試験直前用）
- シフトレフトは、**テストやセキュリティ確認を開発の早い段階へ移す考え方**です。
- 目的は、**手戻りを減らし、脆弱性の作り込みを早く見つけること**です。
- SASTやソースコードレビューは、シフトレフトを実現する手段の一つです。
- DevSecOpsは、開発・運用の流れにセキュリティを組み込む考え方です。
- SG試験では、**早い段階で確認する**という表現が出てきたらシフトレフトを疑います。

### 確認問題

シフトレフトの説明として、最も適切なものはどれか。

ア. 開発工程の後半で行いがちなテストやセキュリティ確認を、設計や実装などの早い段階に移して行う考え方である。  
イ. 実行中のWebアプリケーションに外部からアクセスし、応答や挙動を確認して脆弱性を検査する手法である。  
ウ. ビルド、テスト、リリース準備などを自動化し、継続的に品質を確認する仕組みである。  
エ. 社内ネットワークへ接続する端末の状態を確認し、条件を満たす端末だけ接続を許可する仕組みである。

<details>
<summary>回答と解説を表示</summary>

正解は **ア** です。

シフトレフトは、テストやセキュリティ確認を開発工程の早い段階へ移し、問題を早期に発見して手戻りを減らす考え方です。

イはDAST、ウはCI/CD、エは検疫ネットワークに近い説明です。

</details>
