Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カスタムGPTをHardeningの MPで提供してみた振り返り

Avatar for Kazuki Takemura Kazuki Takemura
February 07, 2024
330

カスタムGPTをHardeningの MPで提供してみた振り返り

2024/02/07 総関西サイバーセキュリティLT大会(第39回)でのLT資料
Hardening 2023 Generatives で LLM を使ったMPサービスを提供した振り返り。

Avatar for Kazuki Takemura

Kazuki Takemura

February 07, 2024
Tweet

Transcript

  1. 本日お伝えしたいこと • Hardening 2023 競技会で、生成AI(カスタムGPT)を使ったMPサービスを提供した ので振り返ります • 堅牢先生 Powered by

    GPT • 事前にHardening関連資料をRAGで学習させたカスタムGPT • Threat Link Powered by GPT • インシデント管理+脅威情報共有+GPTによる対応アドバイス • 今回の学び • 学習データの品質が非常に重要 • データの選別 • データの分割・要約・整形 • 利用する側の質問のしかたも重要 • といいつつ、競技中にしっかりしたプロンプトを書き切るのは至難の業 • サンプルプロンプトなどを充実させればよかった • GPT先生の支援があれば、初心者でも爆速で開発できる 2
  2. Threat Link powered by GPT 5 GPT-4 Hardeningナレッジ 今大会の情報 ベクトル検索

    全文検索 購入チームの システム調査 (2時間人力x2 チーム) Threat Link ダッシュボード 検知した脅威とその対応案 堅牢先生 powered by GPT 対応済 脅威 /var/www/webshell.phpにWebShell設置 CVE-2021-44228(Log4Shell)攻撃検知 発見した脅威や脆弱性の 登録 手順などの 確認 購入チーム 対応 アドバイス TLP設定による脅威情報共有 発見した脅威や脆弱性の 登録・対応支援 ※画面は開発中のものとなります。実際のサービスでは変更される場合があります。
  3. アーキテクチャ 8 userdb teamdb logdb Azure Cosmos DB Azure Cognitive

    Search Azure OpenAI GPT-4-32k text-embedding-ada-002 Blog Storage 学習資料PDF(ページ分割) 学習資料index 全文検索 ベクトル検索 Azure App Service フロントエンド バックエンド Google Identity Platform Googleアカウント連携 Python, Flask Discord通知 ダッシュボード • Microsoftが提供している azure-search-openai-demo(https://github.com/Azure-Samples/azure-search- openai-demo )を参考に2週間くらいで作成 • RAG(Retrieval-Augmented Generation)により、事前に学習した資料から検索した結果をもとに回答を 生成(ベクトル検索と全文検索のハイブリッド) • Reactも Flaskもほぼ初心者でしたが、GPT先生に聞きながら開発とデバッグが爆速で進む
  4. 学習データの品質が非常に重要① • データの選別 • 過去のHardening競技会の競技資料を約10年分 • 過去大会の情報がごちゃ混ぜになり怪しい回答に • ハードニングファン!!2023 (のみぞうさん本)

    • かなり良い感じに参照してくれた • Softening Day動画の文字起こし • ほとんど役に立たないどころか、ノイズになった • 一度要約させたものはある程度使えたものの、精度が。。。 11 ✓ 最終的には、ハードニングファン!!2023 、1大会分の競技資料(競技前日 に入れ替え)と、追加ナレッジに落ち着く。 ✓ 何でもかんでも食わせればよいというわけではなく、ノイズになるデータの除 外、選別が重要
  5. 学習データの品質が非常に重要② • データの分割・要約・整形 • GPTで一度に扱える情報量(トークン数)に制限があることから、適切に分割して学習 させる必要がある • 基本的には、ページ・スライド単位での分割した • ページまたぎの文章がぶつ切れになるため、前後15%くらいの文章をオーバーラップさせて分割

    • 「ハードニングファン!!2023」のような、ページごとにまとまった文章がある資料はかなり良 い感じに学習してくれる • 競技資料のような、1ページ当たりの文章が少ない、図とコメントだけといったデータは、適切 な回答が出てこないケースも • 議事録、文字起こしのようなデータは、そのままではなく要約などの下処理が必要 15 ✓ 分割のしかたは元データの種類によって工夫が必要 ✓ 書籍、論文などはページ毎+15%くらいのオーバーラップで割とよい感じに ✓ PowerPointスライドの場合は、スライドの作りでかなり変わってくる
  6. まとめ • Hardening 2023 競技会で、生成AI(カスタムGPT)を使ったMPサービスを提供した学び • 学習データの品質が非常に重要 • データの選別 •

    データの分割・要約・整形 • 利用する側の質問のしかたも重要 • といいつつ、競技中にしっかりしたプロンプトを書き切るのは至難の業 • サンプルプロンプトなどを充実させればよかった • GPT先生の支援があれば、初心者でも爆速で開発できる • GPTは適当に学習させれば何でも答えてくれる魔法の仕組みではない。 • でも、しっかりした学習データの準備と、使い方を工夫すれば実業務でも優秀なアシスタン トになるかも? • 組織内のインベントリ情報とか、インシデント管理とか、脅威インテリジェンスとか • 簡単にカスタムGPTが作れる仕組みも増えてます(情報の取り扱いには注意) • 同じようなアプローチ(レベル感はさておき)の製品もでてきている • Microsoft Security Copilot とか 20