AIコーディング入門
第2回:プロンプト以外で効率化!開発体験の改善手法

Share

Security NEWS TOPに戻る
バックナンバー TOPに戻る

AIコーディング2アイキャッチ(AIコーディングの効率化の手法と課題)

生成AIを使ったコーディングでは、プロンプトエンジニアリングが効率化の王道として知られています。しかし実際には、RAG(検索拡張生成)やファインチューニングといった手法を組み合わせることで、さらに精度や体験を向上させることが可能です。本記事では、これらの技術の概要とAIコーディングにおける活用例、そして共通して立ちはだかる品質・性能・セキュリティの課題とその解決の方向性を解説します。

※本稿は2025年7月上旬に執筆しているものです。ご覧いただく時期によっては古い情報となっている場合もありますので、ご承知おきください。

プロンプトエンジニアリング以外の効率化手法

プロンプトエンジニアリングは、手軽に(安価に)試せる生成AIの体験の改善や効率化の手法として位置づけられています。そして、プロンプトエンジニアリング以外でも生成AIの効率化や体験の改善、特定の目的のための調整などができる手法としてファインチューニングRAG(Retrieval-Augmented Generation)があります。以下の図はそれぞれの手法を簡単にまとめたものです。

図 1 プロンプトエンジニアリング、RAG、ファインチューニングの概要

AIを使ったコーディング(以下AIコーディング)でもこの3つの手法は生成コードの改善や生成プロセスの効率化のために用いられます。また、企業や組織でのコーディングに際しては、個人レベルでの作業でのプロンプトエンジニアリング、内部レポジトリやAPIドキュメントとの結合による効率化を行うRAG、コーディング規約やスタイルなどの品質管理などを目的としたファインチューニングというように、目的別に同時並行で使うことができます。

AIコーディング全般に共通する課題

AIコーディング自体は一般的といえる領域に入りつつあります注 1) が、一方でAIコーディング全般に共通する課題として、大きく分けて以下の3つの課題が挙げられます注 2)

ロジックの不整合

  • 小さなコードであれば問題にならないことも多いですが、大きなコードになればなるほど、コード内のロジックで不整合が発生することが増えます
  • プロンプトで与えられているビジネス上の目的を正しく解釈できない場合、期待されない出力をする可能性もあります

メモリなどのボトルネックに対する配慮の欠如

実行環境に関する配慮がないため、メモリを予想以上に使用するコードや、処理パフォーマンスに配慮しない出力が出てくることが往々にしてあります

セキュリティへの配慮の欠如

  • セキュリティに対して前出のような配慮事項を指示しない限りは配慮が欠如していることが多くあります
  • 仮に配慮事項の指示を行っても不正確・セキュアでない出力が出される確率も一定程度残存します

品質とセキュリティを守るプロセス設計

AIコーディングが進化してもなお、人の手にゆだねられているものがあります。それは「何のためにコーディングするのか」「コードを使ってどんな業務をして、その結果として何を得るのか」といったビジネス上の目的を設定することと、コードが正確に動作することやセキュリティ上問題がないことを確認するプロセスを設けることです。コードの品質やセキュリティに関するプロセスは通常、ソースコード診断でセキュリティの確認を行うことが一般的です。

最近ではDevSecOpsの一環として、コード開発中にSAST(Static Application Security Testing)ツールをCI/CDパイプラインに統合するケースも増えてきています。また、完成品に対するテストとしてDAST(Dynamic Application Security Testing)を実行することも必要でしょう。これはWebサイトであればWebアプリケーション診断が該当します。


―第3回「AIエージェント時代のコーディング:MCPとA2Aとは」へ続く―

注:
1)2024年5月に実施されたプログラマー・エンジニアを中心としたコミュニティであるStackOverflowによる調査では開発にAIを利用すると回答したプロフェッショナルの開発者は63.2%でした。
2)CSET “Cybersecurity Risks of AI Generated Code” (Jessica Ji, Jenny Jun, Maggie Wu, Rebecca Gelles, November 2024)

【参考情報】

【連載一覧】

―第1回「Vibeコーディングとプロンプトエンジニアリングの基礎」―
―第2回「プロンプト以外で効率化!開発体験の改善手法」―
―第3回「AIエージェント時代のコーディング:MCPとA2Aとは」 ―
―第4回「MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装」―
第5回「AIとセキュリティ:Non‑Human Identity とAIエージェントの課題
第6回「AIエージェントのセキュリティ対策と今後の展望


Security NEWS TOPに戻る
バックナンバー TOPに戻る

ウェビナー開催のお知らせ

  • 2025年9月3日(水)13:00~14:00
    止まらないサイバー被害、その“対応の遅れ”はなぜ起こる?~サイバー防衛の未来を拓く次世代XDR:大規模組織のセキュリティ運用を最適化する戦略的アプローチ~
  • 2025年9月10日(水)14:00~15:00
    フィッシング攻撃の最新脅威と被害事例〜企業を守る多層防御策〜
  • 2025年9月17日(水)14:00~15:00
    サイバーリスクから企業を守る ─脆弱性診断サービスの比較ポイントとサイバー保険の活用法─
  • 最新情報はこちら


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像

    【第3回】Non-Human Identities Top 10とは?自動化時代に求められる新しいセキュリティ視点

    Share

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る

    近年、クラウドやSaaSの普及で、人の手を介さずに動作する「Non-Human Identity(NHI)」が存在感を増しています。このNHIに対するOWASPのTop10シリーズが2025年から公開されています。「OWASP Top 10」を中心に、基本的なセキュリティ知識を深め、企業での対策に活かすことを目的としたシリーズ第3回の今回は、NHIとは何か、悪用事例や企業が今取るべきセキュリティ対策の方向性を解説します。

    Non-Human Identity(NHI)とは

    NHIとは、マシン間のアクセスと認証に使用されるデジタル的なIdentity(ID注 1))の総称です。IDは機械的な処理や自動化の場面で使われます。NHIはクラウドサービスの普及やAPI化の進展とともに爆発的にその数を増やしています。その最大のメリットはAPIやマイクロサービス、アプリケーションごとに設定・運用が可能な点にあります。そして最大のデメリットがセキュリティ関連の問題です。

    NHIが用いられる代表例としてCI/CD注 2)環境があります。CI/CD環境では日常的にコードのコミットやレビュー、テスト、ビルド、バージョン管理、デプロイといったことがCI/CDパイプラインやクラウドサービスプロバイダとの統合を通じて行われています。ここでのNHIの利用状況を考えてみましょう。

    CI/CD環境とNHIのイメージ

    ユーザがIDEからプラグイン経由でワークフローにコードのプッシュ/プルなどの操作を行うことでCI/CDパイプラインのワークフローが動作し、ワークフローから様々なコンポーネントや外部APIへの通信にNHI(凡例①~③)が利用されます。

    CI/CDに限らず、私たちの周りにはNHIを必要とするサービス間・システム間の連携が多数存在しています。次の図は顧客管理システム(CRM)と営業支援システム(SFA)を中心とした、NHIを用いた典型的なサービス間の連携のイメージです。

    CI/CD環境も、この図に挙げた例でも、1人のユーザが1つのアプリケーションから複数の機能を動かすことができます。このため、組織内では人の10~50倍のNHIが存在するともいわれています注 3)。さらに、すべてのNHIが適切に管理されているとは限らず、サービス間・開発者間でのNHIの共有や認証情報のローテーションのないNHIの存在など、多くの問題があります。これらのセキュリティ上の問題をまとめたものが「OWASP NHI Top10」です。

    事例から見るNHIのセキュリティ課題

    tj-actionsサプライチェーン攻撃(2025年発生)

    GitHub Actions(GitHubによるCI/CDプラットフォーム)向けのサードパーティー製のアクション集であるtj-actionsが依存するライブラリへの侵害が原因となったサプライチェーン攻撃です。GitHub Actionsにはワークフローやその中の一部アクションの再利用という機能がありますが、tj-actionsはGitHub Actionsでは提供していないアクションを多数提供することでGitHub Actionsの補完目的で使用できるツールの一つです。図は時間的経過を含む本事案の推移をあらわしたものです。

    tj-actions侵害・サプライチェーン攻撃の概要

    GitHub独自のセキュリティに関連する補足説明

    PAT: ここでのPATはGitHubが提供するPersonal Access Tokenを指します。APIやCLIからのアクセス(たとえばgit cloneやpush, pullなど)を行う際の認証に用いられるものです。発行が人(GitHubユーザ)に対して行われるので属人性がありますが、実際にはNHIとして使用します。Settings>Developer SettingsからToken(Classic)またはFine Grained Tokenが選択できます。Fine Grained Tokenを選択した場合はトークンに関するパーミッションの詳細が設定できるようになっていますが、セキュリティの観点では非推奨の設定項目(例えば有効期限を設定しないなど)が有効になっている点や、設定項目が詳細かつ多岐にわたるためセキュリティ上の配慮のない設定をしているケースもありうる点に注意が必要です。
    pull_request_target: GitHub Actionsにはpull_requestとpull_request_targetの2つのpull requestトリガーがあります。pull_request_targetは使い方を理解していないと今回のようなケースで悪用されることがあります。参考資料を以下に記載しますので、ぜひご一読ください。
    https://blog.gitguardian.com/github-actions-security-cheat-sheet/
    https://blog.gitguardian.com/github-actions-security-cheat-sheet/https://runs-on.com/github-actions/pull-request-vs-pull-request-target/

    本件でOWASP NHI Top 10のうち該当する可能性がある項目は以下の通りです。

    No.名称今回何が該当するか
    NHI2Secret Leakage(シークレット漏洩)本件ではtj-actions経由でログにダンプされた秘密情報があった点、各PATの漏洩があった点の2点が該当
    NHI3Vulnerable Third-Party NHI(脆弱なサードパーティーNHI)spotbugsおよびreviewdog への侵害がtj-actionsへの侵害へ繋がった点が該当
    NHI7Long-Lived Secrets(長期間有効なシークレット)攻撃期間からspotbugsのメンテナーのPATの有効期限が長かった可能性がある

    OWASP NHI Top 10

    OWASP NHI Top 10 2025をここで簡単にご紹介します。

    NHI番号名称概要対策
    NHI1:2025Improper Offboarding(不適切なオフボーディング)サービスアカウントやアクセスキーなどの非人間的アイデンティティが不要になった際に、適切に無効化・削除されない問題。放置された認証情報が攻撃者に悪用され、機密システムへの不正アクセスに利用される可能性がある。NHIのライフサイクル管理を自動化し、使用されていないアイデンティティを定期的に検出・無効化する。継続的なスキャンとモニタリングでゾンビNHIを特定し、ガバナンス、ツール、ワークフローの観点から廃止プロセスを体系化する。
    NHI2:2025Secret Leakage(シークレット漏洩)APIキー、トークン、暗号化キー、証明書などの機密情報が、ソースコードへのハードコーディング、平文設定ファイル、公開チャットアプリケーションなど、認可されていないデータストアに漏洩する問題。ハードコードされた認証情報を排除し、適切なシークレット管理プラットフォーム(CyberArk Conjur、HashiCorp Vault等)を導入する。CI/CDパイプラインにシークレットスキャンを組み込み、リアルタイムで漏洩を検出・検証する。
    NHI3:2025Vulnerable Third-Party NHI(脆弱なサードパーティーNHI)開発ワークフローに統合されたサードパーティーの非人間的アイデンティティが、セキュリティ脆弱性や悪意のあるアップデートにより侵害され、認証情報の窃取や権限の悪用に利用される問題。サードパーティーサービスのセキュリティ実践を定期的に監査し、統合されたサービスの更新状況を追跡する。最小権限の原則に従い、サードパーティーに与える権限を最小限に制限し、定期的にアクセス権を見直す。
    NHI4:2025Insecure Authentication(安全でない認証)開発者が内部・外部サービスを統合する際に、非推奨で脆弱性のある認証方式や、古いセキュリティ慣行による弱い認証メカニズムを使用することで組織が重大なリスクにさらされる問題。非推奨の認証方式(SHA1等)を特定し、最新のセキュリティ標準に準拠した認証方式に移行する。すべての暗号化・認証方式を定期的に見直し、技術の進歩に合わせて更新する。長期間有効なAPIキーを短期間トークンに置き換える。
    NHI5:2025Overprivileged NHI(過度な権限を持つNHI)アプリケーション開発・保守時に、開発者や管理者が非人間的アイデンティティに必要以上の権限を付与し、侵害時に攻撃者がその過剰な権限を悪用して重大な被害を与える可能性がある問題。最小権限の原則を厳格に適用し、NHIの権限を定期的に見直す。権限のスコープを適切に設定し、シークレットローテーション時に権限の再評価を実施する。人間のアイデンティティと同様の自動化されたアクセス権見の直しプロセスを導入する。
    NHI6:2025Insecure Cloud Deployment Configurations(安全でないクラウドデプロイ設定)CI/CDアプリケーションがクラウドサービス認証で静的認証情報やOIDCを使用する際、設定ミスや検証不備により、攻撃者が本番環境への永続的で特権的なアクセスを獲得する可能性がある問題。静的認証情報の代わりにOIDCトークンベース認証を使用し、アイデンティティトークンの適切な検証を実装する。設定ファイルへのハードコード化を避け、適切なシークレット管理システムを使用する。CI/CDパイプラインでのシークレット露出を防ぐ。
    NHI7:2025Long-Lived Secrets(長期間有効なシークレット)APIキー、トークン、暗号化キー、証明書の有効期限が遠い将来に設定されているか無期限の場合、侵害されたシークレットが時間制約なく攻撃者に機密サービスへのアクセスを提供する問題。短期間で自動ローテーションされるシークレットを実装し、可能な限り実行時に生成される一時的なトークンを使用する。シークレットのライフサイクルを可視化し、作成・使用・ローテーション状況を追跡する。有効期限のないシークレットを特定し排除する。
    NHI8:2025Environment Isolation(環境分離)開発、テスト、ステージング、本番環境で同じ非人間的アイデンティティを再利用することで、特にテスト環境と本番環境間での使い回しが重大なセキュリティ脆弱性を引き起こす問題。開発、ステージング、本番環境で異なるNHIを使用し、環境間でのNHI共有を禁止する。各環境専用のNHIを設定し、環境固有のアクセス権限を適用する。NHIの使用状況を可視化し、環境分離ポリシーの遵守状況を監視する。
    NHI9:2025NHI Reuse(NHI再利用)異なるアプリケーション、サービス、コンポーネント間で同じ非人間的アイデンティティを再利用することで、一箇所での侵害が他の部分への不正アクセスに利用される重大なセキュリティリスクを生む問題。異なるアプリケーション間でのNHI共有を禁止し、1対1のNHI-アプリケーション使用ポリシーを確立する。NHIの使用コンテキストを詳細に把握し、複数システム間での再利用を防ぐ。侵害時の影響範囲を限定するため、専用NHIを各アプリケーションに割り当てる。
    NHI10:2025Human Use of NHI(人間によるNHIの使用)アプリケーション開発・保守時に、開発者や管理者が個人の人間的 アイデンティティで行うべき手動タスクに非人間的アイデンティティを悪用し、監査やアカウンタビリティの欠如などのリスクを引き起こす問題。手動タスクには適切な権限を持つ個人のアイデンティティを使用し、NHIの人間による使用を禁止する。NHIの異常使用を検出するモニタリングを実装し、承認されたアクセスパターンから逸脱した使用を特定する。監査とアカウンタビリティを確保するため、人間とNHIの活動を明確に区別する。
    出典:OWASP Non-Human Identities Top 10より弊社編集・和訳

    企業がとるべき対策

    NHI固有の対策(NHI10:2025人間によるNHIの使用)もありますが、例えば人の認証に関する対策と似たようなもの(オフボーディング対策、認証情報のハードコードの排除、最小権限の原則の徹底、認証方法のアップデート、環境分離やシステム間での再利用禁止)も多く含まれます。企業のIT環境は今後、AI統合やレガシーシステムの置き換え、人手不足を背景とした業務の自動化を中心に大きく変動していくことが予想されます。

    NHIはアプリケーション間、システム間といったマシン間の認証に用いられることから、AI統合や業務のデジタル化・自動化において利用される機会が増えていきます。新しい概念であり、新しいセキュリティ上のリスクでもあり、なかなか理解するのが難しい分野ではありますが、少なくとも、以下の点においてセキュリティ上重要であることをご理解いただければと思います。

    • NHIは企業のデジタル資産やシステム間の接続のために多数用いられており、攻撃者から見たときに非常に広い攻撃面となりうること
    • 特権が付与されるNHIも存在することから、攻撃者から見たときに有用な攻撃面であるが、最小権限の原則が適用されていない場合、防御側にとっては保護が難しいこと
    • 人間の認証と同じく、認証方法がセキュリティリスクの高いもの(単純なAPIキー)からセキュリティリスクが低いもの(OAuthと証明書の同時活用)まで非常に多様であり、選択を間違うと攻撃された際の被害が甚大であること

    セキュリティは「開発初期から」「全社横断で」

    3つのTop 10に共通しているのは、「問題の多くは設計段階・開発段階で防げる」という事実です。脆弱性や権限ミスは、開発中の選択や運用ポリシーによって生まれるため、セキュリティは“あとから付け足す”ものではなく、最初から組み込むべき設計要件であるという考え方がますます重要になっています。また、情報システム部門だけでなく、開発チーム・運用チーム・経営層を巻き込んだ全社的なセキュリティ体制の確立が求められます。

    OWASP Top 10を「読むだけ」で終わらせないために

    OWASPのTop10シリーズは、ただの知識リストではありません。それぞれのリスクが「なぜ問題なのか」「どう防げるのか」を考えることで、企業ごとのセキュリティ成熟度を高めることができます。自社システムに照らして「どこが該当するか」「どのリスクが潜在しているか」をチームで共有し、日々の開発・運用の判断にOWASPの知見を活用することが、最も効果的なセキュリティ強化への第一歩です。3回にわたる本シリーズが、皆さまのセキュリティ戦略の一助となれば幸いです。

    【参考情報】

    【連載一覧】

    ―第1回「OWASP Top 10とは?アプリケーションセキュリティの基本を押さえよう」―
    ―第2回「OWASP API Security Top 10とは?APIの脅威と対策を知ろう」―

    注:
    1)ここでは読者の皆さんに理解しやすいようにIDとしていますが、実態としてはデジタル的な構成要素(digital construct)であり、デジタル的な主体(digital entity)となります。
    2)Continuous Integration/ Continuous Delivery(継続的インテグレーション/継続的デリバリー)の略語
    3)https://cloudsecurityalliance.org/blog/2024/03/08/what-are-non-human-identities

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像