อ่านเจอเอกสารเกี่ยวกับ Agile Security Manifesto
เห็นว่าน่าสนใจดี จึงนำมาแปลและสรุปไว้นิดหน่อย
มีอยู่ 4 ข้อเท่ากับ Agile เลย
เป็นแนวทางสำหรับการสร้าง software ที่มีความปลอดภัย ตามแนวทางของ Agile ดังนี้
- Rely on developers and testers more than security specialists.
- Secure while we work more than after we’re done.
- Implement features securely more than adding on security features.
- Mitigate risks more than fix bugs.
1. Rely on developers and testers more than security specialists
ให้ความรู้เรื่องความปลอดภัยสำหรับการพัฒนาระบบงานให้กับทางนักพัฒนาและทดสอบ มากกว่าจะพึ่งทาง Security specialist หรือผู้เชี่ยวชาญเพียงอย่างเดียวเท่านั้น แน่นอนว่า Security specialist นั้นมีความสำคัญอย่างมาก แต่มีน้อยทีมมากที่จะมี Security specialist ประจำอยู่ในทีมพัฒนา และส่วนใหญ่จะทำการตรวจสอบหลังจากที่พัฒนาระบบงานเสร็จสิ้นแล้วเท่านั้น ซึ่งมักก่อให้เกิดปัญหาต่าง ๆ ตามมามากมาย สิ่งที่ควรจะเป็นไปก็คือ เรื่องของ security ต้องให้เสร็จภายในทีมพัฒนาหรือรอบการพัฒนาไม่ต้องรอ เรื่องของ security ต้องถูกรวมเข้ากับการพัฒนาและทดสอบไปเลย การที่จะมารอให้ security มาทำการ review แบบ manual คงไม่ทันการ แน่นอนว่า Security specialist ต้องเข้ามาร่วมในทีมด้วยเสมอ ดังนั้นทีมพัฒนาทั้ง developer และ tester รวมไปถึงคนที่เกี่ยวข้อง ต้องมีความรู้ความเข้าใจเรื่องของ security ด้วย แต่ถ้าไม่มีก็ต้องทำการสอนให้เข้าใจจากผู้เชี่ยวชาญนั่นเอง (Security specialist)Security is First and Foremostส่วนเครื่องมือต่าง ๆ เกี่ยวกับ security ก็ให้ไป integrate เข้ากับระบบ CI/CD กันไปเลย
2. Secure while we work more than after we’re done
ทำการเพิ่มเรื่องของ security เข้าไปในการทำงานด้วย นั่นหมายความว่า security คือ activity หรือกิจกรรมที่เกิดขึ้นในการพัฒนา ดังนั้นถ้า Agile team หรือทีมมีการทำงานที่ดีอยู่แล้ว การเพิ่ม security เข้าไปน่าจะเปลี่ยนแปลงไม่มากเท่าไร แต่ถ้าทีมยังทำงานได้ไม่ดี การเพิ่ม security เข้าอาจจะไม่ดีแน่นอน ที่สำคัญถ้าเพิ่มเรื่องของ security เข้าไปในขั้นตอนการพัฒนาแล้ว ต้องทำให้แน่ใจว่า ไม่ทำให้การพัฒนาสะดุดหรือต้องหยุดไป3. Implement features securely more than adding on security features
เรื่องของ security นั้นต้องถูกใส่เข้าไปในทุก ๆ feature ไม่ใช่ทำการเพิ่ม feature ที่เกี่ยวกับ security เข้ามา เช่น feature authentication/authorization และการเข้ารหัสข้อมูล เป็นต้น ดังนั้นในแต่ละ feature ควรมีการพูดคุยและตกลงเรื่อง security ด้วยเสมอ สิ่งที่ควรเน้นคือ การส่งมอบ feature ที่มีคุณค่าทาง business ส่วนสิ่งที่นำมาใช้พัฒนาควรเลือกสิ่งที่ปลอดภัย เช่น framework ที่มีระบบ security ที่ดี build-in ให้อยู่แล้ว หลีกเลี่ยงการ custom library ต่าง ๆ4. Mitigate risks more than fix bugs
ควรทำการลดความเสี่ยงมากกว่าการแก้ไขข้อผิดพลาด นั่นหมายความว่า เราควรทำการป้องกันไม่ให้เกิดข้อผิดพลาดมากกว่าค้นหาข้อผิดพลาด (Prevent > Detect) ในการสร้าง secure software หรือระบบงานที่มีความปลอดภัย ต้องคำนึงถึงความเสี่ยงทางด้วยธุรกิจ ผู้ใช้งาน และ ข้อมูลต่าง ๆ เพื่อลดความเสี่ยงต่าง ๆ ทั้งหมดให้เหลือน้อยที่สุดเท่าที่จะทำได้ ประเด็นหลัก ๆ คือ เราคุยเรื่องความเสี่ยงเหล่านี้กันเมื่อใด ควรระบุและสรุปรูปแบบการโจมตีต่าง ๆ ไว้ เพื่อทำให้เราเห็นว่า มีสิ่งใดบ้างที่ควรระวัง หรือ ควรหรือไม่ควรทำ ถ้ายังมานั่งแก้ไขข้อผิดพลาดที่ละข้อ ทีละ feature เหมือนที่เคยทำกัน เผลอ ๆ อาจจะต้องรื้อทำใหม่กันเลยBuilding secure software in an agile way is fundamentally just building software in an agile way.