Там нет общего рецепта. Если ваша система была заражена неизвестным трояном, все, что вы можете сделать, это переустановить.
Если вы знаете, что троян работает определенным образом - например, вы знаете, что троян не заражает ядро - возможно, существует менее жесткий способ восстановления. Но это полностью зависит от знания того, как ведет себя троян. Если все, что у вас есть, это симптомы (например, ваш компьютер отправляет спам без вашего согласия), то нет общей техники: детектор троянских программ должен быть умнее, чем разработчик троянских программ (и счастливчик). Что касается троянов, то обнаружение и сокрытие похоже на оружие и доспехи: технологическая эскалация отсутствует, и ни одна из сторон не обладает внутренним преимуществом (хотя у укрывателей есть преимущество).
Многие системы имеют безопасный канал распределения на месте. Например, когда вы устанавливаете пакет из репозиториев Ubuntu с помощью инструментов на основе apt (apt-get, aptitude, synaptic, software center,…), инструмент проверяет, что пакет подписан (проверен) кем-то, кому Ubuntu доверяет. (Большинство дистрибутивов имеют похожий механизм.) Когда вы устанавливаете пакет из PPA, все, что вы можете знать, это то, что владелец PPA проверял пакет, что не поможет, если у вас нет оснований доверять владельцу PPA.
О троянах и бэкдорах я настоятельно рекомендую прочитать лекцию Кюра Томпсона « Размышления о доверии» . Подводя итог, он изменил компилятор так, чтобы при компиляции программы входа в систему добавлялся код, позволяющий ему входить в систему с секретным паролем; затем он изменил компилятор так, чтобы при его компиляции он вставлял код для добавления бэкдора; затем он перекомпилировал всю систему (в частности, программу входа в систему и компилятор); наконец он восстановил исходный код компилятора в исходный, неоспоримый источник. Снова, прочитайте статью Кена Томпсона ; тогда вы также можете прочитать контраргумент Дэвида Уилера , возможно, лучше всего воспринятый в статье в блоге Брюса Шнайера .