як правило, виявлять лише кілька місяців потому після її впровадження в комп'ютерну систему. У цьому випадку, може знадобитися, цілком перевстановити операційну систему і всі додатки, що досить довго і трудомістко навіть у масштабах невеликого офісу.
.3 Як розпізнати троянську програму
Більшість програмних засобів, призначених для захисту від троянських програм, в тій чи іншій мірі використовує так зване узгодження об'єктів. При цьому в якості об'єктів фігурують файли і каталоги, а узгодження являє собою спосіб відповісти на питання, чи змінилися файли і каталоги з моменту останньої перевірки. У ході узгодження характеристики об'єктів порівнюються з характеристиками, якими вони володіли раніше. Береться, наприклад, архівна копія системного файлу та її атрибути порівнюються з атрибутами цього файлу, який зараз знаходиться на жорсткому диску. Якщо атрибути розрізняються, і ніяких змін в операційну систему не вносилося, значить в комп'ютер, швидше за все, проник троянець.
Одним з атрибутів будь-якого файлу є відмітка про час його останньої модифікації: щоразу, коли файл відкривається, змінюється і зберігається на диску, автоматично вносяться відповідні поправки. Однак позначка часу не може служити надійним індикатором наявності в системі троянця. Справа в тому, що нею дуже легко маніпулювати. Можна підкрутити назад системний годинник, внести зміни у файл, потім знову повернути годинник в початковий стан, і відмітка про час модифікації файлу залишиться незмінною.
Може бути, інакше йде справа з розміром файлу? Аж ніяк. Нерідко текстовий файл, який спочатку займав, скажімо, 8 Кбайт дискового простору, після редагування та збереження має той самий розмір. Трохи інакше поводяться виконавчі файли. Вставити в чужу програму фрагмент власного коду так, щоб вона не втратила працездатності і в відкомпілювався вигляді зберегла свій розмір, досить непросто. Тому розмір файлу є більш надійним показником, ніж відмітка про час внесення до нього останніх змін.
Зловмисник, який вирішив запустити в комп'ютер троянця, зазвичай намагається зробити його частиною системного файлу. Такі файли входять в дистрибутив операційної системи і їх присутність на будь-якому комп'ютері, де ця операційна система встановлена, не викликає жодних підозр. Однак будь-який системний файл має цілком певну довжину. Якщо даний атрибут буде якимось чином змінений, це стривожить користувача.
Знаючи це, зловмисник постарається дістати вихідний текст відповідної програми і уважно проаналізує його на предмет присутності в ньому надлишкових елементів, які можуть бути видалені без жодного відчутного збитку. Тоді замість знайдених надлишкових елементів він вставить у програму свого троянця і перекомпілюються її заново. Якщо розмір отриманого двійкового файлу виявиться менше або більше розміру вихідного, процедура повторюється. І так до тих пір, поки не буде отриманий файл, розмір якого найбільшою мірою близький до оригіналу (якщо вихідний файл досить великий, цей процес може розтягнутися на кілька днів).
Отже, у боротьбі з троянцями покластися на позначку про час останньої модифікації файлу і його розмір не можна, оскільки зловмисник може їх досить легко підробити. Більш надійною в цьому відношенні є так звана контрольна сума файлу. Для її підрахунку елементи файлу підсумовуються, і вийшло в результаті число оголошується його контрольною сумою. Наприклад, в операційній системі SunOS існує спеціальна утиліта sum, яка виводить на пристрій стандартного виводу STDOUT контрольну суму файлів, перелічених у рядку аргументів цієї утиліти.
Однак і контрольну суму в загальному випадку виявляється не так вже важко підробити. Тому для перевірки цілісності файлової системи комп'ютера використовується особливий різновид алгоритму обчислення контрольної суми, звана одностороннім хешированием.
Функція хешування називається односторонньою, якщо завдання відшукання двох аргументів, для яких її значення збігаються, є труднорешаемой. Звідси випливає, що функція одностороннього хешування може бути застосована для того, щоб відстежувати зміни, що вносяться зловмисником в файлову систему комп'ютера, оскільки спроба зловмисника змінити якийсь файл так, щоб значення, отримане шляхом одностороннього хешування цього файлу, залишилося незмінним, приречена на невдачу.
Засоби боротьби з троянцями в операційних системах сімейства Windows традиційно є частиною їхнього антивірусного програмного забезпечення. Тому, щоб відловлювати Back Orifice, Net Bus, SubSeven та інші подібні їм троянські програми, необхідно обзавестися самими сучасним антивірусами типу: ESET NOD32, DoctorWEB, Антивірус Касперського, Anti-Trojan...