YaChudo

Бекдор

Переглядів: 0. Оновлено 23.10.2026.

Бекдор в уяві художника

Бекдо́р (від англ. back door, чорний хід) — в комп'ютерній системі (криптосистемі або алгоритмі) — метод обходу стандартних процедур автентифікації, несанкціонований віддалений доступ до комп'ютера, отримання доступу до відкритого тексту, і так далі, залишаючись при цьому непоміченим. Бекдор може мати форму встановленої програми (наприклад, Back Orifice) або проникнути в систему через руткіт[1].

Як бекдори можуть діяти початкові паролі, якщо користувач їх не змінив. Деякі функції налагодження можуть також виступати як бекдори, якщо їх не видалено в остаточній версії програми[2].

Огляд

Загрози бекдорів стали помітними з поширенням багатокористувацьких та мережевих операційних систем. 1967 року в статті, опублікованій серед праць конференції AFIPS, Пітерсен і Терн обговорювали комп'ютерні диверсії.[3] Вони зазначили клас активних інфільтраційних атак, що використовують «люк» як точку входу в систему в обхід засобів захисту і дають прямий доступ до даних. Використання слова люк тут, вочевидь, збігається з пізнішими визначеннями бекдора. Тим не менш, із появою криптографії з відкритим ключем термін люк набув іншого змісту. В цілому, такі порушення безпеки обговорено детально 1970 року в доповіді цільової групи RAND Corporation, опублікованій у ARPA, яку спонсорували Д.П Андерсон і Д.Д Едвардс[4].

Бекдор у системі авторизації може мати форму жорстко закодованої комбінації логіна й пароля, яка дає доступ до системи. Відомий приклад: такого роду бекдор використано у фільмі 1983 року Воєнні ігри, в якому архітектор комп'ютерної системи «WOPR» увів жорстко кодований пароль (ім'я свого покійного сина), який давав користувачу доступ до системи і до незадокументованої частини системи (зокрема до режиму віртуальної реальності і прямої взаємодії зі штучним інтелектом).

Цікавим є невдалий бекдор у функції sys_wait4() в ядрі Linux (2003).[5][6] Розробка велась на пропрієтарній системі керування версіями BitKeeper, а на ніч код викладався на загальний огляд на більш поширеній CVS. Цю CVS і зламали, додавши у функцію sys_wait4() два рядки, що перевіряють вхідні дані на некоректну комбінацію прапорців.

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

Крім того, можна створити бекдор без змінення початкового коду програми, або навіть його зміни після компіляції. Це можна зробити, переписавши компілятор так, щоб він включив під час компіляції код, який у кінцевому файлі запускатиме бекдор. Коли змінений компілятор знаходить такий код, він компілює його, як звичайно, але при цьому вставляє бекдор (можливо, процедуру розпізнавання пароля). Таким чином, коли користувач надає ці данні, він отримує доступ до деяких (швидше за все, до не задокументованих) аспектів роботи програми. Інформацію про таку атаку вперше виклав Кен Томпсон у своїй праці Reflections on Trusting Trust.

Чимало комп'ютерних хробаків, такі як Sobig і Mydoom, установлюють на зараженому комп'ютері (зазвичай ПК під широкосмуговим керуванням Microsoft Windows і Microsoft Outlook) бекдор. Такі бекдори можна встановити так, що спамери зможуть відправляти із заражених машин небажані електронні листи. Інші, як-от руткіт Sony/BMG, що наприкінці 2005 року таємно розповсюджувався на мільйонах музичних компакт-дисків, призначалися для реалізації заходів DRM — і, в тому випадку, також виконували функції агентів збору даних, оскільки обидві приховані програми, які вони встановлювали, регулярно з'єднувалися з центральними серверами.

Традиційний бекдор є симетричним: будь-хто, знайшовши лазівку, може скористатися нею. Поняття «асиметричний бекдор» увели Адам Янг і Моті Юнг у Proceedings of Advances in Cryptology: Crypto '96. Асиметричний бекдор може використати лише зловмисник, який упроваджує його, навіть якщо опублікувати повний опис бекдора. Крім того, в обчислювальному плані є нездійсненним виявлення наявності асиметричного бекдора за умов «чорного ящика» (black-box запитів). Цей клас атак був названо клептографією; їх можна включити в програмне забезпечення, апаратні засоби (наприклад, смарт-карти), або одночасно. Теорія асиметричних бекдорів є частиною ширшої галузі — криптовірології. Примітно, що АНБ встановило клептографічний бекдор у стандарт Dual_EC_DRBG[7].

Основні властивості бекдора

Ідеальний бекдор

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

Поширені принципи створення бекдорів у алгоритмах

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

Гіпотетичні приклади бекдорів у сучасних алгоритмах

Вразливість генератора псевдовипадкової послідовності DUAL_EC_DRBG

Цей генератор розроблено в АНБ і стандартизовано як криптографічно стійкий генератор псевдовипадкових чисел у Національному інституті стандартів і технологій США 2006 року. Проте вже 2007 року незалежні дослідники висловили припущення, що в цей алгоритм міг бути вбудований бекдор.[8]

Ілюстрація роботи алгоритму згідно зі специфікацією АНБ:[9]:

Цей алгоритм використовує еліптичні криві. P {\displaystyle P}  — генератор групи точок на еліптичній кривій, Q {\displaystyle Q}  — точка на еліптичній кривій — константа, визначена стандартом, як її вибрано — невідомо. Параметри кривої також задано стандартом.

Принцип роботи:

Рівняння кривої

y 2 = ( x 3 + a x + b ) mod p {\displaystyle y^{2}=(x^{3}+ax+b){\bmod {p}}}

можна переписати у вигляді x = φ ( x , y ) mod p {\displaystyle x=\varphi (x,y){\bmod {p}}} і записати такі висловлювання для роботи алгоритму:

r i = φ ( s i ∗ P ) {\displaystyle r_{i}=\varphi (s_{i}*P)} , t i = φ ( r i ∗ Q ) {\displaystyle t_{i}=\varphi (r_{i}*Q)} , s i + 1 = φ ( r i ∗ P ) {\displaystyle s_{i+1}=\varphi (r_{i}*P)}
s i {\displaystyle s_{i}}  — внутрішній стан генератора на поточному кроці
s i + 1 {\displaystyle s_{i+1}}  — внутрішній стан генератора на наступному кроці
t i {\displaystyle t_{i}}  — вихід генератора на поточному кроці
Передбачуваний бекдор:

Оскільки p {\displaystyle p}  — просте число, то існує таке число e {\displaystyle e} , що e ∗ Q = P {\displaystyle e*Q=P} . Знаходження e {\displaystyle e}  — обчислювально-складна задача дискретного логарифмування на еліптичній кривій, для розв'язання якої нині не існує ефективних алгоритмів. Але якщо припустити, що зловмисник знає e {\displaystyle e} , то можлива така атака: Якщо x = t i {\displaystyle x=t_{i}}  — черговий вихід генератора, і якщо існує таке y {\displaystyle y} , що y 2 ≡ ( x 3 + a x + b ) mod p {\displaystyle y^{2}\equiv (x^{3}+ax+b){\bmod {p}}} , то точка A = ( x , y ) {\displaystyle A=(x,y)} , лежить на кривій і для неї виконується така рівність: A = r i ∗ Q {\displaystyle A=r_{i}*Q} . Знаючи число e {\displaystyle e} можна обчислити: s i + 1 = φ ( e ∗ A ) = φ ( e ∗ r i ∗ Q ) = φ ( r i ∗ P ) {\displaystyle s_{i+1}=\varphi (e*A)=\varphi (e*r_{i}*Q)=\varphi (r_{i}*P)} . Таким чином, зловмисник, який знає число e {\displaystyle e} , може не тільки обчислити наступний вихід генератора, але й швидко перебрати всі можливі внутрішні стани генератора і відновити його початковий внутрішній стан. Згідно з незалежними дослідженнями,[10][11] за відомого e {\displaystyle e} достатньо всього 30 байтів вихідної послідовності генератора, щоб простим перебором 2 15 {\displaystyle 2^{15}} значень відновити його початковий внутрішній стан. На думку дослідників, така вразливість можна розцінити як бекдор.

Помилка реалізації протоколу перевірки сертифікатів TLS від компанії Apple

Дослідники компанії Яндекс виявили вразливість у реалізації протоколу TLS в одному з програмних продуктів Apple.[10] На їхню думку, ця помилка може виявитися бекдором, який вбудував у алгоритм хтось із розробників.

Ділянка коду з помилкою:
static DSStatus SSLVerifySignedServerKeyExchnge(....)
{
   DSStatus err;
   ....
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
     goto fail;
     goto fail;
   if ((SSHashSHA1.final(&hashCtx, &hashOut)) != 0)
     goto fail;
   ....
   fail:
     ....
     return err;
}

Як бачимо, після першого оператора if стоять два рядки goto fail, і другий рядок виконується завжди, незалежно від результату if. Таким чином, процедура перевірки сертифіката проходить не повністю. Зловмисник, який знає про цю вразливість, може підробити сертифікат та пройти автентифікацію. Це дозволить йому організувати атаку типу «людина посередині», втрутившися в захищене з'єднання між клієнтом та сервером. Дослідники, які виявили цю помилку в реалізації, не можуть точно сказати, навмисно її зроблено чи випадково. Це схоже на помилку під час злиття гілок у системі керування версіями — але міг бути й бекдор, який вбудував хтось із розробників.

Приклади методів створення бекдорів

Спеціально підібрані константи

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

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

Короткий опис SHA1 :

SHA1 — сучасна раундова геш-функція. Алгоритм гешування такий:

  • Ініціалізуються 32-бітові значення a = h 0 , b = h 1 , c = h 2 , d = h 3 , e = h 4 {\displaystyle a=h_{0},b=h_{1},c=h_{2},d=h_{3},e=h_{4}}
  • Вхідне повідомлення розбивається на блоки завдовжки 512 біт
  • Кожен блок повідомлення обробляється та доповнюється за алгоритмом, визначеним у стандарті
  • Отриманий блок повідомлення гешується в 4 етапи по 20 раундів у кожному, причому для кожного етапу використовується своя константа K 1 , K 2 , K 3 {\displaystyle K_{1},K_{2},K_{3}} або K 4 {\displaystyle K_{4}}
  • Виходом функції для кожного блоку будуть нові значення a , b , c , d , e {\displaystyle a,b,c,d,e} , які додаються до результату: h 0 = h 0 + a , h 1 = h 1 + b , h 2 = h 2 + c , h 3 = h 3 + d , h 4 = h 4 + e {\displaystyle h_{0}=h_{0}+a,h_{1}=h_{1}+b,h_{2}=h_{2}+c,h_{3}=h_{3}+d,h_{4}=h_{4}+e}
  • Підсумковим результатом гешування буде 160-бітове значення, отримане конкатенацією п'яти 32-бітових значень. h 0 , h 1 , h 2 , h 3 , h 4 {\displaystyle h_{0},h_{1},h_{2},h_{3},h_{4}} після опрацювання останнього блоку повідомлення.
Побудова колізій:

Метою аналізованої атаки є знаходження таких констант K 1 , K 2 , K 3 , K 4 {\displaystyle K_{1},K_{2},K_{3},K_{4}} та таких повідомлень M 1 {\displaystyle M_{1}} і M 2 {\displaystyle M_{2}} , що H a s h ( M 1 ) = H a s h ( M 2 ) {\displaystyle Hash(M_{1})=Hash(M_{2})} . Ця атака модифікує лише перші 512 біт (1-й блок) повідомлень, для яких потрібно побудувати колізію. Алгоритм ґрунтується на вже відомій різницевій атаці на SHA1, запропонованій 2005 року[12][13] і має складність порядку 2 69 {\displaystyle 2^{69}} операцій, що робить атаку важкоздійсненною на практиці. Тому досі жодної реальної колізії для SHA1 знайдено не було.

Але в разі створення шкідливого варіанта SHA1 зловмисник може варіювати не лише блоки повідомлень M 1 {\displaystyle M_{1}} і M 2 {\displaystyle M_{2}} , а й раундові константи K 1 , K 2 , K 3 , K 4 {\displaystyle K_{1},K_{2},K_{3},K_{4}} . Згідно з дослідженнями,[14] це сильно знижує складність атаки до порядку 2 48 {\displaystyle 2^{48}} операцій і робить побудову таких колізій реальною задачею, яку можна виконати на кількох комп'ютерах. Отже, автори дослідження змогли побудувати одноблокові колізії багатьох відомих типів файлів.

Одноблокова колізія:

M 1 {\displaystyle M_{1}} и M 2 {\displaystyle M_{2}}  — перші блоки повідомлень (512 біт), які відрізняються між собою, але дають однакову хеш-суму
C o n t e n t {\displaystyle Content}  — решта вмісту, однакова для обох файлів

Приклад використання шкідливого гешування для створення бекдорів

За допомогою описаної атаки створено два sh-скрипти, які при виборі K 1 = 5 a 827999   ,   K 2 = 88 e 8 e a 68   ,   K 3 = 578059 d e   ,   K 4 = 54324 a 39 {\displaystyle K_{1}=5a827999~,~K_{2}=88e8ea68~,~K_{3}=578059de~,~K_{4}=54324a39} дають однакову геш-суму SHA1, але працюють по-різному.

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

Апаратні бекдори

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

Апаратні бекдори мають низку переваг над програмними:

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

Прикладом апаратного бекдора є шкідлива прошивка BIOS. Згідно з дослідженнями[15], таку прошивку можна побудувати на основі вільних прошивок Coreboot[16] та SeaBIOS. Coreboot не є повноцінною BIOS: вона відповідає тільки за виявлення наявного на машині обладнання та передання керування самій «начинці BIOS», якою може бути модифікована зловмисником під свої потреби SeaBIOS.

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

Приклади бекдорів

У генерації RSA ключів існує асиметричний нелегальний бекдор. Цей OpenSSL RSA бекдор [Архівовано 21 лютого 2015 у Wayback Machine.], який оприлюднено, розробили Янг і Юнг; для отримання доступу він використовує скручену пару еліптичних кривих[17].

У січні 2014 року, бекдори виявлено в деяких продуктах Samsung Android, особливо в низці пристроїв під назвою Galaxy. Фірмові версії Samsung Android оснащені бекдором, що забезпечує віддалений доступ до даних, які зберігаються на пристрої. Зокрема, програмне забезпечення Samsung Android, яке відповідає за обробку зв'язку з модемом, за допомогою протоколу Samsung IPC, реалізує клас запитів, відомих як команди (RFS) віддаленого файлового сервера, що дає змогу оператору бекдора виконувати за допомогою модема віддалені операції вводу / виводу на жорсткому диску, телефоні чи іншому сховищі. Samsung — модем, який працює на складовій програмного забезпечення Android, включає бездротове дистанційне керування, яке можна використати для доступу до RFS команд і, отже, для доступу до файлової системи пристрою[18].

Деякі дослідники бекдором вважають систему Intel Management Engine. У випадку компрометації зловмисниками її можна використати як руткіт, завдяки якому буде отриманий повний контроль над комп'ютером жертви. При цьому в жертви відсутня можливість дізнатися з ураженого комп'ютера про компрометацію цієї системи. Ця система є у всіх чипсетах Intel для процесорів починаючи зі сімейства Intel Core 2[19].

Станом на початок січня 2024 року, невідомий раніше бекдор для Android під назвою «Xamalicious» заразив близько 338 300 пристроїв через шкідливі програми в Google Play, офіційному магазині програм для Android. Компанія McAfee, яка входить до App Defense Alliance, виявила в Google Play 14 заражених програм, причому три з них мали по 100 000 установлень. Виявлено, що користувачі, встановлювали їх від середини 2020 року. Крім того, окремий набір із 12 шкідливих програм, які несуть загрозу «Xamalicious», статистика завантажень яких недоступна, поширюється в неофіційних сторонніх магазинах програм, заражаючи користувачів через завантажувані файли APK (пакет для Android)[20].

Примітки

  1. ↑ wired.com: «How a Crypto ‘Backdoor’ Pitted the Tech World Against the NSA» (Zetter) 24 Sep 2013 [Архівовано 18 березня 2014 у Wayback Machine.]
  2. ↑ Архівована копія. Архів оригіналу за 26 червня 2014. Процитовано 11 жовтня 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. ↑ H.E. Petersen, R. Turn. «System Implications of Information Privacy». Proceedings of the AFIPS Spring Joint Computer Conference, vol. 30, pages 291—300. AFIPS Press: 1967
  4. ↑ Security Controls for Computer Systems, Technical Report R-609, WH Ware, ed, Feb 1970, RAND Corp
  5. ↑ Про інцидент з wait4() на anticopyright.ru. Архів оригіналу за 15 жовтня 2014. Процитовано 23 жовтня 2014. [Архівовано 2014-10-15 у Wayback Machine.]
  6. ↑ Новина про спробу злому Linux на Slashdot. Архів оригіналу за 20 червня 2015. Процитовано 23 жовтня 2014.
  7. ↑ G+M: «The strange connection between the NSA and an Ontario tech firm» 20 Jan 2014. Архів оригіналу за 28 вересня 2014. Процитовано 22 жовтня 2014.
  8. ↑ Брюс Шнайер (15 листопада 2007). Did NSA Put a Secret Backdoor in New Encryption Standard?. Wired News. Архів оригіналу за 19 вересня 2012.
  9. ↑ John Bryson, Patrick Gallagher, Recommendation for Random Number Generation Using Deterministic Random Bit Generators [Архівовано 2016-02-20 у Wayback Machine.], p. 60, 2012
  10. ↑ а б Евгений Сидоров, Криптографические баги и бэкдоры [Архівовано 2015-12-08 у Wayback Machine.], Yandex security meet up, 24.07.2015
  11. ↑ Dan Shumow, Niels Ferguson, On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng [Архівовано 2007-10-23 у Wayback Machine.], pages 6-7, CRYPTO 2007, august 2007
  12. ↑ Wang, X., Yao, A.C., Yao, Cryptanalysis on SHA-1. NIST — First Cryptographic Hash Work-shop [Архівовано 2016-11-07 у Wayback Machine.], 31 October 2005
  13. ↑ Wang, X., Yin, Y.L., Yu, H., Finding collisions in the full SHA1 [Архівовано 2015-04-30 у Wayback Machine.], CRYPTO 2005
  14. ↑ Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaffer, Malicious Hashing: Eve's Variant of SHA-1 [Архівовано 2015-10-22 у Wayback Machine.], 2014 year
  15. ↑ Jonathan Brossard, Аппаратные бэкдоры — это практично [Архівовано 2015-12-08 у Wayback Machine.], 12 марта 2012
  16. ↑ Обзор проекта свободного BIOS — Coreboot [Архівовано 2015-12-08 у Wayback Machine.], 9 октября 2014
  17. ↑ cryptovirology.com page on OpenSSL RSA backdoor. Архів оригіналу за 21 лютого 2015. Процитовано 22 жовтня 2014. [Архівовано 2015-02-21 у Wayback Machine.]
  18. ↑ replicant.us: «Samsung Galaxy Back-door» 28 Jan 2014. Архів оригіналу за 10 березня 2014. Процитовано 22 жовтня 2014.
  19. ↑ Damien Zammit (Черв 15 2016). Intel x86s hide another CPU that can take over your machine (you can't audit it). Boing Boing. Архів оригіналу за 6 травня 2021. Процитовано 30 серпня 2017.
  20. ↑ Нова шкідлива програма Xamalicious для Android була встановлена ​​330 тисяч разів у Google Play. // Автор: Митник Михайло. 13.01.2024

Див. також

Джерело: стаття у Вікіпедії та історія редагувань (автори).