การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว
ป้องกันไม่ให้คีย์ API และรหัสผ่านถูกคอมมิตโดยใช้ git-secrets, gitleaks และฮุกก่อนคอมมิต
การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
ปัญหาข้อมูลลับที่ฝังตายตัวในรหัส
นักพัฒนาส่งคีย์ส่วนติดต่อโปรแกรมประยุกต์ รหัสผ่าน คีย์ส่วนตัว และโทเค็นเข้าไปในคลังรหัสต้นฉบับโดยไม่ตั้งใจ เมื่อข้อมูลเหล่านี้อยู่ในประวัติระบบควบคุมเวอร์ชันแล้ว ข้อมูลจะยังคงอยู่แม้จะลบออก Public repositories จะถูกบอตเก็บข้อมูลภายในไม่กี่วินาทีหลังการส่งการเปลี่ยนแปลง
สิ่งที่ถูกยืนยันการเปลี่ยนแปลง
ข้อมูลลับที่มักพบในคลังรหัส:
- คีย์เข้าถึง AWS (
AKIA...) - โทเค็นเข้าถึงส่วนบุคคลของ GitHub
- รหัสผ่านฐานข้อมูลในแฟ้ม config
- คีย์ส่วนติดต่อโปรแกรมประยุกต์ของ Stripe หรือคีย์การชำระเงิน
- คีย์ส่วนตัว TLS/SSH
- ที่อยู่เว็บฮุกของ Slack
ฮุกก่อนยืนยันการเปลี่ยนแปลงเพื่อการป้องกัน
ป้องกันไม่ให้ข้อมูลลับไปถึงระบบควบคุมรหัสต้นฉบับตั้งแต่แรก:
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksการสแกนคลังรหัสที่มีอยู่
สแกน repos ที่มีอยู่เพื่อค้นหาข้อมูลลับ:
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsการสแกนข้อมูลลับของ GitHub
GitHub จะสแกนคลังรหัสสาธารณะโดยอัตโนมัติเพื่อค้นหารูปแบบข้อมูลลับที่รู้จัก (คีย์ AWS โทเค็น GitHub และอื่น ๆ) และแจ้งให้ผู้ให้บริการทราบ สำหรับ repos ส่วนตัว GitHub Advanced Security จะเพิ่มความสามารถนี้ ผู้ให้บริการอย่าง AWS จะเพิกถอนคีย์โดยอัตโนมัติเมื่อตรวจพบ
วิธีแก้ด้วย .gitignore และข้อจำกัด
การเพิ่ม .env ลงใน .gitignore จะป้องกันการยืนยันการเปลี่ยนแปลงโดยไม่ตั้งใจ แต่ผู้พัฒนายังอาจส่งข้อมูลลับไว้ในแฟ้มอื่น และ .gitignore จะช่วยไม่ได้หากแฟ้มนั้นถูกส่งเข้าไปแล้ว การป้องกันหลายชั้นประกอบด้วยกฎละเว้นแฟ้ม ฮุกก่อนยืนยันการเปลี่ยนแปลง และการสแกนในกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่อง
การใช้ตัวแปรสภาพแวดล้อม
ข้อมูลลับไม่ควรปรากฏในรหัส ใช้ตัวแปรสภาพแวดล้อมที่โหลดขณะทำงาน:
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitระบบจัดการข้อมูลลับ
แอปพลิเคชันในระบบใช้งานจริงควรใช้ระบบจัดการข้อมูลลับโดยเฉพาะ:
- AWS Secrets Manager — หมุนเวียนข้อมูลลับโดยอัตโนมัติ และควบคุมการเข้าถึงด้วย IAM
- HashiCorp Vault — แบบเปิด ระดับองค์กร และรองรับแหล่งจัดเก็บข้อมูลหลายรูปแบบ
- Azure Key Vault / GCP Secret Manager
ข้อมูลลับจะไม่อยู่ในรหัสหรือตัวแปรสภาพแวดล้อมบนดิสก์
การหมุนเวียนข้อมูลลับที่ถูกเปิดเผย
หากข้อมูลลับถูกเปิดเผย:
- เพิกถอนข้อมูลลับทันที (ก่อนสืบสวน)
- ตรวจสอบบันทึกการเข้าถึงเพื่อค้นหาการใช้งานโดยไม่ได้รับอนุญาต
- สร้างข้อมูลลับใหม่
- อัปเดตระบบทั้งหมดที่ใช้ข้อมูลลับเดิม
- ลบข้อมูลลับออกจากประวัติระบบควบคุมเวอร์ชันด้วย
git-filter-repoหรือ BFG Repo Cleaner
การลบข้อมูลลับออกจากประวัติระบบควบคุมเวอร์ชัน
หลังจากเพิกถอนแล้ว ให้ลบข้อมูลลับออกจากประวัติ:
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamข้อมูลลับในกระบวนการ CI/CD
ระบบ CI/CD มีการจัดการข้อมูลลับของตนเอง:
- GitHub Actions: ข้อมูลลับจัดเก็บในการตั้งค่าคลังรหัสหรือองค์กร → เข้าถึงเป็น
${{ secrets.API_KEY }} - GitLab CI: ตัวแปร CI/CD
- Jenkins: ปลั๊กอินข้อมูลรับรอง
ปิดบังข้อมูลลับในบันทึกการทำงาน ห้ามพิมพ์ข้อมูลลับในผลลัพธ์การแก้ไขข้อบกพร่อง
ตรวจสอบความเข้าใจอย่างรวดเร็ว: การสแกนข้อมูลลับ
แนวป้องกันด่านแรกที่มีประสิทธิผลสูงสุดในการป้องกันไม่ให้ข้อมูลลับเข้าสู่คลังรหัสคืออะไร
สรุปบทเรียน
ข้อมูลลับที่ฝังตายตัวในระบบควบคุมเวอร์ชันเป็นความเสี่ยงร้ายแรง เพราะ repos สาธารณะถูกบอตเก็บข้อมูลภายในไม่กี่วินาที การป้องกัน: ฮุกก่อนยืนยันการเปลี่ยนแปลง (gitleaks) และกฎละเว้นแฟ้ม การตรวจจับ: truffleHog และการสแกนข้อมูลลับของ GitHub จัดเก็บข้อมูลลับในตัวแปรสภาพแวดล้อมหรือระบบจัดการข้อมูลลับโดยเฉพาะ (Vault, AWS Secrets Manager) หมุนเวียนข้อมูลลับทันทีเมื่อถูกเปิดเผย และลบข้อมูลลับออกจากประวัติระบบควบคุมเวอร์ชันด้วย BFG Repo Cleaner
คำถามที่พบบ่อย
บทเรียน “การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว”
ป้องกันไม่ให้คีย์ API และรหัสผ่านถูกคอมมิตโดยใช้ git-secrets, gitleaks และฮุกก่อนคอมมิต คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- SAST และ DAST ในไปป์ไลน์ CI/CD
- การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)
- การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว
- ผู้ประสานงานด้านความปลอดภัยและการสร้างแบบจำลองภัยคุกคาม