Прихований канал

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Прихований канал (covert channel) — це комунікаційний канал, що пересилає інформацію методом, який спочатку був для цього не призначений.

Вперше поняття прихованого каналу було введено в роботі Батлера Лемпсона «A Note of the Confinement Problem» 10 жовтня 1973 року, як «(канали), не призначені для передачі інформації абсолютно, такі як вплив службової програми на завантаження системи»[1]. Найчастіше прихований канал є паразитом по відношенню до основного каналу: прихований канал зменшує пропускну здатність основного каналу. Сторонні спостерігачі зазвичай не можуть виявити, що крім основного каналу передачі даних є ще додатковий. Тільки відправник і одержувач знають це. Наприклад, в стеганографії приховані повідомлення кодувалися всередині графічних зображень або інших даних таким чином, що змін на око не було помітно, однак одержувач повідомлення міг розкодувати зашифроване повідомлення.

Відмінні риси[ред. | ред. код]

Прихований канал носить свою назву в силу того факту, що він захований від систем розмежування доступу навіть безпечних операційних систем, оскільки він не використовує законні механізми передачі, такі як читання і запис, і тому не може бути виявлений або контрольований апаратними механізмами забезпечення безпеки, які лежать в основі захищених операційних систем. У реальних системах прихований канал практично неможливо встановити, і також його часто можна виявити за допомогою спостереження за швидкодією системи; крім того, недоліками прихованих каналів є низьке співвідношення сигнал/шум і низькі швидкості передачі даних (біля кількох біт в секунду). Їх також можна видалити з захищених систем вручну з високим ступенем надійності, якщо скористатися визнаними стратегіями аналізу прихованих каналів.

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

Приховані канали можуть проходити крізь захищені операційні системи, і необхідні особливі заходи для їх контролю. Єдиним перевіреним методом контролю прихованих каналів є так званий аналіз прихованих каналів. У той же час, захищені операційні системи можуть з легкістю запобігти невірному (або незаконному) використанню легальних каналів. Часто аналіз легальних каналів на предмет прихованих об'єктів невірно представляють як єдиний успішний захід проти незаконного використання легальних каналів. Оскільки на практиці це означає необхідність аналізувати велику кількість програмного забезпечення, ще в 1972 було показано що подібні заходи є неефективними[2]. Не знаючи цього, багато хто вірить в те, що подібний аналіз може допомогти впоратися з ризиками, пов'язаними з легальними каналами.

Стандарт TCSEC[ред. | ред. код]

TCSEC - це набір стандартів, встановлених Міністерством оборони США.

Визначення Лемпсона прихованого каналу було перефразовано в TCSEC[3] так, щоб малися на увазі способи передачі інформації від більш захищеного рівня до менш захищеного. У середовищі розділених обчислень складно повністю відокремити один процес від ефектів, які інший процес міг надати на операційне середовище. Прихований канал створюється процесом-відправником, який модулює деякий стан (такий як вільний простір, доступність деякого сервісу, часу очікування запуску і т. д.), який може бути виявлений процесом-одержувачем.

В Критеріях визначають два види прихованих каналів:

  • Прихований канал пам'яті - процеси взаємодіють завдяки тому, що один може прямо або побічно записувати інформацію в деяку ділянку пам'яті, а другий зчитувати. Зазвичай мається на увазі, що у процесів з різними рівнями безпеки є доступ до деякого ресурсу (наприклад, деякі сектори диска).
  • Прихований канал часу - один процес посилає інформацію іншому, модулюючи своє власне використання системних ресурсів (наприклад, процесорний час) таким чином, що ця операція впливає на реальний час відгуку, що спостерігається третім процесом.

Критерії, також відомі як Помаранчева книга, вимагають, щоб аналіз прихованих каналів пам'яті був класифікований як вимога для системи класу B2, а аналіз прихованих каналів часу як вимога для класу B3.

Усунення прихованих каналів[ред. | ред. код]

Можливість наявності прихованих каналів не може бути усунена повністю, але її можна суттєво зменшити акуратним проектуванням системи і її аналізом.

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

Схожим випадком є ​​технологія «port knocking». Зазвичай при передачі інформації розподіл запитів в часі не має значення, і за ним не спостерігають, але при використанні «port knocking» воно стає істотним.

Приховування даних в моделі OSI[ред. | ред. код]

Хенделом і Сенфордом була зроблена спроба розширити перспективу і сфокусуватися на прихованих каналах в загальній моделі мережевих протоколів. За основу своїх міркувань вони беруть мережеву модель OSI і потім характеризують елементи системи, які можливо використовувати для приховування даних. У прийнятого підходу є переваги над підходом Хендела і Сенфорда, оскільки в останньому розглядаються стандарти, протилежні деяким використовуваним мережним середовищам і архітектурам. Також не розроблено надійної схеми стенографування.

Проте, встановлені загальні принципи для приховування даних на кожному з семи рівнів моделі OSI. Крім того, що Хендел і Сенфорд запропонували використовувати зарезервовані поля заголовків протоколів, вони також припустили можливість каналів за часом, що стосується операції над CSMA/CD на фізичному рівні.

Їх робота визначає цінність прихованого каналу за такими параметрами:

Які можна виявити: тільки у одержувача, для якого призначена передача, повинна бути можливість проводити вимірювання прихованого каналу.

Не можна відрвзнити: прихований канал повинен бути неідентифікованим.

Смуга пропускання: Кількість бітів прихованих даних за кожне використання каналу.

Також був представлений аналіз прихованих каналів, але він не вважає такі проблеми, як-то: взаємодія з допомогою згаданих методів між мережевими вузлами, оцінка ємності каналу, ефект, який приховування даних надає на мережу. Крім того, можливість застосування методів не може бути повністю виправдана на практиці, так як модель OSI не існує як така в діючих системах.

Приховування даних в середовищі ЛОМ[ред. | ред. код]

Першим, хто проаналізував приховані канали в середовищі локальних мереж, був Гірлінг. Його робота фокусується на локальних обчислювальних мережах (ЛОМ), в яких визначаються три очевидні приховані канали - два по пам'яті і один за часом. Це показує реальні приклади можливих смуг пропускання для простих прихованих каналів в ЛАС. Для особливого середовища ЛАС, автор ввів поняття перехоплювача, який спостерігає за діями певного передавача в ЛОМ. Сторони, які здійснюють приховану передачу, - це передавач і перехоплювач. Прихована інформація, згідно з Гірлінгом, може бути передана будь-яким з наступних способів:

Спостереження за адресами, до яких звертається передавач. Якщо кількість адрес, до яких він може звертатися, дорівнює 16, то існує можливість секретної передачі з розміром секретного повідомлення 4 біта. Автор відніс цю можливість до прихованих каналів пам'яті, оскільки вона залежить від вмісту посилання.

Інший очевидний прихований канал покладається на розмір кадру, посланого передавачем. Якщо існує 256 різних розмірів кадру, то кількість секретної інформації, отриманої при розшифровці одного розміру кадру, буде 8 біт. Цей канал також був віднесений автором до прихованих каналів пам'яті.

Третій, тимчасовий, спосіб покладається на різницю між часом передачі. Наприклад, непарна різниця буде означати «0», а парна - «1». Час, необхідний для передачі блок даних, розраховується як функція від програмної обчислювальної швидкості, швидкості мережі, розмірів мережевого блоку і витрат часу протоколу. У припущенні, що в ЛОМ передаються блоки різних розмірів, обчислюються середні програмні витрати часу і також оцінюється смуга пропускання прихованих каналів.

Приховування даних в пакеті протоколів TCP/IP[ред. | ред. код]

Більш конкретний підхід був зроблений Роулендом. Зосереджуючись на IP і TCP заголовках пакету протоколів TCP/IP, Роуленд виводить правильні методи кодування і декодування з використанням поля ідентифікації IP і TCP-поля початкового номера послідовності і номера послідовності підтвердження. Ці методи реалізовані в простому додатку, написаному для Linux-систем, що працюють на ядрі версії 2.0.

Роуленд просто доводить саму ідею існування прихованих каналів в TCP/IP, а також їх використання. Відповідно, його роботу можна оцінювати як практичний прорив у цій сфері. Прийняті ним методи кодування і декодування більш прагматичні в порівнянні з раніше запропонованими роботами. Ці методи проаналізовані з урахуванням механізмів безпеки, таких як перетворення мережевих адрес брандмауером.

Невиявністо цих методів прихованої передачі стоїть під питанням. Наприклад, в разі коли проводяться операції над полем номера послідовності TCP-заголовка, прийнята схема, в якій алфавіт кожен раз таємно передається, але тим не менше кодується одним і тим же номером послідовності.

Більш того, використання поля номера послідовності, так само, як і поля підтвердження, не можна здійснювати з прив'язкою до ASCII-кодування англійського алфавіту, як це запропоновано, оскільки обидва поля враховують отримання байтів даних, які відносяться до певних мережевих пакетів.

У приховування даних в пакеті протоколів TCP/IP існують такі важливі аспекти:

  • Ідентифікуються приховані канали в мережевому середовищі.
  • Виходять задовільні методи кодування і декодування у відправника і одержувача, відповідно.
  • Не враховується ефект використання мережі прихованих комунікацій в цілому.

Примітки[ред. | ред. код]

  1. Lampson, Butler (1 січня 1973). A Note on the Confinement Problem (PDF). Microsoft Research (амер.). Процитовано 3 квітня 2018.
  2. Computer Security Technology Planning Study (PDF).
  3. NCSC-TG-030, Covert Channel Analysis of Trusted Systems (Light Pink Book).

Див. також[ред. | ред. код]

Стеганографія

Атака сторонніми каналами