iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
Security

AI都上線了,你的資安跟上了嗎?系列 第 30

📍 Day 26:生成式 AI 代碼安全

  • 分享至 

  • xImage
  •  

—— AI 幫你寫碼,但別讓它也幫駭客寫漏洞。

對象:AI 工程師、DevSecOps、資安團隊、研發主管
關鍵詞:生成式程式碼風險|SAST/DAST|依賴供應鏈|SBOM|CI/CD 安全


💬 序:為何要把生成式代碼當成攻擊面?

生成式 AI(Copilot、ChatGPT、Codeium 等)能顯著提速,但同時也會把「網路上有缺陷的範例」和「不安全習慣」帶進你的 codebase。
短期看是效率,長期看可能是累積性的安全負債──被攻擊者利用、被稽核抓到、或在生產環境造成資安事件。


🔍 四大風險類型(工程觀點)

  1. 危險 API / 不安全函式:例如 eval, exec, pickle.load, 未妥善使用的反序列化。
  2. 錯誤的安全預設:例如預設開放 CORS、未檢查 SQL 參數即拼接字串。
  3. 依賴供應鏈污染:typosquat、未簽章的套件或惡意套件被引入。
  4. 版權與授權衝突:AI 產生代碼可能含有受限制授權(GPL、AGPL)片段,導致商用風險。

🛡️ 防護策略(從流程到工具)

  • 流程層(Policy):把「AI 生成代碼必須 PR + code review」寫入團隊規範與 CI Gate。
  • 檢測層(Detect):在 CI 上加入 SAST(Semgrep、Bandit)、SBOM 生成、依賴掃描(OWASP Dependency-Check、Snyk)。
  • 防護層(Prevent):在 IDE/Plugin 層加警示,禁用危險 API 的快速補全模板。
  • 回應層(Respond):發現高嚴重性漏洞時自動阻斷合併,並列入安全待辦(ticket)。

🧰 工具與實作建議(範例)

CI 範例:把 Semgrep 與 Safety 串進 pipeline

# .github/workflows/ci.yml (片段)
jobs:
  security-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run semgrep
        uses: returntocorp/semgrep-action@v1
      - name: Run safety (Python deps)
        run: pip install safety && safety check

依賴追蹤:產生 SBOM

pip install cyclonedx-bom
cyclonedx-py --output sbom.json

Semgrep 規則(範例:阻擋 eval/exec)

rules:
  - id: no-eval-exec
    patterns:
      - pattern: eval(...)
      - pattern: exec(...)
    message: "禁止使用 eval/exec,請改用安全替代或明確審核"
    severity: ERROR

依賴信任:Sigstore / Sigstore Verify(簽章驗證)

  • 在 CI 中對關鍵套件或二進位執行簽章驗證;對未簽章的第三方庫提高審核門檻。

✅ 實務上線清單(Checklist)

  • [ ] 所有 AI 生成代碼必須走 Pull Request + 必要 Reviewer(含安全審查)
  • [ ] CI 中納入 SAST(Semgrep/Bandit)、依賴掃描、SBOM 生成
  • [ ] 建立危險 API 黑名單與 semgrep 規則
  • [ ] 針對第三方依賴實施簽章驗證或白名單策略
  • [ ] 定期(每月)用 fuzzer 或 DAST 跑一遍生成的 web/service 介面

📊 指標(KPI)建議

  • AI-PR Coverage:AI 產碼經 PR 的比例(目標 100%)
  • SAST Block Rate:CI 中阻擋的高風險問題比例
  • Dependency Risk Score:依賴的整體風險分數
  • SBOM Coverage:服務產生 SBOM 的比例
  • Vulnerability Remediation Time:修補生成式代碼漏洞的平均時間

🧪 小劇場(工程師幽默)

PM:AI 幫我直接合併,速度超快!
你:合併得快,恐慌得也快——等漏洞爆發時我們就忙著修火。


🎯 結語

生成式 AI 是研發的加速器,但安全責任仍在我們手上。把「AI 生成代碼」納入 DevSecOps、把安全檢查自動化、把依賴管理制度化,才能把效率紅利變成長期可持續的優勢。


🔮 明日預告:Day 27|AI 驅動的社交工程攻擊

探討生成式 AI 如何強化釣魚郵件、語音詐騙與深偽攻擊,企業如何防範。


上一篇
📍 Day 25:AI 跨雲環境的資安挑戰
下一篇
📍 Day 26-2:AI 代碼審查自動化
系列文
AI都上線了,你的資安跟上了嗎?33
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言