การกำหนดค่าความปลอดภัยผิด
การกำหนดค่าความปลอดภัยผิดเกิดขึ้นเมื่อมีการกำหนดการใช้งานและดูแลการตั้งค่าความปลอดภัยเป็นค่าเริ่มต้น ความปลอดภัยที่ดีต้องการการกำหนดค่าที่ปลอดภัยที่กำหนดและปรับใช้สำหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์เซิร์ฟเวอร์ฐานข้อมูลและแพลตฟอร์ม การปรับปรุงซอฟต์แวร์ให้ทันสมัยมีความสำคัญเท่าเทียมกัน
ตัวอย่าง
ตัวอย่างคลาสสิกบางส่วนของการกำหนดค่าความปลอดภัยมีดังที่ระบุ -
หากรายการไดเรกทอรีไม่ได้ปิดใช้งานบนเซิร์ฟเวอร์และหากผู้โจมตีค้นพบสิ่งเดียวกันผู้โจมตีสามารถแสดงรายการไดเรกทอรีเพื่อค้นหาไฟล์ใด ๆ และดำเนินการได้ นอกจากนี้ยังเป็นไปได้ที่จะได้รับฐานรหัสจริงซึ่งมีรหัสที่กำหนดเองทั้งหมดของคุณแล้วพบข้อบกพร่องร้ายแรงในแอปพลิเคชัน
การกำหนดค่าเซิร์ฟเวอร์แอปอนุญาตให้ส่งสแต็กเทรซกลับไปยังผู้ใช้ซึ่งอาจทำให้เกิดข้อบกพร่องที่อยู่เบื้องหลัง ผู้โจมตีจะคว้าข้อมูลเพิ่มเติมที่ข้อความแสดงข้อผิดพลาดให้ซึ่งเพียงพอให้พวกเขาเจาะได้
เซิร์ฟเวอร์ของแอปมักจะมาพร้อมกับแอปตัวอย่างที่ไม่ปลอดภัย หากไม่ถูกลบออกจากเซิร์ฟเวอร์ที่ใช้งานจริงจะส่งผลให้เซิร์ฟเวอร์ของคุณบุกรุก
Hands ON
Step 1- เปิด Webgoat และไปที่ส่วนการกำหนดค่าที่ไม่ปลอดภัยและให้เราพยายามแก้ปัญหานั้น ภาพรวมของสิ่งเดียวกันอยู่ด้านล่าง -
Step 2- เราสามารถลองใช้ตัวเลือกต่างๆได้มากเท่าที่จะคิดได้ ทั้งหมดที่เราต้องหา URL ของไฟล์ config และเรารู้ว่านักพัฒนาทำตามหลักการตั้งชื่อสำหรับไฟล์ config อาจเป็นอะไรก็ได้ที่ระบุไว้ด้านล่าง โดยปกติจะทำโดยเทคนิค BRUTE force
- web.config
- config
- appname.config
- conf
Step 3 - เมื่อลองใช้ตัวเลือกต่างๆเราพบว่า 'http://localhost:8080/WebGoat/conf'ประสบความสำเร็จ หน้าต่อไปนี้จะปรากฏขึ้นหากความพยายามสำเร็จ -
กลไกการป้องกัน
สภาพแวดล้อมการพัฒนา QA และการผลิตทั้งหมดดังกล่าวควรได้รับการกำหนดค่าให้เหมือนกันโดยใช้รหัสผ่านที่แตกต่างกันที่ใช้ในแต่ละสภาพแวดล้อมที่ไม่สามารถแฮ็กได้โดยง่าย
ตรวจสอบให้แน่ใจว่ามีการนำสถาปัตยกรรมแอ็พพลิเคชันที่แข็งแกร่งมาใช้ซึ่งให้การแยกระหว่างส่วนประกอบที่มีประสิทธิภาพและปลอดภัย
นอกจากนี้ยังสามารถลดความเป็นไปได้ของการโจมตีนี้ด้วยการสแกนอัตโนมัติและทำการตรวจสอบเป็นระยะ