วิธีสแกนหา Secrets อัตโนมัติในโค้ดด้วย Gitleaks บน GitHub Actions อย่างปลอดภัย

ที่มาภาพ: Unknown Source

วิธีสแกนหา Secrets อัตโนมัติในโค้ดด้วย Gitleaks บน GitHub Actions อย่างปลอดภัย

⚡ สรุป 30 วิ

การสแกนหา Secrets ที่อาจรั่วไหลในโค้ดเป็นงานสำคัญสำหรับทุกทีมพัฒนา บางครั้งเรามักมองข้ามไฟล์ config หรือ key ต่าง ๆ ที่ถูก commit ไปโดยไม่ได้ตั้งใจ Gitleaks เป็นเครื่องมือที่ออกแบบมาเพื่อค้นหา Secrets…

ภาพรวม — Overview

การสแกนหา Secrets ที่อาจรั่วไหลในโค้ดเป็นงานสำคัญสำหรับทุกทีมพัฒนา บางครั้งเรามักมองข้ามไฟล์ config หรือ key ต่าง ๆ ที่ถูก commit ไปโดยไม่ได้ตั้งใจ Gitleaks เป็นเครื่องมือที่ออกแบบมาเพื่อค้นหา Secrets แบบอัตโนมัติ และเมื่อนำไปรันบน GitHub Actions เราจะได้ผลลัพธ์ทุกครั้งที่มีการ push โค้ดใหม่ โดยไม่ต้องทำอะไรเพิ่ม

  • Gitleaks ทำงานด้วย pattern matching + entropy check เพื่อลด false positive
  • รันบน CI/CD ช่วยให้ปัญหา Secrets ถูกตรวจจับก่อนโค้ดเข้าสู่ production
  • การตั้งค่าเพียงครั้งเดียวสามารถใช้งานได้กับทุก repository ในองค์กร

ความต้องการเบื้องต้น — Prerequisites

ก่อนเริ่มใช้ Gitleaks บน GitHub Actions เราต้องเตรียมสภาพแวดล้อมและข้อมูลพื้นฐานให้พร้อม

  • มีบัญชี GitHub พร้อมสิทธิ์สร้าง workflow (.github/workflows) ใน repository ที่ต้องการตรวจสอบ
  • เข้าใจรูปแบบของ Secrets ที่ต้องปกป้อง (API keys, tokens, certificates ฯลฯ)
  • ติดตั้ง Gitleaks เวอร์ชันล่าสุดในเครื่องทดสอบเพื่อทดลองก่อนนำไปใช้จริง
Tip: ควรเก็บไฟล์ config ของ Gitleaks ไว้แยกเป็น `.gitleaks.toml` เพื่อความง่ายต่อการปรับเปลี่ยนและเวอร์ชันคอนโทรล

สร้าง Workflow บน GitHub Actions — Setup GitHub Actions Workflow

Workflow จะทำหน้าที่เรียก Gitleaks ทุกครั้งที่มี event ที่กำหนด เช่น push หรือ pull request

  • สร้างโฟลเดอร์ `.github/workflows` หากยังไม่มีใน repository
  • เพิ่มไฟล์ `gitleaks-scan.yml` ด้วยเนื้อหาพื้นฐานต่อไปนี้

```yaml name: Gitleaks Scan

on: push: branches: [ main ] pull_request: branches: [ main ]

jobs: scan: runs-on: ubuntu-latest steps:

  • name: Checkout repository

uses: actions/checkout@v3 ```

  • ขั้นตอนต่อไปคือ ติดตั้ง Gitleaks และรันสแกน

```yaml

  • name: Install Gitleaks

run: | curl -sSL https://github.com/gitleaks/gitleaks/releases/download/v8.18.0/gitleaks-linux-amd64.tar.gz | tar xz sudo mv gitleaks /usr/local/bin/ ```

กำหนดค่า Gitleaks — Configure Gitleaks

การตั้งค่าที่เหมาะสมช่วยลด false positive และเพิ่มความครอบคลุมของสแกน

  • สร้างไฟล์ `gitleaks.toml` ใน root ของ repository (หรือใช้ไฟล์ที่จัดเก็บไว้ใน repo แยก)

```toml [[rules]] description = "AWS Access Key" regex = '''AKIA[0-9A-Z]{16}''' entropy = 3.5 ```

  • เพิ่มขั้นตอนรัน Gitleaks ใน workflow

```yaml

  • name: Run Gitleaks scan

run: | gitleaks detect --source . --config ./gitleaks.toml --report-path=gitleaks-report.json --verbose ```

  • ใช้ `--exit-code 1` เพื่อให้ workflow ล้มเหลวเมื่อพบ Secrets

```yaml gitleaks detect --source . --config ./gitleaks.toml --report-path=gitleaks-report.json --exit-code 1 ```

ตรวจสอบผลลัพธ์ — Review Findings

GitHub Actions จะเก็บรายงานสแกนไว้เป็น artefact หรือแสดงใน logs

  • เพิ่มขั้นตอนอัปโหลดรายงานเพื่อให้ทีมสามารถดาวน์โหลดได้

```yaml

  • name: Upload Gitleaks report

uses: actions/upload-artifact@v3 with: name: gitleaks-report path: gitleaks-report.json ```

  • หาก workflow ล้มเหลว (พบ Secrets) GitHub จะทำการบล็อก PR นั้นและแสดง error message ที่ชัดเจน
Warning: อย่าให้ไฟล์รายงานถูกเก็บไว้ใน repository โดยตรง เพราะอาจเปิดเผยข้อมูลที่สแกนได้แล้ว

เปรียบเทียบ Gitleaks กับเครื่องมืออื่น — Comparison Table

เครื่องมือประเภทการตรวจจับรองรับ CI/CDความยืดหยุ่นของ Rule
GitleaksRegex + EntropyGitHub Actions, GitLab CIสูง (ไฟล์ TOML)
TruffleHogEntropy onlyGitHub Actionsปานกลาง (JSON)
Detect SecretsRegex onlyGitHub Actionsต่ำ (config ไฟล์ YAML)
  • จากตารางเห็นว่า Gitleaks มีความสมดุลระหว่าง accuracy กับ customizability จึงเหมาะกับองค์กรขนาดกลาง‑ใหญ่

เคล็ดลับเพิ่มประสิทธิภาพ — Tips for Secure Scanning

การสแกนที่ดีต้องอาศัยกระบวนการต่อเนื่องและการปรับตัวตามความเปลี่ยนแปลงของโค้ด

  • อัปเดต rule set อย่างสม่ำเสมอ – ความล้าสมัยของ regex ทำให้บาง Secrets ไม่ถูกจับได้
  • ใช้ pre‑commit hook ของ Gitleaks เพื่อตรวจสอบก่อน commit ไปยัง remote
  • ตั้งค่า allow‑list สำหรับไฟล์หรือโฟลเดอร์ที่ไม่ต้องสแกน (เช่น ตัวอย่าง config) เพื่อเร่งความเร็วของ workflow

สรุป — Summary

การใช้ Gitleaks ร่วมกับ GitHub Actions ช่วยให้ทีมพัฒนาสามารถตรวจจับ Secrets ได้อัตโนมัติและปลอดภัย ลดความเสี่ยงจากข้อมูลรั่วไหลในขั้นตอน CI/CD

  • ตั้งค่า workflow พื้นฐาน ติดตั้ง Gitleaks ใช้ config ที่ปรับแต่งเอง
  • เก็บผลลัพธ์เป็น artefact เพื่อให้ทีมตรวจสอบได้ง่าย ๆ
  • ปรับ rule และอัปเดตอย่างต่อเนื่องเพื่อรักษาประสิทธิภาพของสแกน

ด้วยขั้นตอนเหล่านี้ คุณจะมีระบบตรวจจับ Secrets ที่ทำงานแบบ continuous, automatic และ secure บนทุก repository ขององค์กร.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
วิธีสแกนหา Secrets อัตโนมัติในโค้ดด้วย Gitleaks บน GitHub Actions อย่างปลอดภัย
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
25 สิงหาคม 2569 เวลา 19:50

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่าและใช้งาน SQLCipher เข้ารหัสฐานข้อมูล SQLite บน Android อย่างปลอดภัยGrowth
25 สิงหาคม 2569 เวลา 20:30

วิธีตั้งค่าและใช้งาน SQLCipher เข้ารหัสฐานข้อมูล SQLite บน Android อย่างปลอดภัย

การเข้ารหัสข้อมูลในแอป Android เป็นสิ่งจำเป็นเมื่อต้องจัดเก็บข้อมูลสำคัญ เช่น ข้อมูลผู้ใช้หรือรหัสผ่าน SQLCipher ให้วิธีง่าย ๆ ที่ทำให้ฐานข้อมูล SQLite ของคุณปลอดภัยโดยอัตโนมัติ บทความนี้จะพาคุณตั้งค่…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
วิธีสร้างและกำหนดค่า Cloudflare Tunnel (Argo Tunnel) เพื่อเปิดเผยแอปพลิเคชันภายใน LAN สู่สาธารณะอย่างปลอดภัยGrowth
25 สิงหาคม 2569 เวลา 19:00

วิธีสร้างและกำหนดค่า Cloudflare Tunnel (Argo Tunnel) เพื่อเปิดเผยแอปพลิเคชันภายใน LAN สู่สาธารณะอย่างปลอดภัย

Argo Tunnel ของ Cloudflare ช่วยให้คุณเปิดเผยแอปพลิเคชันที่อยู่ภายใน LAN ไปยังอินเทอร์เน็ตโดยไม่ต้องเปิดพอร์ตบนเร้าเตอร์หรือใช้ VPN แต่อย่างใด ทั้งหมดทำงานผ่านเอเย่นต์ **cloudflared** ที่เชื่อมต่อกับเค…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีตั้งค่า Tailwind CSS บน Vite เพื่อพัฒนาเว็บเร็วและปลอดภัยGrowth
25 สิงหาคม 2569 เวลา 11:30

วิธีตั้งค่า Tailwind CSS บน Vite เพื่อพัฒนาเว็บเร็วและปลอดภัย

การเริ่มต้นโครงการด้วย **Vite** ทำให้เรามีสภาพแวดล้อมพัฒนาเว็บที่เร็วทันใจ ส่วน **Tailwind CSS** จะช่วยลดเวลาการออกแบบ UI ด้วยคลาสยูทิลิตี้ การผสานสองเครื่องมือนี้อย่างถูกต้องจะทำให้คุณสร้างเว็บที่โหล…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีใช้ Git Bisect ค้นหา commit ที่ทำให้เกิดบั๊กอย่างมีประสิทธิภาพGrowth
24 สิงหาคม 2569 เวลา 18:30

วิธีใช้ Git Bisect ค้นหา commit ที่ทำให้เกิดบั๊กอย่างมีประสิทธิภาพ

การค้นหา commit ที่ทำให้โค้ดเกิดบั๊กในโปรเจคขนาดใหญ่อาจใช้เวลานานหลายชั่วโมงหรือหลายวัน Git Bisect ช่วยลดระยะเวลาให้น้อยลงโดยอัตโนมัติผ่านกระบวนการแยก‑แบ่ง (binary search) บทความนี้จะสอนวิธีใช้ Git Bi…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ6 นาที
คัดลอกลิงก์แล้ว!