iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
Modern Web

AI 驅動的 Web 資安新時代系列 第 18

Day18 - 藍隊 Agent:自動修補與防禦建議

  • 分享至 

  • xImage
  •  

在紅隊模擬攻擊之後,下一步就是 藍隊 (Blue Team) 的任務:

偵測 → 修補 → 加固防禦

傳統藍隊工作往往需要大量人工:

  • 資安人員手動檢查漏洞報告
  • 逐一修改程式碼 / 設定
  • 反覆測試修補是否成功

這樣流程既 耗時 又容易 遺漏細節


為什麼需要 AI Agent?

  • AI 可以快速比對 攻擊日誌程式碼位置
  • 自動給出「防禦建議」或直接產生 修補範例程式碼
  • 幫助團隊 即時反應,縮短修補週期

AI Agent 工作流程

  1. 漏洞輸入
    • 來自紅隊 Agent 的攻擊結果
    • 伺服器 Log / 錯誤訊息
    • 已知的弱點庫 (CVE, CWE)
  2. 分析判斷
    • AI 對照漏洞模式 (SQL Injection、XSS、弱密碼)
    • 找出程式碼的脆弱位置
  3. 修補建議
    • 產生「程式碼修補版本」
    • 提供「最佳安全配置」建議 (Headers、Cookie、安全機制)
  4. 自動驗證
    • 藍隊 Agent 測試修補後是否仍可被攻擊
    • 若失敗 → 回到第 2 步重新建議

server - 模擬不安全 API

模擬一個 有漏洞的登入 API,方便測試紅隊攻擊

import express from "express";
import bodyParser from "body-parser";
const app = express();
app.use(bodyParser.json());

// 不安全登入
app.post("/login", (req, res) => {
   const { username, password } = req.body;
   // 直接字串拼接,容易 SQL Injection
   const query = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;
   res.send("執行查詢: " + query);
});

app.listen(3000, () => console.log("伺服器啟動:http://localhost:3000"));

Agent - 藍隊 AI 修補建議

1、初始化 Gemini API

import 'dotenv/config';
import { GoogleGenerativeAI } from "@google/generative-ai";

// 讀取環境變數中的 API Key
const API_KEY = process.env.GEMINI_API_KEY;
const genAI = new GoogleGenerativeAI(API_KEY);

// 選擇要使用的 Gemini 模型
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

2、紅隊輸出(脆弱片段)

這裡放上「紅隊測試」後發現的 不安全程式碼

const vulnerableCode = `
const query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'";
`;

3、AI 修補建議

呼叫 Gemini API,請它用 繁體中文 輸出修補方案。

async function fixVulnerability(code) {
   const prompt = `
   你是一個藍隊資安顧問,請用 **繁體中文** 幫我分析以下程式碼的漏洞,並提供安全修補版本:
   ${code}
   `;

   const result = await model.generateContent(prompt);
   console.log("=== 修補建議 ===");
   console.log(result.response.text());
}

fixVulnerability(vulnerableCode);

上一篇
Day17 - 紅隊 Agent:模擬駭客攻擊
系列文
AI 驅動的 Web 資安新時代18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言