在紅隊模擬攻擊之後,下一步就是 藍隊 (Blue Team) 的任務:
偵測 → 修補 → 加固防禦。
傳統藍隊工作往往需要大量人工:
這樣流程既 耗時 又容易 遺漏細節。
模擬一個 有漏洞的登入 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"));
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" });
這裡放上「紅隊測試」後發現的 不安全程式碼。
const vulnerableCode = `
const query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'";
`;
呼叫 Gemini API,請它用 繁體中文 輸出修補方案。
async function fixVulnerability(code) {
const prompt = `
你是一個藍隊資安顧問,請用 **繁體中文** 幫我分析以下程式碼的漏洞,並提供安全修補版本:
${code}
`;
const result = await model.generateContent(prompt);
console.log("=== 修補建議 ===");
console.log(result.response.text());
}
fixVulnerability(vulnerableCode);