Загального рецепту немає. Якщо ваша система була заражена невідомим трояном, все, що ви можете зробити, це перевстановити.
Якщо ви знаєте, що троянин діє певним чином - наприклад, ви знаєте, що троян не заражає ядро - може бути менш суворий спосіб відновлення. Але це повністю залежить від того, як знати, як поводить себе троян. Якщо у вас є лише симптоми (наприклад, ваш комп’ютер, який надсилає спам без вашої згоди), немає загальної техніки: троянський детектор повинен бути розумнішим, ніж конструктор троянів (і пощастить). Що стосується троянів, то виявлення та приховування схожі на гармати та броні: є технологічний ескалація, і жодна із сторін не має внутрішньої переваги (хоча хованки не мають початку).
У багатьох системах встановлений захищений канал розподілу. Наприклад, коли ви встановлюєте пакет із сховищ Ubuntu з інструментами на основі apt (apt-get, aptitude, синаптичний, програмний центр,…), інструмент перевіряє, чи пакет підписаний (перевірений) ким-небудь довіряє Ubuntu. (Більшість дистрибутивів мають подібний механізм.) Коли ви встановлюєте пакет із PPA, все, що ви можете знати, - це те, що власник PPA перевірив пакет, що не допоможе, якщо у вас немає підстав довіряти власнику PPA в першу чергу.
Про троянів і на задньому плані, я настійно рекомендую прочитати лекцію премії Кена Томпсона про Тьюрінга " Роздуми про довірену довіру" . Підводячи підсумок, він змінив компілятор так, що при складанні програми входу він додав би код, який дозволив йому увійти з секретним паролем; потім він змінив компілятор так, що коли він компілював себе, він би вставляв код, щоб додати backdoor; потім він перекомпілював всю систему (зокрема програму входу та компілятор); нарешті він відновив джерело компілятора до початкового, безперечного джерела. Знову прочитайте статтю Кена Томпсона ; тоді ви також можете прочитати контрапункт Девіда Уілера , можливо, найкраще сприйнятий у статті блогу Брюса Шнейера .