SAST และ DAST ในไปป์ไลน์ CI/CD
ผสานรวม SonarQube, Semgrep หรือ Bandit สำหรับการวิเคราะห์แบบสถิต และ OWASP ZAP สำหรับการสแกนแบบไดนามิกในไปป์ไลน์
SAST และ DAST ในไปป์ไลน์ CI/CD เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
การทดสอบความปลอดภัยของแอปพลิเคชันคืออะไร
การทดสอบความปลอดภัยของแอปพลิเคชันช่วยระบุช่องโหว่ก่อนที่รหัสจะเข้าสู่ระบบใช้งานจริง แนวทางที่เสริมกันมีสองแบบ ได้แก่ SAST (แบบสถิต โดยไม่เรียกใช้รหัส) และ DAST (แบบพลวัต โดยทดสอบแอปพลิเคชันที่กำลังทำงานอยู่) ทั้งสองแบบสามารถผสานรวมเข้ากับกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่องเพื่อให้การรักษาความปลอดภัยเริ่มต้นตั้งแต่ระยะแรก
SAST: การทดสอบความปลอดภัยของแอปพลิเคชันแบบสถิต
SAST วิเคราะห์รหัสต้นฉบับ รหัสไบต์ หรือไบนารีเพื่อค้นหาช่องโหว่ด้านความปลอดภัยโดยไม่เรียกใช้รหัส สามารถทำงานได้ทุกครั้งที่มีการยืนยันการเปลี่ยนแปลง จึงให้ข้อเสนอแนะได้อย่างรวดเร็ว
จุดแข็ง: ตรวจพบข้อบกพร่องได้ตั้งแต่เนิ่น ๆ ครอบคลุมรหัสทั้งหมด และไม่จำเป็นต้องมีสภาพแวดล้อมที่กำลังทำงาน
จุดอ่อน: มีอัตราผลบวกลวงสูง ขึ้นอยู่กับภาษา และตรวจไม่พบปัญหาการกำหนดค่าขณะทำงาน
เครื่องมือ SAST ที่นิยม
เครื่องมือ SAST แบบเปิด:
# Semgrep (multi-language, rule-based):
semgrep --config auto ./src
# Bandit (Python):
bandit -r ./src
# ESLint security plugin (JavaScript):
npx eslint --plugin security ./src
# SpotBugs + FindSecBugs (Java):
mvn spotbugs:checkการผสานรวม SAST เข้ากับกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่อง
ตัวอย่างขั้นตอน SAST ของ GitHub Actions:
# .github/workflows/security.yml
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: p/owasp-top-ten
auditOn: push
# Fail build if HIGH severity findings presentDAST: การทดสอบความปลอดภัยของแอปพลิเคชันแบบพลวัต
DAST ทดสอบแอปพลิเคชันที่กำลังทำงานจากภายนอก โดยจำลองการทำงานของผู้โจมตี ช่วยค้นหาช่องโหว่ที่มองเห็นได้เฉพาะขณะทำงาน เช่น ปัญหาการยืนยันตัวตน ข้อบกพร่องในการจัดการเซสชัน และข้อบกพร่องในการตรวจสอบข้อมูลนำเข้า
จุดแข็ง: มีผลบวกลวงต่ำ ไม่ขึ้นกับภาษา และค้นพบปัญหาการกำหนดค่าขณะทำงาน
จุดอ่อน: ต้องมีสภาพแวดล้อมที่กำลังทำงาน และอาจพลาดเส้นทางการทำงานของรหัสบางส่วน
เครื่องมือ DAST ที่นิยม
เครื่องมือ DAST สำหรับกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่อง:
# OWASP ZAP (free, scriptable):
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://staging.app.com
# Nikto:
nikto -h https://staging.app.com
# Nuclei (template-based):
nuclei -u https://staging.app.com -t cves/IAST: การทดสอบความปลอดภัยของแอปพลิเคชันแบบโต้ตอบ
IAST ติดตั้งเครื่องมือวัดในแอปพลิเคชันขณะทำงาน โดยใช้ตัวแทนที่เฝ้าติดตามการเรียกใช้รหัสระหว่างการทดสอบฟังก์ชันการทำงาน วิธีนี้ผสานความแม่นยำของ SAST เข้ากับความครอบคลุมของ DAST ตัวอย่างเช่น Contrast Security และ Seeker ต้องใช้ตัวแทนเฉพาะภาษาและต้องมีการเรียกใช้การทดสอบ
การนำการรักษาความปลอดภัยมาไว้แต่เนิ่น ๆ
การนำความปลอดภัยมาไว้แต่เนิ่น ๆ หมายถึงการเลื่อนการทดสอบความปลอดภัยให้เร็วขึ้นในวงจรการพัฒนา โดยควรทำตั้งแต่สภาพแวดล้อมพัฒนาแบบบูรณาการของนักพัฒนาและขั้นตอนการยืนยันการเปลี่ยนแปลง แทนที่จะรอจุดตรวจแยกต่างหากก่อนเผยแพร่ ยิ่งตรวจพบเร็ว การแก้ไขก็ยิ่งมีค่าใช้จ่ายต่ำ
ตัวคูณต้นทุน: ข้อบกพร่องในระยะพัฒนามีต้นทุน 1 เท่า ในระยะเตรียมการมีต้นทุน 10 เท่า และในระบบใช้งานจริงมีต้นทุน 100 เท่า
การจัดการผลบวกลวง
เครื่องมือ SAST ทำให้เกิดผลบวกลวงได้ วิธีจัดการมีดังนี้:
- ใช้
nosec(Bandit) หรือความคิดเห็นระงับการแจ้งเตือนแบบอินไลน์สำหรับกรณีที่ยืนยันแล้วว่าไม่ใช่ปัญหา - ปรับแต่งชุดกฎให้เหมาะกับบริบทของแอปพลิเคชัน
- บันทึกเหตุผลในการระงับไว้ในความคิดเห็นของรหัส
- ทบทวนการระงับเป็นระยะ
สถาปัตยกรรมกระบวนการทำงานด้านความปลอดภัยสำหรับ CI/CD
กระบวนการทำงานด้านความปลอดภัยที่สมบูรณ์:
- ฮุกก่อนยืนยันการเปลี่ยนแปลง: การสแกนข้อมูลลับ (gitleaks), SAST (semgrep)
- การตรวจสอบ PR: ผลลัพธ์ SAST และการสแกนส่วนพึ่งพา (Dependabot)
- การนำไปใช้งานในสภาพแวดล้อมเตรียมการ: การสแกน DAST (ค่าพื้นฐานของ ZAP)
- ระบบใช้งานจริง: การเฝ้าติดตามขณะทำงาน (RASP, WAF)
การวัดประสิทธิผลของ AppSec
ตัวชี้วัดสำคัญสำหรับ AppSec ในกระบวนการผสานรวมและส่งมอบอย่างต่อเนื่อง:
- เวลาเฉลี่ยในการแก้ไขข้อค้นพบด้านความปลอดภัย
- อัตราการพบข้อค้นพบต่อรหัส 1,000 บรรทัด
- อัตราผลบวกลวง (มีผลต่อความไว้วางใจของนักพัฒนา)
- อัตราช่องโหว่ที่หลุดรอด (พบในสภาพแวดล้อมเตรียมการเทียบกับระบบใช้งานจริง)
ตรวจสอบความเข้าใจอย่างรวดเร็ว: SAST เทียบกับ DAST
การทดสอบความปลอดภัยประเภทใดที่วิเคราะห์รหัสต้นฉบับโดยไม่เรียกใช้รหัส และให้ข้อเสนอแนะโดยตรงในกระบวนการ CI ทุกครั้งที่มีการยืนยันการเปลี่ยนแปลง
สรุปบทเรียน
SAST วิเคราะห์รหัสแบบสถิต (ให้ข้อเสนอแนะเร็วและมีผลบวกลวงสูง) ส่วน DAST ทดสอบแอปพลิเคชันที่กำลังทำงานแบบพลวัต (แม่นยำขณะทำงานแต่ต้องมีสภาพแวดล้อม) ทั้งสองแบบควรอยู่ในกระบวนการ CI/CD การนำการรักษาความปลอดภัยมาไว้แต่เนิ่น ๆ ช่วยตรวจพบช่องโหว่ในช่วงที่การแก้ไขมีค่าใช้จ่ายต่ำที่สุด เครื่องมือที่นิยม ได้แก่ Semgrep และ Bandit (SAST) รวมถึง OWASP ZAP และ Nuclei (DAST) ปรับแต่งชุดกฎและติดตามการระงับเพื่อจัดการผลบวกลวง
คำถามที่พบบ่อย
บทเรียน “SAST และ DAST ในไปป์ไลน์ CI/CD” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “SAST และ DAST ในไปป์ไลน์ CI/CD” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “SAST และ DAST ในไปป์ไลน์ CI/CD”
ผสานรวม SonarQube, Semgrep หรือ Bandit สำหรับการวิเคราะห์แบบสถิต และ OWASP ZAP สำหรับการสแกนแบบไดนามิกในไปป์ไลน์ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “SAST และ DAST ในไปป์ไลน์ CI/CD” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- SAST และ DAST ในไปป์ไลน์ CI/CD
- การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)
- การสแกนข้อมูลลับและข้อมูลรับรองที่ฝังตายตัว
- ผู้ประสานงานด้านความปลอดภัยและการสร้างแบบจำลองภัยคุกคาม