Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безпека.docx
Скачиваний:
164
Добавлен:
31.08.2019
Размер:
6.2 Mб
Скачать

5.6. Люки

Як уже зазначалося, люки (або «чорні ходи») — це недокументовані функції про­грамного забезпечення, які дають змогу здійснювати проникнення в систему. Програмісти можуть впроваджувати люки задля тестування та налагодження про­грам, а потім залишати їх у кінцевому продукті через неуважність або з метою по­дальшого використання ресурсів систем чи збирання інформації. Безумовно, ви­явлення люків у програмних продуктах завдає шкоди репутації розробника, тому їх не залишають або ретельно приховують. Крім того, люки можуть впроваджува­ти спеціально розроблені шкідливі програмні засоби (віруси, «троянські коні») або зловмисники в результаті атаки.

У цьому розділі ми розглядаємо помилки програмного забезпечення, тому згадаємо лише ті люки, які вважають ненавмисно впровадженими. У наступному розділі, присвяченому шкідливому програмному-забезпеченню, йтиметься про люки, які впроваджують навмисно.

5.6.1. Режим debug у програмі sendmail

Це один із найвідоміших люків, який, за твердженням розробників програми sendmail, було створено виключно задля її тестування і налагодження. Хоча такого люка не мало бути в розповсюджуваній версії програми, оскільки це не під повідало вимогам безпеки, режим debug було залишено, і через нього вразливими

стали безліч хостів в Інтернеті.

Основна задача програми sendmail — забезпечувати функціонування протоколу доставляння електронної пошти SMTP, тобто взаємодіяти з віддаленими хостами, зокрема здійснювати з'єднання через ТСР-порт 25 для приймання вхідних листів. Докладніше про протокол і його вразливості йтиметься в розділі 17; тут

лише зазначимо, що хоча програма sendmail функціонує в системі з великими привілеями, з нею може взаємодіяти будь-хто без будь-якої автентифікації, підключившись до ТСР-порту 25.

Згідно з протоколом SMTP, можна визначати програми, що оброблятимуть поштові надходження. Таке визначення здійснюють у файлі псевдонімів (Aliases), який має право модифікувати лише привілейований користувач. Будь-який користувач може визначити у файлі .forward програму для оброблення власної пошти.

За допомогою непередбаченого протоколом SMTP режиму debug відправник пошти міг безпосередньо у полі адресата вказати програму, яка б цю пошту обробляла. Але відправником пошти міг бути будь-хто, програма для оброблення

запускалася без перевірки і з тими правами, які мала програма sendmail. Фактич

но, це давало змогу порушнику виконувати на враженому комп'ютері будь-яку команду. Достатньо було одержувачу вказати | /bin/sh, і в тексті повідомлення він міг передати будь-яку команду або послідовність команд. Точніше, потрібно було ще видалити з пошти службові рядки (заголовки листа), для чого перед /bin/sh вказати придатний фільтр, наприклад редактор ed. У розділі 6 буде описано, як цей режим успішно використовував мережний хробак Морріса.

Напевно, режим debug у програмі sendmail і досі є найвідомішим люком, який розробники будь-коли залишали у програмному забезпеченні.

Висновки

1. Стрімкий розвиток інформаційних технологій сприяє виникненню вразливо

стей в інформаційно-комунікаційних системах.

2. Вади захисту можуть бути внесені в систему навмисно або ненавмисно. їх мож­на класифікувати за ознакою розташування в компонентах системи: в ОС,

сервісних програмах й утилітах, прикладному програмному забезпеченні. Вади захисту можуть виникати на різних етапах життєвого циклу програмної системи: розроблення, впровадження чи експлуатації.

3. Типові помилки, що виникають у процесі програмної реалізації системи і можуть спричиняти появу вразливостей систем, це помилки:

♦ контролю допустимих значень параметрів;

♦ визначення областей (доменів);

  • послідовності дій;

  • ідентифікації й автентифікації;

  • перевірки границь об'єктів;

  • інші помилки у логіці функціонування.

  1. Помилки переповнення буфера, що виникають дуже часто, дають змогу поруш­нику виконувати довільні команди на враженому комп'ютері. Переповнення бу­фера може статися у стеку, а також у статичній або динамічній пам'яті.

  2. Помилки оброблення текстових рядків виникають у програмах, які викори­стовують поля введення. Вони особливо небезпечні в тих програмах, які прий­мають рядки параметрів із мережі. Типовими помилками оброблення рядків є некоректна робота з конвеєрами та спеціальними символами.

  3. Люки дають можливість користувачу взаємодіяти із системою в обхід установ­лених обмежень. їх може бути впроваджено випадково чи навмисно.

Контрольні запитання та завдання

    1. Назвіть основні причини появи вразливостей у сучасних інформаційно-ко- мунікаційних системах.

    2. На яких етапах життєвого циклу ІКС можуть виникати вади захисту? Охарак­теризуйте типові вади для кожного з етапів.

    3. У яких компонентах програмного забезпечення ІКС найчастіше виникають вади захисту?

    4. Назвіть типові помилки, що з'являються під час програмної реалізації системи і можуть спричиняти появу вразливостей.

    5. Поясніть механізм передавання керування функції, що впроваджена поруш­ником, у разі переповнення буфера у стеку.

    6. Які об'єкти можуть бути використані порушником задля компрометації систе­ми у разі переповнення буфера у статичній або динамічній пам'яті?

    7. Які типові помилки зустрічаються під час оброблення текстових рядків, і як їх використовують порушники?

Розділ 92

Шкідливе програмне забезпечення

♦ Класифікація шкідливого програмного забезпечення

  • Способи розповсюдження шкідливого програмного забезпечення

  • Програмні закладки

♦ Утиліти віддаленого адміністрування

♦ Комп'ютерні віруси

  • Спеціальні хакерські утиліти