ระยะของวงจรชีวิตการพัฒนาซอฟต์แวร์ SDLC ที่ปลอดภัย
เผยแพร่แล้ว: 2021-02-26แนวทางอันชาญฉลาดในการสร้างซอฟต์แวร์ที่ปลอดภัยคือ Secure SDLC หรือ Software Development Lifecycle แทนที่จะสร้างซอฟต์แวร์แล้วทดสอบช่องโหว่ ให้สร้างซอฟต์แวร์โดยเน้นที่ความปลอดภัยจะดีกว่า
SDLC ที่ปลอดภัยคืออะไร?
ในความหมายที่กว้างขึ้น Secure SDLC เป็นกระบวนการของการรวมการทดสอบความปลอดภัยและมาตรการอื่นๆ ในวงจรการพัฒนาซอฟต์แวร์ที่มีอยู่ ซึ่งอาจรวมถึง:
- การเขียนข้อกำหนดด้านความปลอดภัยพร้อมกับข้อกำหนดด้านการทำงาน
- ดำเนินการวิเคราะห์สถาปัตยกรรม
- การใช้ส่วนประกอบโอเพนซอร์สที่ไม่มีช่องโหว่ด้านความปลอดภัยที่รู้จัก
- ทดสอบซอฟต์แวร์ในทุกขั้นตอนและป้องกันช่องโหว่/ภัยคุกคามจากการถูกส่งต่อ
เหตุใด SDLC ที่ปลอดภัยจึงมีความสำคัญ
การนำแนวทางปฏิบัติของวงจรชีวิตการพัฒนาซอฟต์แวร์ไปใช้อย่างปลอดภัยเป็นสิ่งสำคัญ เนื่องจากนักพัฒนาไม่สามารถที่จะเผยแพร่ผลิตภัณฑ์ที่มีช่องโหว่ด้านความปลอดภัยได้ ในการปกป้องซอฟต์แวร์และข้อมูลจากภัยคุกคามและการโจมตี ซอฟต์แวร์จะต้องได้รับการพัฒนาในลักษณะที่รับรองความปลอดภัย
อีกเหตุผลหนึ่งก็คือไม่ใช่วิธีที่มีประสิทธิภาพในการพัฒนาซอฟต์แวร์โดยไม่เน้นที่ความปลอดภัย จากนั้นจึงทำการทดสอบและแก้ไข
ระยะของ SDLC . ที่ปลอดภัย
แนวคิดทั้งหมดของ SDLC ที่ปลอดภัยนั้นเกี่ยวกับการดึงความชั่วร้ายออกจากตา กระบวนการนี้ป้องกันไม่ให้ข้อบกพร่องถูกส่งต่อไปยังขั้นตอนต่อไปของวงจรชีวิตการพัฒนาซอฟต์แวร์ นี่คือภาพร่างของขั้นตอนต่างๆ ที่เกี่ยวข้องกับ Secure SDLC และมาตรการรักษาความปลอดภัยที่นำมาใช้ในแต่ละขั้นตอน
ข้อกำหนด เฟสของ Secure SDLC
นอกเหนือจากข้อกำหนดด้านการทำงานของซอฟต์แวร์แล้ว ข้อกำหนดด้านความปลอดภัยยังอธิบายไว้ที่จุดเริ่มต้นของ SDLC ที่ปลอดภัยอีกด้วย ข้อกำหนดเหล่านี้ให้รายละเอียดว่านักพัฒนาซอฟต์แวร์ต้องการอะไรในการทำให้ซอฟต์แวร์มีความปลอดภัยโดยเนื้อแท้
รายการโดยละเอียดของ Use Case และ Scenarios ที่เกี่ยวข้องกับความปลอดภัยทั้งหมดจะถูกรวบรวมไว้ก่อนที่การพัฒนาจะเริ่มขึ้น จากนั้นใช้เพื่อสร้างคุณลักษณะด้านความปลอดภัยและออกแบบสถานการณ์การทดสอบความปลอดภัย
ข้อกำหนดเหล่านี้อาจมีลักษณะดังนี้:
- เกตเวย์และจุดทางเข้าทั้งหมดต้องมีมาตรการรับรองความถูกต้อง
- ระบบต้องใช้การตรวจสอบสิทธิ์ผ่านหน้าจอการเข้าสู่ระบบที่ปลอดภัย
- ข้อมูลส่วนบุคคลทั้งหมดต้องได้รับการเข้ารหัสตลอดเวลา
- ควรใช้ช่องทางการตรวจสอบมากกว่าหนึ่งช่องทางสำหรับการถ่ายโอนข้อมูลที่ละเอียดอ่อน
ขั้นตอนการวางแผนสำหรับ SDLC . ที่ปลอดภัย
ขั้นตอนการวางแผนเป็นขั้นตอนสำคัญใน Secure SDLC การวางแผนอาจแตกต่างกันไปในแต่ละกรณี แต่นี่คือสิ่งที่พื้นฐานที่สุดที่ต้องได้รับการดูแล:
- ต้องมีทีมรักษาความปลอดภัยที่มีประสบการณ์โดยเฉพาะเพื่อมองข้ามและกำหนดมาตรการที่เกี่ยวข้องกับความปลอดภัยทั้งหมดของซอฟต์แวร์อย่างเป็นกลาง ทีมงานนี้ ซึ่งควรประจำการอยู่นอกสำนักงานบริหารโครงการ ควรประกอบด้วยเจ้าหน้าที่รักษาความปลอดภัย สถาปนิกด้านความปลอดภัย และผู้ทดสอบความปลอดภัย สมาชิกในทีมทุกคนต้องมีบทบาทและความรับผิดชอบที่ชัดเจน
- ความคลุมเครือหรือการยกระดับที่เกี่ยวข้องกับปัญหาด้านความปลอดภัยของโครงการต้องได้รับการจัดการโดยเจ้าหน้าที่รักษาความปลอดภัยของผลิตภัณฑ์ เขาจะต้องได้รับคำแนะนำจากทีมรักษาความปลอดภัยเพื่อให้แน่ใจว่ามีการตัดสินใจที่ถูกต้อง
- ต้องสร้างจุดติดต่อด้านความปลอดภัยเพื่อให้แน่ใจว่าการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับความปลอดภัยของผลิตภัณฑ์จะไม่ถูกมองข้ามโดยทีมรักษาความปลอดภัย
สถาปัตยกรรมและการออกแบบเฟสของ SDLC
ต้องดำเนินการประเมินความเสี่ยงด้านความปลอดภัยของผลิตภัณฑ์โดยละเอียดในระหว่างขั้นตอนการออกแบบ ซึ่งรวมถึงการตรวจสอบโปรแกรมจากมุมมองด้านความปลอดภัยในขณะที่ยังไม่ได้เข้าสู่ขั้นตอนการเข้ารหัส ต้องขจัดความเสี่ยงด้านความปลอดภัยก่อนที่จะเข้าสู่ขั้นต่อไป เพื่อให้มั่นใจในความปลอดภัย การประเมินทั้งหมดจะต้องดำเนินการตามมาตรฐานอุตสาหกรรม

สิ่งที่ต้องดูแลในระยะนี้รวมถึงแต่ไม่จำกัดเพียง:
- ตรวจสอบคุณสมบัติ ข้อกำหนด เรื่องราวของผู้ใช้ และเอกสารการออกแบบทั้งหมดตามรายละเอียดที่แชร์โดยทีมงานโครงการ ในกรณีที่ไม่มีเอกสารที่จำเป็น สมาชิกในทีมโครงการจะต้องหารือทุกอย่างอย่างชัดเจน
- ช่องว่างใด ๆ ในข้อกำหนดด้านความปลอดภัยของโปรแกรมจะต้องถูกระบุและประเมินตามมาตรฐานอุตสาหกรรมที่ใช้ หากจำเป็น สามารถสร้างแบบจำลองภัยคุกคามได้ตามช่องว่างที่ระบุ
- ช่องว่างที่มีความเสี่ยงด้านความปลอดภัยเพียงพอควรระบุไว้และแนะนำให้มีการบรรเทาผลกระทบที่เป็นไปได้
ระยะการพัฒนา SDLC
นี่คือ "การพัฒนา" ที่แท้จริงของซอฟต์แวร์ หลังจากที่ได้จัดเตรียมเลย์เอาต์ที่ปลอดภัยของแอพพลิเคชั่นแล้ว ผู้พัฒนาจะต้องเขียนโค้ดในลักษณะที่สอดคล้องกับแนวทางความปลอดภัย ซึ่งรวมถึง:
- การใช้ส่วนประกอบโอเพนซอร์ซที่ไม่มีช่องโหว่ที่รู้จัก
- การใช้มาตรการรักษาความปลอดภัยที่ตกลงกันไว้ตลอดการพัฒนาซอฟต์แวร์
- การทดสอบโค้ดแบบเย็นเพื่อเปิดเผยและบรรเทาช่องโหว่ใดๆ ในโค้ด
การทดสอบบางอย่างก็ทำในขั้นตอนเช่นกัน ซึ่งอาจรวมถึงสิ่งต่างๆ เช่น การทำให้แน่ใจว่าข้อมูลที่ละเอียดอ่อนจะไม่ถูกส่งเป็นข้อความธรรมดา
ระยะการดำเนินการของ SDLC
เมื่อซอฟต์แวร์ได้รับการพัฒนาแล้ว ขั้นตอนต่อไปคือการวิเคราะห์โค้ดแบบไดนามิก นี่คือรูปแบบการทดสอบความปลอดภัยของแอปพลิเคชัน หรือที่เรียกว่าการทดสอบ Open Web Application Project (OWASP)
ก่อนที่โซลูชันจะถูกนำไปใช้ในชีวิตจริง การวิเคราะห์ช่องโหว่และการทดสอบการเจาะจะถูกดำเนินการ เวอร์ชันของซอฟต์แวร์ที่ทำการตรวจสอบนี้เรียกว่ารุ่นทดสอบ สิ่งสำคัญที่ควรทราบเกี่ยวกับเรื่องนี้ ได้แก่:
- เครื่องมือต่างๆ เช่น HP WebInspect, ZAP, Burp Suite และ SOAP ใช้สำหรับตรวจสอบช่องโหว่ของซอฟต์แวร์กับฐานข้อมูลช่องโหว่ต่างๆ
- ขั้นตอนทั้งหมดนี้เป็นการผสมผสานระหว่างระบบอัตโนมัติและการทดสอบด้วยตนเอง
- กระบวนการนี้ดำเนินการในสภาพแวดล้อมอิสระที่ไม่เชื่อมโยงกับสภาพแวดล้อมการพัฒนาเพื่อให้แน่ใจว่าสถานการณ์การทดสอบใกล้เคียงกับความเป็นจริง
- ช่องโหว่ใดๆ ที่พบในระยะนี้จะได้รับการบรรเทาก่อนที่จะปล่อยซอฟต์แวร์
- ภัยคุกคามทั่วไปและทั่วไปจะถูกระบุในระหว่างขั้นตอนนี้ และดำเนินการตามขั้นตอนเพื่อป้องกัน
บทสรุป
ในขณะที่การพึ่งพาซอฟต์แวร์ของเราเพิ่มขึ้นอย่างต่อเนื่อง การทำให้พวกเขาปลอดภัยสำหรับผู้ใช้จึงเป็นสิ่งสำคัญ เพื่อให้แน่ใจว่าซอฟต์แวร์และแอปพลิเคชันมีความปลอดภัย เราจึงนำแนวทางปฏิบัติ SDLC ที่ปลอดภัยมาใช้ เป้าหมายสูงสุดคือการสร้างโซลูชันซอฟต์แวร์ที่คงกระพันอยู่เสมอ
กระบวนการ SDLC ที่ปลอดภัยมีห้าขั้นตอนตั้งแต่การรวบรวมข้อกำหนดไปจนถึงการทดสอบก่อนการปรับใช้งาน จุดเน้นคือการบรรเทาภัยคุกคามและช่องโหว่ในทุกขั้นตอนเพื่อไม่ให้ดำเนินการในขั้นตอนต่อไป
