ป้ายกำกับ: Libraries

DevSecOps: (Development + Security + Operations)DevSecOps: (Development + Security + Operations)

DevSecOps (Development + Security + Operations) คือการยกระดับขึ้นมาจาก DevOps อีกขั้นครับ โดยการนำเรื่อง “Security (ความปลอดภัย)” เข้าไปหลอมรวมเป็นเนื้อเดียวกันในทุก ๆ ขั้นตอนของกระบวนการพัฒนาซอฟต์แวร์ ตั้งแต่วันแรกที่เริ่มเขียนโค้ด ไม่ใช่รอให้ระบบทำเสร็จแล้วค่อยส่งให้ทีม Security ตรวจสอบแบบสมัยก่อน

แนวคิดหลักของ DevSecOps คือคำว่า “Shift Left” หมายถึงการย้ายกระบวนการตรวจสอบความปลอดภัยจากเดิมที่อยู่ขวาสุด (ขั้นตอนสุดท้ายก่อนเอาขึ้น Production) มาอยู่ด้านซ้ายสุด (ตั้งแต่เริ่มคิดและเขียนโค้ด) เพื่อให้เจอช่องโหว่เร็วที่สุด เพราะยิ่งเจอเร็ว ค่าใช้จ่ายและเวลาในการแก้ไขก็จะยิ่งน้อยลงครับ


สิ่งที่ DevSecOps ทำในแต่ละขั้นตอน (CI/CD Pipeline)

เมื่อใส่ Security เข้าไปในระบบอัตโนมัติ (Automated Pipeline) สิ่งที่เกิดขึ้นในแต่ละสถานีจะมีดังนี้ครับ

ขั้นตอนการวางแผนและเขียนโค้ด (Plan & Code)

  • Pre-commit Hooks: ตรวจสอบโค้ดบนเครื่องของ Developer ทันทีที่กด Save หรือ Commit เพื่อป้องกันไม่ให้เผลอใส่รหัสผ่าน, API Key, หรือ SSH Key หลุดเข้าไปใน Git Repository
  • SCA (Software Composition Analysis): สแกนหาช่องโหว่ใน Open-source Libraries หรือ Third-party Packages ที่เราดึงมาใช้ (เช่น ตรวจสอบว่า npm package หรือ NuGet ที่ใช้อยู่มีช่องโหว่ที่เป็นอันตรายไหม)

ขั้นตอนการสร้างและทดสอบ (Build & Test)

  • SAST (Static Application Security Testing): เป็นการตรวจความปลอดภัยแบบ “กล่องขาว” (White-box) โดยระบบอัตโนมัติจะไล่สแกนซอร์สโค้ด (Source Code) ทั้งหมด เพื่อหาจุดเสี่ยง เช่น ช่องโหว่ SQL Injection, Cross-Site Scripting (XSS) หรือการเขียนโค้ดที่ไม่ปลอดภัย
  • Container Image Scanning: ในฐานะคนดูแลระบบ (Infra) เมื่อเราแพ็กแอปพลิเคชันลง Docker Image ระบบจะนำฐานข้อมูลช่องโหว่ล่าสุดมาสแกนตัว Base OS และ Library ภายใน Image ทันทีว่าปลอดภัยพอที่จะนำไปรันหรือไม่

ขั้นตอนการติดตั้งและใช้งาน (Deploy & Run)

  • DAST (Dynamic Application Security Testing): เป็นการตรวจแบบ “กล่องดำ” (Black-box) หลังจาก Deploy แอปพลิเคชันจำลองขึ้นมาแล้ว ระบบจะส่งบอทมาลองโจมตีระบบจริง ๆ จากภายนอก เพื่อดูว่ามีช่องโหว่ตอนรันไทม์ (Runtime) หรือไม่
  • Compliance as Code: ตรวจสอบว่าโครงสร้างระบบ (Infrastructure) ที่เขียนด้วยโค้ด (เช่น ไฟล์ Terraform) เป็นไปตามมาตรฐานความปลอดภัยหรือไม่ (เช่น เผลอเปิด Port 22 เป็น Public หรือเปล่า)

ขั้นตอนการเฝ้าระวัง (Monitor & Respond)

  • SIEM & SOAR: การตั้งระบบวิเคราะห์ Log เผื่อกรณีที่มีผู้ไม่หวังดีพยายามยิงถล่มระบบหรือพยายามเจาะเข้ามา เพื่อทำการบล็อก IP หรือแจ้งเตือนทีมงานโดยอัตโนมัติ

ตารางเปรียบเทียบ: DevOps vs DevSecOps

หัวข้อDevOpsDevSecOps
เป้าหมายหลักความเร็ว (Speed) และความเสถียร (Agility)ความเร็วที่มาพร้อมกับความปลอดภัย (Secure Speed)
ความรับผิดชอบทีม Dev + ทีม Opsทุกคนในทีม (Dev + Sec + Ops)
การตรวจ Securityทำตอนท้ายสุดก่อน Deploy หรือทำเป็นรอบปีทำโดยอัตโนมัติในทุก ๆ ลูปการ Push โค้ด
ผลลัพธ์ปล่อยฟีเจอร์ได้เร็ว แต่อาจมีช่องโหว่หลุดไปปล่อยฟีเจอร์ได้เร็ว และมั่นใจว่าผ่านเกณฑ์ความปลอดภัยขั้นต่ำ

สรุป

DevSecOps ไม่ใช่การตั้งทีมใหม่ขึ้นมาขัดขวางไม่ให้ Dev ปล่อยงาน แต่เป็นการ “สร้างระบบอัตโนมัติให้ช่วยตรวจความปลอดภัยแทนคน” เพื่อให้ Developer สามารถปล่อยงานได้เร็วเท่าเดิม โดยที่มีเกราะป้องกันที่แน่นหนาขึ้นตั้งแต่ต้นทางครับ


อ่านเพิ่มเติม