เซิร์ฟเวอร์ linux ของฉันถูกแฮ็ก ฉันจะรู้ได้อย่างไรว่าเสร็จแล้วเมื่อไหร่?


11

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

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

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

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

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

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


@ คนที่ลงคะแนนให้ย้ายไปที่ SU: คุณคิดว่านิติวิทยุ / แฮ็คเกี่ยวข้องกับ Super User มากกว่า Server Fault อย่างไร?
Chris S

3
ฉันดีใจที่ได้ยินว่าแผนนั้นคือการล้างคอมพิวเตอร์และติดตั้งสิ่งต่าง ๆ อีกครั้ง นั่นคือแน่นอนสิ่งที่ถูกต้องที่จะทำว่าสิ่งที่คุณหาไม่เพราะมีเสมอโอกาสที่ดีที่มีอะไรบางอย่างที่เลวร้ายยิ่งที่คุณไม่ได้พบ
mattdm

ใช่ควรลงคะแนนเพื่อย้ายไปที่การรักษาความปลอดภัยไอที ( security.stackexchange.com ) ไม่ใช่ SU หรือ Serverfault!
Rory Alsop

คำตอบ:


4

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

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

หากพวกเขากำลังเช็ดคุณก็จะเมา มันอาจจะใช้เวลามากขึ้นในการหาว่าเกิดอะไรขึ้นมากกว่าที่ควรจะเป็น

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


การติดตั้งเป็นมาตรฐาน Ubuntu Desktop Edition 10.x ไม่มีสิ่งใดที่ทำเพื่อความปลอดภัยโดยเฉพาะ ฉันสันนิษฐานว่ามีไฟร์วอลล์ที่ดีพอโดยปริยาย มันไม่ถูกต้องเหรอ? ฉันอนุญาตให้ลงชื่อเข้าใช้รหัสผ่านที่พอร์ต 22 แต่รหัสผ่านเป็นสตริงอักขระ 8 ตัวแบบสุ่ม ควรจะดีพอหรือไม่
Jonatan Kallus

ฉันเชื่อว่าไฟร์วอลล์เริ่มต้นคือ "Wide Open - No Firewall" หากคุณไม่ได้กำหนดค่าอย่างระมัดระวังจะไม่ทำอะไรเลย
Chris S

คำถามคือบริการใดที่คุณใช้งานมากกว่าไฟร์วอลล์ชนิดใด หากไม่มีการตั้งค่าไฟร์วอลล์เพื่อกำหนดค่า IP เฉพาะสำหรับการเข้าถึงไฟร์วอลล์ที่ดีที่สุดคือการไม่เรียกใช้บริการที่ไม่จำเป็นในตอนแรก และการตั้งค่าเครือข่ายของคุณคืออะไร? เปิดอินเทอร์เน็ต? ภายในเครือข่ายส่วนตัว คุณไม่มีไฟร์วอลล์ ณ จุดที่เครือข่ายภายในของคุณเข้าสู่อินเทอร์เน็ตหรือเซิร์ฟเวอร์ของคุณอยู่ใน DMZ หรือไม่
Bart Silverstrim

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

4

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

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

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

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

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

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

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

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

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

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


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