この記事の要点
• 「AI vs AI」の攻防が本格化、攻撃者のAI悪用と防御側のAI活用が拮抗
• ゼロトラストアーキテクチャへの移行が加速、境界防御モデルの限界が顕在化
• サプライチェーン攻撃への対策としてSBOM・依存関係管理の重要性が増大
2025年のセキュリティ動向
サイバー攻撃は年々高度化しており、2025年も新たな脅威と対策が注目されています。本記事では、開発者が押さえておくべきセキュリティトレンドを解説します。
2025年は特に「AI vs AI」の攻防が本格化した年として位置づけられています。攻撃者がAIを悪用してフィッシングやマルウェアを高度化させる一方、防御側もAIを活用した異常検知や自動対応で応戦するという構図が確立されました。また、リモートワークの定着とクラウドネイティブな開発の普及により、従来の「境界防御」モデルの限界が明らかになり、ゼロトラストアーキテクチャへの移行が加速しています。
セキュリティ脅威の全体像(2025年版)
2025年に特に注目すべきサイバー脅威のトレンドは以下の通りです:
- AIを活用した高度な攻撃: フィッシング、マルウェア生成、脆弱性探索の自動化
- サプライチェーン攻撃の急増: OSS依存パッケージへの悪意あるコード挿入
- ランサムウェアの進化: 二重恐喝(データ盗難+暗号化)から三重恐喝(DDoS攻撃の追加)へ
- クラウド設定ミスの悪用: IAMの過剰権限、公開ストレージバケット
- AIモデルへの攻撃: プロンプトインジェクション、モデル汚染(データポイズニング)
- IoT・OTセキュリティ: スマートファクトリーや医療機器への攻撃増加
1. AIを活用したセキュリティ
攻撃者側のAI活用
2025年において、サイバー攻撃者によるAI活用は新たな段階に入りました。
- AIによるフィッシングメールの自動生成: ターゲットのSNS投稿や公開情報を学習し、個人に合わせた超精巧なスピアフィッシングメールを自動生成
- 脆弱性の自動探索: AIを使ったファジングツールが、従来の自動ツールよりも高速・高精度で脆弱性を発見
- マルウェアの自動変異: シグネチャベースの検知を回避するため、コードを自動的に変異させるポリモーフィックマルウェア
- ディープフェイクを使ったBEC(ビジネスメール詐欺): 経営幹部の声や映像を模倣した音声・動画を使った振り込め詐欺
実際の被害事例(2024〜2025年): 香港の金融機関で、AIが生成したCFOのディープフェイク動画を使ったビデオ会議詐欺により、約2500万ドルの損失が発生した事件が世界的に注目されました。このような「AIを使った社会工学的攻撃」が急増しています。
防御側のAI活用
- 異常検知の精度向上: 機械学習モデルによる「通常の振る舞い」からの逸脱を検知
- リアルタイム脅威インテリジェンス: 世界中の脅威情報をAIがリアルタイムに分析し、新たな攻撃パターンを予測
- 自動インシデントレスポンス: セキュリティインシデントの初期対応(隔離、封じ込め)をAIが自動実行
- AIによるセキュリティレビュー: コードレビュー段階でAIがセキュリティ脆弱性を自動検出
実践のヒント: GitHub CopilotやAmazon CodeGuruなどのAIツールでセキュリティ脆弱性を早期発見しましょう。また、Snyk CodeやSemgrepのようなセキュリティ特化のAIツールをCI/CDパイプラインに組み込むことで、開発の早い段階で脆弱性を排除できます。
開発者が実践すべきAIセキュリティ対策
# GitHub ActionsでのSnyk自動スキャン例
name: Security Scan
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --severity-threshold=high
2. ゼロトラストアーキテクチャの普及
「信頼しない、常に検証する(Never Trust, Always Verify)」というゼロトラストの考え方が、より多くの組織で採用されています。2025年は特に中堅企業でのゼロトラスト導入が加速した年となりました。
ゼロトラストの主要原則
- すべてのリソースアクセスを認証・認可
- 最小権限の原則(Principle of Least Privilege)
- ネットワークセグメンテーション
- 継続的な監視とログ分析
- 明示的な検証(ユーザー、デバイス、場所の確認)
- 侵害を前提とした設計(Assume Breach)
ゼロトラスト実装の具体的なステップ
ステップ1:IDおよびアクセス管理(IAM)の強化
実施項目:
- MFA(多要素認証)の全アカウントへの適用
- 特権アクセス管理(PAM)の導入
- サービスアカウントの権限最小化
- アクセスレビューの定期実施(四半期ごと推奨)
ステップ2:デバイスの信頼評価
実施項目:
- MDM(モバイルデバイス管理)の導入
- デバイスのヘルスチェック(パッチ適用状況、ウイルス対策等)
- 管理外デバイスのアクセス制限
- エンドポイントDRの導入
ステップ3:ネットワークセグメンテーション
実施項目:
- マイクロセグメンテーションの実装
- 東西方向のトラフィック監視
- VPN廃止とSDPへの移行検討
- DNS-over-HTTPS(DoH)の採用
ステップ4:継続的なモニタリング
実施項目:
- SIEMの導入と運用
- ユーザー行動分析(UEBA)の実装
- セキュリティログの長期保存(1年以上推奨)
- 定期的なインシデントレスポンス訓練
クラウド環境でのゼロトラスト実装例
AWS環境でゼロトラストを実現するための設定例:
// AWS IAMポリシーの最小権限設定例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-specific-bucket/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "ap-northeast-1"
},
"IpAddress": {
"aws:SourceIp": ["203.0.113.0/24"]
}
}
}
]
}
3. サプライチェーン攻撃への対策
依存パッケージやCI/CDパイプラインを狙った攻撃が増加しています。2024〜2025年に特に注目されたのは、npmやPyPIなどのパッケージレジストリへの悪意あるパッケージ混入と、XZ Utilsのような信頼されたOSSプロジェクトへの長期的な侵害工作です。
主要なサプライチェーン攻撃の手口
- タイポスクワッティング:
lodashに対する1odashのような名前の似たパッケージ - メンテナーアカウントの乗っ取り: 正規パッケージのメンテナーアカウントを侵害して悪意あるバージョンを公開
- 依存関係の混乱(Dependency Confusion): 内部パッケージ名で公開レジストリに悪意あるパッケージを登録
- コード署名の回避: 正規のツールチェーンに悪意あるコードを注入
対策のポイント
- SBOM(Software Bill of Materials)の作成: ソフトウェアのすべての依存関係を文書化する部品表の作成
- 依存パッケージの定期的な脆弱性スキャン: DependabotやSnykによる自動スキャン
- 署名付きコミットとビルドの検証:
git commit -SによるGPG署名 - プライベートパッケージレジストリの活用: 検証済みパッケージのみを提供する内部レジストリ
- ロックファイルの厳格な管理:
package-lock.json、yarn.lock、Pipfile.lockを必ずコミット
実践的なサプライチェーン対策コード例
# .github/dependabot.yml - 依存関係の自動更新設定
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "dependencies"
- "security"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# パッケージの整合性確認(npm)
npm audit --audit-level=moderate
# SBOMの生成(syft を使用)
syft . -o spdx-json > sbom.json
# 依存関係の署名検証
npm install --ignore-scripts # インストール時のスクリプト実行を無効化
4. パスワードレス認証の拡大
パスキー(Passkeys)やFIDO2/WebAuthnの普及により、パスワードレス認証が主流になりつつあります。2025年はApple、Google、Microsoft、Amazon などの主要プラットフォームがいずれもパスキーのサポートを本格化させた転換点となりました。
パスワードの問題点
- フィッシング攻撃の主な標的
- パスワード使いまわしによる大規模漏洩
- パスワード管理のコスト(リセット対応、ポリシー強制)
- ブルートフォース攻撃のリスク
主要なパスワードレス方式
- パスキー: デバイスに保存された暗号鍵で認証。フィッシング耐性が高く、利便性も高い
- 生体認証: 指紋、顔認証(デバイス上の安全な領域で処理される)
- マジックリンク: メール経由のワンタイムリンク(パスワード不要だがフィッシングリスクあり)
- TOTP(ワンタイムパスワード): Google AuthenticatorやAuthy経由の時刻同期型OTP
- ハードウェアセキュリティキー: YubiKeyなどの物理デバイスによる認証
WebAuthn実装の基本例(バックエンド:Node.js)
const { generateRegistrationOptions, verifyRegistrationResponse } =
require('@simplewebauthn/server');
// パスキー登録オプションの生成
async function generatePasskeyRegistration(userId, userName) {
const options = await generateRegistrationOptions({
rpName: 'My Application',
rpID: 'myapp.example.com',
userID: userId,
userName: userName,
attestationType: 'none',
authenticatorSelection: {
authenticatorAttachment: 'platform', // デバイス組み込みの認証器を優先
userVerification: 'required',
residentKey: 'required'
}
});
// challengeをセッションに保存
req.session.currentChallenge = options.challenge;
return options;
}
// パスキー登録の検証
async function verifyPasskeyRegistration(response, expectedChallenge) {
const verification = await verifyRegistrationResponse({
response,
expectedChallenge,
expectedOrigin: 'https://myapp.example.com',
expectedRPID: 'myapp.example.com'
});
if (verification.verified) {
// 認証器情報をデータベースに保存
await saveAuthenticator(verification.registrationInfo);
}
return verification.verified;
}
日本企業でのパスキー導入事例
日本でも大手サービスがパスキー対応を進めています:
- 金融機関: ネット銀行やFinTechサービスでのパスキー導入が加速
- ECサイト: カート離脱率低減を目的としたログイン体験の改善
- SaaSツール: Slackやkintoneなどのビジネスツールでのパスキーサポート
5. 開発者向けセキュリティツール(DevSecOps)
2025年は「DevSecOps」という言葉が一般化し、開発フローへのセキュリティ組み込みが当然のプラクティスとして定着してきました。
カテゴリ別ツール一覧
SAST(静的アプリケーションセキュリティテスト):
| ツール | 特徴 | 料金 |
|---|---|---|
| Semgrep | カスタムルール対応、高速 | 無料〜 |
| SonarQube | 多言語対応、品質管理も兼ねる | 無料〜 |
| CodeQL | GitHub Actions統合、深い解析 | 無料(OSS) |
| Checkmarx | エンタープライズ向け | 有料 |
DAST(動的アプリケーションセキュリティテスト):
| ツール | 特徴 | 料金 |
|---|---|---|
| OWASP ZAP | 最も有名なOSSツール | 無料 |
| Burp Suite | セキュリティ専門家の標準ツール | 無料〜有料 |
| Nikto | Webサーバースキャン | 無料 |
SCA(ソフトウェア構成分析):
| ツール | 特徴 | 料金 |
|---|---|---|
| Snyk | CI/CD統合が容易、開発者フレンドリー | 無料〜有料 |
| Dependabot | GitHub標準機能として統合 | 無料 |
| OWASP Dependency-Check | 多言語対応のOSSツール | 無料 |
| Black Duck | エンタープライズ向け | 有料 |
シークレット検出ツール:
| ツール | 特徴 | 料金 |
|---|---|---|
| git-secrets | AWS認証情報の検出に強い | 無料 |
| TruffleHog | Git履歴を遡って検出 | 無料 |
| GitLeaks | 高速、設定が柔軟 | 無料 |
| GitHub Secret Scanning | GitHubリポジトリへの統合 | 無料(公開リポジトリ) |
CI/CDへの統合例(GitHub Actions)
# .github/workflows/security.yml
name: Security Checks
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
# SASTスキャン
sast:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Semgrep Scan
uses: returntocorp/semgrep-action@v1
with:
config: >-
p/security-audit
p/owasp-top-ten
# 依存関係スキャン
sca:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Snyk Scan
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
# シークレット検出
secrets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # 全履歴をスキャン
- name: TruffleHog Scan
uses: trufflesecurity/trufflehog@main
with:
path: ./
base: main
head: HEAD
6. クラウドセキュリティとIaCセキュリティ
クラウドネイティブな開発が主流となった現在、Infrastructure as Code(IaC)のセキュリティが重要なテーマとなっています。
主要なIaCセキュリティツール
- Checkov: TerraformやCloudFormationの設定ミスを検出
- tfsec: Terraform特化のセキュリティスキャナー
- KICS(Keeping Infrastructure as Code Secure): マルチクラウド対応
- AWS Config Rules: AWSリソースの設定コンプライアンスチェック
Terraformのセキュアなベストプラクティス
# セキュアなS3バケット設定例
resource "aws_s3_bucket" "secure_bucket" {
bucket = "my-secure-bucket"
}
# パブリックアクセスのブロック
resource "aws_s3_bucket_public_access_block" "block" {
bucket = aws_s3_bucket.secure_bucket.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
# 暗号化の設定
resource "aws_s3_bucket_server_side_encryption_configuration" "encrypt" {
bucket = aws_s3_bucket.secure_bucket.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
}
}
}
# バージョニングの有効化
resource "aws_s3_bucket_versioning" "versioning" {
bucket = aws_s3_bucket.secure_bucket.id
versioning_configuration {
status = "Enabled"
}
}
7. コンテナ・Kubernetesセキュリティ
コンテナ化が進む現代において、コンテナイメージとKubernetesクラスタのセキュリティも重要なテーマです。
コンテナセキュリティのベストプラクティス
# セキュアなDockerfileの例
# 特定のバージョンを指定(latest は避ける)
FROM node:20.10.0-alpine3.19
# root以外のユーザーで実行
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
WORKDIR /app
# 依存関係のコピーとインストール
COPY package*.json ./
RUN npm ci --only=production
# アプリケーションのコピー
COPY . .
# 非rootユーザーに切り替え
USER appuser
# ポート宣言
EXPOSE 3000
CMD ["node", "server.js"]
コンテナイメージスキャンツール
- Trivy: Aqua Security製、最も広く使われているOSSツール
- Grype: Anchore製、高速なイメージスキャン
- Docker Scout: Docker公式のスキャン機能
# Trivyによるコンテナイメージスキャン例
trivy image --severity HIGH,CRITICAL myapp:latest
# 脆弱性レポートの出力
trivy image --format json --output report.json myapp:latest
国内(日本)でのセキュリティ動向
日本では2025年、以下のセキュリティトピックが特に注目されました:
法規制・ガイドラインの整備:
- 経済産業省による「サイバーセキュリティ経営ガイドライン」の改訂
- 金融機関向けのクラウドセキュリティ要件の強化
- 重要インフラへのサイバーセキュリティ規制の拡充
国内でのインシデント傾向:
- 医療機関へのランサムウェア攻撃の継続
- サプライチェーン経由での中小企業への攻撃増加
- VPN機器の脆弱性を悪用した大企業ネットワークへの侵入
国内企業の対策動向:
- CSIRT(インシデント対応チーム)の設置が中堅企業にも拡大
- セキュリティベンダーとの契約による24時間監視サービスの普及
- 開発者向けセキュリティ研修の重要性認識の高まり
OWASP Top 10 2025年版の注目点
OWASP(Open Web Application Security Project)のTop 10は、Webアプリケーションの最重要セキュリティリスクをまとめたリファレンスです。2025年版では特に以下が注目されています:
- アクセス制御の不備(Broken Access Control) - 依然として最大のリスク
- AIとLLMへの攻撃 - プロンプトインジェクション、モデル汚染が新たにランクイン
- サプライチェーンの脆弱性 - 上位にランクアップ
- 設定ミス - クラウドの設定ミスを含む範囲に拡大
- シークレットの漏洩 - APIキー・認証情報の管理不備
よくある質問(Q&A)
Q1. シフトレフトセキュリティとは何ですか?
A. シフトレフト(Shift Left)とは、ソフトウェア開発ライフサイクルの早い段階(左側)でセキュリティを組み込むアプローチです。従来はリリース前やリリース後にセキュリティテストを行っていましたが、設計・開発段階からセキュリティを考慮することで、問題の早期発見・低コストでの修正が可能になります。CI/CDパイプラインへのSASTやSCAツールの組み込みがその代表例です。
Q2. ゼロトラストを小規模な組織で導入するにはどこから始めればよいですか?
A. 小規模組織での導入は「IDとアクセス管理」から始めることを推奨します。具体的には:(1) 全アカウントへのMFA適用、(2) パスワードマネージャーの導入、(3) アクセス権限の見直しと最小権限の適用。これだけでも多くのリスクを低減できます。次のステップとしてVPN廃止とZTNA(Zero Trust Network Access)への移行を検討します。
Q3. パスキーとパスワードマネージャーの違いは何ですか?
A. パスワードマネージャーは「複雑なパスワードを安全に管理・入力するツール」であり、パスワード自体は存在します。一方パスキーは「パスワード自体を持たない認証方式」で、デバイスの暗号鍵(秘密鍵)を使って認証します。パスキーはフィッシング攻撃に対して本質的に安全(フィッシングサイトでは認証できない)という点で、パスワード+MFAよりも強力なセキュリティを提供します。
Q4. SBOMはなぜ重要なのですか?
A. SBOM(Software Bill of Materials:ソフトウェアの部品表)は、ソフトウェアに含まれるすべてのコンポーネントとその依存関係を文書化したものです。新たな脆弱性が発見された際に「自社のシステムが影響を受けるか」を素早く確認でき、対応優先度を判断できます。アメリカ政府は連邦政府向けソフトウェアにSBOMの提出を義務化しており、日本でも重要インフラ事業者への普及が進んでいます。
Q5. 開発者がセキュリティを学ぶのにおすすめのリソースはありますか?
A. 以下のリソースをおすすめします:
- OWASP(無料): Top 10、チートシートシリーズが最重要
- Hack The Box / TryHackMe(有料・無料あり): ハンズオンで脆弱性を体験
- WebGoat(無料・OSSツール): 意図的に脆弱なWebアプリで脆弱性を学習
- Snyk Learn(無料): コードレベルのセキュリティ学習
- SANS Courses(有料): プロフェッショナル向けの高品質コース
Q6. ランサムウェアに感染した場合はどうすればよいですか?
A. 以下の順序で対応することを推奨します:(1) 感染端末を即座にネットワークから切り離す(拡散防止)、(2) インシデントレスポンスチームまたは外部専門家に連絡、(3) 証拠保全のため電源を切らずに状態を維持、(4) バックアップからの復元を検討(バックアップが感染していないことを確認してから)、(5) 身代金の支払いは推奨されない(支払っても復元の保証なし、再攻撃のターゲットになる可能性)。
Q7. DevSecOpsを実践するために必要なツールは何ですか?
A. 最低限導入すべきツールセットは:(1) SASTツール(Semgrep推奨、無料・オープンソース)、(2) SCAツール(DependabotはGitHubで無料)、(3) シークレット検出(GitLeaksは無料)、(4) コンテナスキャン(Trivy推奨、無料・オープンソース)。これらをGitHub Actionsなどのみで組み合わせれば、小規模なチームでもほぼ無料でDevSecOpsパイプラインを構築できます。
Q8. AIコーディングアシスタントを使う際のセキュリティリスクはありますか?
A. いくつかのリスクがあります:(1) コード漏洩リスク:AIサービスにコードを送信する際にデータが外部に出るリスク(機密プロジェクトでは注意が必要)、(2) 脆弱なコードの生成:AIが古い・脆弱なパターンのコードを生成する可能性(生成コードのセキュリティレビューは人間が行う必要あり)、(3) 依存関係の幻覚(Hallucination):存在しないパッケージ名を提案し、攻撃者がその名前で悪意あるパッケージを公開するリスク(パッケージ名の検証が重要)。
Q9. ゼロデイ脆弱性への対処法は?
A. ゼロデイ脆弱性(パッチが提供される前に発見・悪用される脆弱性)への対処は難しいですが、以下の多層防御が有効です:(1) WAF(Webアプリケーションファイアウォール)による異常なトラフィックの遮断、(2) 最小権限の原則による被害範囲の限定、(3) 異常検知による早期発見、(4) ネットワークセグメンテーションによる横移動の防止。根本的には「侵害を前提とした」設計(ゼロトラスト)が最も有効な考え方です。
Q10. セキュリティテストはどのくらいの頻度で行うべきですか?
A. 最低限のアプローチとして:(1) コードコミット時に自動SAST/SCAスキャン(毎回)、(2) 月次での依存関係の更新と脆弱性確認、(3) 四半期ごとのペネトレーションテスト(外部の重要なシステム)、(4) 年次での大規模なセキュリティ監査。重要インフラや金融サービスではより高頻度のテストが求められます。
プログラマー・ITエンジニアへの推奨アクション
| 優先度 | アクション | 難易度 | 効果 |
|---|---|---|---|
| 最高 | 全アカウントにMFAを適用 | 低 | 高 |
| 最高 | パスワードマネージャーの使用 | 低 | 高 |
| 高 | DependabotをGitHubリポジトリに設定 | 低 | 高 |
| 高 | GitLeaksでシークレット漏洩チェック | 低〜中 | 高 |
| 高 | SemgrepをCI/CDに組み込む | 中 | 高 |
| 中 | Trivyでコンテナイメージをスキャン | 中 | 中〜高 |
| 中 | ゼロトラストの原則をシステム設計に適用 | 高 | 高 |
| 中 | SBOMの作成とメンテナンス | 中〜高 | 中 |
| 低 | ペネトレーションテストの実施 | 高 | 中〜高 |
まとめ
2025年のセキュリティは、「AI vs AI」の攻防、ゼロトラストの本格普及、サプライチェーンセキュリティの強化という3つの大きな軸で動いています。
開発者にとって最も重要なのは「シフトレフト」の考え方を実践し、設計・開発の早い段階からセキュリティを組み込むことです。CI/CDパイプラインへのセキュリティツールの統合は、現在では技術的なハードルも低く、多くのツールが無料で利用できます。
セキュリティは「やり過ぎることはない」領域ですが、まずは「MFAの全適用」「シークレットのコード外管理」「依存関係の自動スキャン」という3つから始めることで、大多数の攻撃に対して有効な防御ラインを築くことができます。継続的な学習と実践を通じて、セキュリティ意識の高いエンジニアを目指しましょう。