
ที่มาภาพ: 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 |
|---|---|---|---|
| Gitleaks | Regex + Entropy | GitHub Actions, GitLab CI | สูง (ไฟล์ TOML) |
| TruffleHog | Entropy only | GitHub Actions | ปานกลาง (JSON) |
| Detect Secrets | Regex only | GitHub 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



