จะตรวจจับและลบโทรจัน Linux ได้อย่างไร


16

เมื่อเร็ว ๆ นี้ฉันเพิ่งพบสิ่งนี้:

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

ม้าโทรจันหรือแอปพลิเคชัน / สคริปต์สามารถตรวจพบและลบออกได้อย่างไร


ฉันได้ถามคำถามเดียวกัน (3 นาทีหลังจากที่ฉันถามที่นี่) ที่: askubuntu.com/questions/13265/ให้ฉันรู้ว่านี่เป็นการละเมิดหรือไม่ฉันจะลบหนึ่งในนั้น
iamsid

คำตอบ:


20

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

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

ระบบจำนวนมากมีช่องทางการจัดจำหน่ายที่ปลอดภัย ตัวอย่างเช่นเมื่อคุณติดตั้งแพคเกจจากที่เก็บ Ubuntu ด้วยเครื่องมือที่ใช้ apt-get, aptitude, synaptic, ศูนย์ซอฟต์แวร์, …, เครื่องมือจะตรวจสอบว่ามีการเซ็นชื่อแพคเกจ (vetted) โดยคนที่ไว้วางใจ Ubuntu (ดิสทริบิวชันส่วนใหญ่มีกลไกที่คล้ายกัน) เมื่อคุณติดตั้งแพคเกจจาก PPA สิ่งที่คุณรู้ได้คือเจ้าของ PPA ได้ตรวจสอบแพ็กเกจซึ่งไม่ช่วยอะไรเลยหากคุณไม่มีเหตุผลที่จะเชื่อใจเจ้าของ PPA ในตอนแรก

เกี่ยวกับโทรจันและแบ็ผมขอแนะนำให้อ่านเคน ธ อมป์สัน 's ทัวริงบรรยายรางวัลสะท้อนความน่าเชื่อถือไว้วางใจ เพื่อสรุปเขาเปลี่ยนคอมไพเลอร์เพื่อที่เมื่อรวบรวมโปรแกรมล็อกอินมันจะเพิ่มรหัสที่อนุญาตให้เขาเข้าสู่ระบบด้วยรหัสผ่านลับ จากนั้นเขาก็เปลี่ยนคอมไพเลอร์เพื่อให้เมื่อมันรวบรวมตัวเองมันจะแทรกรหัสเพื่อเพิ่มแบ็คดอร์; จากนั้นเขาก็คอมไพล์ทั้งระบบใหม่ (โดยเฉพาะอย่างยิ่งโปรแกรมล็อกอินและคอมไพเลอร์); ในที่สุดเขาก็คืนค่าคอมไพเลอร์ซอร์สให้เป็นต้นฉบับดั้งเดิมโดยไม่ต้องสงสัย อีกครั้งอ่านบทความเคน ธ อมป์สัน ; แล้วคุณอาจจะอ่านแตกเดวิดล้อบางทีอาจจะดีที่สุดจับผ่านBruce Schneierบทความบล็อก 's


+1 สำหรับคำตอบที่สื่อความหมายและสำหรับการแนะนำบทความเหล่านั้น: พวกเขาเพิ่มพูนความรู้ของฉัน ขอขอบคุณ.
iamsid

7

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

ควรตรวจพบมัลแวร์ Linux "ของจริง" ด้วยซอฟต์แวร์ AV สำหรับดิสก์กู้ภัยของ Linux หรือ AV LiveCD ดังนั้นคุณสามารถสแกนคอมพิวเตอร์โดยใช้ซอฟต์แวร์นี้ อย่างที่คุณเห็นในรายการSecureListในรายการมีชื่อ 1941 ที่ใช้ Linux ในชื่อและซอฟต์แวร์ Kaspersky ควรตรวจพบซอฟต์แวร์นั้น ดูอย่างรวดเร็วในรายการนี้แสดงให้เห็นว่ามีหลายรายการที่เกี่ยวกับเครื่องมือ DDoS และการหาประโยชน์หรือเครื่องมือที่ไม่สามารถแพร่กระจายโดยอัตโนมัติและสามารถใช้เป็นเครื่องมือสำหรับการโจมตีเท่านั้น (จึงไม่เป็นอันตราย)

สำหรับการตรวจสอบ backdoors / rootkits ที่ติดตั้งโดย cracker คุณสามารถใช้เครื่องมือที่ตรวจสอบ checksums ของไฟล์ (คุณควรสร้างรายการของไฟล์และ checksums บนระบบที่สะอาดและอัปเดตหลังจากปรับปรุงซอฟต์แวร์เซิร์ฟเวอร์) ทุกไฟล์ใหม่หรือไฟล์ที่มีการตรวจสอบที่ไม่ถูกต้องเป็นที่น่าสงสัย รายชื่อ checksum และเครื่องมือที่สร้างมันควรจะเป็นแบบอ่านอย่างเดียวขนาดกลาง (แครกเกอร์สามารถเปลี่ยนได้เช่น md5sum สำหรับรุ่นของตัวเองที่แสดง checksums ผิด) วิธีการค้นหามัลแวร์นี้สามารถใช้กับระบบ 'เสถียร' ซึ่งไม่ได้อัปเกรดซอฟต์แวร์ทุกวัน

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


4

SELinux และ AppArmor มีอยู่เพื่อป้องกันโทรจัน / รูทคิทและการติดเชื้ออื่น ๆ ฉันบอกกรณีของ SELinux ซึ่งฉันรู้ดีกว่า ด้วยการเปิดใช้งาน SELinux คุณจะให้บริบทกับทุกกระบวนการ (รวมถึง daemon) ที่คุณติดตั้งบนเครื่อง คุณยังติดเลเบลระบบไฟล์เพื่อทำงานกับบริบทจับคู่ เมื่อกระบวนการพยายามทำบางสิ่งที่ไม่อยู่ในบริบทของมันคุณจะได้รับข้อความและหาก SELinux อยู่ในโหมดบังคับใช้การดำเนินการจะไม่สามารถทำได้
วิธีนี้ถ้าโทรจัน ircd ของคุณยินดีที่จะเขียนทับคำสั่ง ps หรืออย่างอื่น (กลยุทธ์ทั่วไปสำหรับโทรจัน / รูทคิท / เวิร์มเพื่อหลีกเลี่ยงการตรวจจับ) ฉันจะไม่ได้รับอนุญาตให้ทำเช่นนั้น และคุณจะได้รับแจ้ง
ฉันรู้ว่ามันยากที่จะกำหนดค่า แต่เครื่องของฉันกำลังทำงานกับ SELinux ที่บังคับใช้อยู่ในขณะนี้และแล็ปท็อป Fedora (สอง) ของฉันสามารถทำทุกอย่างที่เดสก์ท็อปต้องการโดยไม่ต้องยุ่งยากมากเกินไป
แม้แต่เซิร์ฟเวอร์ที่บ้านของฉันก็ยังอยู่ในโหมดบังคับใช้
กลยุทธ์อื่นคือการรันรูทของเครื่องตรวจจับรูทคิทซึ่งคำนวณผลรวมตรวจสอบสำหรับคำสั่ง cirtical และแจ้งให้คุณทราบเกี่ยวกับการเปลี่ยนแปลงในคำสั่งพื้นฐาน
ฉันทำงานกับทั้ง SELinux และ rkhunter ที่เปิดใช้งาน (รวมถึงโปรแกรมป้องกันไวรัส clamav)

ความนับถือ


2

การตอบสนองอื่นยืนยันว่า "hiders" (มัลแวร์ลักลอบ) มีความได้เปรียบที่แท้จริงจาก "เครื่องตรวจจับ" ฉันไม่เห็นด้วย. สิ่งนี้จะเกิดขึ้นหากคุณ จำกัด ตัวเองในการตรวจจับวิธีการที่ใช้ลายเซ็นหรือการวิเคราะห์พฤติกรรมในการตรวจจับมัลแวร์ แต่มีวิธีอื่นในการตรวจจับมัลแวร์: ตรวจสอบสินค้าที่รู้จัก Tripwire, AIDE เป็นต้นสามารถตรวจสอบไฟล์ในดิสก์ได้ รูปลักษณ์ที่สองสามารถตรวจสอบเคอร์เนลและกระบวนการทำงานได้ Second Look ใช้นิติวิทยาศาสตร์หน่วยความจำเพื่อตรวจสอบระบบปฏิบัติการบริการที่ใช้งานและแอพพลิเคชั่นโดยตรง มันเปรียบเทียบรหัสในหน่วยความจำกับสิ่งที่เผยแพร่โดยผู้จำหน่ายกระจาย Linux ด้วยวิธีนี้มันสามารถระบุการแก้ไขที่เป็นอันตรายที่ทำโดยรูทคิทและแบ็คดอร์และโปรแกรมที่ไม่ได้รับอนุญาตที่ดำเนินการได้ (โทรจัน ฯลฯ )

(การเปิดเผย: ฉันเป็นผู้พัฒนาหลักของ Second Look)

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