Automation Security คือ Key สำคัญในการทำ DevSecOps ซึ่งมีคำว่า Security อยู่แทรกตรงกลางระหว่าง Development และ Operation ซึ่งหมายความว่ามีการทำ Security ในทุก Step ของการทำ DevOps
ในโลกของ DevSecOps จะมีสิ่งที่เรียกว่า “Security shift left” คือการเปลี่ยนรูปแบบ Security ของการพัฒนาซอฟต์แวร์แบบเดิม ๆ เพื่อปรับปรุงให้ทีม Security มาอยู่ในทุก Stage บน DevOps Flow ของการพัฒนาซอฟต์แวร์ตั้งแต่วันแรกของการเริ่มพัฒนาในรูปแบบ Automation
Table of Contents
Automation Security ในแต่ละ Stage ของ DevSecOps Flow
DevSecOps Flow สามารถแบ่งออกเป็น Stage ในการพัฒนาซอฟต์แวร์ได้เป็น 3 Stage โดยมี Tools เข้ามาช่วยเหลือโดยมี Stage ดังต่อไปนี้
1) PreCommit Stage
ช่วงเริ่มต้นเขียนโค้ด หรือ Build โค้ดขึ้นมา และทำการ Secure โค้ด ซึ่งเทคนิคการทำ Automation Security จึงเกี่ยวข้องกับ Source Code ซะส่วนใหญ่ โดยขอยกตัวอย่างเทคนิคที่สำคัญดังนี้
Secure coding
Best Practices ของการเขียนโค้ดให้มีช่องโหว่น้อยที่สุดที่คนที่เป็น Dev ควรศึกษา โดยมี OWASP Secure coding practices เป็นมาตราฐานว่าการเขียนโค้ดให้ซอฟต์แวร์มีความปลอดภัยจำเป็นต้องมีอะไรบ้าง เช่น Input Validation, Authentication, Session management, Cryptographic หรือ Error Handing เป็นต้น
SAST (Static Automation Security Testing)
เทคนิคการ Scan Source Code เพื่อหาช่องโหว่ หา Pattern หรือมีลักษณะการทำอีกชื่อหนึ่งว่า White Box testing โดยมี Tools ที่นิยมใช้กันได้แก่ Sonarqube, GitLab หรือ Fortify เป็นต้น
SCA (Software Composition Analysis)
เทคนิคการดูแล Third-Party ของ Source code เพราะปัจจุบันมี Framework หรือ Library มากมายเข้ามามีส่วนในการพัฒนาซอฟต์แวร์ จึงจำเป็นต้องมีการจัดการดูแลความ Secure ของ Third-party เหล่านั้น โดย SCA จะเข้ามาทำ 3 หน้าที่ได้แก่
- ทำ Inventory หรือลิสต์ Third-party ทั้งหมดที่ Source code ใช้ออกมา
- หาช่องโหว่จาก Pattern ที่ลิสต์ออกมาไปเทียบกับ NVD (National Vulnerability Database) เพื่อประเมินช่องโหว่
- รวมถึงอีกทั้งยังทำ Compatibility ในเรื่องของ License
2) Acceptance Stage
ช่วงขั้นตอนของการ Run Test และเตรียมพร้อมก่อนเริ่มทำการ Release ขึ้น Production ได้โดยมีเทคนิคส่วนใหญ่เป็นเรื่องของการทำ Software Security Testing ไม่ว่าจะเป็นการทำ Pentest, VA scan และ Fuzz Testing ซึ่งมีลักษณะในการทำทดสอบแตกต่างกันออกไป
DAST (Dynamic Application Security Testing)
เทคนิคในการทำ Black Box testing คือการจำลองไล่เข้าไปใน Application ที่กำลังทำงานอยู่เพื่อไปทำการทดสอบระบบตามรูปแบบของ Software Tools แต่ละตัว ตัวอย่างเช่น ZAP หรือ Checkmarx เป็นต้น
IAST (Interactive Application Security Testing)
มีความแตกต่างจาก DAST ตรงที่มีการติดตั้ง Agent หรือ Sensor เข้าไปในตัว Application และ Run ควบคู่กับ Application เพื่อ Detect ช่องโหว่ ตัวอย่าง Tools ได้แก่ Acunetix หรือ Hdiv
Infrastructure as Code (IaC) Security
เป็นเทคนิคของโลกการทำ Security ของโลกยุคใหม่ในการพัฒนาซอฟต์แวร์ โดยเป็นการเขียน Pattern ตัว Infrastructure ของ App ที่ถูกสร้างขึ้นมาเป็นรูปแบบไหน โดยในการทำ IaC จะมีการ Scan หาตาม Pattern Software tools ไม่ว่าจะเป็น Ansible, Terraform, Kubernetes หรือ Helm เพื่อทำการ Detect ช่องโหว่ออกมา เพื่อ Suggest ให้ปรับปรุงตาม Best Practices
Container Image Security
เทคนิคการทำ Scan Image ภายใน Container เพื่อทำการ Detect Component หาช่องโหว่ในแต่ละส่วนของ Container ตั้งแต่ OS ไปยันถึง Configuration ต่าง ๆ โดยมี Tools แนะนำได้แก่ Trend Micro หรือ Paloalto เป็นต้น
PAM (Privileged Access Management)
Software กลางที่จะช่วยเก็บข้อมูล Credentials ขององค์กร ซึ่งแนวคิดการทำ DevSecOps จะมี Feature ที่ต้องสามารถ Access ผ่าน API ได้ในรูปแบบ Automation โดยมีเทคนิคที่เรียกว่าการทำ Secret management โดยใช้เครื่องมืออย่าง Hashicorp Vault และสามารถ Rotation เพื่อทำการตั้งค่า Expire Secret ตลอดเวลาเพื่อเพิ่มความปลอดภัยก่อนเริ่มทำการ Release ขึ้น Production
Production Stage
หลังจากทำการ Release ไปเรียบร้อยแล้ว ขั้นตอนต่อไปคือการ Monitor และ Maintenance โดยมีเทคนิคดังนี้
Automation Security Baseline
Security Practices ที่ต้องมีในการทำ Production โดยมีองค์กรกลางที่ออกแบบ Standard ได้แก่ CIS-Center for Internet Security, NIST Security Configuration Checklist หรือ OpenSCAP เป็น baseline ของ Software แต่ละตัวที่ต้อง Set ให้เป็นมาตราฐาน ซึ่งเราสามารถใช้ Automation Software ในการทำ Security Baseline เช่น Ansible, CHIF, Amazon Web services, Azure, Google Cloud เป็นต้น
Cloud Security Automation
โดยเทคนิคสามารถแบ่งออกเป็น 5 อย่างได้แก่ Monitoring, Evaluation, In-depth analysis, Reporting และ Remediation เพื่อทำการลดความเสี่ยงแบบ Automation
RASP (Runtime Application Security Protection)
เทคนิคในการดูแลซอฟต์แวร์ในขณะที่ทำงานอยู่เป็นเหมือน Firewall ที่จะช่วยป้องกันความเสี่ยงที่จะเกิดขึ้นอย่างมีประสิทธิภาพ
WAF (Web Application Firewall)
เทคนิคการป้องกันดักจับ Pattern รูปแบบการเจาะเข้ามาในระบบที่มีแนวโน้มที่จะเกิดความเสี่ยง ซึ่งเป็นที่นิยมใช้กันไม่ว่าจะเป็น Amazon web services, Azure หรือ Google Cloud เป็นต้น
Security Monitoring
ไม่ว่าจะเป็นการทำ Security information monitoring (SIM) หรือ Security Event monitoring (SEM) ซึ่งจะทำการ Logs และดำเนินการตาม Playbook ในรูปแบบ Automation เพื่อป้องกันความเสี่ยงที่จะเกิดขึ้นได้ทันที ซึ่งจะมีเครื่องมือที่นิยมใช้ได้แก่ Splunk, LogRhythm หรือ DataDog เป็นต้น
เห็นแบบนี้แล้วในโลกของการทำ Automation Security ปัจจุบันมีเครื่องมือทั้ง Software Tools ที่เป็น Open-sources หรือ Commercials มากมายถูกพัฒนาออกมาเป็นส่วนช่วยในการเพิ่มความ Secure ในทุกภาคส่วนของการพัฒนาซอฟต์แวร์
.
ซึ่ง BIG CHALLENGE ของทีมนักพัฒนาไม่ว่าจะเป็นทีม Dev ทีม Operation หรือ ทีม Security ด้วยนั้น คือการเรียนรู้และอัปเดต Practices ต่าง ๆ ที่ออกมาใหม่อยู่เสมอ ซึ่งทักษะการทำ DevSecOps กำลังเป็นทักษะที่จำเป็นในการทำ Security ที่กำลังเป็นเรื่องสำคัญที่องค์กรทั่วโลกกำลังให้ความสำคัญและมองหาบุคลลากรผู้มีความสามารถจำนวนมาก
.
มาเรียนรู้การทำ AUTOMATION SECURITY ด้วยแนวทางที่ถูกต้องกับมือโปร!
เรียนรู้วิธีการเพิ่มความปลอดภัยในกระบวนการ DevSecOps ตามที่ Gartner แนะนำด้วยกระบวน CNAPPs ตั้งแต่ SAST, SCA, DAST, IaC Security, การทำ Secrets Management, เทคนิคเพิ่มความปลอดภัยให้กับ Container และ Kubernetes ด้วยกระบวนการต่าง ๆ เช่น Container & Cluster Policy, RBAC, Network Policy, Resource Limit เป็นต้น สมัครเรียนเลย > คลิกที่นี่
.
หรือ สมัครเรียน “The Complete DevSecOps Program” รวม 4 เวิร์กชอป DevSecOps หลักสูตรที่ครบที่สุดในไทย เหมาะสำหรับผู้สนใจเรียนรู้การทำ DevSecOps ในองค์กรแบบครบจบทุกมิติ รายละเอียดเพิ่มเติม
.
สอนโดย สอนโดยผู้เชี่ยวชาญด้าน DevSecOps ระดับ Top ของประเทศ คุณเดียร์ จิรายุส นิ่มแสง – Founder & CEO ของ Opsta (Thailand) และ Certified Kubernetes Administrator (CKA) & Certified Kubernetes Security Specialist (CKS) คนแรกของประเทศไทย