506 Views
November 15, 25
スライド概要
2025年11月15日に「第125回ゆるいハッキング大会 in Tokyo」で発表したプレゼンスライドです。
生成AIで作るセキュリティツール100 プロジェクト完遂から同人誌出版へ 2025年11月15日 第125回ゆるいハッキング大会 in Tokyo 発表者 IPUSIRON
本日のテーマ 生成AIとセキュリティツール の融合 100種類のセキュリティツー ル開発の軌跡 プロジェクト完遂で見えてき たもの 2 / 35
目次 ・ 自己紹介 ・ 「生成AIで作るセキュリティツール100」プロジェクトとは ・ プロジェクト完遂で見えたこと ・ 今後の展開 ・ お知らせ 3 / 35
自己紹介 4 / 35
IPUSIRONの生態 ・ 福島県相馬市在住 ・ 本業はコンピューター書籍の文筆家(執筆業) ・ 副業は同人サークル活動、その他いろいろ ・ 生きがいは読書(雑食) ・ 今の関心事は、古典暗号、錠前や鍵 IPUSIRON (イプシロン) ・ X: @ipusiron 5 / 35
(関与した)暗号本たち 6 / 35
おまけ:このスライドはAIで作りました 従来の課題 Before: Keynote 従来: Keynoteで約10時間かけて作成 結果: スライド多すぎ→駆け足になる コツコツ作成 悪循環: 講演のハードルが上がる→断りがち 2~3日間 今回の挑戦 VS 手法: Genspark AIスライド機能を活用 After: Genspark AI 初めてでもなんとかなったが、5,000クレジット消費 役割分担: ベースはAI作成、細部は手動調整 AI共創 目標: 作成時間 2~3日→1日 1日間 現実: 微調整を含めて10時間かかった 😅 AIで本を作ったので、スライドもAIで作るという実践 7 / 35
「生成AIで作るセキュリティツール100」 プロジェクトとは 8 / 35
本当の動機 挑戦の背景と現状 着想から決意への道 ✓ AIを使えば誰でもそれっぽいものは作れる時代に 1 「100DaysOfCode」という取り組みの存在を知る ✕ しかし熱々と100本作り続ける例は非常に少ない 2 生成AIで100本のアプリを作った本が話題になっている ⚑ プロジェクトの継続には根気と情熱が必要 3 「セキュリティツール100日チャレンジ」のアイデア 以前から「セキュリティツール大量生成」の野望はあったが優先 度が低く着手できずにいた 「生成AIの登場」+「時間的余裕と集中力」で実現可能性が見え てきた 長年の野望を自分の手で掴もうと決意 そしてプロジェクト始動へ! 9 / 35
なぜ、このプロジェクトを始めたのか ・ セキュリティツールは敷居が高い: インストール手順、依存関係、環境構築が複雑で挫折しがち ・ ブラウザ完結型のニーズ: インストール不要、依存関係なし、すぐに使える形式が理想的 ・ セキュリティ学習の入り口: 理論より、まず「触って」「使って」体験できる方が学習効率が高い ・ 生成AI活用の実験: 100個作るという縛りで「AI協働時代のソフトウェア開発」を体験したい ・ 既存ツールとの差別化: 既存ツールの隙間を埋めるニッチだが実用的なツール群を目指す 10 / 35
AIとの協働開発プロセス ・ プロンプトエンジニアリング: 明確な目標設定とツールの仕様を詳細に記述 ・ コード実装: AIが提案したコードをベースに、実装の詳細を調整 ・ デバッグ: エラー原因をAIと共に特定し、修正案を検討 ・ 改良と最適化: フィードバックループを繰り返し、ツールの質を向上 ・ 学習の継続: AIの得意・不得意を理解し、人間の強みを活かす分担作業 11 / 35
100ツール作成の軌跡(Day001→Day100) Day001 Day020 Day050 Day080 Day100 ・ Password Checker からスタート ・ 暗号化・復号ツールで基盤固め ・ OSINT系、メタデータ解析の追加 ・ DialSafe Simulator(折り返し) ・ 物理的セキュリティに注力 ・ CORS Playground で締め 12 / 35
ハイライト①:古典暗号ツール ・ 体系的に網羅: 代表的な古典的暗号(Caesar、Vigenere、Playfair、RailFenceなど)を総合的に学べる ・ 見える化重視: 抽象的な暗号概念を視覚的に表現し、直感的に理解できるよう設計 ・ 解析ツールとの連携: 暗号解読時は「RepeatSeq Analyzer⇒Modular Text Divider⇒Frequency Analyzer」など ・ 教育的価値: 「触って理解」→「理論を学ぶ」という体験型学習の入口に ・ 発展性: 古典暗号の知識が現代暗号の土台に。基礎から高度な内容へ橋渡し 13 / 35
MorseTree Visualizer(Day025) ・ 単なるモールス信号変換ツールではなく、モールス ツリー上の経路としてリアルタイムに点灯表示 ・ 二分木構造を利用したモールスツリーで、直感的に 信号の構造を理解 ・ 入力に合わせてツリー上の経路がリアルタイムに点 灯し、学習効果を高める ・ 生成AIとの協働で、視覚的に美しく教育効果の高い ツールに デモを見る 14 / 35
Classical Cipher Structure Trainer(Day097) ・ 古典暗号を構成する2大要素「換字(Substitution)」と 「転置(Transposition)」を、マッピング(対応表)と シャッフル(並べ替え)という直感的概念で学べる ・ 古典暗号の仕組みを図解と体験的UIで理解し、最後にク イズで確認する ・ すでに作成済みの暗号ツール群(Caesar, Vigenère, Hillなど)へのリンクから、個別の実装や応用を学べる デモを見る 15 / 35
ハイライト②: 認証・パスワード 体験重視:パスワード強度を数値と体感で腹落ちさせる 見える化重視:「覚えやすさ」と「安全性」のトレードオフを視覚的に理解できる工夫 さまざまな認証に対応:スマホのパターン、キーボード依存の偏り、PIN入力の視覚的脆弱性など 16 / 35
PatternLock Security Trainer(Day064) ・ 3×3パターンロックの強度を判定する ・ 描いたパターンの 特徴量 を抽出し、強度スコア・推定 試行回数・突破までの時間目安 を可視化する ・ 人間が選びがちなバイアス(角から開始、直線・対称の 好み等)の悪影響がわかる デモを見る 17 / 35
PIN Threat Simulator(Day088) ・ 暗証番号(PIN)認証に対する攻撃手法をシミュ レーション ・ 指紋解析、熱解析、音響解析、盗聴解析の4つの 攻撃をサポート ・ 解析され得るか、そして防御策がなぜ有効なの かを理解するための教育用ツール ・ 最終的にPINの候補一覧を出してくれる デモを見る 18 / 35
ハイライト③: 物理的セキュリティ 独自ツールの提供:私の興味が強く反映されている 楽しい入り口を増やす:鍵開け、物理的侵入、サバイバル、プレッパーなど、ユニークな切り口で初学者 層を広げる 実用性:ありそうでなかった、現場で役立つツールたち 19 / 35
CamoForge(Day085) ・ カモフラージュ用のデザインを生成する ・ 各軍隊の迷彩プリセットあり ・ 環境画像に重ねて「どのように見えるか」を確 認できる ・ 1型・2型・3型色覚、モノクロ視覚で迷彩の見え 方を検証する デモを見る 20 / 35
OpsLoadout(Day098) ・ 任務(Operations)に特化した装備構成 (Loadout)を管理するためのツール ・ 重量カウント機能があるので、総重量が一目瞭 然 ・ 危険物タグがあれば携帯注意 ・ 捜索救助隊、プレッパー、ロックスミス、ペン テスターなどのプリセットあり デモを見る 21 / 35
プロジェクト完遂で見えたこと 22 / 35
本プロジェクトの開発アプローチ 目的の転換: "プログラミング練習"ではなく、自分に役立つ成果物を積み上げる 現実的な挑戦: 理論的には誰でもできるが、継続するには時間的余裕と情熱が必要 ⇒暇人しか無理! 原動力: "楽しく作り続ける"が最強のモチベーション 知識の深化サイクル: ツール作り ⇒ README充実のための調査 ⇒ 知識の深掘り 学習中 ⇒ ツール作り ⇒ 仕様決めや動作チェックの過程で本質を理解 開発の特長: AI提案の仕様に寄り添い、最小仕様で破綻しない(利用者=自分だ け) 💡 完走するには「成果の見える化」と「楽しさ」を常に意識することが重要 23 / 35
Vibe Coding革命と生成AIとの協働 Vibe Coding革命 生成AIとの協働 ・ 真骨頂: 自分だけが使う、欲しいソフトウェアを誰でも作れる ・ プロンプト設計: 「なぜ必要か」を伝えると理解度UP ・ 役割分担: 仕様・テスト・微調整は人間、コーディングはAI ・ 自分用の利点: 80点で十分、完璧でなくても使える ・ 破綻しにくい設計: 利用者=仕様策定者=自分だけ = 最小仕様で 設計可能 ・ 成果: プロトタイプから完成品まで驚くほど早く ・ 連携視点: 同人誌・既刊との連動の可能性 💡 一人でも続けられる工夫が、100ツールという大きな成果につながった 24 / 35
Vibe Codingの実践例(Before/After) Before After 汎用仕様を追い求めて肥大化 自分用へ仕様圧縮→最小限の実装 「将来のニーズ」に対応しようとして開発遅延 短時間を完成(初期)→即日利用開始 複雑な機能要件で破綻リスク増大 翌日から改善→「使う自分」からのフィードバック 「完璧」を求めて結局未完成に終わる 無理のない拡張→自分に合わせた進化 最小実装 機能追加 破綻しにくい 継続できる デモ即戦力 使い勝手微調整(実用レベルへ) 自分に最適化 25 / 35
ツール作りのワークフローと苦労 ・ ワークフロー: アイデア → 初期プログラム生成 → 動作確認しながらバグ修正+改善 → スクショ追加+README完成 ・ パラレル作業: AIでVibe Codingしつつ、並行でREADMEを手動更新 or 別AIによる更新 ・ 時間配分: 通常は3〜4h/本。場合によっては10時間以上。難航時は翌日に持ち越し ・ 苦労点: UI一貫性、グラフィカル改善 ・ 工夫: AIのタスク終了時に通知音、ひな型化/部品再利用、チェックリスト運用、割り切る勇気 ・ 自分用開発の強み: AIが作った仕様に自分が寄り添える、妥協できる ・ 破綻しにくい設計: 利用者も仕様策定者も自分だけ = 最小仕様で設計可能 💡 「自分だけが使う、自分がいちばん欲しいソフトウェア」をだれでも作れるようになったことが真骨頂 26 / 35
本プロジェクトによって実現できたこと 📕 同人誌にまとめた 📚 書籍コンテンツとの連携 🎤 講演での活用 単なる作品集ではなく、成功・失敗を記録したリアルな知見を凝縮した。 商業誌(後で紹介)の校正中にプロジェクト完遂したので、ツール解説とリンクを追記した。 2025年8月のゆるハックにて、ヴィジュネル暗号文の解読デモを行った。 27 / 35
本プロジェクトの集大成が同人誌という形にまとめた タイトル:『生成AIで作るセキュリティツール100』 仕様: ・148ページ ・文字数約12万 ・画像70点 コンセプト: 作り方より"作ったもの"から学ぶ 価格: 書籍+PDFセット 1,500円 BOOTHや技術書典オンラインマーケットでも販売 頒布: 技術書典19オフライン会場 (2025年11月16日) き06 明日11/16の会場で手に取ってご覧いただけます! 28 / 35
同人誌の構成 セキュリティを学ぶ 30% 各ツールを教材として、攻撃原理や防御・可視化などを理解させる。読者に手を動かして学ぶことを促す。 生成AIの活用テクニック 20% 生成AIの使い方、注意点、上手な使い方とヒント。GitHub Pagesでの展開ノウハウを実例ベースで紹介。 著者の知見・苦悩・展望 50% 100本の開発を通じて得た知見、限界との向き合い方、創作哲学、今後の生成AI×セキュリティ教育への展 望を語る。 29 / 35
本書の目次と流れ ・ 第1章:本書を読むにあたって <導入>本書の目的と背景、生成AI時代における「手を動かす学びの意義」を紹介 ・ 第2章:本プロジェクトの挑戦から見えたリアル <思想編>プロジェクトを進める中で得たマインド、そして続けられた方法について語る ・ 第3章:100本のセキュリティツールを作る方法 <カタログ>100個のツールをカテゴリーごとに紹介し、それぞれのねらいをつかむ ・ 第4章:自作セキュリティツールの紹介 <成果編>これまでに作ったツールをカテゴリごとに紹介し、学びの広がりを示す ・ 第5章:生成AI開発における現場で役立つ実践ノウハウ集 <技術編>開発環境や生成AI活用の具体的なテクニックをまとめる ・ 第6章:本プロジェクトの活用と今後の展望 <展望編>今後の生成AIとセキュリティ技術の展望、そして執筆者の展望を述べる ・ 付録:セキュリティツール100一覧表 30 / 35
今後の展開 31 / 35
今後の展開(予定) ・ 既存ツールのブラッシュアップ: 高機能化ではなく、他ツールとの連携支援、他言語化、UI/UX改善、 READMEの充実、教育支援を目的とする ・ 101個目以降: 新「生成AIで作るセキュリティツール200」プロジェクトを始動 ・ 学校サイト開校: ツールの総合ハブサイトを構築し、簡易的な教育プラットフォーム化する ・ 商業出版の可能性: 反応次第で書籍化も視野に 🚀 「100個」はゴールではなく、新しいスタートの地点 32 / 35
お知らせ 33 / 35
商業誌『サイバー忍者入門』が発売されます ・ 3,500円+税 ・ 2026年1月19日発売 ・ Amazon予約開始は近日 11月17日 or 18日予定 ・ 「サイバー忍者」という新概念を提唱 ※サイバー術とは異なる ・ 情報・物理的・人的セキュリティの総合解説 ・ 狙い: 忍者・忍術の思想を土台に、各国のスパイ技術と現代サイ バー戦の考え方を統合して体系化 ・ 対象読者: 点在する知識を体系化して新たな視点を求める方 34 / 35
ご清聴 ありがとうございました 35 / 35