ฉันจะปิดบังสิ่งที่ฉันใช้เพื่อเรียกใช้เว็บไซต์ของฉันได้อย่างไร


72

มีสิ่งใดที่ฉันสามารถทำได้เพื่อป้องกันไม่ให้ใครบางคนรู้ว่าไซต์ของฉันกำลังใช้ Drupal โดยดูที่ซอร์สโค้ดของหน้าแรกหรือไม่ ฉันหมายถึงผู้ที่สแกนไซต์โดยใช้ซอฟต์แวร์ที่ตรวจพบซอฟต์แวร์ที่ใช้ในการเรียกใช้เว็บไซต์เพื่อให้สามารถโจมตีไซต์นั้นได้โดยใช้จุดอ่อนที่ทราบ

ถ้ามันเป็นไปไม่ได้ที่จะสมบูรณ์ซ่อนความจริงที่ว่าเว็บไซต์ที่มีการใช้ Drupal, มันเป็นอย่างน้อยไปได้ที่จะสร้างความสับสนให้พวกเขา (เช่นโดย aliasing หน้าโหนดที่มี URL ที่ชอบhttp://example.com/servlets/<node-id>.jsp)?


76
คุณไม่ต้องการซ่อน Drupal Drupal ยอดเยี่ยมมาก
Damien Tournoud

4
วิธีการเกี่ยวกับการลบไฟล์ CHANGELOG.txt จากไดเรกทอรีรากเพื่อเริ่มต้น! ไม่มี แต่อย่างจริงจัง - ฟังดูเหมือนเป็นการเสียเวลาเปล่าสำหรับฉัน ติดตามความเคลื่อนไหวล่าสุดเกี่ยวกับความปลอดภัยและไม่จำเป็นต้องซ่อนความจริงที่ว่าเป็น Drupal ไวท์เฮ้าส์ซ่อนความจริงที่ว่าพวกเขากำลังใช้ Drupal อยู่หรือไม่? ไม่มีพวกเขาตะโกนมันจากหลังคา :)
ทอม Kirkpatrick

10
ในกรณีนี้การรักษาความปลอดภัยผ่านความสับสนไม่ให้ความปลอดภัยมากขึ้น
Bryan Casler

3
คุณอาจต้องการอ่านCacking Drupal: ถังบรรจุซึ่งเป็นบทความที่ยอดเยี่ยมในการรักษาความปลอดภัยของเว็บไซต์ Drupal
Mawg

2
หากคุณไม่คิดว่ากรณีการใช้ความปลอดภัยเพิ่มขึ้นนี่เป็นอีกทางเลือกหนึ่ง: การรักษาความลับทางการค้า ธุรกิจอาจไม่ต้องการให้คู่แข่งสามารถระบุได้ว่าไซต์นั้นสร้างขึ้นจากอะไร หรือหน่วยงานหรือที่ปรึกษาอาจต้องการให้คู่แข่งอยู่ในที่มืดเกี่ยวกับเครื่องมือที่ใช้ในปัจจุบัน
user568458

คำตอบ:


53

นี่เป็นคำถามเก่าและตอบแล้ว แต่เมื่อเร็ว ๆ นี้ฉันได้พยายามเขียนคำอธิบายของทุกสิ่งที่คุณจะต้องเปลี่ยน:

  • ลบตัวสร้างเมตาสำหรับ Drupal 7
  • ลบ tell-tale-text เช่น CHANGELOG.txt
  • ตรวจสอบส่วนหัวหมดอายุ
  • ไดเร็กทอรีการเดินสำหรับรหัสสถานะ HTTP 200/404/403
  • ค้นหาข้อความเริ่มต้น - ปรับแต่งข้อความทั้งหมดที่ผู้ใช้หันเข้าหา
  • ดูที่ HTML - html เริ่มต้นจากแกนและโมดูลเป็นสัญญาณบอกเล่า

โดยทั่วไป: ในทางเทคนิคอาจเป็นไปได้ที่จะซ่อนความจริงที่ว่าเว็บไซต์ของคุณรัน Drupal แต่คุณจะใช้เวลากับมันมากจนไม่คุ้มค่า คุณควรมุ่งเน้นไปที่การทำให้มันปลอดภัยและการดำเนินการที่ปลอดภัย (เช่นความสามารถในการปรับใช้การอัปเดตอย่างรวดเร็ว, การตรวจสอบบันทึก ฯลฯ )


คุณลืมDrupalวัตถุ JavaScript ที่ต้องเปลี่ยนชื่อ
Mołot

@ จุดที่ดีมาก เป็นไปได้ไหม ตัวชี้ใด ๆ เกี่ยวกับวิธีที่จะทำ? ประเด็นของฉันคือการทำสิ่งนี้ไม่คุ้มค่ากับเวลาดังนั้นการเพิ่มคำแนะนำเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งนี้จะมีประโยชน์เฉพาะในกรณีที่ประเด็นนั้นไกล ฉันหวังว่ามันยากมากที่จะทำในสิ่งที่คุณพูดถึง :)
greggles

ฉันทดสอบกับแทนที่ regex จำนวนมากในไดเรกทอรี Drupal และใช้งานได้ ... แต่ฉันไม่เชื่อว่ามันดีจริงๆ และมันก็คือ f * @ # up ด้วยการอัพเดทโมดูลทุกครั้ง
Mołot

แก้ไข. มันไม่คุ้มค่ากับเวลาของคุณ
จดจ่อ

101

คุณไม่สามารถซ่อนมันได้อย่างสมบูรณ์ สิ่งที่ต้องทำส่วนใหญ่จะต้องมีการแฮ็คหลัก ตัวบอกที่ใหญ่ที่สุดคือDrupalตัวแปร JavaScript ที่อ่านได้จากหน้าแรกหรือหน้าใด ๆ สำหรับเรื่องนั้น

หากคุณต้องการปรับปรุงความปลอดภัยของเว็บไซต์โดยซ่อนไว้ว่าเป็นเว็บไซต์ Drupal ความพยายามของคุณจะถูกใช้ไปกับการตรวจสอบโค้ดมากกว่าที่จะพยายามซ่อนความจริงที่ว่าเว็บไซต์นั้นทำกับ Drupal


7
ตกลง อีกสิ่งที่ยอมแพ้ได้คือโครงสร้างของเส้นทาง CSS / JS / รูปภาพ
Fuzzy76

2
นอกจากนี้คุณยังสามารถเยี่ยมชม/node/1และดูสิ่งที่เกิดขึ้นหรือตรวจสอบส่วนหัว HTTP
พอลโจนส์

39
หากคุณพยายามซ่อนเว็บไซต์ของคุณด้วยความปลอดภัยผ่านความสับสนคุณจะเสียเวลา
Dave Reid

6
เห็นด้วยทั้งหมดข้างต้น ยิ่งไปกว่านั้นมันจะเป็นเรื่องยากสำหรับคนที่เปรียบเทียบ CMS เพื่อดูว่ามีไซต์ที่ยอดเยี่ยมใช้ Drupal จำนวน
เท่าไหร่

เกี่ยวข้องกับสิ่งที่ geerlingguy พูดว่าเป็นการสนทนาที่เรามีที่นี่: groups.drupal.org/node/113024#comments
coderintherye

42

มันง่ายเกินไปที่จะทำ kiam!

  • ใช้ reverse proxy หรือปรับแต่ง http daemon ของคุณเพื่อกรองส่วนหัวของ Drupal http ที่น่ารำคาญ
  • ปฏิเสธการเข้าถึง http ไปยังโฟลเดอร์เริ่มต้นของ Drupal
  • ใช้การบัฟเฟอร์เอาต์พุต PHP เพื่อเขียนและปิดบังซอร์ส HTML ของคุณลบข้อมูลที่ไม่จำเป็นออก
  • ใช้ชื่อแทน url หรือ custom_url_rewrite_in / outbound เพื่อทำให้ URL ของคุณยุ่งเหยิง
  • เปลี่ยนข้อผิดพลาด 404 เริ่มต้นลบ / เปลี่ยน update.php
  • ทำการเปลี่ยนแปลงอื่น ๆ หากมีคนค้นพบ

และสุดท้าย แต่ไม่ท้ายสุดตรวจสอบให้แน่ใจว่าเว็บไซต์ของคุณเรียบง่ายซึ่งไม่จำเป็นต้องใช้ JS หรือ CSS สำหรับพฤติกรรมปกติ (อย่าใช้ Views หรือ Ctools ... ) ไม่รองรับการตรวจสอบผู้ใช้ ฯลฯ ซึ่งหมายความว่าเว็บไซต์ของคุณควร จะง่ายเหมือนเว็บไซต์ html คงที่

ตกลงสิ่งที่ทำให้คนอื่นเชื่อว่าไซต์ของคุณไม่ได้ทำงาน Drupal อย่างไรก็ตามการรักษาความปลอดภัยโดยความสับสนนั้นไม่มีประโยชน์


@jcisio "อย่างไรก็ตามความปลอดภัยโดยความสับสนนั้นไม่มีประโยชน์อะไรเลย" คุณควรจะเพิ่มความคิดเห็นของคุณไว้ด้านบน: P
arpitr

@arpitr ทุกคนอื่นทำมันดังนั้นฉันคิดว่าฉันไม่จำเป็นต้อง;)
jcisio

34

มีบทความอย่างเป็นทางการและการอภิปรายเกี่ยวกับการเป็นแบบเดียวกัน

คุณทำไม่ได้ อย่าลอง

  • การโจมตีแบบอัตโนมัติ (ไกลโดยการโจมตีที่พบมากที่สุด) ไม่ได้ตรวจสอบเซิร์ฟเวอร์ก่อนที่จะพยายามหาประโยชน์ของพวกเขา
    ตรวจสอบบันทึกของเว็บไซต์สูงรายละเอียดใด ๆ จะแสดงหลายพันของการร้องขอไร้ผล /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal, /cgi-bin/ip.cgi... และจำนวนของความพยายามที่จะหาประโยชน์ทางประวัติศาสตร์ใด ๆ ในระบบที่ไม่เกี่ยวข้องใด ๆ
    การโจมตีหาช่องโหว่เกิดขึ้นแม้ว่าช่องโหว่นั้นจะไม่มีอยู่ในระบบปฏิบัติการหรือ CMS ของคุณ สิ่งที่คุณทำเพื่อระบุไซต์ของคุณผิดจะถูกละเว้นโดยแฮกเกอร์มือสมัครเล่น
  • สิ่งที่คุณคิดว่าคุณสามารถซ่อนมีเบาะแสอื่น ๆสำหรับระบบใด ๆ
    เพียงแค่ลบบางส่วนของสตริงทั้งหมดที่มี 'drupal' ไม่ได้ปลอมตัวเว็บไซต์ของคุณไปที่ snooper ที่เหมาะสม มีหลายวิธีที่สามารถใช้คาดเดาสิ่งที่ให้บริการหน้าเว็บของคุณหรือแม้แต่บริการเฉพาะที่จะบอกได้ว่าเว็บไซต์นั้นทำงานกับ Drupal หรือไม่ คำหลักที่ คุณรู้จักและคิดว่าเป็นภัยคุกคามเป็นเพียงส่วนย่อยของตัวบ่งชี้จริง
    ขอ index.php /? q = ผู้ใช้ จากนั้นลองปิดใช้งานการตอบสนองนั้นโดยไม่ทำให้ไซต์ของคุณเสียหาย
  • การรักษาความปลอดภัยโดยความสับสนนั้นไม่มีความปลอดภัย มันให้ความรู้สึกที่ผิดพลาดว่า 'ปลอดภัย' เมื่อคุณซ่อนช่องโหว่ด้านหลัง smokescreen ที่ผู้โจมตีใด ๆ ที่โพสต์ภัยคุกคามที่แท้จริงจะสามารถมองเห็นได้
  • แม้ว่ามันจะเป็นไปไม่ได้เลยที่จะแฮ็ครหัสไปยังจุดที่ ร่องรอยส่วนใหญ่ของ Drupal ซ่อนอยู่จากซอร์ส HTML (เป็นโอเพ่นซอร์สหลังจากทั้งหมด) ขั้นตอนที่จำเป็นต้องทำเช่นนั้นจะทำลายคอร์จนทำให้แฮ็กสาขาของโค้ดไม่ถูกต้อง จะเข้ากันไม่ได้กับการอัปเดตความปลอดภัยที่แท้จริงซึ่งคุณไม่สามารถแก้ไขได้และจะเปิดให้มีการคุกคามที่แท้จริงที่ระบุโดยทีมรักษาความปลอดภัยในอนาคต นี่เป็นเส้นทางที่แท้จริงสู่ช่องโหว่ของระบบ
  • โมดูลที่สำคัญหรือมีประโยชน์ส่วนใหญ่มีรหัส 'ลายเซ็น' ของตัวเองซึ่งยากที่จะซ่อนโดยไม่ต้องเขียนซ้ำอย่างมีนัยสำคัญ หากคุณใช้ 'views', 'cck', 'ad', 'imagecache', 'jquery', css-aggregation, ธีมที่มีส่วนร่วมหรือสิ่งใด ๆ ที่มีประโยชน์ในไซต์ของคุณ - ใครบางคนสามารถบอกได้ การซ่อนที่มักจะต้องมีการแปลงทั้งหมดของฟังก์ชั่นชุดรูปแบบ - อย่างน้อย แล้วถึงแม้ obsfucation อาจจะไม่ทำงาน
  • ในการลบการระบุคุณสมบัติขั้นสูงหลายอย่างเช่นแม้แต่การติดตั้ง Google Analytics ที่ใช้งานง่ายซึ่งอาจใช้ Drupal Libraries ในการทำงานคุณจะต้องละทิ้งคุณสมบัติเหล่านั้นไปพร้อม ๆ กันหรือเขียนใหม่ในลักษณะที่ไม่ใช้ประโยชน์จากโครงสร้างพื้นฐาน Drupal . บางครั้งสิ่งนี้เป็นไปได้ แต่ในทุกกรณีมันมีผลต่อต้าน

คุณอาจสนใจอ่านการรักษาความปลอดภัยให้กับเว็บไซต์ของคุณเช่นกัน

จำไว้ว่าอย่าแฮ็คคอร์


แม้ว่าฉันจะเห็นด้วยกับเรื่องนี้ แต่ฉันคิดว่าแม้ในฐานะที่เป็นแนวป้องกันแรกการถอดส่วนหัวที่อ้างถึง PHP และ Drupal เป็นสิ่งที่ดีที่ต้องทำรวมทั้งไม่อนุญาตให้เข้าถึงสคริปต์ php ที่ไม่ใช่ดัชนี ไม่แน่นอนว่าคนทั่วไปจะพบวิธีในการค้นหาว่าคุณกำลังใช้ Drupal อยู่เสมอและคิดว่าคุณสามารถซ่อนตัวที่โง่ ๆ ได้ แต่ไม่มีอันตรายใด ๆ ในการทำให้ชีวิตยากขึ้นสำหรับแฮ็กเกอร์ที่ฉลาดน้อยที่สุด
Matt Fletcher

1

ไม่มีจุดใดที่จะซ่อนเว็บไซต์ของคุณใช้ Drupal มันเป็นวิธีที่ผิดในการดูเว็บไซต์ที่กำลังพัฒนา สิ่งที่คุณควรเน้นคือความปลอดภัย ตรวจสอบให้แน่ใจว่าคุณใช้มาตรการด้านหลักทรัพย์ทั้งหมดและทุกอย่างจะดี ไม่มีเหตุผลใดในโลกที่จะซ่อนตัวว่าคุณกำลังใช้งาน cms หรือซอฟต์แวร์อื่น ๆ อยู่ ด้วย addons ของ FF เช่น Wappalyzer คุณสามารถบอกได้ทันทีว่าไซต์ใดใช้ Drupal ดังนั้นคำถามก็คือสิ่งที่สงสัย


1

สิ่งพิเศษที่คุณสามารถทำได้คือใช้โมดูลชื่อแทนไฟล์เพื่อเปลี่ยนโครงสร้างไฟล์เริ่มต้น

ไฟล์นามแฝงโมดูลช่วยให้คุณใช้นามแฝงปรับแต่งโทเค็นสำหรับไฟล์ที่อัปโหลดของคุณให้คุณสามารถให้ระบบไฟล์ของคุณจัดตามปกติในขณะที่ให้เส้นทางที่ดูสะอาด (เช่นไม่เกิน / เว็บไซต์ / default / / ไฟล์)


1
และ? ที่แก้ไขส่วนเล็ก ๆ ของกระบวนการและอาจไม่ได้เป็นส่วนที่สำคัญที่สุด
Greggles

1
ฉันไม่ต้องการที่จะทำซ้ำคำตอบที่ถูกต้องของคนข้างต้นอีกครั้ง ฉันเพิ่งเพิ่มอีกหนึ่งเคล็ดลับและใช่เคล็ดลับนี้มีความสำคัญมากเพราะมันเป็นสิ่งที่ยากที่สุดที่จะทำจนถึงตอนนี้และโดยปกติแล้ววิธีเดียวที่จะเข้าใจเว็บไซต์คือ drupal เนื่องจากโดยปกติแล้วผู้ดูแลเว็บทำตามขั้นตอนปกติยกเว้นนี้ และใช่มันง่ายมากที่จะเข้าใจว่ามันเป็นเว็บไซต์ drupal เพียงเพราะโครงสร้างไฟล์ / การจัดระเบียบโฟลเดอร์
john

1

ฉันเห็นด้วยกับคนอื่นที่คุณไม่สามารถซ่อนได้ทั้งหมด หากคุณดูที่แหล่ง HTML คุณจะสังเกตเห็นว่าไฟล์ CSS และ JavaScript หลายครั้งยังไม่ถูกรวมเข้าด้วยกัน ควรเปิดใช้งานการรวม CSS และ JavaScript


0

ในอดีตที่ผ่านมาฉันได้เปลี่ยนแบบอักษรของฉันสำหรับแบบอักษรโครงการ Ruby ทั่วไปเช่น Lucida Sans รวมถึงการเพิ่มขนาดอินพุตเช่นเดียวกับที่เด็กสะโพกทำ

การให้อีกอย่างคือกราฟิก "throbber" สำหรับฟิลด์เติมข้อความอัตโนมัติ มันยังไม่ทำงานเมื่อคุณเพิ่มขนาดอินพุต นี่คือสิ่งที่คุณสามารถขโมยได้: http://beta.seattlebedandbreakfast.com/misc/throbber.gif

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.