ฉันมีเซิร์ฟเวอร์ที่บ้านที่ใช้การแจกจ่าย Ubuntu บนเดสก์ท็อป ฉันพบสิ่งนี้ใน crontab . ของฉัน

* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1

และเมื่อดูในไดเร็กทอรีนั้น (ช่องว่างหลัง username/ คือชื่อไดเร็กทอรี) ฉันพบสคริปต์จำนวนมากที่เห็นได้ชัดว่าทำบางสิ่งที่ไม่ควรทำ

ก่อนที่ฉันจะล้างข้อมูลในคอมพิวเตอร์เครื่องนั้นและติดตั้งใหม่ ฉันต้องการค้นหาว่าอะไรเป็นสาเหตุของการละเมิดความปลอดภัยและเกิดขึ้นเมื่อไร เลยไม่เปิดรูเดิมอีก

ฉันควรค้นหาไฟล์บันทึกใด เซิร์ฟเวอร์เดียวที่ฉันทราบว่ากำลังทำงานบนคอมพิวเตอร์คือ sshd และ lighttpd

ฉันควรทำอย่างไรเพื่อตรวจสอบว่ามีสิ่งเช่นนี้เกิดขึ้นอีกหรือไม่

answer

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

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

ถ้าเช็ดหมดแล้ว แสดงว่าคุณเมามาก อาจต้องใช้เวลามากขึ้นในการค้นหาว่าเกิดอะไรขึ้นมากกว่าที่คุ้มค่า

คุณบอกว่าบริการทั้งสองกำลังทำงานอยู่ มีไฟร์วอลล์ที่ดีในการป้องกันการเข้าถึงทุกอย่างหรือไม่ คุณอนุญาต SSH บนพอร์ต 22 หรือไม่ การเข้าสู่ระบบของคุณเดาได้ง่ายพอสมควร คุณอนุญาตให้เข้าสู่ระบบด้วยรหัสผ่านหรือไม่ คุณมีการจำกัดอัตราจริงสำหรับการเข้าสู่ระบบรหัสผ่านหรือไม่? คุณมีซอฟต์แวร์เพิ่มเติมที่ติดตั้ง lighttpd หรือไม่ เพิร์ล; php; ซีจี; CMS หรือคล้ายกัน? คุณใช้ซอฟต์แวร์เวอร์ชันอัปเดตทั้งหมดหรือไม่ คุณสมัครรับการแจ้งเตือนด้านความปลอดภัยสำหรับซอฟต์แวร์ทั้งหมดที่คุณใช้งาน และประเมินการแจ้งเตือนทั้งหมดอย่างรอบคอบเพื่อดูว่ามีผลกับซอฟต์แวร์ที่คุณเรียกใช้/เปิดเผยต่อสาธารณะหรือไม่

นี่เป็นหัวข้อในตัวเอง คุณสามารถ google for linux forensics สำหรับข้อมูลเพิ่มเติม โดยพื้นฐานแล้ว คุณจะต้องสร้างภาพไดรฟ์ของคุณเพื่อการวิเคราะห์แบบออฟไลน์ก่อน จากนั้นจึงล้างคอมพิวเตอร์และติดตั้งจากกระดานชนวนที่สะอาด

และจำเหตุการณ์ที่เกิดขึ้นทั้งหมด ใครก็ตามที่ใช้คอมพิวเตอร์อาจถูกบุกรุกรหัสผ่าน เปลี่ยนรหัสผ่าน เก็บไว้ออฟไลน์ ฯลฯ จนกว่าคุณจะได้รับใน "ห้องสะอาด" (VM ที่แยกจากกัน)

มิฉะนั้นจะมีการตรวจสอบบันทึกจำนวนมาก (ซึ่งสามารถปลอมแปลงได้) และตรวจสอบแอปพลิเคชันของคุณ (สคริปต์ php? ฐานข้อมูล อัปเดตสำหรับการแก้ไขล่าสุด ผู้ใช้รายอื่นให้รหัสผ่านหรือไม่)

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

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

คุณยังใช้ซอฟต์แวร์ checksum ในระบบของคุณ เช่น Tripwire เพื่อตรวจสอบความสมบูรณ์ของไฟล์ของคุณ

และแน่นอนให้อัปเดตอยู่เสมอและเรียกใช้ซอฟต์แวร์สแกนที่ตรวจหารูทคิท

อีกครั้ง การรักษาความปลอดภัยไม่ใช่สิ่งที่ต้องเปลี่ยน มันสามารถเป็นแบบพิเศษในตัวเองได้เช่นกัน การรักษาความปลอดภัยแบบหลายชั้นอาจเข้มงวดพอๆ กับการตรวจสอบโฮสต์/IP ที่ไม่ได้อยู่ในเครือข่ายของคุณ เข้ารหัสการเข้าถึงระบบทั้งหมด มีบันทึกการเปลี่ยนแปลงรายวันที่พบในระบบของคุณที่ส่งถึงคุณ และการตั้งค่า honeypot บนเครือข่ายของคุณ มองหากิจกรรมแปลก ๆ (ทำไมเซิร์ฟเวอร์ของฉันพยายามเชื่อมต่อกับพอร์ต 25 บนคอมพิวเตอร์ honeypot)

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

แก้ไข - สิ่งอื่น ๆ ที่เกิดขึ้นกับฉันเนื่องจากคุณใช้ SSH - ติดตั้ง denyhosts สามารถกำหนดค่าเพื่อให้การโจมตีอัตโนมัติกับระบบของคุณบน SSHD ถูกล็อคหลังจากพยายาม X จำนวนครั้ง นอกจากนี้ยังสามารถกำหนดค่าให้อัปเดตจากเซิร์ฟเวอร์ denyhost อื่น ๆ ใน "คลาวด์" เพื่อแบ่งปัน IP ที่ถูกล็อกไว้เพื่อช่วยลดการโจมตีอัตโนมัติ คุณยังสามารถย้ายพอร์ตที่กำลังฟังอยู่ หลายคนชี้ให้เห็นว่าเป็นเพียงการรักษาความปลอดภัยผ่านความมืดมน แต่เมื่อพิจารณาจากจำนวนบอทที่สแกน การทำเช่นนี้จะช่วยลดความพยายามสุ่มที่จะเจาะระบบลงได้อย่างมาก