---
title: 開運研修セキュリティ講義2026
tags:  #開運研修  
author: [サイボウズ開発本部](https://image.docswell.com/user/cybozu-tech)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJ5ML8Z9J4.jpg?width=480
description: 2026年エンジニア新人研修の資料です。
published: August 13, 26
canonical: https://image.docswell.com/s/cybozu-tech/Z4NM9D-Security_Training_2026
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJ5ML8Z9J4.jpg)

開運研修 2026
セキュリティ
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/LE3WL892E5.jpg)

アジェンダ
• 情報セキュリティの基礎
• Webの脆弱性を知る
• ソフトウェアサプライチェーン攻撃とその対策
• Vibe Codingとセキュリティ
• まとめ
開運研修2026 セキュリティ講義
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/8EDKNMG67G.jpg)

情報セキュリティの基礎
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/V7PK5R8ZJ8.jpg)

情報セキュリティの基礎
情報セキュリティの3要素（CIA）
情報セキュリティとは情報資産の「CIA」を維持すること
• 機密性（Confidentiality）: 認可されていない者に情報を開示しない
• 完全性（Integrity）: 情報の正確さ・完全さを保つ
• 可用性（Availability）: 必要なときに情報にアクセスできる
情報資産の例: PC、設備、印刷物、情報、人
=&gt; CIAを脅かすものは何？
開運研修2026 セキュリティ講義
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2JVVPRNMJQ.jpg)

情報セキュリティの基礎
脅威はすぐそばにある
世の中には、悪意を持って企業やOSSを攻撃する人が大勢いる
システム停止
政治主張
金銭目的
信頼失墜
愉快犯
情報改竄
国家支援
情報漏洩
この講義では、開発者として攻撃の隙を作らないために
何ができるかを学ぶ
開運研修2026 セキュリティ講義
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/5EGLPMKXJL.jpg)

情報セキュリティの基礎
CVE・CWE・CVSS
• CWE（Common Weakness Enumeration）1
• 脆弱性タイプの識別番号
• 例: CWE-89（SQLインジェクション）、CWE-352（CSRF）
• CVE（Common Vulnerabilities and Exposures）2
• 個々の脆弱性の識別番号
• 例: CVE-2021-44228（Log4Shell）、 CVE-2025-55182 （React2Shell）
• CVSS（Common Vulnerability Scoring System）3
• 脆弱性の深刻度を0.0〜10.0で数値化
• 異なる脆弱性を同じ基準で比較できる
[1] https://www.ipa.go.jp/security/vuln/CWE.html
[2] https://www.ipa.go.jp/security/vuln/CVE.html
[3] https://www.first.org/cvss/
開運研修2026 セキュリティ講義
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JQY2RN57P.jpg)

Webの脆弱性を知る
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/K74WL8GVE1.jpg)

Webの脆弱性を知る
ユーザーの入力は「信頼」できない
Webアプリはユーザーからの入力を受け取って処理をする
では、ユーザーの入力が開発者の想定しない形だったら？
データベースを
ブラウザで
権限のないデータ
操作される
スクリプトが実行される
が見られてしまう
SQLインジェクション
XSS
アクセス制御の不備
→ これらの脆弱性は入力の扱い方を誤ったことで生じる
開運研修2026 セキュリティ講義
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LJ1YL2D4EG.jpg)

Webの脆弱性を知る
SQLインジェクション
入力がそのままSQLクエリに挿入されることが原因
脆弱なコード
SELECT * FROM users WHERE name = ’入力値’
ここに ‘ OR 1=1 -- と入力すると…
実行されるSQL
SELECT * FROM users WHERE name = ’’ OR 1=1 --’;
→ WHERE 句が真になり
全ユーザーのデータが漏洩する
対策 : プレースホルダを用いて
SQLクエリを組み立てる4
[4] https://www.ipa.go.jp/security/vuln/websecurity/sql.html
開運研修2026 セキュリティ講義
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GJWGVRYZ72.jpg)

Webの脆弱性を知る
クロスサイトスクリプティング（XSS）
入力がそのままHTMLに埋め込まれることが原因
1
2
3
4
攻撃者が悪意ある
他のユーザーが
スクリプトが実行
攻撃者が
スクリプトを投稿
そのページを閲覧
Cookieが攻撃者に送信
被害者になりすまし
被害者はページ訪問やURLクリックで、攻撃者が書いたスクリプトが発火
XSSの種類 :
蓄積型: スクリプトがDBに保存され永続化
DOM-Based: DOM操作でスクリプトが実行
反射型: スクリプトがそのまま返される
対策 : ユーザーの入力をHTMLとして解釈させない
テキストならinnnerText5で挿入する
HTMLを許可したい場合はDOMPurify6を噛ませる
[5] https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/innerText
[6] https://www.npmjs.com/package/dompurify
開運研修2026 セキュリティ講義
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4EZL4RXL73.jpg)

Webの脆弱性を知る
アクセス制御の不備
ユーザーの権限を正しくチェックできていないことが原因
自分が閲覧できるページ
https://blog.example.com/pages/1000
IDが連番になっているので、+1してみると閲覧できてしまった...
自分が閲覧できないはずの非公開ページ
https://blog.example.com/pages/1001
OWASP Top 10:20257 で1位
対策 : 全てのリソースアクセスを
典型的だけど発生しやすい脆弱性
「誰が・何に・何をできるか」を検証
[7] https://owasp.org/Top10/2025/
開運研修2026 セキュリティ講義
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/Y76W3R4M7V.jpg)

ソフトウェアサプライチェーン攻撃と
その対策
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/G75ML8QQ74.jpg)

サプライチェーン
なぜ今ソフトウェアサプライチェーンのセキュリティが重要か
ソフトウェアが積極的に侵害され、自社が影響を受ける時代
1
2
3
4
コントリビュータの
ソフトウェアが
ソフトウェアを使う
窃取したシークレット
アカウント侵害など
悪意あるものに置換
環境でシークレット
で別パッケージ侵害
漏洩
実際に起きた事例
2025年3月
2026年2~3月
reviewdog/tj-actions 侵害8
GitHub Actions侵害→@v1タグ書き換え→CIでシークレット漏洩
Trivy 侵害9
GitHub Actions侵害→LiteLLM・Telnyx(PyPI)へ横展開
[8] https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/
[9] https://diary.shift-js.info/trivy-compromise
開運研修2026 セキュリティ講義
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/9J29LKPWER.jpg)

サプライチェーン
悪意あるコードを取り込まないために
3つの観点で対策する
• GitHub Actions : 侵害されたActionsの影響を受けないための設定
• 依存管理 : 悪意あるパッケージを取り込まないための仕組み
• シークレット管理 : シークレットを漏らさないための仕組み
開運研修2026 セキュリティ講義
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/DEY4QN59JM.jpg)

サプライチェーン
[GitHub Actions] タグ参照はなぜ危険か
mutable（可変） なタグ参照を immutable（不変） な SHA に変える
タグ参照（mutable）
SHA pinning （immutable）
uses: actions/checkout@v6.0.2
uses: actions/checkout@de0fa…
@v6.0.2 タグは書き換え可能
Commit SHAは変更不可能
→攻撃者がタグを悪意あるコミット
→タグが書き換えられても使用元の
に差し替えるとCIが汚染される
CIには影響しない
タグ→SHAの置換には pinact10 が便利
[10] https://github.com/suzuki-shunsuke/pinact
開運研修2026 セキュリティ講義
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VJNYKXND78.jpg)

サプライチェーン
[GitHub Actions] セキュリティ対策
GitHub Actionsの実行環境（ランナー）を本番環境と同等のセキュリティに
permissions を最小限に
pull_request_target に注意
ワークフローの permissions を絞る
外部からのPRに対してワークフローを実行
不要な permissions は付与しない
→外部からのコードがシークレット有で実行
ビルドとデプロイを分離
発展: CI/CDのログ・テレメトリ保存
依存が入ってくるビルドとデプロイを分離
CI/CD 環境は監視対象にならないがち
デプロイ用のシークレットを保護
インシデント時に調査できるようにログや
テレメトリの確保を意識
参考: https://zenn.dev/cybozu_ept/articles/573c706ec08b48
開運研修2026 セキュリティ講義
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/YE9PV8R8J3.jpg)

サプライチェーン
[依存管理] パッケージ名の罠
パッケージを追加するとき、名前・実在性・信頼性を必ず確認する
Typosquatting
Slopsquatting
正規パッケージ名に似た名前の
AIが実在しないパッケージ名を提案
悪意あるパッケージを登録する攻撃
→ 攻撃者がその名前で登録
requests
requets ← タイポで悪意パッケージ
AI: “flask-oauth2-helper”
→ 実在せず、攻撃者が先回りして登録
人間のタイプミスを狙う
AIのハルシネーションを狙う
最低限、追加前に正しい名前かどうかは確認する
開運研修2026 セキュリティ講義
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/GE8DP8WZED.jpg)

サプライチェーン
[依存管理] パッケージ依存の安全な管理
ツール設定で、悪意あるパッケージの取り込みを防ぐ
Takumi Guard11
npm・PyPIのプロキシを経由して悪性パッケージをブロックするツール
npm・PyPIを使用する端末で設定しておくことで緩和策として有効
lockfile の徹底
Dependency Cooldown
Lockfile に記載のバージョンを厳密に再現
新バージョンの公開後、一定期間空ける
各パッケージマネージャーに実装されている
npm ci
uv sync –-frozen
# npm
# PyPI(uv)
[11] https://flatt.tech/takumi/features/guard
pnpm config set minimum-release-age
4320 # 3days
開運研修2026 セキュリティ講義
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LELM1RN17R.jpg)

サプライチェーン
[依存管理] Renovate / Dependabot によるパッケージの更新について
自動マージは望ましくない、Dependency Cooldownを設定する
自動マージは望ましくない
Dependency Cooldown12
侵害されたパッケージの新バージョンが
新規リリースから一定期間は、更新PR
自動でマージされると、悪性パッケージ
の自動作成を遅延させる
が取り込まれてしまう
悪性パッケージの多くは期間内に削除される
# Renovate
automerge: false
# Dependabot
gh pr merge -–auto で取り込まない
# Renovate
minimumReleaseAge: &quot;14 days”
# Dependabot
cooldown:
default-days: 14 days
[12] https://docs.renovatebot.com/key-concepts/minimum-release-age/
開運研修2026 セキュリティ講義
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4JMYWRX5JW.jpg)

サプライチェーン
シークレットの管理
シークレットをコードに書かない、漏らさない仕組みを入れる
やってはいけないこと
ソースコードや .env に直接書く
Slack や bozumanの公開の場所で
シークレットを共有する
1Password13での管理
端末内に平文で記載は望ましくない
1Passwordにシークレットを格納し、
1Password CLI で安全に参照
.envなど
API_KEY=op://…
AIコーディングツールに入力する
op run -- &lt;command&gt;
[13] https://developer.1password.com/docs/cli/
開運研修2026 セキュリティ講義
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PJR9YRNZ79.jpg)

Vibe Codingとセキュリティ
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PEXQGRN1JX.jpg)

VideCodingとセキュリティ
「動く」と「安全」は異なる
AIが書いたコードには、人間が書いた場合よりも多くの問題が含まれる
1.7 倍
よくある問題パターン
• パスワードの不適切な扱い（1.88倍）
AI生成PRに含まれる問題の数
• 安全でないオブジェクト参照（1.91倍）
（人間のコードとの比較）
• XSS 脆弱性（2.74倍）
※ CodeRabbitによる調査14
• ロジックの不備（1.82倍）
「動くけど安全ではない」コードが生まれやすい
[14] https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report
開運研修2026 セキュリティ講義
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/3EK94RNMED.jpg)

VideCodingとセキュリティ
AIエージェントを安全に動かす
AIが提案したコマンド、中身を理解してから実行していますか？
• sandboxモード15を有効にする
• ファイルシステム、ネットワークのアクセス範囲を制限
• Claude Codeでは /sandbox コマンドで有効化
• コマンドの許可リスト・拒否リストを設定する
• エージェントが実行できるコマンドを明示的に制御する
• Claude Codeでは settings.json で許可・拒否コマンドを定義できる
• --dangerously-skip-permissions の危険性を理解する
• 全ての承認プロンプトをスキップし、エージェントに無制限の権限を与える
[15] https://code.claude.com/docs/ja/sandboxing
開運研修2026 セキュリティ講義
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/L73WL8V275.jpg)

VideCodingとセキュリティ
AI生成コードの品質を担保する
AI生成コードは「信頼できない第三者が書いたコード」として扱う
• AIの出力をレビューする
• AI生成コードを信頼できないものとして人間がレビューする
• 追加された依存パッケージの実在性・信頼性を確認する
• セキュリティレビュー用のスキルで確認する
• Claude Codeでは /security-review で一般的なセキュリティ観点をチェック可能
• CI/CDで自動チェックを回す
• 静的解析（SAST）を組み込むことで既知の脆弱性パターンを検出
人間のレビューにも限界があるので仕組みと組み合わせてチェック
開運研修2026 セキュリティ講義
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/87DKNM86JG.jpg)

まとめ
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/VJPK5RWZE8.jpg)

まとめ
講義で扱った話題の共通構造
今日触れた全ての話題に共通する原則は「信頼しない」こと
Web脆弱性
サプライ
チェーン攻撃
Vibe Coding
ユーザーの入力を
依存パッケージを
AIの出力を
信頼しない
信頼しない
信頼しない
脆弱性の多くは
ソフトウェアが積極的
AIが出したコード・
「入力の扱い方」が
に侵害される世の中
コマンド・依存関係に
原因
は問題がある可能性
「信頼しない」ことが安全への出発点になる
開運研修2026 セキュリティ講義
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/2EVVPR8MEQ.jpg)

まとめ
セキュリティは変化し続ける
数年後には新たな話題が注目トピックになるかも
数年前の講義
今日の講義
数年後の研修
Web脆弱性が中心
サプライチェーン攻撃
今はまだ存在しない
サプライチェーンやAI
Vibe Codingのリスク
新たな脅威・技術への
の話題はなかった
新しい脅威が加わった
対応が必要になる
CIA、入力を信頼しないなど不変の原則を土台にしつつ、
新しい脅威をキャッチアップし続けることが重要
開運研修2026 セキュリティ講義
27


