การปิดบังตัวตนของเซิร์ฟเวอร์
เทคนิคหนึ่งที่มักจะช่วยให้ช้าลงและทำให้ผู้โจมตีสับสนคือการเปลี่ยนแปลงข้อมูลประจำตัวของเว็บเซิร์ฟเวอร์ โดยทั่วไปแล้วเว็บเซิร์ฟเวอร์จะส่งข้อมูลระบุตัวตนพร้อมการตอบกลับ HTTP ทุกครั้งในส่วนหัวเซิร์ฟเวอร์ Apache มีประโยชน์อย่างยิ่งที่นี่ไม่เพียง แต่ส่งชื่อและเวอร์ชันเต็มโดยค่าเริ่มต้น แต่ยังอนุญาตให้โมดูลเซิร์ฟเวอร์ต่อท้ายเวอร์ชันของพวกเขาด้วย
หากต้องการเปลี่ยนข้อมูลประจำตัวของเว็บเซิร์ฟเวอร์ Apache คุณจะต้องเข้าไปในซอร์สโค้ดค้นหาว่าชื่อ "Apache" นั้นเป็นรหัสฮาร์ดโค้ดเปลี่ยนและทำคอมไพล์เซิร์ฟเวอร์ใหม่ เอฟเฟกต์เดียวกันนี้สามารถทำได้โดยใช้
SecServerSignature คำสั่ง:
SecServerSignature "Microsoft-IIS/5.0"
ควรสังเกตว่าแม้ว่าวิธีนี้จะทำงานได้ค่อนข้างดีผู้โจมตีที่มีทักษะ (และเครื่องมือ) อาจใช้เทคนิคอื่นเพื่อ "พิมพ์ลายนิ้วมือ" บนเว็บเซิร์ฟเวอร์ ตัวอย่างเช่นไฟล์เริ่มต้นข้อผิดพลาดการสั่งซื้อของส่วนหัวขาออกวิธีที่เซิร์ฟเวอร์ตอบสนองต่อการร้องขอบางอย่างและที่คล้ายกัน - ทั้งหมดสามารถให้ตัวตนที่แท้จริง ฉันจะพิจารณาปรับปรุงการสนับสนุนสำหรับการปิดบังตัวตนเพิ่มเติมในรุ่นอนาคตของ mod_security
หากคุณเปลี่ยนลายเซ็น Apache แต่คุณรู้สึกรำคาญกับข้อความแปลก ๆ ในบันทึกข้อผิดพลาด (บางโมดูลยังคงมองเห็นได้ - นี่จะมีผลเฉพาะกับบันทึกข้อผิดพลาดเท่านั้นจากภายนอกก็ยังทำงานได้ตามปกติ):
[Fri Jun 11 04:02:28 2004] [notice]
Microsoft-IIS/5.0 mod_ssl/2.8.12
OpenSSL/0.9.6b \ configured --
resuming normal operations
จากนั้นคุณควรจัดเรียงลำดับการโหลดโมดูลใหม่เพื่อให้ mod_security สามารถทำงานได้ครั้งสุดท้ายตามที่อธิบายไว้สำหรับ chrooting
บันทึก
เพื่อให้คำสั่งนี้ทำงานคุณต้องออกจาก / ตั้ง ServerTokens เป็นเต็ม
เมื่อใช้คำสั่ง SecServerSignature เพื่อเปลี่ยนลายเซ็นเซิร์ฟเวอร์สาธารณะ ModSecurity จะเริ่มเขียนลายเซ็นจริงลงในบันทึกข้อผิดพลาดเพื่อให้คุณสามารถระบุเว็บเซิร์ฟเวอร์และโมดูลที่ใช้