Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
AI概要 - セキュリティコミュニティ「WEST-SEC」
[go: Go Back, main page]

セキュリティコミュニティ「WEST-SEC」

セキュリティ初心者の方でも参加できる「わかりやすい」セキュリティイベント、8割解けるCTFを開催しています。

AI概要

1.AIとは

1.1 AIとは

・AIの概要については、以下がとてもわかりやすいです。
https://www.soumu.go.jp/use_the_internet_wisely/special/generativeai/data/file01.pdf
・AIのフルスペル

フルスペル 説明 補足
Artificial Intelligence(人工知能) コンピューターに人間のような知的な処理(認識、推論、学習など)をさせようとする技術全般 一般的にAIといえばこちら
Augmented Intelligence(拡張知能) 人間の意思決定や作業をサポートし、人間の能力を「拡張(Augment)」するためのツールという位置づけ 「ドラえもん」のような人間と同じように、あらゆる知的作業をこなせるAIであるAGI(Artificial General Intelligence / 汎用人工知能)は未到達のため、現実のAIは人間を置き換えるものではなく補助するものという思想から、IBMなどが提唱。かつては、今のAIというのは、知能といってもミツバチの脳くらい、というような表現をされた人もいた

・AI進展の経緯

(出典:https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r06/pdf/n1310000.pdf

ブーム 年代 特徴・代表的な技術 限界・冬の時代の理由
第1次AIブーム 1950年代〜1960年代 「推論」と「探索」。パズルや迷路のような明確なルールがある問題(トイ・プロブレム)を解けるようになった。 現実の複雑な問題には対応できず、行き詰まった
第2次AIブーム 1980年代 「エキスパートシステム」。専門家の知識(ルール)を大量にコンピューターに読み込ませて、専門家のように回答させる技術。 人間の持つ膨大な常識や、例外ルールをすべて手作業で入力するのが不可能だった(知識獲得のボトルネック)。
第3次AIブーム 2000年代〜2010年代 「機械学習」と「ディープラーニング(深層学習)」。ビッグデータをもとに、AI自身がデータの特徴を自ら学習できるようになった。 (現在も社会実装が進行中)ただし、AIがなぜその結論を出したか分からない「ブラックボックス化」などが課題に。
(参考)第4次AIブーム? 2020年代〜 「生成AI(Generative AI)」。テキスト、画像、音声などを人間のように自然に生成できる巨大な基盤モデルの登場。 もっともらしい嘘(ハルシネーション)や、著作権、倫理的な課題が議論されている。

1.2 生成AIとは

(1)生成AIの概要

生成AI(Generative AI)とは、あらかじめ学習した膨大なデータをもとに、ユーザーの指示(プロンプト)に応じて、テキスト、画像、音声、プログラムコードなどの「新しいコンテンツ」を自動的に作り出すことができるAIのこと。

【参考資料】

(出典:https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r06/pdf/n1310000.pdf

(2)生成AIの機能

テキスト生成、画像生成、音声・音楽生成、コード(プログラム)生成、動画生成など

【参考資料】

(出典:https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r06/pdf/n1310000.pdf

(3)なぜ「従来のAI」と呼び分けるのか?

これまでのAIと生成AIでは、目的が異なるため、呼び分けることが多くなっています。

種類 役割 出力
従来のAI 与えられたデータを見分ける・予測する・評価する 事実に対する答えや数値(分類・予測・判定など) 顔認証、障害物検知、レコメンド機能
生成AI 学習したパターンから新しいものを作り出す 新しい文章・画像・音楽などのコンテンツ ChatGPT、Geminiなど

1.3 生成AIの基本用語

用語 解説
生成AI(Generative AI) テキスト・画像・音声などを「生成」する人工知能。学習データをもとに新しいコンテンツを作る。
LLM(Large Language Model) 大規模言語モデル。ちなみに、LM(Language Model:言語モデル)とは、人間の言葉のルールや意味を学習し、文章を読解したり作成したりできる「AIの頭脳」のことです。言葉のルールを徹底的に学習して作られた「超巨大な法則集(=言語モデル)」が、人間の脳のように瞬時に計算して答えを導き出すため、結果として「賢い頭脳」のように見える。こうして、自然な言語で応答・要約・翻訳などを行うことができる。

「LLM = 生成AI」のように使われることもある。それは、人間が言葉で出す指示をLLMが解釈しており、文章を生成する際にもLLMが利用されるためである。ただし、画像生成や動画生成の場合、指示(プロンプト)の意味を解釈する部分まではLLMを使うが、その内容をもとに実際の画像や動画を生成する部分には、LLMではなく拡散モデルなどの別の技術が使われている。
自然言語(Natural Language) 人間が日常的なコミュニケーションで自然に使っている言葉(日本語や英語など)のこと。対義語は、コンピューターに指示を出すために人工的に作られた「プログラミング言語(PythonやC言語など)」
プロンプト(Prompt) モデルへの入力指示文。質問や命令を自然言語で与える。
コンテキスト(Context) プロンプトの「背景」や「前提条件」。AIに意図通りの回答を出させるために必要な周辺情報(目的、ターゲット、過去の会話履歴など)。

AIへの入力文章=コンテキスト(背景)+プロンプト(指示)
プロンプトエンジニアリング モデルが望む出力を出すように指示文を設計する技術。
RAG(Retrieval-Augmented Generation) 社内規定や独自のPDFなどの外部データをAIに検索させ、その情報を元に回答を生成させる仕組み。この仕組みを手軽に体験できるツールがNotebookLM
【RAGを導入するメリット】
❶嘘(ハルシネーション)を激減させる
❷社内の非公開データが使える(AIの学習には利用されない)
マルチモーダル(Multimodal) テキスト・画像・音声など、複数の入力形式を同時に理解・生成するAI。
エージェント(AI Agent) 自律的にタスクを遂行するAI。検索・実行・判断を組み合わせて動く。
ハルシネーション(Hallucination) モデルが事実ではない情報をもっともらしく生成する現象。
ハーネス(Harness) AIモデルやソフトウェアをテスト・評価するための「枠組み(フレームワーク・実行環境)」のことです。元々は安全帯や馬具の「ハーネス(対象を固定・制御する道具)」から来ており、AIを特定のテスト環境にセットして検証するという意味合いがある。生成AIにおける使われ方として、AIの性能(読解力、論理的思考、正確性など)を客観的に測定する「評価ハーネス(Evaluation Harness)」があります。EleutherAIの「lm-evaluation-harness」などが有名で、世界中のAIモデルの実力を同じテスト問題・同じ基準でベンチマーク(比較)する際に欠かせないシステムです。
MCP(Model Context Protocol) AI(LLM)が外部のデータソースやツール(PC内のローカルファイル、社内データベース、Slackなどの外部サービス)に安全に接続するための「世界共通の接続ルール(オープンプロトコル)」です。2024年末にClaudeを開発するAnthropic社がオープンソースとして発表。これまでAIエージェントに自社データやツールを連携させるには、AIモデルごと(OpenAI用、Google用など)にバラバラの専用システムを作る必要がありました。MCPという「共通規格」ができたことで、一度作ったデータ連携の仕組みを様々なAIから使い回せるようになる。
AGI(Artificial General Intelligence) 汎用人工知能。現在の生成AIが特定のタスク(文章作成や画像生成など)に特化しているのに対し、人間のように未知の問題にも柔軟に対応できる「人間と同等レベルの総合的な知能」

1.4 代表的なサービス

(1)代表的なサービス一覧(2026年3月時点)

現在の生成AI分野では、OpenAI(ChatGPT)・Google(Gemini)・Anthropic(Claude)が「三大AI」と呼ばれることが多い。

分野 サービス名 運営企業/特徴
総合LLM
(対話・文章)
ChatGPT
(GPT-5)
OpenAI
最新モデル「GPT-5」では推論・記憶・マルチモーダル処理が大幅に進化し、事実性も向上(以前はハルシネーションが多かったイメージがある)
Claude 4.6 Anthropic
・コーディングやPCの自律操作機能が強力で、エンジニアや実務家から圧倒的な支持。
・「わからないことはわからないと言う(嘘をつきにくい)」「一度に読み込める文書量が非常に多い」「日本語が自然」といった強み
Gemini
(Gemini 3.1)
Google
いろいろな面で優秀だと思います
Microsoft Copilot Microsoft
中身はOpenAIの最新技術がベース。ただ、2026年5月くらいから?Claudeのエンジンも活用
Office製品連携やセキュリティに優れ、AIよりも?検索事実に基づく出典提示を重視
Grok
(Grok 2 / 3等)
イーロン・マスク氏が率いるxAI社によって開発
X(旧Twitter)のリアルタイムデータと直結。「ファンモード(Fun Mode)」がある
検索・調査
(RAG)
Perplexity AI Perplexity
出典元を明記して回答する「検索特化型」AI。
NotebookLM Google
論文や規定など、手持ちの資料(PDFや動画等)を読み込ませて解説・分析させるツール。
画像生成 DALL·E 3 OpenAI
ChatGPT内で会話しながら手軽に画像を生成可能。
Midjourney
(v7 / v8)
Midjourney
圧倒的な芸術性。
Discord不要の「Webブラウザ完結」が主流になり、使いやすさが格段に向上。
資料作成
(プレゼン・図解)
Gamma Gamma
テキストを入力するだけで、デザインされたスライド資料を自動生成。
Canva Canva
インフォグラフィックやSNS画像など、あらゆるデザインをAIが支援。
Napkin AI Napkin
文章から「概念図」「チャート」などの図解を一瞬で生成。
動画生成 Sora
(Sora 2等)
OpenAI
一般公開済み。
現実の物理法則の正確な再現や、動画と同期した音声(環境音など)の同時生成が可能。
Runway
(Gen-4 / 4.5等)
Runway
映像業界のプロも愛用。
カメラワークの細かな制御や、キャラクターの一貫性維持機能が強力。
コード生成 GitHub Copilot Microsoft / GitHub
エディタ上でコード補完を行う、エンジニア必須ツール。
Amazon Q Developer AWS
AWS環境の開発・運用に特化した支援AI
(2) 代表的なマルチLLM・開発基盤サービス(2026年3月時点)
分野 サービス名 運営企業/特徴
マルチLLMポータル Poe Quora
GPT、Claude、Geminiなど、世界中の最新AIを月額制で使い放題できるプラットフォーム。モデルの切り替えや比較に最適。
マルチLLM検索 Genspark Mainstream
複数のAIを並列で走らせ、情報を比較・検証しながら「専用のまとめページ」を自動生成する
AIオーケストレーション Dify Dify.ai
複数のAIやツールを連携させ、独自の「AIエージェント」をノーコードで構築できる開発プラットフォーム
MaaS Amazon Bedrock AWS
主要なAIモデルをAPI経由で利用可能。AWSの既存環境内で「プロンプトインジェクション対策」や「ログ監視」を統合管理できるインフラの標準。
国内特化型LLM tsuzumi NTT
軽量・省電力で、日本語の図表読解に強い国産AI。社内サーバー(オンプレミス)等での運用が可能で、機密情報の漏えいの懸念がある場合の選択肢
(3)代表的なサービスおよび企業の比較
比較項目 ChatGPT (GPT-5) Claude (Claude 4.6) Gemini (Gemini 3.1) Microsoft Copilot
開発企業 OpenAI Anthropic Google (Google DeepMind) Microsoft
主な創始者 サム・アルトマン、グレッグ・ブロックマン、イリヤ・サツケヴァー 等 ダリオ・アモデイ、ダニエラ・アモデイ(元OpenAI幹部) ラリー・ペイジ、セルゲイ・ブリン(Google) / デミス・ハサビス 等 ビル・ゲイツ、ポール・アレン(現CEO:サティア・ナデラ)
上場/非上場 非上場 非上場 上場 上場
資金調達・
資本背景
Microsoftからの巨額出資(100億ドル超)に加え、有力VCや事業会社からの大型調達で評価額は数千億ドル規模。 Amazon(AWS)やGoogleから数十億ドル規模の巨額出資を獲得。VCからの調達も盛ん。 親会社Alphabet(Googleのこと)の潤沢な自己資本(株式市場からの資金)と巨大なインフラをフル活用。 MS本業の莫大な利益をAI開発に再投資。OpenAIの筆頭株主。
収益構造・
利益規模
売上高は急拡大(数十億ドル規模)しているが、GPT-5等の膨大な計算コストにより、利益率はまだ発展途上。 開発者向けAPI利用料と企業向け契約が主軸。利益よりも安全性と性能向上への投資を最優先。 AI単体の課金だけでなく、検索広告の維持、Google Cloudの売上増など、複合的に莫大な利益を創出。 Office製品へのAI組み込み(法人向けライセンス)とAzure(クラウド)で確実かつ莫大な利益を上げる。
月額利用料
(個人向け)
約20ドル
(ChatGPT Plus等)
約20ドル
(Claude Pro)
約20ドル
(Gemini Advanced / Google One AI Premium)
約20ドル
(Copilot Pro)
推定利用者・
会員数
数億人規模
(単独のチャットUIとしては世界最大のアクティブユーザー数)
数千万人規模
(一般層よりエンジニア・研究者・プロフェッショナル層に偏重)
数十億人規模
(AndroidやGoogle検索、Workspace経由の潜在ユーザーを含む)
数億人規模
(Windows OSやOffice 365の月間アクティブユーザー基盤)
Q.AnthropicはAmazonやGoogleの支配が強い?

A.Anthropicの創業者たちは元々OpenAIの幹部でしたが、「OpenAIが利益至上主義になり、Microsoftに支配されすぎている」ことに反発して独立した経緯があります。そのため、Anthropicは特殊な独立委員会を社内に置いて、どれだけAmazonやGoogleが巨額の資金を出しても、会社の意思決定権取締役の任命権を握らせないようにしています。また、AmazonとGoogleの両方から出資を受け、どちらか一方に支配されないようにも注意している。

Q.Microsoftが、自前でCopilotがあるのに、OpenAIに投資している理由は?

A.Microsoftは自前で最強のAIを作ることを実質的に諦め、OpenAIに巨額の資金を投じることで、その技術を独占的に使えるようにした。よって、Microsoftの「Copilot」の頭脳は、OpenAIの「GPTシリーズ」そのものです。

(4)参考:名前の由来
AIサービス 由来
Gemini Geminiは、ラテン語で「双子」を意味し、自社の2つの主要なAI研究チーム(Google BrainとDeepMind)が統合したことや、マルチモーダル(テキスト・画像・音声など複数の能力を持つ)というAIの多面性を表現
Copilot 副操縦士という意味で、主役(操縦士)はあくまで人間であり、AIは人間の作業の隣に寄り添って支援をする
Claude Anthropicの公式説明はないが、情報科学の父 クロード・シャノン(Claude Shannon) へのオマージュ(敬意)という説がある
ChatGPT チャット形式のインターフェースを持つGPT(Generative Pre-trained Transformer)。世の中にある大量のテキストデータをあらかじめ読み込んで学習し(Pre-trained = 事前学習された)、ユーザーの指示に合わせて新しい文章を自動で作り出す(Generative = 生成的な)ことができる、「Transformer」という仕組みを用いたAIモデル。英単語としてのTransformer(変容させるもの)とは違い、AIの分野においては、2017年にGoogleの研究チームが発表した「画期的な深層学習のモデル(AIの脳の仕組み)」の名前を指す

1.5 AIエージェント

(1)概要

・これまでの「ChatGPT」や「Claude」のようなチャットAIは、人間が質問してAIが答えるという「対話型(アシスタント)」でした。一方、「AIエージェント」とは、人間が「目的(ゴール)」だけを与えれば、AIが自律的に計画を立て、ツール(PCのファイル、ブラウザ、他のアプリなど)を操作して、最後まで作業を完遂してくれるシステムのこと。
・AIエージェントの「頭脳」となるAIモデル(基盤モデル)としては、Claudeだけでなく、GeminiやGPTシリーズなど様々な最新の言語モデルが使われます。また、エージェントは目的を達成するために、必要に応じて「画像生成AI」や「動画生成AI」といった別のAIツールを自律的に呼び出して使うことも可能。

(2) 違いの例

あなたが「このウェブサイトの背景色を青から赤に変えて」と頼んだ場合、両者の動きはこう変わります。

仕組み 動作 備考
従来のチャットAI(ChatGPTなど) 「背景色を赤に変えるためのCSSコードはこれです。background-color: red; このコードをあなたのファイルの該当箇所にコピー&ペーストしてください。」と「やり方」を教える。 相談役
AIエージェント(Claude Codeなど) 「承知しました。(数秒後)…関連するファイルを探して、該当するCSSファイルを開き、背景色を赤に書き換えて保存しました。ブラウザを更新して確認してみてください。」と、「作業」まで完了させる。 自律的に手を動かす労働力
(3) 製品例

・Claude Code(Anthropic): プログラミング分野における強力な切り札。自律的にコードを修正・テストする。料金はAPIを通じた従量課金(使ったデータ量や稼働時間で支払う)。
・Microsoft Copilot (Copilot Studio): WordやExcelなどオフィス業務の自動化に特化。
・OpenAI Operator: PCの画面を読み取り、人間の代わりにブラウザなどを自律操作する。
・Project Jarvis / Vertex AI Agents(Google): ブラウザ操作の自動化や、企業独自の業務エージェント開発基盤。

1.6 生成AIの使い方のコツ

(1)よくある疑問

・どうやったら的確な回答を得られる?
・敬語の方がいい?英語で指示した方が的確?
・AIに「嘘」をつかせないためには?
・思い通りの答えが返ってこない」を解決するには?

Q.チャットをわけて複数の質問を同時に実行しても問題ない?前のが終わるのを待った方がいい?

→A.基本的には全く問題ない。 前の回答が終わるのを待たずに、どんどん質問していい。ただ、前の回答を前提とした追加質問は、待った方がいいでしょうね。

(3)CO-STAR(コースター)フレームワーク

生成AIから意図した通りの高品質な回答を引き出すために、シンガポール政府(GovTech)のデータサイエンス&AI部門が提唱したプロンプト作成の型(テンプレート)です。

要素 意味 説明
C (Context) 背景・前提 タスクの背景や前提条件を示す。 「Webアプリケーションの脆弱性に関する技術書を執筆しています」
O (Objective) 目的 AIに実行してほしい具体的な指示を書く。 「JWTの脆弱性について解説する章の構成を作成してください」
S (Style) スタイル・文体 参考にしてほしい文章スタイルや役割を指定する。 「技術専門誌や資格試験のテキストのような、論理的で正確な文体」
T (Tone) トーン・語り口 文章の雰囲気や態度を指定する。 「専門的かつ客観的なトーン」
A (Audience) 対象読者 誰に向けた文章なのかを指定する。 「セキュリティ資格を目指すITエンジニア」
R (Response) 出力形式 回答フォーマットを指定する。 「Markdown形式で、箇条書きを使って出力してください」
(5)音声入力を使いましょう

・キーボードを打つのは結構面倒くさいので、マイクボタンがあると思うので、そこで入力するとめちゃくちゃ楽ですよ。
・Windows標準でもそこそこ使えます。Windowsボタン+Hで起動します。
・Windows内は、codex連携も便利。無料枠でもある程度は使えるけど、ChatGPTの課金が必要です。
・macユーザであれば、VoiceInkは「API連携なし」でも使えます。つまり、追加の従量課金なし(完全無料)で動かすことが可能です

1.7 質問

Q.英語でプロンプトを入れた方がいい?

→学習データは英語が圧倒的に多いため、専門的・技術的なテーマほど英語の優位性が出やすい場合がある。また、翻訳のブレが結果のブレにつながる?

Q.敬語を使った方がいい?
Q.切れたり怒って質問するといい回答が返ってくる?
Q.人を見て回答の質を変えてる?
→以下はGeminiの画面だが、質問に答える前に、プロセスが見えるときがある。このように、私がどういう人物で、どういう回答を求めているか、過去の履歴を記憶しているみたいだ。

  (中略)


  (中略)

Q.過去のプロンプトをどこまで記憶している?新しいチャットにすれば、リセットされる?
Q.ヘビーユーザーの場合、AI側が損なので、効率化のため、回答の質を下げたりする?
Q. なぜ堂々と自信満々に嘘をつくの?

→AIは「正しいことを言う」のではなく「それっぽい文章を生成する」仕組み(LLM)のため

Q. 文字数を「400字以内で」と指定しても、平気でオーバーするのはなぜ?

→文字数のカウントが苦手なのはAIの既知の弱点です。トークン(単語のかたまり)で処理しているため、文字数を正確に把握しにくい構造です。

Q. 「絶対に」「必ず」と強調すると、言うことを聞いてくれやすくなる?
Q. 挨拶(こんにちは、ありがとう)は入力した方がいいの?
Q.チャットは、質問が変わる時は、新規で作った方がいい?
Q.「ありがとう」、「期待通りの回答」などと、AIを褒めたほうがいい?
Q. 同じことを何度も聞くと、AIは疲れたり、面倒くさがったりするの?
Q. 時間帯(深夜や休日など)によって回答のスピードや賢さは変わるの?
Q. 無料版と有料版で、頭脳部分はどのくらい違う?良さそのものは全く同じ?回数制限だけ?
→Claude の場合、無料版はHaiku等の軽量モデル、有料版はSonnetやOpusの高性能モデルにアクセスできます。

2.Gemini

2.2 モード

(1)思考モードとProモードの違いを説明

■AIの処理モード比較表

モード名 役割 特徴
Proモード エンジンの性能 最も語彙が豊富で、複雑な文脈を理解する能力が高い
思考レベル 考える時間 出力前に論理的な計画や見直しプロセスを挟む

2.2 Deepresearch

結果をまずは、エクスポート(GoogleDrive)して、それを、NotebookLM側でインポートとしてコンテンツとしておき、あとから再度要約したり、ポイントだけ抜き出すのに便利

2.3 画像生成

Q.Geminiで画像を作成するとき、モードはどれにしたらいいの?

A.モデルはPro、思考レベルは標準がおすすめです。
思考モードは、数学やコードなどの論理的な推論のために作られた機能であり、思考モードにしても、画像のクオリティが劇的に上がるわけではなく、ただ生成時間が延びてしまうことが多い。

Q.英語で指示した方がいい?

A.(Geminiの回答)
最近の画像生成AI(GeminiのImagen 3やMidjourneyなど)は、複雑な芸術的表現やライティングの指定は英語で行い、画像内に入れたいテキストのみ日本語で指定するスタイルが、最もクオリティが高く意図通りのサムネイルを出力しやすい傾向にあります。

2.4 サムネイル画像作成

(1)プロンプトもAIに考えてもらう

・王道は、プロンプトを考えてもらって、それを入れるのがいいと思う。ただ、プロンプトを考えての指示がまあまあ難しく、イイ感じに作ってくれない。
あと、以下が、出来上がった指示だが、結果はその下
■プロンプト

An eye-catching, highly inviting 16:9 event thumbnail design. A beautiful isometric, sleek corporate sci-fi diorama. The composition intricately details a miniature, high-tech fortress made of translucent glass servers, glowing green firewalls, and intricate network paths. A translucent, architectural hand made of pure white light delicately places a glowing red "Flag" on top of the central tower, symbolizing the construction and operation of a CTF environment. Elegant, clean negative space is strategically left in the top and side areas for typography. The use of clean, corporate hues of Deep Space Blue, Emerald Green, and stark White creates a professional yet highly engaging, strategic atmosphere. The Japanese main text "社内セキュリティ人材を育てる!CTFの作り方&運営ノウハウ大公開", the subtitle "構築・作問・運用まで、その事例やノウハウを完全解説", and supporting text "2026/07/28(火)19:00~21:00 オンライン", are integrated into the layout with high legibility and modern editorial flair. High-quality 3D digital art, Octane Render, masterpiece, perfect for an educational event page --ar 16:9


正直、良いのか悪いのかよくわからない。

・そこで、ChatGPTにプロンプトを考えてと言ったら、割といいのを出してくれた。そこで、以下をプロンプトとしてGeminiに作ってもらった。そこそこイイ感じ。※追加で、「真ん中の文字をFLAG{#WEST_SEC}に変更して」と指示した

まあまあいいかも

(2)プロンプトで直接指示
・以下のイベントのサムネイル画像を作って。

【イベント概要】
1.タイトル:社内セキュリティ人材を育てる!CTFの作り方&運営ノウハウ大公開
2.サブタイトル:構築・作問・運用まで、その事例やノウハウを完全解説
3.日時:2026/07/28(火)19:00~21:00 
4.開催形式:オンライン
5.内容:CTFおよびCTFの魅力を紹介する。CTFd構築と管理者操作デモ、社内CTFの事例紹介、プチCTF大会の実施

【注意点】
・サブタイトルはサムネイルに書かなくてもいい
・「タイトル」「日時」「開催形式」などの文字も入れなくていい。
・内容に関しては、サムネイル作成に最適なものにするために使えばいいので、無理にサムネイルに入れなくていい

なんか気に入らなかったので、以下を追加で指示

黒板風にして


まあ、悪くないけど、もっといい指示がありそうだ。
・以下は、Connpassの案内ページを貼り付けて、サムネイルを作ってと指示したもの。意外に悪くない。指示は、画像を指定して、「日時は、以下です。これのサムネイル画像を作って」

サムネイル画像って、画像を見てどんなイベントなのかを一目でわかることもメリットなので、意外にいいかなと思って、これを採用した。

感じたことは、毎回、全く違う回答が返ってくるので、色々とやってみるのがいい気がする。

2.4 エンタメ

(1)ゲームを作ってみた

インベーダーゲームだが、ローカルのHTMLファイルで動くものを作ってと指示したら、わずか140行足らずで、作って来た。動きは微妙なところはあるが、結構遊べる。すごい!

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>スマホ対応スペースインベーダー風(安定入力版)</title>
<style>
  :root{--bg:#0b0e14;--panel:#121826;--text:#e6eaf2}
  html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans JP",system-ui,Arial,sans-serif}
  body{display:flex;align-items:center;justify-content:center}
  .panel{background:#121826;border:1px solid #1a2340;border-radius:12px;padding:12px;box-shadow:0 0 20px rgba(0,0,0,.4);max-width:680px;width:96vw}
  h2{margin:4px 0;text-align:center}
  .muted{font-size:13px;color:#9aa4b8;margin:6px 0}
  canvas{background:#0b0f1f;border:1px solid #1b2446;border-radius:8px;display:block;width:100%;height:auto;touch-action:none}
  .ctrl{display:flex;justify-content:space-around;margin-top:10px;gap:8px}
  .btn{flex:1;border:1px solid #24315a;background:#151c2f;color:#e6eaf2;border-radius:10px;padding:12px;cursor:pointer;font-size:16px;
       touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
  .btn.active{background:#23335a}
  .row{display:flex;gap:8px;justify-content:center;margin-bottom:6px}
</style>
</head>
<body>
<div class="panel">
  <div class="row">
    <button id="restartBtn" class="btn" type="button">🔄 リスタート</button>
    <button id="pauseBtnTop" class="btn" type="button">⏸ ポーズ</button>
  </div>
  <h2>スペースインベーダー風</h2>
  <div class="muted">PC: ← → / Space | スマホ: 下のボタン(長押しで連射)</div>
  <canvas id="game" width="640" height="480"></canvas>
  <div class="ctrl">
    <button id="leftBtn"  class="btn" type="button">◀️</button>
    <button id="fireBtn"  class="btn" type="button">🔫</button>
    <button id="rightBtn" class="btn" type="button">▶️</button>
    <button id="pauseBtn" class="btn" type="button">⏸</button>
  </div>
  <div id="info" class="muted" style="text-align:center"></div>
</div>

<script>
(()=>{const cvs=document.getElementById('game'),ctx=cvs.getContext('2d');
const W=cvs.width,H=cvs.height,info=document.getElementById('info');
let keys={left:false,right:false,space:false},bullets=[],enemyBullets=[],enemies=[],score=0,level=1,paused=false,gameOver=false,lastShot=0;
const player={x:W/2-20,y:H-40,w:40,h:16,lives:3};
const SPEED=4,SHOT_CD=150,ENEMY_ROWS=4,ENEMY_COLS=8; let enemyDir=1,enemySpeed=0.8;

// ===== 効果音(Web Audio)=====
const actx=new (window.AudioContext||window.webkitAudioContext)();
function resumeAudio(){ if(actx.state==="suspended") actx.resume(); }
function beep(type=0,f=440,d=0.1,v=0.2){resumeAudio();const o=actx.createOscillator(),g=actx.createGain();o.type=["square","sine","triangle","sawtooth"][type%4];o.frequency.value=f;g.gain.value=v;o.connect(g);g.connect(actx.destination);o.start();o.stop(actx.currentTime+d);}
const SE={shoot:()=>beep(0,600,0.08,0.15),hit:()=>beep(2,200,0.1,0.25),damage:()=>beep(3,100,0.15,0.3),clear:()=>beep(1,880,0.3,0.3),over:()=>beep(0,80,0.4,0.3)};

// ===== 初期化 =====
function resetEnemies(){enemies=[];for(let r=0;r<ENEMY_ROWS;r++)for(let c=0;c<ENEMY_COLS;c++)enemies.push({x:60+c*60,y:40+r*40,w:28,h:18,alive:true});enemyDir=1;enemySpeed=0.8+(level-1)*0.2;}
function resetAll(){score=0;level=1;player.lives=3;gameOver=false;paused=false;bullets=[];enemyBullets=[];resetEnemies();info.textContent='';}
resetAll();

// ===== 入力(PC キーボード)=====
addEventListener('keydown',e=>{if(e.key==="ArrowLeft")keys.left=true;if(e.key==="ArrowRight")keys.right=true;if(e.code==="Space")keys.space=true;if(e.key.toLowerCase()==="p")paused=!paused;if(e.key.toLowerCase()==="r")resetAll();},{passive:false});
addEventListener('keyup',e=>{if(e.key==="ArrowLeft")keys.left=false;if(e.key==="ArrowRight")keys.right=false;if(e.code==="Space")keys.space=false;},{passive:false});

// ===== 入力(スマホ/Pointer Events)=====
function bindHoldButton(el, on, off){
  const down = (e)=>{e.preventDefault();el.classList.add('active');on();resumeAudio();};
  const up   = (e)=>{e.preventDefault();el.classList.remove('active');off();};
  el.addEventListener('pointerdown', down, {passive:false});
  el.addEventListener('pointerup',   up,   {passive:false});
  el.addEventListener('pointercancel',up,  {passive:false});
  el.addEventListener('pointerleave', up,  {passive:false});
}

bindHoldButton(document.getElementById('leftBtn'),
  ()=>{keys.left=true;}, ()=>{keys.left=false;});
bindHoldButton(document.getElementById('rightBtn'),
  ()=>{keys.right=true;}, ()=>{keys.right=false;});
// 発射は「押している間ずっと true」=連射
bindHoldButton(document.getElementById('fireBtn'),
  ()=>{keys.space=true;}, ()=>{keys.space=false;});

function bindTap(el, fn){
  const tap=(e)=>{e.preventDefault(); fn(); resumeAudio(); el.classList.add('active'); setTimeout(()=>el.classList.remove('active'),100);};
  el.addEventListener('pointerdown', tap, {passive:false});
}
bindTap(document.getElementById('pauseBtn'), ()=>{paused=!paused;});
bindTap(document.getElementById('pauseBtnTop'), ()=>{paused=!paused;});
bindTap(document.getElementById('restartBtn'), ()=>{resetAll();});

// ===== 判定 =====
const hit=(a,b)=>a.x<b.x+b.w&&a.x+a.w>b.x&&a.y<b.y+b.h&&a.y+a.h>b.y;

// ===== 更新 =====
function update(){
 if(paused||gameOver) return;
 if(keys.left)  player.x-=SPEED;
 if(keys.right) player.x+=SPEED;
 player.x=Math.max(0,Math.min(W-player.w,player.x));

 const now=performance.now();
 if(keys.space && now-lastShot>SHOT_CD){
   bullets.push({x:player.x+player.w/2-2,y:player.y-10,w:3,h:8,vy:-6});
   lastShot=now; SE.shoot();
 }
 bullets.forEach(b=>b.y+=b.vy);
 bullets=bullets.filter(b=>b.y>-12);

 enemyBullets.forEach(b=>b.y+=b.vy);
 enemyBullets=enemyBullets.filter(b=>b.y<H+12);

 let edge=false;
 enemies.forEach(e=>{if(!e.alive)return;e.x+=enemySpeed*enemyDir;if(e.x<0||e.x+e.w>W)edge=true;});
 if(edge){enemyDir*=-1;enemies.forEach(e=>e.y+=10);}

 enemies.forEach(e=>{if(!e.alive)return;if(Math.random()<0.003)enemyBullets.push({x:e.x+e.w/2,y:e.y+e.h,w:3,h:8,vy:3});});

 // 衝突
 bullets.forEach(b=>{enemies.forEach(e=>{if(e.alive&&hit(b,e)){e.alive=false;b.y=-99;score+=10;SE.hit();}});});
 enemyBullets.forEach(b=>{if(hit(b,player)){player.lives--;b.y=H+99;SE.damage();}});
 if(player.lives<=0){gameOver=true;info.textContent=`GAME OVER|SCORE:${score}`;SE.over();}
 if(enemies.every(e=>!e.alive)){level++;SE.clear();info.textContent=`LEVEL ${level}`;bullets=[];enemyBullets=[];resetEnemies();}
}

// ===== 描画 =====
function draw(){
 ctx.clearRect(0,0,W,H);
 ctx.fillStyle="#5b8dff";ctx.fillRect(player.x,player.y,player.w,player.h);
 ctx.fillStyle="#ffd166";bullets.forEach(b=>ctx.fillRect(b.x,b.y,b.w,b.h));
 ctx.fillStyle="#ff6b6b";enemyBullets.forEach(b=>ctx.fillRect(b.x,b.y,b.w,b.h));
 ctx.fillStyle="#c1ff9f";enemies.forEach(e=>{if(e.alive)ctx.fillRect(e.x,e.y,e.w,e.h);});
 ctx.fillStyle="#cbd5e1";ctx.font="14px system-ui";
 ctx.fillText(`SCORE:${score}`,10,20);ctx.fillText(`LIVES:${player.lives}`,120,20);ctx.fillText(`LEVEL:${level}`,220,20);
 if(paused){ctx.fillStyle="rgba(0,0,0,.5)";ctx.fillRect(0,0,W,H);ctx.fillStyle="#fff";ctx.fillText("PAUSED",W/2-32,H/2);}
 if(gameOver){ctx.fillStyle="rgba(0,0,0,.5)";ctx.fillRect(0,0,W,H);ctx.fillStyle="#fff";ctx.fillText("GAME OVER(🔄で再開)",W/2-110,H/2);}
}

// ===== ループ =====
(function loop(){requestAnimationFrame(loop);update();draw();})();
})();
</script>
</body>
</html>

2.5 毎回ゼロから説明しない(Gems)

(1)Gemとは

・「Gem」は、「Gemini」を短く親しみやすくした略称であると同時に、Gem(宝石、貴重なもの)という意味から、自分にとって必要な機能だけを抽出して磨き上げた特別なAI(=宝石)」という意味ではないかと。
・Gem(ジェム)は、一言でいうと「自分好みにカスタマイズした、専用のGemini」のこと。
・特定の資料のもと、特定の作業をさせたい場合、毎回「〇〇の専門家として答えて」「この資料に基づいて」「こういう言葉遣いで書いて」と細かく指示(プロンプト)を入力するのは手間がかかる。そこで、Gemを使って、そういった「前提となる指示」や「参照すべき資料」をあらかじめ設定して保存しておく
・ちなみに、Gemは、特定のカスタムAI(1個)で、GemsはカスタムAIを作る機能の名前
・GeminiはGems(ジェムズ)だが、他の生成AIだと、ChatGPT GPTs(ジーピーティーズ)、Claude Projectsなどがある。

(2)Gemの作り方

・Geminiの左側のメニューから「Gem」を選び、「新しいGem」をクリック。
・「名前」を付け、「カスタム指示」の欄に、このGemにどんな役割をしてほしいか、どういう条件で答えてほしいかを入力。
・Gemini Gems(ジェムズ)、ChatGPT GPTs(ジーピーティーズ)、Claude Projectsを使って、毎回ゼロから説明しなくても、自分専用のAI秘書を作れる。

・カスタム指示には、CO-STAR(コースター)フレームワークの内容をいれてもいいかも

2.6 GmailやGoogleドライブとの連携

(1)Gmail連携の設定

・左下の「設定(歯車マーク)」>「パーソナル インテリジェンス」を選択。
・Google Workspaceをオンにする
・アクセスを許可する: 初回のみ、「GeminiにGoogle Workspaceへのアクセスを許可しますか?」という確認画面が出ますので、内容を確認して「接続」や「許可」をクリックします。

(2)実際の使い方(プロンプトのコツ)

・連携が完了したら、普段のチャット画面で以下のように指示を出すだけでGmailのデータを探しに行ってくれます。
・方法は2つで、直接指示する方法と、プロンプトの入力欄で半角の @ を入力するとメニューが開くので、そこで @Gmail を選択してから指示。後者のほうが、より確実にGmail内だけを検索してくれます。

(3)プライバシー・セキュリティに関する補足

・拡張機能を通じてGeminiが読み取ったあなたのGmail、ドライブ、ドキュメントの個人的なデータは、Geminiの公開モデルの学習(トレーニング)には一切使用されない

3.ChatGPT

3.5 自分専用のAIアシスタント機能(ChatGPT GPTs)

・ChatGPT GPTs(ジーピーティーズ)を使えば、毎回説明しなくてよいし、回答品質を安定化できることができます。書きっぷりとかね。
・ただし、有料プランでしかつかえない(2026.5時点)
・作り方は、左メニューの「GPTs」を選択、「作成する(Create)」を押す

3.Cordex

3.1 Cordexとは

・Codex(コーデックス)は、OpenAIが開発したプログラムを書くことに特化したAIモデル
・昔は独立したAIモデルでしたが、現在はChatGPTのコード生成能力の中に取り込まれているイメージです。
・2025年以降のCodexは、GitHubリポジトリを読む→コードを書く→テストを実行する→Pull Requestを作る、など、AIソフトウェアエンジニア(Agent型AI)に近い機能として提供されています。

3.5 AI音声入力

(1)概要

・料金は「ChatGPT Plus」の定額のみ(追加課金なし)。なので、APIキーを使った従量課金(使った分だけ支払う仕組み)ではない。
・あらゆるアプリ(Wordやメモ帳)に直接入力できる。最近のアップデートの最大の目玉は、Codexのアプリ内だけでなく「PC上のすべてのアプリ」に対して音声入力ができるようになったことです。
・Windowsの場合は専用のデスクトップアプリをPCにインストールして使います
・Wordやメモ帳を開いた状態で、設定したショートカットキー(ポストにあるように Ctrl + M など)を押して話しかけるだけで、OpenAIの高精度な音声認識モデル(Whisperなど)を使って、テキストが直接Wordやメモ帳にポンッと自動入力されます。
・ただし、Cordexのアプリを起動しておく必要あり。

(2)インストール

・ChatGPTにログインし、左のメニューのCodexをクリック

・新しいタブ(https://chatgpt.com/ja-JP/codex/)が立ち上がるので、「Windows版をダウンロード」をクリック

・ダウンロードしたファイル(Codex Installer.exe)をダブルクリックして実行。
・ようこその画面がでるので、「ChatGPTで続行」

・ログイン
・以下のようなアプリケーションが起動する

(3)設定のやり方

初期状態ではオフになっているので、以下の手順で有効化します。
a)Codexアプリを起動し、「設定」>「一般」>「音声入力」

押している間だけ音声入力するホットキー 設定したキーを「押しっぱなし」にしている間だけ音声を拾います。一言二言の短いメモをサクッと入力したい時に便利
音声入力ホットキーの切り替え 設定したキーを「1回押す」と録音開始、話し終わって「もう1回押す」と録音終了(テキストが入力される)になります。Wordやメモ帳で長めの文章をしっかり書きたい場合は、指が疲れないこちらの方式が圧倒的におすすめ

b)音声入力を開始するためのキーを設定
例:Ctrl + Space など。他と被らない、また、誤動作しないことを優先するか、押しやすいのを優先するか
実際にキーを押すと反映される。

c)Wordで使ってみる:
Wordやメモ帳を開き、設定したショートカットキーを押して話しかける。話し終えてもう一度キーを押すと、少し待った後に文字がドバッと表示される。

(4)精度について

❶精度
高いと思う。以下が、その2つを比べた結果ね、少し言葉が違うけど、かなり精度がいいと思います。

Cordex AIを使っている場合って、ChatGPTかGeminiが多いと思うんだけど、今はちょっとGeminiっていう言葉をうまく認識してくれるかどうかを確認しています。 勝ち!
Windows標準(Windowsボタン+H) 今は。 AIを使っているんだけど。句点。ちょっとjptがジェミニが多いと思うんだけどさ。ちゃんとジェミニという言葉をうまく認識しているかどうかを確認しています。 -

・Windowsの標準の音声認識機能(Windowsボタン+H)とか、あとは、AIに聞く場合って、チャット欄なんだけど、AIが自動で変換してくれるけど、単語登録とかできないのと、句読点とかがうまく入らない。
・ただし、Windowsの機能だと、「音声入力のメニューにある「⚙️歯車マーク」から「自動句読点」をオンにしておくと、声で「てん」「まる」と言わなくても、話す間合いや息継ぎに合わせてAIが勝手に「、」や「。」を打ってくれるようになる

❷リアルタイムに表示
これができないのが欠点だと思う。

(5)辞書登録

以下のように登録しておくと、カタカナではなく英語で出力してくれる。

4.Claude

4.5 Claudeの3つのツール

  Chat Cowork Code
対象 誰でも 非エンジニア エンジニア
操作場所 ブラウザ/アプリ デスクトップアプリ ターミナル
できること 会話・質問回答 PC作業を自動代行 ソフト開発・自動化
料金 無料あり 有料(Pro~) 有料(Pro~)

4.7 Claudeの「スキル」とは?

・Claudeの「スキル」とは、Claudeが外部のツール、API、データ源、または特定の動作プログラミングと連携し、基本の対話能力を超えた高度な処理を実行できる機能のことです。
・通常、AIは学習したデータ(過去の知識)のみをベースに回答しますが、スキルを有効化(または実装)することで、AIが「手足」を手に入れたように、自発的に計算したり、外部の情報を取ってきたりできるようになります。

6.AI勉強会イベント企画案

こんなイベントをやったら楽しいかな?って思っています。

6.0 コンセプト

・初心者向け
・一人15分くらいの短い枠で、6~8人くらいにしゃべってもらう
・AIを基礎の基礎から学ぶとタルいので、技術やプロセスよりも、「何ができるか」にフォーカスして登壇者に発表してもらう。
・どのAIサービスを使うかに関して、1つに限定せず、登壇者が、その技術を使うの最適なものを選定する。

6.1 AIの概要

❶生成AIの基礎を総ざらい 15分くらい?
・生成AIとは何か
・代表的な生成AIサービス
・各サービスでとそれで何ができるか(テキスト、動画、画像、音声、音楽)
・生成AIの基本用語
・有料プランと無料プランの違い

❷3大AIおよびCopilotの比較
・Gemini,ChatGPT、Claude、Copilotをそれぞれ紹介し、実際に使ってみる。※一部しか使ったことが無い人もいるため
・それぞれの特徴について比較

❸生成AIの基本的な使い方とコツ
・どうやったら的確な回答を得られる?
・敬語の方がいい?英語で指示した方が的確?
・AIに「嘘」をつかせないためには?
・思い通りの答えが返ってこない」を解決するには?

❹生成AIのチューニング
・オプトアウト設定、Gem(ジェム)の設定など
・Gemini Gems(ジェムズ)、ChatGPT GPTs(ジーピーティーズ)、Claude Projectsを使って、毎回ゼロから説明しなくても、自分専用のAI秘書を作れる。

❺生成AIの活用シーンと活用できないシーンの紹介
・実際のプロンプトの例を示しながら、どう活用するかを説明
・「AIが得意なこと・苦手なこと」の整理

❻生成AI利用時の注意点
・ハルシネーション
・セキュリティ面
・著作権など

❼RAGの活用

6.2 AIを使ってみよう:エンタメ編

(1)画像生成のコツと注意点

・ゼロから絵を描かせる(Text to Image)
・画像を取り込んで加工・分析する(Image to Image)
・思い通りの画像を出す「プロンプト」の基本
・プロンプトの具体例と実際の画像作成 ※「いい感じにして」でもいい?
・注意点(フェイク画像(ディープフェイク)対策など)
・著作権とビジネス利用の注意点

(2) 音声合成:自分の声をクローンする

・ツール:ElevenLabs
・内容:自分の声を1分ほど録音してAIに学習させ、テキストを読み上げさせる。「自分が言わなそうなカッコいいセリフ」を言わせてみる。

(3) 動画生成:静止画を動かす

・ツール:Luma Dream Machine, Kling AI, Runway Gen-3
・内容:(1)で作ったイラストが、実際に歩いたり、カフェでコーヒーを飲んだりする5秒動画を生成する。

(4) アバター動画:喋らせる

・ツール:Hedra または D-ID
・内容:(1)の画像と(2)の声を合体させ、口元と表情を動かしながら自己紹介させる。

(5) コーディング体験:ゲームを一瞬で作る

・ツール:Claude 3.5 Sonnet (Artifacts機能) または GPT-4o
・内容:「インベーダーゲームを作って。敵は〇〇にして、自機は(1)の画像にして」と頼み、その場で実際に動くゲームをプレイする。

(6)動画を作ってみよう

※soraはなくなる?

(7)マンガを作ってみよう

・分かりやすい解説マンガ
・がっつりストーリー物の漫画

(8)音声で楽しむ

・自分が作った資料をAIが自分の声でしゃべる
・顔がでていて、その声に合わせて口元が動く、表情も少し変わる
・他人の声でしゃべる
・感情表現を豊かに(演劇のようにしゃべる)  

(9)音楽制作

・生成AIで歌詞を作成
・歌詞から自分が好きな音楽を作る
・自分の声で歌わせる

(10)映画を作ってみよう

エンドロールに自分の名前も入れよう

6.3 AIを使ってみよう:仕事編

(1) 規定・マニュアル確認(RAG体験)

・ツール:Gemini Advanced, ChatGPT (GPTs), Microsoft Copilot
・内容:「架空の就業規則PDF」を読み込ませる。「来週からハワイでワーケーションしたいけど、規定上OK?」と質問し、根拠となる条文付きで回答させる。

(2) 資料作成・整形

・ツール:Gamma (スライド作成) または Microsoft Copilot Pro
・内容:「(1)のワーケーション申請のためのプレゼン資料を作って」と依頼。Gammaを使えば、構成からデザインまで1分でPPTレベルのスライドが完成。

(3) PPT作成

・NotebookLMを活用

(4) パーソナライズメール返信

・ツール:ChatGPT または Claude
・内容:自分の過去のメールを数件コピペして「文体」を学習させる。「このクレームメールに対して、私らしい丁寧かつ毅然とした言い回しで返信案を書いて」と指示する。

(5) データ分析

・ツール:ChatGPT (Advanced Data Analysis)
・内容:ダミーの売上エクセルを放り込み、「来月の予測をして」「グラフにして」「課題を3つ挙げて」と指示し、分析官として働かせる。

(6)AIエージェントを使って仕事を任せる

・仕事を任せる
・セキュリティコンテストの問題を自動で解く

6.4 LT大会

上記以外の有効な利用方法に関して、3分のLT高いを実施する