Làm thế nào để phát hiện và loại bỏ một trojan Linux?


16

Gần đây tôi đã vấp phải điều này:

Có, tôi biết rằng việc thêm một số PPA / phần mềm ngẫu nhiên từ một nguồn không đáng tin cậy sẽ gây rắc rối (hoặc tệ hơn). Tôi không bao giờ làm điều đó, nhưng nhiều người làm (nhiều blog và báo lá cải của Linux quảng bá việc thêm PPA cho các ứng dụng ưa thích, mà không cảnh báo rằng nó có thể phá vỡ hệ thống của bạn hoặc tệ hơn nữa, làm tổn hại đến bảo mật của bạn.)

Làm thế nào một trojan ngựa hoặc một ứng dụng / kịch bản giả mạo có thể được phát hiện và loại bỏ?


Tôi đã hỏi cùng một câu hỏi (3 phút sau khi tôi hỏi ở đây) tại: askubfox.com/questions/13265/ Nhật Hãy cho tôi biết nếu đây là vi phạm, tôi sẽ xóa một trong số họ.
iamsid

Câu trả lời:


20

Không có công thức chung. Nếu hệ thống của bạn đã bị nhiễm một trojan không xác định, tất cả những gì bạn có thể làm là cài đặt lại.

Nếu bạn biết rằng trojan hoạt động theo một cách nhất định - ví dụ bạn biết rằng trojan không lây nhiễm hạt nhân - có thể có một cách phục hồi ít khắc nghiệt hơn. Nhưng điều đó hoàn toàn phụ thuộc vào việc biết trojan hành xử như thế nào. Nếu tất cả những gì bạn có là các triệu chứng (chẳng hạn như máy tính của bạn gửi thư rác mà không có sự đồng ý của bạn), thì không có kỹ thuật chung: trình phát hiện trojan phải thông minh hơn trình thiết kế trojan (và may mắn). Đối với trojan, việc phát hiện và ẩn nấp giống như súng và áo giáp: có sự leo thang về công nghệ và không bên nào có lợi thế nội tại (mặc dù người cưỡi ngựa có khởi đầu).

Nhiều hệ thống có một kênh phân phối an toàn tại chỗ. Ví dụ: khi bạn cài đặt gói từ kho lưu trữ Ubuntu bằng các công cụ dựa trên apt (apt-get, aptitude, synaptic, phần mềm trung tâm, thì), công cụ sẽ kiểm tra xem gói đó có được ký bởi ai đó hay không. (Hầu hết các bản phân phối đều có cơ chế tương tự.) Khi bạn cài đặt gói từ PPA, tất cả những gì bạn có thể biết là chủ sở hữu PPA đã xem xét gói đó, điều này không có ích gì nếu bạn không có lý do để tin tưởng chủ sở hữu PPA ngay từ đầu.

Về trojan và backtime, tôi thực sự khuyên bạn nên đọc bài giảng về giải thưởng Turing của Ken Thompson , Refl Refl on Trusting Trust . Tóm lại, anh ta đã thay đổi trình biên dịch để khi biên dịch chương trình đăng nhập, nó sẽ thêm mã cho phép anh ta đăng nhập bằng mật khẩu bí mật; sau đó anh ta thay đổi trình biên dịch để khi nó tự biên dịch, nó sẽ chèn mã để thêm backdoor; sau đó anh ta biên dịch lại toàn bộ hệ thống (cụ thể là chương trình đăng nhập và trình biên dịch); cuối cùng anh ta khôi phục nguồn biên dịch về nguồn ban đầu, không thể nghi ngờ. Một lần nữa, hãy đọc bài viết của Ken Thompson ; sau đó bạn cũng có thể đọc phản biện của David Wheeler , có lẽ được hiểu rõ nhất qua bài viết trên blog của Bruce Schneier .


+1 cho câu trả lời mô tả và để giới thiệu những bài viết đó: chúng mở rộng kiến ​​thức của tôi. Cảm ơn bạn.
iamsid

7

Nếu tôi hiểu chính xác "trojan" được mô tả trong bài viết này thì không thể được phát hiện theo cách "bình thường" là phần mềm độc hại "bình thường". IRCd này đã hoạt động bình thường cho đến khi anh ta được sử dụng, do đó, quản trị viên chỉ có thể tìm thấy lỗ hổng bảo mật này khi: 1) nó được sử dụng và hành động được tạo ra bởi lỗ hổng này gây ra sự xâm nhập vào nhật ký hoặc theo cách khác, 2) đọc mã nguồn.

Phần mềm độc hại Linux "thực" cũng cần được phát hiện bởi phần mềm AV cho Đĩa cứu hộ Linux hoặc AV LiveCD, do đó bạn có thể quét máy tính bằng phần mềm này. Như bạn có thể thấy trong SecureList trong danh sách, có 1941 mục có tên Linux và phần mềm đó sẽ được phát hiện bởi phần mềm Kaspersky. Nhìn nhanh vào danh sách này cho thấy nhiều mục nhập về một số công cụ DDoS và khai thác hoặc công cụ không thể tự động phát tán và chỉ có thể được sử dụng làm công cụ để tấn công (vì vậy không gây hại).

Để kiểm tra backreen / rootkit được cài đặt bởi cracker, bạn có thể sử dụng công cụ kiểm tra tổng kiểm tra tệp (bạn nên tạo danh sách các tệp và tổng kiểm tra trên hệ thống sạch và cập nhật nó sau khi cập nhật phần mềm máy chủ). Mỗi tập tin mới hoặc tập tin với tổng kiểm tra sai là đáng ngờ. Danh sách tổng kiểm tra và công cụ tạo ra nó chỉ ở mức trung bình chỉ đọc (cracker cũng có thể thay đổi ví dụ md5sum cho phiên bản riêng của nó hiển thị tổng kiểm tra sai). Cách tìm phần mềm độc hại này có thể được sử dụng trên các hệ thống 'ổn định' nơi phần mềm không được nâng cấp mỗi ngày.

Một số phần mềm độc hại có thể được phát hiện bằng cách chạy netstatcục bộ để kiểm tra lưu lượng mạng, nhưng nếu hệ thống bị nhiễm dữ liệu hiển thị netstatcũng có thể bị thay đổi. Trong trường hợp này, một số giải pháp là giám sát lưu lượng mạng từ một máy tính khác (ví dụ từ bộ định tuyến, để kiểm tra lưu lượng nào được gửi tới internet).


4

Selinux và AppArmor tồn tại để ngăn ngừa trojan / rootkit và các bệnh nhiễm trùng khác. Tôi nói trường hợp cho SELinux, mà tôi biết rõ hơn. Khi bật Selinux, bạn cung cấp ngữ cảnh cho tất cả quy trình (bao gồm daemon) mà bạn cài đặt trên máy. Bạn cũng gắn nhãn hệ thống tệp để làm việc với bối cảnh, khớp với chúng. Khi một quá trình cố gắng thực hiện một cái gì đó không nằm trong ngữ cảnh của nó, bạn sẽ nhận được một thông báo và, nếu SELinux ở chế độ thực thi, hành động không thể hoàn tất.
Bằng cách này, nếu trojan ircd của bạn sẵn sàng ghi đè lệnh ps hoặc thứ gì khác (chiến lược chung cho trojan / rootkits / sâu để tránh bị phát hiện), tôi sẽ không được phép làm điều đó. Và bạn sẽ được thông báo.
Tôi không thể cấu hình được, nhưng máy của tôi đang hoạt động với SELinux được thi hành ngay bây giờ và (hai) máy tính xách tay Fedora của tôi có thể làm bất cứ điều gì máy tính để bàn cần mà không gặp quá nhiều khó khăn.
Ngay cả máy chủ nhà của tôi bây giờ đang ở chế độ thực thi.
Một chiến lược khác là một chương trình dò ​​tìm rootkit thường xuyên, tính toán tổng kiểm tra cho các lệnh cirtical và thông báo cho bạn về những thay đổi trong các lệnh cơ bản.
Tôi làm việc với cả SELinux và rkhunter được kích hoạt (cộng với một chương trình chống vi-rút clamav).

Trân trọng


2

Một phản hồi khác khẳng định rằng "người cưỡi" (phần mềm độc hại tàng hình) có lợi thế nội tại so với "máy dò". Tôi không đồng ý. Điều này đúng nếu bạn giới hạn bản thân trong các phương pháp phát hiện dựa vào chữ ký hoặc chẩn đoán để phát hiện phần mềm độc hại. Nhưng có một cách khác để phát hiện phần mềm độc hại: xác minh hàng hóa đã biết. Tripwire, AIDE, vv có thể xác minh các tệp trên đĩa. Cái nhìn thứ hai có thể xác minh kernel đang chạy và các tiến trình. Cái nhìn thứ hai sử dụng pháp y bộ nhớ để kiểm tra trực tiếp hệ điều hành, các dịch vụ đang hoạt động và các ứng dụng. Nó so sánh mã trong bộ nhớ với những gì đã được phát hành bởi nhà cung cấp phân phối Linux. Bằng cách này, nó có thể xác định ngay lập tức các sửa đổi độc hại được thực hiện bởi rootkit và backreen và các chương trình trái phép đang thực thi (trojan, v.v.).

(Tiết lộ: Tôi là nhà phát triển chính của Cái nhìn thứ hai.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.