การทดสอบความปลอดภัยคืออะไร? ตัวอย่าง
การทดสอบความปลอดภัยคืออะไร?
การทดสอบความปลอดภัย เป็นประเภทหนึ่งของการทดสอบซอฟต์แวร์ที่เปิดเผยช่องโหว่ ภัยคุกคาม ความเสี่ยงในแอปพลิเคชันซอฟต์แวร์ และป้องกันการโจมตีที่เป็นอันตรายจากผู้บุกรุก วัตถุประสงค์ของการทดสอบความปลอดภัยคือเพื่อระบุช่องโหว่และจุดอ่อนที่เป็นไปได้ทั้งหมดของระบบซอฟต์แวร์ ซึ่งอาจส่งผลให้สูญเสียข้อมูล รายได้ ชื่อเสียง ในมือของพนักงานหรือบุคคลภายนอกขององค์กร
เหตุใดการทดสอบความปลอดภัยจึงมีความสำคัญ
เป้าหมายหลักของ การทดสอบความปลอดภัย คือการระบุภัยคุกคามในระบบและวัดจุดอ่อนที่อาจเกิดขึ้นเพื่อให้เผชิญภัยคุกคามและระบบไม่หยุดทำงานหรือไม่สามารถถูกโจมตีได้ นอกจากนี้ยังช่วยในการตรวจจับความเสี่ยงด้านความปลอดภัยที่เป็นไปได้ทั้งหมดในระบบและช่วยให้นักพัฒนาแก้ไขปัญหาผ่านการเขียนโค้ด
ประเภทของการทดสอบความปลอดภัยในการทดสอบซอฟต์แวร์
การทดสอบความปลอดภัยมีเจ็ดประเภทหลักตามคู่มือวิธีการทดสอบความปลอดภัยของโอเพ่นซอร์ส มีคำอธิบายดังนี้:
- การสแกนช่องโหว่: ดำเนินการผ่านซอฟต์แวร์อัตโนมัติเพื่อสแกนระบบจากลายเซ็นช่องโหว่ที่ทราบ
- การสแกนความปลอดภัย: การสแกนนี้เกี่ยวข้องกับการระบุจุดอ่อนของเครือข่ายและระบบ และนำเสนอแนวทางแก้ไขเพื่อลดความเสี่ยงเหล่านี้ในภายหลัง การสแกนนี้สามารถทำได้ทั้งการสแกนแบบแมนนวลและอัตโนมัติ
- การทดสอบการเจาะ: การทดสอบประเภทนี้จำลองการโจมตีจากแฮกเกอร์ที่เป็นอันตราย การทดสอบนี้เกี่ยวข้องกับการวิเคราะห์ระบบเฉพาะเพื่อตรวจสอบช่องโหว่ที่อาจเกิดขึ้นจากการพยายามแฮ็กจากภายนอก
- การประเมินความเสี่ยง: การทดสอบนี้เกี่ยวข้องกับการวิเคราะห์ความเสี่ยงด้านความปลอดภัยที่สังเกตได้ในองค์กร ความเสี่ยงแบ่งออกเป็นระดับต่ำ ปานกลาง และสูง การทดสอบนี้แนะนำการควบคุมและมาตรการเพื่อลดความเสี่ยง
- การตรวจสอบความปลอดภัย: นี่คือการตรวจสอบภายในของแอปพลิเคชันและ Operaระบบการแต่งแต้ม สำหรับข้อบกพร่องด้านความปลอดภัย การตรวจสอบยังสามารถทำได้ผ่านการตรวจสอบรหัสทีละบรรทัด
- การแฮ็กอย่างมีจริยธรรม: เป็นการแฮ็กระบบซอฟต์แวร์องค์กร ต่างจากแฮกเกอร์ที่เป็นอันตรายซึ่งขโมยเพื่อผลประโยชน์ของตนเอง จุดประสงค์คือการเปิดเผยข้อบกพร่องด้านความปลอดภัยในระบบ
- การประเมินท่าทาง: ซึ่งรวมการสแกนความปลอดภัย การแฮ็กอย่างมีจริยธรรม และการประเมินความเสี่ยงเพื่อแสดงสถานะความปลอดภัยโดยรวมขององค์กร
วิธีทำการทดสอบความปลอดภัย
เป็นที่ตกลงกันเสมอว่าค่าใช้จ่ายจะมากขึ้นหากเราเลื่อนออกไป การทดสอบความปลอดภัย หลังจากขั้นตอนการติดตั้งซอฟต์แวร์หรือหลังจากการปรับใช้ ดังนั้นจึงจำเป็นต้องเกี่ยวข้องกับการทดสอบความปลอดภัยในวงจรชีวิต SDLC ในระยะก่อนหน้านี้
มาดูกระบวนการรักษาความปลอดภัยที่เกี่ยวข้องที่จะนำมาใช้ในทุกระยะใน SDLC
เฟส SDLC | กระบวนการรักษาความปลอดภัย |
---|---|
ความต้องการ | การวิเคราะห์ความปลอดภัยสำหรับข้อกำหนดและตรวจสอบกรณีการละเมิด/การใช้งานในทางที่ผิด |
ออกแบบ | การวิเคราะห์ความเสี่ยงด้านความปลอดภัยเพื่อการออกแบบ การพัฒนาของ แผนการทดสอบ รวมถึงการทดสอบความปลอดภัย |
การเข้ารหัสและการทดสอบหน่วย | การทดสอบและความปลอดภัยแบบคงที่และไดนามิก สีขาว Box การทดสอบ |
การทดสอบการผสานรวม | สีดำ Box การทดสอบ |
การทดสอบระบบ | สีดำ Box การทดสอบและการสแกนช่องโหว่ |
การดำเนินงาน | Penetration Testing, การสแกนช่องโหว่ |
ฝ่าย Support ที่หลากหลาย | การวิเคราะห์ผลกระทบของแพตช์ |
แผนการทดสอบควรประกอบด้วย
- กรณีทดสอบหรือสถานการณ์ที่เกี่ยวข้องกับความปลอดภัย
- ข้อมูลการทดสอบที่เกี่ยวข้องกับการทดสอบความปลอดภัย
- เครื่องมือทดสอบที่จำเป็นสำหรับการทดสอบความปลอดภัย
- การวิเคราะห์ผลการทดสอบต่างๆ จากเครื่องมือรักษาความปลอดภัยต่างๆ
ตัวอย่างสถานการณ์การทดสอบสำหรับการทดสอบความปลอดภัย
ตัวอย่างสถานการณ์การทดสอบเพื่อให้คุณเห็นกรณีทดสอบความปลอดภัย –
- รหัสผ่านควรอยู่ในรูปแบบที่เข้ารหัส
- แอปพลิเคชันหรือระบบไม่ควรอนุญาตให้ผู้ใช้ที่ไม่ถูกต้อง
- ตรวจสอบคุกกี้และเวลาเซสชั่นสำหรับการสมัคร
- สำหรับไซต์ทางการเงิน ปุ่มย้อนกลับของเบราว์เซอร์ไม่ควรทำงาน
ระเบียบวิธี/แนวทาง/เทคนิคการทดสอบความปลอดภัย
ในการทดสอบความปลอดภัยจะมีการปฏิบัติตามวิธีการต่างๆ ดังนี้
- เสือ Box: การแฮ็กนี้มักจะทำบนแล็ปท็อปซึ่งมีระบบปฏิบัติการและเครื่องมือแฮ็กมากมาย การทดสอบนี้ช่วยให้ผู้ทดสอบการเจาะระบบและผู้ทดสอบความปลอดภัยดำเนินการประเมินและโจมตีช่องโหว่ได้
- กล่องดำ (Black Box): ผู้ทดสอบได้รับอนุญาตให้ทำการทดสอบทุกอย่างเกี่ยวกับโทโพโลยีเครือข่ายและเทคโนโลยี
- สีเทา Box:ผู้ทดสอบจะได้รับข้อมูลบางส่วนเกี่ยวกับระบบ ซึ่งเป็นระบบไฮบริดระหว่างรุ่นกล่องสีขาวและกล่องสีดำ
บทบาทการทดสอบความปลอดภัย
- แฮกเกอร์ – เข้าถึงระบบคอมพิวเตอร์หรือเครือข่ายโดยไม่ได้รับอนุญาต
- แครกเกอร์ – เจาะเข้าสู่ระบบเพื่อขโมยหรือทำลายข้อมูล
- แฮ็กเกอร์ที่มีจริยธรรม – ทำกิจกรรมทำลายล้างส่วนใหญ่แต่ได้รับอนุญาตจากเจ้าของ
- Script Kiddies หรือ Packet Monkeys – แฮกเกอร์ที่ไม่มีประสบการณ์และมีทักษะด้านภาษาการเขียนโปรแกรม
เครื่องมือทดสอบความปลอดภัย
1) Teramind
Teramind มอบชุดโปรแกรมที่ครอบคลุมสำหรับการป้องกันภัยคุกคามภายในและการติดตามพนักงาน ช่วยเพิ่มความปลอดภัยผ่านการวิเคราะห์พฤติกรรมและการป้องกันข้อมูลสูญหาย รับรองการปฏิบัติตามข้อกำหนดและเพิ่มประสิทธิภาพกระบวนการทางธุรกิจ แพลตฟอร์มที่ปรับแต่งได้นั้นเหมาะสมกับความต้องการที่หลากหลายขององค์กร โดยให้ข้อมูลเชิงลึกที่นำไปใช้ได้จริงซึ่งมุ่งเน้นที่การเพิ่มผลผลิตและการปกป้องความสมบูรณ์ของข้อมูล
สิ่งอำนวยความสะดวก:
- การป้องกันภัยคุกคามจากภายใน: ตรวจจับและป้องกันการกระทำของผู้ใช้ที่อาจบ่งบอกถึงภัยคุกคามภายในต่อข้อมูล
- การเพิ่มประสิทธิภาพกระบวนการทางธุรกิจ: ใช้การวิเคราะห์พฤติกรรมที่ขับเคลื่อนด้วยข้อมูลเพื่อกำหนดกระบวนการปฏิบัติงานใหม่
- ผลผลิตของพนักงาน: ตรวจสอบประสิทธิภาพการทำงาน ความปลอดภัย และพฤติกรรมการปฏิบัติตามกฎระเบียบของพนักงาน
- การจัดการการปฏิบัติตามกฎระเบียบ: ช่วยจัดการการปฏิบัติตามกฎระเบียบด้วยโซลูชันเดียวที่ปรับขนาดได้ซึ่งเหมาะสำหรับธุรกิจขนาดเล็ก องค์กร และหน่วยงานภาครัฐ
- เหตุการณ์นิติวิทยาศาสตร์: ให้หลักฐานเพื่อเพิ่มการตอบสนองต่อเหตุการณ์ การสืบสวน และข้อมูลภัยคุกคาม
- การป้องกันข้อมูลสูญหาย: ตรวจสอบและป้องกันการสูญเสียข้อมูลที่ละเอียดอ่อนที่อาจเกิดขึ้น
- การตรวจสอบพนักงาน: เสนอความสามารถในการติดตามประสิทธิภาพและกิจกรรมของพนักงาน
- การวิเคราะห์พฤติกรรม: วิเคราะห์ข้อมูลพฤติกรรมแอปของลูกค้าแบบละเอียดเพื่อดูข้อมูลเชิงลึก
- การตั้งค่าการตรวจสอบที่ปรับแต่งได้: อนุญาตให้ปรับแต่งการตั้งค่าการตรวจสอบให้เหมาะสมกับกรณีการใช้งานเฉพาะหรือใช้กฎที่กำหนดไว้ล่วงหน้า
- ข้อมูลเชิงลึกของแดชบอร์ด: ให้การมองเห็นและข้อมูลเชิงลึกที่สามารถดำเนินการได้เกี่ยวกับกิจกรรมของพนักงานผ่านแดชบอร์ดที่ครอบคลุม
2) Owasp
โครงการรักษาความปลอดภัยแอปพลิเคชัน Open Web (OWASP) เป็นองค์กรไม่แสวงผลกำไรระดับโลกที่มุ่งเน้นการปรับปรุงความปลอดภัยของซอฟต์แวร์ โปรเจ็กต์นี้มีเครื่องมือมากมายสำหรับทดสอบสภาพแวดล้อมซอฟต์แวร์และโปรโตคอลต่างๆ เครื่องมือสำคัญของโครงการ ได้แก่
- พร็อกซีโจมตี Zed (ZAP – เครื่องมือทดสอบการเจาะแบบรวม)
- การตรวจสอบการพึ่งพา OWASP (สแกนหาการพึ่งพาโครงการและตรวจสอบช่องโหว่)
- โครงการสภาพแวดล้อมการทดสอบเว็บ OWASP (รวบรวมเครื่องมือรักษาความปลอดภัยและเอกสารประกอบ)
3) ไวร์ชาร์ค
Wireshark เป็นเครื่องมือวิเคราะห์เครือข่ายที่ก่อนหน้านี้รู้จักกันในชื่อ Ethereal ซึ่งจะจับแพ็คเก็ตแบบเรียลไทม์และแสดงในรูปแบบที่มนุษย์สามารถอ่านได้ โดยพื้นฐานแล้ว มันคือเครื่องมือวิเคราะห์แพ็คเก็ตเครือข่าย ซึ่งให้รายละเอียดเล็กๆ น้อยๆ เกี่ยวกับโปรโตคอลเครือข่าย การถอดรหัส ข้อมูลแพ็คเก็ต เป็นต้น เป็นโอเพ่นซอร์สและสามารถใช้บน Linux ได้ Windows, โอเอสเอ็กซ์, Solaris, NetBSD, FreeBSD และระบบอื่นๆ อีกมากมาย ข้อมูลที่ดึงมาผ่านเครื่องมือนี้สามารถดูได้ผ่าน GUI หรือ TTY mode TShark Utility
4) W3af
w3af เป็นกรอบการโจมตีและการตรวจสอบแอปพลิเคชันเว็บ มีปลั๊กอินสามประเภท การค้นพบ การตรวจสอบ และการโจมตีที่สื่อสารถึงกันเพื่อหาช่องโหว่ใดๆ ในไซต์ ตัวอย่างเช่น ปลั๊กอินการค้นพบใน w3af จะค้นหา URL ที่แตกต่างกันเพื่อทดสอบช่องโหว่และส่งต่อไปยังปลั๊กอินการตรวจสอบ ซึ่งจากนั้นจะใช้ URL เหล่านี้เพื่อค้นหาช่องโหว่
ตำนานและข้อเท็จจริงของการทดสอบความปลอดภัย
เรามาพูดถึงหัวข้อที่น่าสนใจเกี่ยวกับความเชื่อผิด ๆ และข้อเท็จจริงของการทดสอบความปลอดภัยกัน:
ตำนาน # 1 เราไม่จำเป็นต้องมีนโยบายความปลอดภัยเนื่องจากเรามีธุรกิจขนาดเล็ก
ข้อเท็จจริง: ทุกคนและทุกบริษัทจำเป็นต้องมีนโยบายความปลอดภัย
ตำนาน # 2 ไม่มีผลตอบแทนจากการลงทุนในการทดสอบความปลอดภัย
ข้อเท็จจริง: การทดสอบความปลอดภัยสามารถชี้ให้เห็นจุดที่ต้องปรับปรุงซึ่งสามารถปรับปรุงประสิทธิภาพและลดการหยุดทำงาน ทำให้เกิดปริมาณงานสูงสุด
ตำนาน # 3: วิธีเดียวที่จะปลอดภัยคือการถอดปลั๊กออก
ข้อเท็จจริง: วิธีเดียวและวิธีที่ดีที่สุดในการรักษาความปลอดภัยให้กับองค์กรคือการค้นหา “ความปลอดภัยที่สมบูรณ์แบบ” การรักษาความปลอดภัยที่สมบูรณ์แบบสามารถทำได้โดยการประเมินท่าทางและเปรียบเทียบกับเหตุผลทางธุรกิจ กฎหมาย และอุตสาหกรรม
ตำนาน # 4: อินเทอร์เน็ตไม่ปลอดภัย ฉันจะซื้อซอฟต์แวร์หรือฮาร์ดแวร์เพื่อปกป้องระบบและกอบกู้ธุรกิจ
ความจริง: หนึ่งในปัญหาที่ใหญ่ที่สุดคือการซื้อซอฟต์แวร์และฮาร์ดแวร์เพื่อความปลอดภัย องค์กรควรเข้าใจความปลอดภัยก่อนแล้วจึงนำไปใช้
สรุป
การทดสอบความปลอดภัยเป็นการทดสอบที่สำคัญที่สุดสำหรับแอปพลิเคชันและตรวจสอบว่าข้อมูลที่เป็นความลับยังคงเป็นความลับอยู่หรือไม่ ในการทดสอบประเภทนี้ ผู้ทดสอบจะมีบทบาทเป็นผู้โจมตีและเล่นรอบระบบเพื่อค้นหาจุดบกพร่องที่เกี่ยวข้องกับความปลอดภัย การทดสอบความปลอดภัยเป็นสิ่งสำคัญมากในวิศวกรรมซอฟต์แวร์ในการปกป้องข้อมูลทุกวิถีทาง