Professional Documents
Culture Documents
ПрМІБ Черняк КБ 3.02 Програмні закладки
ПрМІБ Черняк КБ 3.02 Програмні закладки
1. Програмні закладки
2. Троянські програми
3. Клавіатурні шпигуни
4. Імітатори
5. Фільтри
6. Заступники
7. Логічні бомби
8. Потаємні двері
Клавіатурні шпигуни
Один із найпоширеніших різновидів програмних закладок - клавіатурні шпигуни. Такі
програмні закладки націлені на перехоплення паролів користувачів операційної системи, а
також на визначення їхніх легальних повноважень і прав доступу до комп'ютерних ресурсів.
Клавіатурні шпигуни - явище аж ніяк не нове у світі комп'ютерів. Свого часу їх
розробляли і для OS/370, і для UNIX, і для DOS. Їхня поведінка в загальному випадку є
досить традиційною: типовий клавіатурний шпигун обманним шляхом заволодіває
призначеними для користувача паролями, а потім переписує ці паролі туди, звідки їх може
без особливих зусиль витягти зловмисник. Відмінності між клавіатурними шпигунами
стосуються тільки способу, який застосовується ними для перехоплення користувацьких
паролів.
Відповідно всі клавіатурні шпигуни діляться на три типи - імітатори, фільтри і
заступники.
Імітатори
Клавіатурні шпигуни цього типу працюють за таким алгоритмом. Зловмисник
впроваджує в операційну систему програмний модуль, який імітує запрошення
користувачеві зареєструватися для того, щоб увійти в систему.
Потім впроваджений модуль (у прийнятій термінології - імітатор) переходить у режим
очікування введення призначеного для користувача ідентифікатора і пароля. Після того як
користувач ідентифікує себе і введе свій пароль, імітатор зберігає ці дані там, де вони
доступні зловмиснику.
Далі імітатор ініціює вихід із системи (що здебільшого можна зробити програмним
шляхом), і в результаті перед очима у користувача, який нічого не підозрює, з'являється ще
одне, але цього разу вже справжнє запрошення для входу в систему.
Ошуканий користувач, бачачи, що йому пропонується ще раз внести пароль,
приходить до висновку, що він припустився якоїсь помилки під час попереднього введення
пароля, і слухняно повторює всю процедуру входь у систему заново. Деякі імітатори для
переконливості видають на екран монітора правдоподібне повідомлення про нібито зроблену
користувачем помилку.
Наприклад, таке: "НЕВІРНИЙ ПАРОЛЬ. СПРОБУЙТЕ ЩЕ РАЗ".
Перехоплення пароля часто полегшують самі розробники операційних систем, які не
утрудняють себе створенням ускладнених за формою запрошень користувачеві
зареєструватися для входу в систему. Подібне зневажливе ставлення характерне для
більшості версій операційної системи UNIX, у яких реєстраційне запрошення складається з
двох текстових рядків, які видають по черзі на екран терміналу:
login:
password:
Системний процес WinLogon, що відповідає в операційній системі Windows за
автентифікацію користувачів, має свій власний робочий стіл - сукупність вікон, одночасно
видимих на екрані дисплея. Цей робочий стіл називається столом аутентифікації. Жоден
інший процес, зокрема й імітатор, не має доступу до робочого столу аутентифікації і не може
розташувати на ньому своє вікно.
Після запуску Windows на екрані комп'ютера виникає так зване початкове вікно
робочого столу аутентифікації, що містить вказівку натиснути на клавіатурі клавіші
<Ctrl>+<Alt>+<Del>. Повідомлення про натискання цих клавіш передається тільки
системному процесу WinLogon, а для інших процесів, зокрема, для всіх прикладних програм,
їх натискання відбувається абсолютно непомітно.
Далі здійснюється перемикання на інше, так зване реєстраційне вікно робочого столу
аутентифікації. У ньому-то якраз і розміщується запрошення користувачеві ввести своє
ідентифікаційне ім'я і пароль, які будуть сприйняті і перевірені процесом WinLogon.
Для перехоплення користувацького пароля впроваджений у Windows імітатор
обов'язково має вміти обробляти натискання користувачем клавіш <Ctrl>+<Alt>+<Del>. В
іншому разі відбудеться перемикання на реєстраційне вікно робочого столу автентифікації,
імітатор стане неактивним і не зможе нічого перехопити, оскільки всі символи пароля,
введені користувачем, оминуть імітатор і стануть надбанням виключно системного процесу
WinLogon.
Як уже йшлося, процедура реєстрації в Windows влаштована таким чином, що
натискання клавіш <Ctrl>+<Alt>+<Del> проходить безслідно для всіх процесів, окрім
WinLogon, і тому користувацький пароль надійде саме йому.
Звісно, імітатор може спробувати відтворити не початкове вікно робочого столу
автентифікації (у якому висвічується вказівка користувачу одночасно натиснути клавіші
<Ctrl>+<Alt>+<Del>), а реєстраційне (де міститься запрошення ввести ідентифікаційне ім'я
та пароль користувача).
Однак за відсутності імітаторів у системі реєстраційне вікно автоматично замінюється
на початкове після короткого проміжку часу (залежно від версії Window він може тривати
від 30 с до 1 хв), якщо протягом цього проміжку користувач не робить жодних спроб
зареєструватися в системі. Таким чином, сам факт занадто тривалої присутності на екрані
реєстраційного вікна повинен насторожити користувача Windows і змусити його ретельно
перевірити свою комп'ютерну систему на предмет наявності в ній програмних закладок.
Ступінь захищеності Windows від імітаторів досить високий.
Розгляд захисних механізмів, реалізованих у цій операційній системі, дає змогу
сформулювати дві необхідні умови, дотримання яких є обов'язковим для забезпечення
надійного захисту від імітаторів:
- системний процес, який під час входу користувача в систему отримує від нього
відповідні реєстраційне ім'я та пароль, повинен мати свій власний робочий стіл, недоступний
іншим процесам;
- перемикання на реєстраційне вікно робочого столу аутентифікації має відбуватися
абсолютно непомітно для прикладних програм, які до того ж ніяк не можуть вплинути на це
перемикання (наприклад, заборонити його).
Фільтри
Фільтри "полюють" за всіма даними, які користувач операційної системи вводить із
клавіатури комп'ютера. Найелементарніші фільтри просто скидають перехоплене
клавіатурне введення на жорсткий диск або в якесь інше місце, до якого має доступ
зловмисник. Більш витончені програмні закладки цього типу піддають перехоплені дані
аналізу і фільтрують інформацію, що має відношення до користувацьких паролів.
Фільтри є резидентними програмами, які перехоплюють одне або кілька переривань,
пов'язаних з обробкою сигналів від клавіатури.
Ці переривання повертають інформацію про натиснуту клавішу і введений символ,
яка аналізується фільтрами на предмет виявлення даних, що мають відношення до пароля
користувача.
У загальному випадку можна стверджувати, що якщо в операційній системі
дозволяється перемикати клавіатурну розкладку під час введення пароля, то для цієї
операційної системи можливе створення фільтра. Тому, щоб убезпечити її від фільтрів,
необхідно забезпечити виконання таких трьох умов:
- під час введення пароля перемикання розкладок клавіатури не дозволяється;
- конфігурувати ланцюжок програмних модулів, що беруть участь у роботі з паролем
користувача, може тільки системний адміністратор;
- доступ до файлів цих модулів має виключно системний адміністратор.
Заступники
Заступники повністю або частково підміняють собою програмні модулі операційної
системи, що відповідають за аутентифікацію користувачів. Подібного роду клавіатурні
шпигуни можуть бути створені для роботи в середовищі практично будь-якої
багатокористувацької операційної системи.
Трудомісткість написання заступника визначається складністю алгоритмів, що
реалізуються підсистемою аутентифікації, та інтерфейсів між її окремими модулями. Також
при оцінці трудомісткості слід брати до уваги ступінь документованості цієї підсистеми.
Загалом можна сказати, що завдання створення замісника є значно складнішим за завдання
написання імітатора або фільтра. Тому фактів використання подібного роду програмних
закладок зловмисниками поки що відзначено не було.
Однак у зв'язку з тим, що наразі дедалі більшого поширення набуває операційна
система Windows, яка має потужні засоби захисту від імітаторів і фільтрів, у недалекому
майбутньому від хакерів слід очікувати активнішого використання замісників з метою
отримання несанкціонованого доступу до комп'ютерних систем.
Оскільки заступники беруть на себе виконання функцій підсистеми автентифікації,
перед тим як приступити до перехоплення користувацьких паролів, вони повинні виконати
такі дії:
- подібно до комп'ютерного вірусу впровадитися в один або кілька системних файлів;
- використовувати інтерфейсні зв'язки між програмними модулями півсистеми
аутентифікації для вбудовування себе в ланцюжок обробки введеного користувачем пароля.
Для того щоб захистити систему від упровадження заступника, її адміністратори
мають суворо дотримуватися адекватної політики безпеки. І що особливо важливо,
підсистема аутентифікації має бути одним із найзахищеніших елементів операційної
системи.
Логічні "бомби"
Логічна "бомба" [Logic bomb] - програма, яку запускають за певних часових або
інформаційних умов для здійснення несанкціонованого доступу до інформації.
На відміну від вірусів, логічні бомби не роблять своїх копій.
Логічна бомба може бути "закладена" всередину шкідливих програм іншого типу,
викликаючи їхнє спрацьовування в заданий час. Крім того, логічна бомба може перебувати і
всередині звичайних програм, викликаючи припинення їхньої роботи в заданий час.
Логічна бомба може бути "доставлена" адресату за допомогою електронної пошти,
разом із вірусом або троянською програмою. Логічна бомба може бути впроваджена в
програму або систему ще на етапі її розробки.
Назва відображає той факт, що шкідливі дії виконуватимуться не одразу після
проникнення логічної бомби на комп'ютер, а через деякий час або за виконання деяких умов.
Після впровадження на комп'ютер логічна бомба може ніяк себе не проявляти
протягом тривалого часу. Як правило, логічні бомби починають свою шкідливу дію тоді,
коли це може призвести до максимального збитку для комп'ютерної системи.
Логічні бомби (Logic bombs) - вид троянського коня - приховані модулі, вбудовані в
раніше розроблену і широко використовувану програму. Є засобом комп'ютерного саботажу.
Такий модуль є нешкідливим до певної події, за настання якої він спрацьовує (натискання
користувачем певних кнопок клавіатури, зміна у файлі або настання певної дати чи часу).
Логічна бомба є на сьогоднішній день однією з найпоширеніших хакерських атак.
Справді, її досить легко реалізувати, важко виявити і вона може завдати досить серйозної
шкоди вашому комп'ютеру.
Вибух логічної бомби може полягати у форматуванні жорсткого диска, видаленні
файлів у випадковому порядку, здійсненні змін, які складно виявити, у ключових програмах
або шифруванні важливих файлів.
"Потаємні двері"
Ще один спосіб створення дірки в системі безпеки зсередини називається "потайними
дверима". Для цього в систему системний програміст впроваджує спеціальну програму, що
дає змогу обійти нормальну процедуру перевірки.
Наприклад, програміст може додати до програми реєстрації шматок програми, що
пропускає в систему користувача з ім'ям "zzzzzzz", незалежно від того, що міститься у файлі
паролів.
Щоб не допустити встановлення "потайних дверей" у систему, компанії можуть,
наприклад, запровадити регулярні перегляди програм. При цьому, коли програміст закінчив
писати і тестувати програмний модуль, модуль перевіряється і поміщається в базу даних.
Періодично всі програмісти команди збираються разом і кожен з них по черзі роз'яснює
іншим, що робить його програма, рядок за рядком. При цьому ймовірність виявлення
потайних дверей значно збільшується.