無料会員なら、交流会・掲示板・会員の道具が使えます。

無料登録 →
← 投稿一覧

「セキュリティ対策して」とAIに頼むだけでは、穴だらけだった話

かつ

かつ

2026/10/05

「セキュリティ対策して」と頼むだけでは穴だらけ。ASVSの基準で246項目を1つずつ点検し、対象203項目の99%(201項目)が基準を満たす結果に。

「不正アクセスのリスクは、無くせるものではありません。だからこそ、やられたときに『○○という基準の対策は、事前にちゃんとしていた』と言えるようにしておきたい」。

カツプロ自身の会員サイトで、この考えのもとに2日間かけてセキュリティ点検をやり直しました。やってみて分かったのは、AIに「セキュリティ対策をして」と一言で頼むだけでは、穴だらけの対策にしかならないということです。この記事では、何が足りなかったのか、どう頼み直したら基準を満たせたのかを、実際の数字とあわせて紹介します。

結論:「セキュリティ対策して」だけでは、AIは思いついた範囲しか見てくれない

  • 以前も「セキュリティも見ておいて」という指示で、他人のデータを見られる抜け(認可)・外部サーバーへの不正な通信(SSRF)・本番環境のデバッグ設定などは一通り見つけて直していました(2026年6月の点検。カツプロ調べ)。
  • 今回、「OWASP ASVS 5.0 の Level 1・2、全246項目を1つずつ照合して」と、範囲と基準を具体的に決めて頼み直したところ、「満たしていない」が37項目、「一部だけ満たす」が80項目、新たに見つかりました(カツプロ調べ)。
  • 直したあとは、不適合2項目・一部34項目まで減りました(同上)。
  • 原因は、以前の指示が「何を基準に、どこまで見るか」を決めていなかったことだと考えています。AIは、言われていない範囲までは自分で広げてはくれません。 範囲を決めずに頼むと、その分だけ穴が残る、というのが今回の実感です。

最初の指示には「ものさし」が無かった

カツプロは今年6月、本格運用を始める前に一度、全サービスの点検を行いました。認可(他人のデータを見られないか)・入力のチェック・サーバー外部への通信(SSRF)など、指示した範囲では直せていました。

ただしこのときの指示は「セキュリティ・整合性・誤字脱字を見て」という大まかなものでした。何件のうち何件を見たのか、どの基準に照らしたのか、という「ものさし」がありませんでした。 だから「終わったかどうか」も、感覚でしか判断できていませんでした。

今回の指示:基準を5つ決めて、246項目を1つずつ照合する

今回、最初に決めたのは「何を基準にするか」でした。自分たちで思いついた項目ではなく、世界で広く使われているか、政府・所管機関が公式に出しているか、のどちらかを満たす基準だけを選びました。 使ったのは次の5つです(版の確認日はすべて2026年10月3日)。

基準 版 中身 なぜこれを選んだか
OWASP ASVS 5.0.0(2025年5月公開) アプリケーションのセキュリティ要件。Level 2まで 世界で最も使われているアプリの診断基準
OWASP Top 10 2025年版 よくある脆弱性の分類 世界中のセキュリティ診断が参照する分類
個人情報保護法ガイドライン(通則編) 令和8年6月一部改正 個人情報の安全管理措置 政府機関(個人情報保護委員会)が出す公式な指針
IPA「安全なウェブサイトの作り方」 改訂第7版 日本の代表的な実務ガイド 経済産業省所管の機関が出す日本の実務指針
PCI DSS(カード情報のセキュリティ基準) v4.0.1 クレジットカードを扱うサイトの基準 カード会社各社が共同で運営する国際団体が定める世界共通基準

出典:OWASP ASVS、OWASP Top 10:2025、個人情報保護委員会 通則編、IPA 安全なウェブサイトの作り方、PCI DSS v4.0.1。IPAは経済産業省所管の独立行政法人、個人情報保護委員会は個人情報保護法にもとづく政府の機関、PCI DSSはVisa・Mastercardなどカード会社が共同設立したPCI Security Standards Councilが定める基準です(各団体の公式サイトより)。

そのうえで、「このASVSの246項目を、1つずつコードを読んで、満たしている・一部だけ・満たしていない、のどれかを判定して」と頼みました。この**「全部」「1項目ずつ」「判定の基準」まで決めて渡す**のが、今回いちばん変えたところです。

実際に見つかった穴(上位5件)

今読んでいる人のサイトを狙うための手順にはならないよう、種類だけ書きます。 具体的な直し方はカツプロの開発記録に残していますが、非公開です。

  • 会員が書ける本文に、スクリプトを仕込める入口があった。 無害化の処理が入っていなかったため。
  • 決済の確認が「支払い済みかどうか」しか見ておらず、枠や金額を照合していなかった。
  • 会員同士で共有するための鍵1本で、他の会員のAI用APIキーまで取れる状態だった。
  • 管理者に2段階認証が無かった。
  • 使っているソフトの部品(ライブラリ)に、既に知られている脆弱性が31件(8個の部品)見つかった。

上位5件は、コードの行番号・実行したコマンドの出力つきで社内記録に残しています(カツプロ調べ)。

これ以外にも、ログイン・セッション・権限・入力チェック・通信の暗号化・ログの残し方など、ASVSの項目に沿って直した内容を、39回に分けて社内の記録に残しました(カツプロ調べ)。

カード決済(Stripe)側で分かったこと

カツプロの決済は3つとも、カード番号を自社のサーバーに一度も通さない作り(Stripeの決済画面にそのまま飛ばす方式)でした。これは元から基準を満たしていました。

ただし、PCI DSSが要求する「カード情報の安全基準に自分たちが適合しているか」を文書で示す準備ができていませんでした。今回、次を揃えました。

  • Stripeが発行する「準拠証明書(AoC)」を取得・保管
  • 自己評価(SAQ A・全27問)に実際に記入。残り2種類(外部の脆弱性スキャン業者と契約していないこと/レンタルサーバー会社とのPCI関連の取り決め文書が無いこと)は「対応できていない」とそのまま記録(今年は外部業者と契約せず、現状を正直に記録として残す形にしました)
  • 決済に使うAPIの鍵を、「全権限」から「必要な8つの操作だけ」に絞った鍵へ交換

対応後の到達点:246項目のうち99%が基準を満たす

対応前 対応後
ASVS 246項目中「満たしている」 86 167
同「一部だけ」 80 34
同「満たしていない」 37 2
該当なし(その機能を持たない) 35 35
外部の仕組みが担う(Laravel・Stripeなど) 8 8

246項目のうち「該当なし」「外部の仕組みが担う」の43項目を除いた203項目でみると、201項目(99%)を満たすか一部満たしています(カツプロ調べ)。残り2項目は、共有のレンタルサーバーでは技術的に実行できないもの(例:ファイルのウイルス検査)で、代わりの対策(受け付けるファイルの種類を絞る、など)を文書に残しています。

教訓:AIへの指示は「基準」と「全部」まで言わないと伝わらない

今回の作業を振り返って、一番の反省点はここでした。

  • 以前の「セキュリティ見ておいて」という指示は、何を基準に、どの範囲まで見るかが決まっていませんでした。 これだと、AIは「思いついた範囲」までしか見てくれません。
  • 「ASVS 5.0 の Level 1・2、246項目を全部、1つずつ」のように、基準の名前・版・対象の数まで具体的に言うと、AIは抜け漏れなく、しかも「あと何項目」と自分で数えながら進められます。
  • これはAIの限界というより、人に頼むときも同じです。「ちゃんとやっといて」より「このチェックリストを上から順に全部」の方が、漏れは減ります。AIだと、その差がより大きく出た、というのが実感です。

まとめ:「セキュリティ対策して」だけで終わらせない

  • 対策は「やられないこと」を目指すものではなく、**「やられたときに、基準どおりの対策を事前にしていたと示せること」**を目指しました。
  • 今のカツプロは、OWASP ASVS 5.0 Level 1・2の246項目のうち、対象になる203項目の99%(201項目)を満たすか一部満たしており(カツプロ調べ)、PCI DSSの自己評価も記録として残っています。
  • AIにセキュリティ対策を頼むなら、「セキュリティ対策をして」の一言で終わらせず、「基準の名前・版・対象の数」まで具体的に伝えることをおすすめします。

この記事の著者・監修

カツ
生成AIエンジニア/フロントエンドエンジニア/舞台監督などなど

カツ

カツプロ運営者のカツです! AI・Web関連から、日常のことなど、私目線の回答も交えながらお伝えします!

この記事をシェア

note

スポンサーリンク

コメント(0)

まだコメントはありません。

コメントは Tier 1(有料)の機能です。ログインのうえアップグレードしてください。

こちらの記事も読まれています