AI Vibe Codingで監視システム「3UP-SecVis」を開発してみた

はじめに(自己紹介)

大阪国際工科専門職大学 情報工学科 AI戦略コース 二回生の福留陽希です。
この度、株式会社スリーアップ・テクノロジー で臨地実務実習に参加し、AI Vibe Coding という進め方で、ネットワーク監視システム 「3UP-SecVis」 を開発しました。

実習中の作業風景

実習テーマ:コードを書かない開発(AI Vibe Coding)

今回の挑戦は、自分が1行もコードを書かずに、AIへの指示(プロンプト)だけで実用レベルのシステムを作ることです。

実際、短期間で「実用レベルの監視システム」を形にできました。]

成果

  • 開発期間:1週間(実質稼働5日)
  • 総ファイル数:14 files
  • 総行数(Generated):3,814 lines
  • まとめ:”1 Week, 3,800 Lines, Zero Coding”

背景:AI時代の攻撃は“速い・自動・巧妙”

近年は攻撃側もAIや自動化ツールを使い、探索→侵入→横展開→暗号化/持ち出しまでを短時間で進められるようになっています。
実際に国内でも、アサヒグループではランサムウェア攻撃によるシステム障害が公表され、アスクルでもランサムウェア攻撃によりシステム停止や情報漏えいが報告されました。

こうした事例を見ると、「何か起きてから気づく」では遅れやすいので、
通信の中身(ペイロード)を見なくても、IP/ポート/通信量/時間帯/国などのメタデータから“いつもと違う”を早めに拾い、すぐ可視化できる仕組みが重要になります。

課題と背景

3UP-SecVisとは?

3UP-SecVisは、社内ネットワークの通信を監視し、異常のサインをリアルタイムに可視化するダッシュボードです。
特に意識したのは、“ペイロード(中身)を保存しない”こと。通信の中身ではなく、IPやポート、通信量、国情報などのメタデータだけで判断します。

システム構成

  • 監視装置(ネットワークの目):通信を観測してイベント化
  • 監視ステーション(見守りPC):画面で可視化・アラート確認
  • 保存するのはメタデータのみtraffic_log.csv に記録(IP/プロトコル/サイズ/種別/ホスト名など)
3UP-SecVisの全体構成図

機能

機能①:異常検知(どんな“怪しさ”を見る?)

3UP-SecVisは、通信のメタデータ(IP/ポート/通信量/時間帯/国 など)から、次のような異常をアラートします。

  • 未知端末:ホワイトリストにない端末が通信した
  • 時間帯が不自然:夜間などオフアワーの通信
  • 初めての宛先:初めて行く国 / 初めての外部IP
  • 通信量スパイク:短時間で通信量が急増(持ち出し疑いなど)
  • ポートスキャン:短時間に多数ポートへアクセス
  • 横展開:内部で短時間に多数ホストへ接触
  • 危険ポート:外部に445/3389など怪しいポート通信

HTTPSはSNIからホスト名も拾って、宛先の手がかりを増やしています。

機能②:可視化(“司令室UI”で見る)

異常検知した内容を、パッと見て分かるダッシュボードにまとめました。

  • 世界地図ビュー:通信先の方向/広がりを地図上で可視化(ラインや点で表示)
  • アラートログ:検知したアラートを時系列で一覧表示(何が起きたかすぐ分かる)
  • サマリー/統計
  • 稼働端末数(active devices)
  • 通信量(upload / download / internal)
  • プロトコルの内訳
  • よく出る宛先(トップドメインなど)
  • 端末ごとの通信量・アラート回数

リアルタイムに更新されるので、「今なにが起きてるか」をその場で追えます。

開発手法:Human(監督)× AI(設計)× AI(実装)

今回の開発は「AI Vibe Coding」という進め方で進行しました。
人間が“監督”として目的や完成イメージを言語化し、AIが設計と実装を分担する形です。

  • Human(Director):目的・“雰囲気(Vibe)”・要件を言語化(優先順位づけ、判断、修正指示)
  • AI Planner(例:Gemini):要件整理 → 設計 → プロンプト生成(作業の段取りを作る)
  • AI Coder(例:Codex):実装コード化(Python/JSなど)→ 動作確認 → 修正
AI Vibe Codingの開発フロー

苦労した点(意図ズレとの戦い)

一番きつかったのは、少しの言い回しの違いで意図がズレることでした。
「ここだけ直して」と言ったつもりでも、別の場所まで変更されて動かなくなることがあり、修正が“伝言ゲーム”になりがちでした。

この経験から、開発速度を決めるのはコード量よりも、人間側の“言語化の精度”だと痛感しました。

AI時代の開発で実習中に学んだ「加速」と「制御」の作法

インターンを通して得た最大の気付きは、AIは魔法ではなく「鋭い指示」と「正しい操縦」があって初めて機能するということです。

言語化が実装速度を決める コードを書く力以上に、「自然言語で意図を伝える力」が問われました。目的や制約条件を解像度高く言語化できて初めて、AIは正確なコードを返してくれます。

適材適所のツール選定 UI構築が得意なAI、ロジック修正が速いAIなど、ツールの特性を見極めて使い分けることが開発速度を底上げしました。

Vibe Codingというアプローチ 開発スタイルとしては 「Vibe Coding」 を意識しました。まず「動く最小のもの」を作り、手触りを確認しながら「生成→実行→修正」を高速で回す。このサイクルが前進するためのエンジンとなりました。

品質の決定権は人間にある しかし、AI任せの「ノリ」だけで進むと必ず破綻します。 加速はAIに任せつつも、節目ごとの仕様確認、ログやテストによる根拠(エビデンス)の確保といった「品質の制御」は、自分自身の責任で行う必要があります。「加速するAI」と「手綱を握る人間」、このバランスこそが現代の開発の要諦だと学びました。

今後やってみたい改善

  • Go言語によるバックエンドの実装(pythonではパケット取得に限界があるため)
  • 誤検知を減らすための ベースライン学習(平常時の傾向) を強化する
  • アラート理由をもっと説明できるようにする(「なぜ怪しい?」の言語化・根拠表示)
  • レポートの自動生成や、実運用向けのチューニング(ログ整理・通知設計など)

最後に

実習を受け入れてくださった中西金属様、スリーアップ・テクノロジー様、本当にありがとうございました。
今回の経験を、今後の学習・研究・開発に活かしていきます。