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 .