Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Троянські програми

  Не вірте данайцям, дари що приносить.
Гомер


Назва цього типа атак походить від відомої легенди про статую коня, яку греки використовували для проникнення в стіни міста Троївши під час оспіваної Гомером Троянської війни.
Троянські програми представляють дуже велику небезпеку, бо виконуються вони з привілеями тих користувачів, які мали нещастя їх запустити, і мають доступ до всіх даних цього користувача.
Шкода, яка може заподіяти троянська програма, обмежена лише фантазією її розробника. З найбільш неприємних можливостей слід згадати повне знищення всіх доступних даних або їх аналіз і пересилку результатів аналізу авторові або замовникові трояна. В деяких випадках результат діяльності троянської програми виглядає як цілеспрямована диверсія з боку користувача, що може повісті розслідування інциденту по помилковій дорозі.

Приклад троянської програми
Простій і по-своєму елегантний приклад троянської програми наводиться в багатьох підручниках з командної мови систем сімейства Unix, наприклад в [Керніган/пайк 1992]. У вказаній роботі ця програма приводиться для пояснення того, чому в Unix дорога пошуку виконуваних програм за умовчанням не включає поточного каталога, і чому включати поточний каталог в цю дорогу украй небажано.
Програма з прикладу 12.1 працює таким чином.
1. Шкідник поміщає її в загальнодоступний каталог під ім'ям Is.
2. Користувач входить в цей каталог і виконує команду Is (перегляд поточного каталога).
3. Замість системної команди /bin/is виконується троянська програма.
4. Троянська програма здійснює шкідливу дію і запускає справжній /bin/is, поклопотавшись про те, щоб відфільтрувати свій запис з лістингу каталога.

Приклад 12.1. Троянська програма на мові shell

#!/bin/sh
# Розмістите цю програму в загальнодоступному каталозі і назвіть її Is
# Скопіювати себе в домашній каталог користувача;
# на цьому місці може стояти і інша шкідлива операція ср $0 ~
/bin/is $# | /home/badguy/filter_ls $#

Важлива частина програми — модуль, який видаляє файл Is з лістингу поточного каталога, — опущений із-за його складності, адже він повинен аналізувати параметри команди Is і проводити видалення свого запису різними способами залежно від необхідного формату виведення команди.

Троянська програма може бути реалізована не лише у вигляді самостійного завантажувального модуля, але і у вигляді бібліотеки, що розділяється. Так, в Windows NT 4.0 аж до виходу Service Pack 5 була присутня помилка, що дозволяла зареєструвати DLL, співпадаючу по імені з будь-якою з системних, причому так, щоб при дозволі заслань з інших модулів використовувалася знов зареєстрована бібліотека.

Аналогічний приклад для Win32
Вже під час підготовки книги до друку почалася пандемія вірусу Nimda, один з прийомів поширення якого аналогічний приведеному в прикладі 12.1: виявивши каталог, в якому лежать файли даних MS Office, вірус поміщає туди файл riched20.dll. При збірці програми у момент запуску, Windows переглядає поточний каталог до перерахованих в PATH, тому замість модуля Office завантажується троянський код вірусу. На відміну від систем сімейства Unix, в Win32 порядок перегляду каталогів при збірці жорстко заданий і не піддається контролю з боку системного адміністратора, тому перекрити дану дорогу поширення зарази можна лише модифікацією ядра Windows.

Багато троянських програм утворюються модифікацією присутніх в системі завантажувальних модулів, бібліотек і навіть модулів ядра, що розділяються.
Така програма не обов'язково має бути бінарним кодом — це може бути код, що також інтерпретується, або послідовність команд макропроцесора. Широко поширені макровіруси, що поширюються з файлами даних пакету Microsoft Office.
Найбільш відомо двох спеціальних типів троянських програм, частина шкідливих дій яких полягає надалі їх поширенні, а саме віруси і черв'яки. Віруси передбачають цілеспрямований запуск зараженої програми користувачем, черв'яки ж, проникнувши в систему, запускають власний процес розмноження.
Широко поширені в епоху DOS бінарні віруси просто додають свій код до всіх виконуваних модулів, які так чи інакше виявляються у сфері досяжності запущеної копії вірусу.
Проміжне з точки зору класифікації між власне вірусами і черв'яками займають завантажувальні віруси які розміщуються в завантажувальних секторах дискових пристроїв. Завантажувальний вірус реєструє себе як драйвер дискового пристрою і залишається -жіть в системі, заражаючи всі видаляються носії, що підключаються до системи (дискети, Zip-диски, болванки CD-ROM). Завантаження — найчастіше, помилково — іншої системи із зараженої дискети приводить до зараження нової системи. У сучасних ОС з їх багатоетапним завантаженням і складною архітектурою драйверів завантажувальні віруси представляють декілька меншу небезпеку, чим в епоху MS DOS.
Черв'яки здатні розмножуватися без участі користувачів системи. До зараження черв'яками схильні лише багатопотокові ОС з більш менш розвиненими мережевими сервісами. Заразивши систему, черв'як запускає себе як фоновий процес і починає атаку інших систем, використовуючи фіксований набір відомих проблем в їх системах безпеки. Нерідко черв'як в обов'язковому порядку заражає системи, які довіряють зараженою або просто використовують спільну з нею базу облікових записів, — наприклад, заразивши одну з систем домена Windows NT від імені адміністратора системи, черв'як може штатними засобами встановити себе на всі останні системи того ж домена.
Віруси і черв'яки завдають багато неприємностей самі по собі, до того ж їх автори часто не відрізняються великою фантазією у виборі деструктивних дій і просто знищують всі або лише найбільш важливі дані в заражених системах.
Поважно підкреслити, що якщо ваша мережа схильна до вірусних атак, або ж якщо єдиним захистом вашої мережі від них служить антивірусний пакет, здатний лише знаходити відомі віруси, вона буде настільки ж уразлива і для троянських програм, спеціально розроблених з метою атаки на дані вашої організації, і, таким чином, вашу систему безпеки слід визнати абсолютно непридатною.

 

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017