アプリ

記事

aiai で作った例: サーバーの攻撃の記録

AI に毎日頼んでいたことを、aiai の流れでアプリにした例です

aiai のサーバーは、毎日、知らない相手から SSH で入ろうとされ、穴を探す要求を受けています。前は、そのログをAI に渡して、何が来ているか、手を打つことはあるかを、毎日聞いていました。毎日同じことを頼んでいたので、アプリにしました。毎日 0 時過ぎにサーバーが攻撃を数え、Gemini が所見を書き、本人が毎朝、アプリの「サーバー」のタブで読みます。

このアプリを、aiai の流れに沿って見直しました。2、5、6、8 の段は、aiai のアプリの「作る」と同じ仕事(Gemini)で作りました。できた物は、すべてリポジトリの kanri/kougeki/ にあります。

流れの中で作った物

段できた物
アプリの決まりSKILL.md。使う人、数える物、記録の置き場、AI に渡す物、完成の基準
2 今あるアプリを探す調べた結果。Google Cloud Security Command Center、Logwatch、CrowdSec の 3 つを、Gemini が Google 検索で公式サイトなどを読んで比べました
5 今あるアプリの課題を集める課題の資料。3 つの問題点と、作るアプリで防ぐこと 10 項目
6 設計書とマニュアルを作る設計書、利用者マニュアル、照らし合わせの記録
7 実装するtools/kougeki.py(サーバー)と、アプリの「サーバー」のタブ
8 テストの手順を作るテストの手順

課題の資料の「作るアプリで防ぐこと」には、たとえば次の項目があります。

  • サーバーの記録をそのまま外のサービスや AI に渡さない
  • 通信の遮断など、サーバーの動きに自動で手を加えない
  • サーバーに AI を呼ぶための鍵のファイルを置かない
  • 報告のためにメールの送信のソフトなどを足さない

設計書と、動いているアプリの違いを直した

このアプリは、流れより前に AI と作って動かしていました。初めにできた設計書と利用者マニュアルを、動いている「サーバー」のタブと比べると、4 か所が違っていました。

  • 接続先: マニュアルには「サーバーの接続先」を書く欄がありました。動いているタブには欄が無く、設定で決めます
  • ボタン: マニュアルは「記録を写す」でした。動いているタブは「サーバーから取り込む」です
  • 日ごとの一覧: マニュアルは日付を選ぶ欄でした。動いているタブは、日ごとの数を並べた表です
  • 画面の絵: スマートフォンの形でした。このタブは、本人の PC で使います

流れの「直すとき」の順に直しました。まず SKILL.md の「決まっていること」に、PC の画面であること、接続先は設定で決めること、画面に上から並ぶ物を足しました。そのうえで、6 と 8 をもう一度作りました。今の設計書とマニュアルは、動いているタブと合っています。

画面の絵がスマートフォンの形になったのは、「作る」の絵を描く仕事が、いつもスマートフォンの形で描いていたためでした。この例で見つかったので、SKILL.md と設計書に書いてある方(PC かスマートフォンか)で描くように、「作る」も直しました。