Безпека через неясність (англ. Security through obscurity) — принцип, який полягає в тому, щоб приховати внутрішній устрій системи або реалізацію для забезпечення безпеки. Експерти з безпеки відхилили цей принцип ще у 1851 році та рекомендують ніколи не покладатися на неясніть як основний принцип захисту
Історія питання
Існуюча офіційна література з питання про безпеку через неясність, досить мізерна. Книги по інженерії безпеки посилаються на Принцип Керкгоффса від 1883 року.
В області права Пітер Свайр написав про компроміс між тим, що «безпека через неясність — це ілюзія», і, як кажуть військові, що «чутки топлять кораблі», а також про те, як конкуренція впливає на стимули до розкриття інформації.
Принцип безпеки через неясність був загальноприйнятим в криптографічних роботах в часи, коли проінформовані криптографи працювали на національні спецслужби, такі як Агентство національної безпеки. Тепер криптографи часто працюють в університетах, де дослідники публікують відкрито їх досягнення, публічно тестують чужі розробки, або в приватному секторі. Адже деякі дослідження контролюються патентами й авторськими правами. Наприклад, PGP випущений у вигляді вихідного коду і зазвичай вважається (при правильному використанні) криптосистемою військового рівня.
Переваги і недоліки використання принципу
Наведемо аргументи на користь використання принципу. Незважаючи на те, що створення захисту системи, яка спирається виключно на принцип безпеки через неясність, є невдалим рішенням використання даного принципу з метою збереження в таємниці деяких деталей системи. Наприклад, при виявленні уразливості системи, безпека через неясність може бути тимчасовим бар'єром для зловмисників, поки не буде усунена дана уразливість. У цьому випадку метою використання принципу є зниження в короткостроковій перспективі ризику експлуатації уразливості в основних компонентах системи.
Розглянемо комп'ютерну мережу, яка містить відому уразливість. Не маючи інформації про конкретний пристрій системи, зловмисник повинен вирішити, використовувати дану уразливість чи ні. Якщо система налаштована на виявлення цієї уразливості, вона виявить, що знаходиться під атакою і може відповісти, або шляхом блокування системи, поки адміністратори не отримають можливість відреагувати, або шляхом моніторинга й відстеження атаки нападника, або шляхом від'єднання зловмисника. Суть використання принципу в даній ситуації полягає в тому, що зловмисник не може швидко отримати необхідну інформацію про систему, щоб прийняти тверде рішення про співвідношення ризику бути заблокованим під час спроби використання уразливості й можливої винагороди в разі вдалої атаки. Також, як наслідок відсутності необхідної інформації про пристрій системи, він не може однозначно вибрати ту частину системи, яку треба атакувати в першу чергу.
Ще одна стратегія використання принципу передбачає існування подвійного шару вразливостей, обидва з яких тримаються в секреті. При цьому творці системи дозволяють одній з вразливостей «витекти». Ідея полягає в тому, щоб дати зловмисникові помилкове відчуття впевненості, що захист було подолано й він переміг. Наприклад, це може використовуватися як частина («ловля на живця»).
Аргументи проти принципу безпеки через неясність сягають принципу Керкгоффса, висунутому в 1883 році Огюстом Керкгоффсом. Цей принцип стверджує, що дизайн криптографічної системи не повинен вимагати секретності й не повинен завдавати незручностей, якщо він потрапить в руки ворога. Розробники повинні вважати, що весь дизайн системи безпеки відомий нападникам, за винятком криптографічних ключів (безпека криптографічного системи знаходиться повністю в криптографическом ключі). У 1940 році Клод Шеннон сформулював цей принцип як «ворог знає систему».
Чим більше точок можливої компрометації міститься в системі, тим більша ймовірність того, що стратегія нападу на одну з цих точок існує або буде розроблена. Системи, які містять секретність структури або операцій, які також є точками можливої компрометації, є менш безпечними, ніж аналогічні системи без цих точок. Це в тому випадку, що зусилля, необхідне для отримання уразливості в результаті розкриття структури проекту або методу роботи, а також зусилля, щоб використовувати цю вразливість, менше за зусилля, необхідне для отримання секретного ключа. Рівень безпеки системи зводиться при цьому до зусиль, необхідним для використання цієї вразливості.
Наприклад, якщо хтось зберігає запасний ключ під килимком, у разі, якщо двері замкнені зовні, то він покладається на безпеку через неясність. Теоретична вразливість в системі безпеки в тому, що хтось може увірватися в будинок, відкривши двері за допомогою цього запасного ключа. Крім того, оскільки грабіжники часто знають передбачувані місця схованок, власник будинку буде піддаватися великому ризику крадіжки зі зломом, приховуючи ключ, так як зусилля, потрібне для того, щоб знайти ключ, ймовірно, буде менше зусиль, необхідних для проникнення (наприклад шляхом злому) іншим способом, наприклад, через скло. Господар додав вразливість — той факт, що вхідний ключ зберігається під килимком — в систему, і таку, яку дуже легко вгадати і використати.
У минулому кілька алгоритмів програмного забезпечення або систем з приховуванням внутрішніх деталей з'ясували, як ці внутрішні деталі стають надбанням громадськості. Випадкове розкриття відбулося кілька разів, наприклад, у відомому випадку GSM конфіденційна документація щодо шифру була передана в без накладення звичайних вимог конфіденційності. Крім того, уразливості були виявлені й використані в програмному забезпеченні навіть тоді, коли внутрішні деталі залишалися секретними. Взяті разом, ці та інші приклади показують, що складно або неефективно тримати деталі систем і алгоритмів в секреті.
Безпека через неясність не визнається відповідним інженерним підходом до забезпечення безпеки системи, так як вона суперечить принципу «KISS». Національний інститут стандартів і технологій спеціально рекомендує використовувати безпеку через неясність не більше ніж в одному документі. Згідно NIST, «система безпеки не повинна залежати від секретності реалізації її компонентів».
Існує загальний консенсус, навіть серед тих, хто виступає на користь безпеки через неясність, що принцип «безпека через неясність» ніколи не повинна використовуватися в якості основного заходу безпеки. Це, в кращому випадку, вторинна міра, й розкриття інформації про неясності не повинно призводити до компрометації.
Приклади використання
Різниця значення використання принципу у відкритому і закритому програмному забезпеченні
Цінність використання принципу при створенні відкритого або закритого ПЗ дуже різна й неоднозначна. Розглянемо процес створення відкритого ПЗ. Найбільш часто розробники більш зацікавлені в створенні нового коду, ніж в аналізі вже існуючого на наявність вразливостей. Так як створення відкритого ПЗ є справою добровольців, а безпеці приділяється менше уваги. З іншого боку, існує закон Лінуса, який говорить, що «при достатній кількості очей баги випливають на поверхню». Тобто, закон передбачає підвищену безпеку алгоритмів і протоколів, опис яких опубліковано. Більше людей може переглянути деталі таких алгоритмів, виявити недоліки і раніше їх виправити. Прихильники цієї точки зору вважають, що частота й тяжкість наслідків компрометації буде менша, ніж для закритого або секретного програмного забезпечення. З усього цього можна зробити висновок, що в разі створення відкритого ПЗ, безпека безпосередньо залежить від популярності програми, тобто чим вище популярність, тим більше добровольців аналізують код програми і тим вища ймовірність знаходження вразливостей в ньому. На підтвердження цього наведемо приклад, що вихідний код Linux має 0.17 помилок на тисячу рядків вихідного коду, в той час як закрите комерційне програмне забезпечення в середньому налічує 20-30 помилок на 1000 рядків вихідного коду.
Що стосується закритого ПЗ, то при його створенні аналізу безпеки коду приділяється велика увага, що підвищує надійність системи. З іншого боку, так як кількість розробників часто менше, ніж в разі відкритого ПЗ, зменшує ймовірність виявлення існуючих вразливостей в програмі. До того ж, оператори й розробники/виробники систем, які покладаються на безпеку через неясність, можуть зберегти в таємниці той факт, що в їх системі знайдена уразливість, щоб уникнути зменшення попиту в своїх послуг або продуктів і, отже, уникнути зниження його конкурентоспроможності, вселивши, таким чином, помилкову впевненість у безпеці своїх продуктів. Були відомі випадки, щонайменше, 1960-х років, коли компанія затримувала випуск виправлень і патчів, віддаючи пріоритет своїм корпоративним правилам, а не проблемам або ризиків клієнтів.
Історія використання принципу в сервісі Skype
Інженер-розробник Шон О'Ніл (Sean O'Neil) відомий як творець досить гнучкого криптоалгоритма . Також він відомий у вузьких колах криптоаналітиків як людина, що брала участь у зломі секретного шифру в RFID — чипах . Ці чипи лежать в основі транспортних карт, електронних перепусток та інших безконтактних смарт-карт, кількість яких по всьому світу на сьогоднішній день обчислюється мільярдами.
У липні 2010 року в Інтернеті з'явилася новина, що Шон О'Ніл з групою колег зміг розкрити вихідні коди програм, які захищають відомий сервіс IP-телефонії Skype. А точніше, їм вдалося отримати вихідні коди пропрієтарних протоколів шифрування сервісу Skype. У своєму блозі Шон О'Ніл дає посилання на сайт cryptolib.com [ 21 лютого 2020 у Wayback Machine.], де, за його словами, знаходяться отримані коди.
За їх власним свідченням, Шон О'Ніл і його колеги по насправді займалися проблемами безпеки сервісу Skype протягом довгого періоду часу. Так як вони були фахівцями в аналізі двійкових кодів, їм вдалося досить швидко відновити програму по двійковим кодами, незважаючи на те, що програмісти Skype дуже інтенсивно застосовували обфускацію. Саме через те, що розробники Skype інтенсивно застосовували обфускацію, дещо до цього вдавалося відновити програму за двійковими кодами, а ті, хто це зміг зробити, не публікували вихідні коди, так як вони виглядали страхітливо.
В кінцевому підсумку Шону О'Нілу вдалося створити еквівалентний код, який у всіх основних режимах працює як Skype, але який написаний без використання коду Skype. Хоча створення коду відбувалося приватно, через кілька тижнів йому вдалося просочитися в Інтернет, і він відразу став інструментом спамерів, які робили розсилки по каналах сервісу термінових повідомлень Skype. Відчуваючи відповідальність за те, що відбувається, Шон О'Ніл вирішив викласти головний секрет комунікаційного протоколу Skype — заплутаний обфускація — алгоритм розширення для вектора ініціалізації шифру RC4. Більш конкретно, на сайті cryptolib.com [ 21 лютого 2020 у Wayback Machine.] викладена програма на мовою C, за допомогою якої можливе дешифрування службового трафіку між клієнтами Skype і супервузлом системи. Незважаючи на те, що для шифрування службових даних використовується потоковий метод шифрування RC4, відсутні секретні ключі, які необхідно зламувати. Єдине ж, що реально є, це постійне перетворення, яке перетворює читану інформацію в таку, що не читається. Сенс цього алгоритму полягав в тому, щоб ніякі інші особи не змогли розробляти сумісні з Skype додатки, адже не знаючи алгоритмів передачі службових даних, неможливо створити такі додатки. Це був захист для монопольного володіння Skype своєю системою.
Наведемо приклад використання обфускації. Обфускація — техніка, спрямована на заплутування вихідного або виконуваного коду програми, метою якої є збереження працездатності, але такий код буде важко проаналізувати.
Обфускація може бути застосована як на рівні алгоритму, так і на рівні вихідного коду програми й навіть на рівні асемблерного коду. Наприклад, створення заплутаного асемблерного коду може бути досягнуто за допомогою використання спеціальних компіляторів. Такі компілятори, як правило, заново створюють код, використовуючи недокументовані можливості середовища виконання програми. Також існують спеціальні програми, створені для заплутування коду — обфуськатор.
Деякі процедури при обфускації коду програми:
- Зміна таблиць імпорту, експорту та переадресації
- Маскування оригінальної Entry Point (точка входу в програму)
- Використання поліморфного варіанту розпакування
Приклад № 1 (Мовою C)
Вихідний код до обфускації:
int COUNT = 100; float TAX_RATE = 0.2; for (int i=0; i<COUNT; i++) { tax[i] = orig_price[i] * TAX_RATE; price[i] = orig_price[i] + tax[i]; }
Після обфускації:
for (int a=0;a<100;a++){b[a]=c[a]*0.2;d[a]=c[a]+b[a];}
Приклад № 2 (Мовою Perl)
Вихідний код до обфускації:
my $filter; if (@pod) { my ($buffd, $buffer) = File::Temp::tempfile (UNLINK => 1); print $buffd ""; print $buffd @pod or die ""; print $buffd close $buffd or die ""; @found = $buffer; $filter = 1; } exit; sub is_tainted { my $arg = shift; my $nada = substr ($arg, 0, 0); # zero-length local $@; # preserve caller's version eval { eval «#» }; return length ($@) != 0; } sub am_taint_checking { my ($k,$v) = each %ENV; return is_tainted ($v); }
Після обфускації:
sub z109276e1f2 { ( my $z4fe8df46b1 = shift ( @_ ) ) ; ( my $zf6f94df7a7 = substr ( $z4fe8df46b1 , (0x1eb9+ 765-0x21b6) , (0×0849+ 1465-0x0e02) ) ) ; local $@ ; eval { eval ( ( "" ) ) ; } ; return ( ( length ( $@ ) != (0x26d2+ 59-0x270d) ) ); } my ( $z9e5935eea4 ) ; if ( @z6a703c020a ) { ( my ($z5a5fa8125d , $zcc158ad3e0 ) = File::Temp::tempfile ( "" , (0x196a+ 130-0x19eb) ) ) ; print ( $z5a5fa8125d "" ) ; ( print ( $z5a5fa8125d @z6a703c020a ) or die ( ( ( ( "" . $zcc158ad3e0 ) . «\x3a\x20» ) . $! ) ) ) ; print ( $z5a5fa8125d "" ) ; ( close ( $z5a5fa8125d ) or die ( ( ( ( "" ) ) ) ; ( @z8374cc586e = $zcc158ad3e0 ) ; ( $z9e5935eea4 = (0×1209+ 1039-0×1617) ) ; } exit ; sub z021c43d5f3 { ( my ( $z0f1649f7b5 , $z9e1f91fa38 ) = each ( %ENV ) ) ; return ( z109276e1f2 ( $z9e1f91fa38 ) ) ; }
Це приклади так званої високорівневої обфускації. Якщо метою є приховати вірусний код, то в більшості випадків використовують низькорівневу обфускацію (із застосуванням команд асемблера), а також програми для автоматичної обфускації, такі як , і .
Принцип безпеки за допомогою меншини
Варіант базового принципу заснований на характеристиках маловідомих програм, при використанні яких знижується ймовірність виявлення вразливостей в випадкових і автоматичних атаках. Цей підхід має безліч назв, і «безпека за допомогою меншини» є найпоширенішою. Також існують терміни «безпека за допомогою рідкості», «безпека за допомогою непопулярності», «безпека через відсутність інтересу». Даний принцип переважно зустрічається в поясненні, чому кількість відомих вразливостей, знайдених в програмі для широкого сегмента ринку, має тенденцію бути вище, ніж лінійна залежність, передбачувана часткою програми на ринку, але ця частка є фактором у виборі програми для деяких великих організацій. Принцип безпеки за допомогою меншини може бути корисний організаціям, зміст яких не піддається цілеспрямованим атакам і планують використання продукту в довгостроковій перспективі. Проте, виявлення нових вразливостей в програмі, яка є лідером на ринку, складніше, ніж в менш відомих продуктах, так як через широке поширення програми багато уразливостей вже були виявлені, тому програма, що володіє великою часткою ринку, більш підходить для організацій, що піддаються постійним атакам. Проблема також ускладнена тим фактом, що виявлення нових вразливостей в маловідомих програмах робить всіх користувачів цієї програми мішенями для атак. Для програм-лідерів на ринку ймовірність того, що нові уразливості в них випадково можуть стати мішенню для атак, ще більш висока.
В цілому проблема тісно пов'язана з принципом, відомим як «безпека за рахунок різноманітності» — наявності широкого асортименту маловідомих програм, очевидно більш різноманітних, ніж пропозицію лідера ринку в будь-якому типі програм, що і знижує ризики випадкової атаки.
Аргумент на користь принципу безпеки за допомогою меншини суперечить принципу, що спостерігається в природі в сценарії «хижак-жертва». У цьому сценарії принцип «один в полі не воїн» протидіє принципу «безпека за допомогою меншини». Однак, є деякі дуже суттєві відмінності між, наприклад, левом, що полює на газель, і роботою автоматизованої системи. Більшість жертв злому програм аж ніяк не є прямою метою для атаки.
Одним з видів принципу безпеки за допомогою меншини є забезпечення безпеки за допомогою старіння. В основі цього принципу, наприклад, може лежати використання застарілих мережевих протоколів (наприклад, IPX, а не TCP / IP), що знижує можливість атак з Інтернету.
Невдалі приклади використання принципу
- У Москві на Ходинському полі робочі під час ремонту дороги пошкодили кабель спеціального зв'язку, який не був зазначений в документації в зв'язку з великою секретністю розташування кабелю. Це хороша ілюстрація того, що при використанні принципу «безпека через неясність» безпека може бути порушена не тільки зловмисником, але навіть і випадковою людиною.
- Багато людей ховають свою особисту інформацію на серверах в надії, що якщо не буде розкрито те, що інформація розташована на сервері, то зловмисник не зможе її знайти (використовуючи приховану папку, створюючи сервер на нестандартному порту, ще не вказуючи DNS ім'я). Однак в даний час мережеві сканери легко знаходять таку інформацію і вона виявляється в руках зловмисника.
- Існує кілька проблем з використанням URL. Так як дані в URL посилаються при використанні протоколу HTTP у відкритому вигляді, то вони можуть бути легко перехоплені (URL збережуться в логах браузер а, в історії браузера, в логах провайдерів і проксі-сервер і т. д.).
- , спочатку засекречений шифр для мобільної телефонної системи стільникового зв'язку GSM, став відомий частково за рахунок .
- Уразливості в різних версіях Microsoft Windows, веббраузера за замовчуванням Internet Explorer, його поштовий клієнт Microsoft Outlook і Outlook Express викликали в усьому світі проблеми, троянські коні або користувалися цими вразливостями.
- Програмне забезпечення маршрутизаторів Cisco випадково стало доступним для вільного підключення в корпоративній мережі.
Див. також
Примітки
- . Архів оригіналу за 9 квітня 2018. Процитовано 8 квітня 2018.
- (PDF). Архів оригіналу за 9 серпня 2017. Процитовано 8 квітня 2018.
- . Архів оригіналу за 9 квітня 2018. Процитовано 8 квітня 2018.
- . Архів оригіналу за 9 квітня 2018. Процитовано 8 квітня 2018.
Посилання
- Guide to General Server Security [ 9 серпня 2017 у Wayback Machine.]
- Безопасность GSM: реальная или виртуальная? [ 9 квітня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Bezpeka cherez neyasnist angl Security through obscurity princip yakij polyagaye v tomu shob prihovati vnutrishnij ustrij sistemi abo realizaciyu dlya zabezpechennya bezpeki Eksperti z bezpeki vidhilili cej princip she u 1851 roci ta rekomenduyut nikoli ne pokladatisya na neyasnit yak osnovnij princip zahistuIstoriya pitannyaIsnuyucha oficijna literatura z pitannya pro bezpeku cherez neyasnist dosit mizerna Knigi po inzheneriyi bezpeki posilayutsya na Princip Kerkgoffsa vid 1883 roku V oblasti prava Piter Svajr napisav pro kompromis mizh tim sho bezpeka cherez neyasnist ce ilyuziya i yak kazhut vijskovi sho chutki toplyat korabli a takozh pro te yak konkurenciya vplivaye na stimuli do rozkrittya informaciyi Princip bezpeki cherez neyasnist buv zagalnoprijnyatim v kriptografichnih robotah v chasi koli proinformovani kriptografi pracyuvali na nacionalni specsluzhbi taki yak Agentstvo nacionalnoyi bezpeki Teper kriptografi chasto pracyuyut v universitetah de doslidniki publikuyut vidkrito yih dosyagnennya publichno testuyut chuzhi rozrobki abo v privatnomu sektori Adzhe deyaki doslidzhennya kontrolyuyutsya patentami j avtorskimi pravami Napriklad PGP vipushenij u viglyadi vihidnogo kodu i zazvichaj vvazhayetsya pri pravilnomu vikoristanni kriptosistemoyu vijskovogo rivnya Perevagi i nedoliki vikoristannya principuNavedemo argumenti na korist vikoristannya principu Nezvazhayuchi na te sho stvorennya zahistu sistemi yaka spirayetsya viklyuchno na princip bezpeki cherez neyasnist ye nevdalim rishennyam vikoristannya danogo principu z metoyu zberezhennya v tayemnici deyakih detalej sistemi Napriklad pri viyavlenni urazlivosti sistemi bezpeka cherez neyasnist mozhe buti timchasovim bar yerom dlya zlovmisnikiv poki ne bude usunena dana urazlivist U comu vipadku metoyu vikoristannya principu ye znizhennya v korotkostrokovij perspektivi riziku ekspluataciyi urazlivosti v osnovnih komponentah sistemi Rozglyanemo komp yuternu merezhu yaka mistit vidomu urazlivist Ne mayuchi informaciyi pro konkretnij pristrij sistemi zlovmisnik povinen virishiti vikoristovuvati danu urazlivist chi ni Yaksho sistema nalashtovana na viyavlennya ciyeyi urazlivosti vona viyavit sho znahoditsya pid atakoyu i mozhe vidpovisti abo shlyahom blokuvannya sistemi poki administratori ne otrimayut mozhlivist vidreaguvati abo shlyahom monitoringa j vidstezhennya ataki napadnika abo shlyahom vid yednannya zlovmisnika Sut vikoristannya principu v danij situaciyi polyagaye v tomu sho zlovmisnik ne mozhe shvidko otrimati neobhidnu informaciyu pro sistemu shob prijnyati tverde rishennya pro spivvidnoshennya riziku buti zablokovanim pid chas sprobi vikoristannya urazlivosti j mozhlivoyi vinagorodi v razi vdaloyi ataki Takozh yak naslidok vidsutnosti neobhidnoyi informaciyi pro pristrij sistemi vin ne mozhe odnoznachno vibrati tu chastinu sistemi yaku treba atakuvati v pershu chergu She odna strategiya vikoristannya principu peredbachaye isnuvannya podvijnogo sharu vrazlivostej obidva z yakih trimayutsya v sekreti Pri comu tvorci sistemi dozvolyayut odnij z vrazlivostej vitekti Ideya polyagaye v tomu shob dati zlovmisnikovi pomilkove vidchuttya vpevnenosti sho zahist bulo podolano j vin peremig Napriklad ce mozhe vikoristovuvatisya yak chastina lovlya na zhivcya Argumenti proti principu bezpeki cherez neyasnist syagayut principu Kerkgoffsa visunutomu v 1883 roci Ogyustom Kerkgoffsom Cej princip stverdzhuye sho dizajn kriptografichnoyi sistemi ne povinen vimagati sekretnosti j ne povinen zavdavati nezruchnostej yaksho vin potrapit v ruki voroga Rozrobniki povinni vvazhati sho ves dizajn sistemi bezpeki vidomij napadnikam za vinyatkom kriptografichnih klyuchiv bezpeka kriptografichnogo sistemi znahoditsya povnistyu v kriptograficheskom klyuchi U 1940 roci Klod Shennon sformulyuvav cej princip yak vorog znaye sistemu Chim bilshe tochok mozhlivoyi komprometaciyi mistitsya v sistemi tim bilsha jmovirnist togo sho strategiya napadu na odnu z cih tochok isnuye abo bude rozroblena Sistemi yaki mistyat sekretnist strukturi abo operacij yaki takozh ye tochkami mozhlivoyi komprometaciyi ye mensh bezpechnimi nizh analogichni sistemi bez cih tochok Ce v tomu vipadku sho zusillya neobhidne dlya otrimannya urazlivosti v rezultati rozkrittya strukturi proektu abo metodu roboti a takozh zusillya shob vikoristovuvati cyu vrazlivist menshe za zusillya neobhidne dlya otrimannya sekretnogo klyucha Riven bezpeki sistemi zvoditsya pri comu do zusil neobhidnim dlya vikoristannya ciyeyi vrazlivosti Napriklad yaksho htos zberigaye zapasnij klyuch pid kilimkom u razi yaksho dveri zamkneni zovni to vin pokladayetsya na bezpeku cherez neyasnist Teoretichna vrazlivist v sistemi bezpeki v tomu sho htos mozhe uvirvatisya v budinok vidkrivshi dveri za dopomogoyu cogo zapasnogo klyucha Krim togo oskilki grabizhniki chasto znayut peredbachuvani miscya shovanok vlasnik budinku bude piddavatisya velikomu riziku kradizhki zi zlomom prihovuyuchi klyuch tak yak zusillya potribne dlya togo shob znajti klyuch jmovirno bude menshe zusil neobhidnih dlya proniknennya napriklad shlyahom zlomu inshim sposobom napriklad cherez sklo Gospodar dodav vrazlivist toj fakt sho vhidnij klyuch zberigayetsya pid kilimkom v sistemu i taku yaku duzhe legko vgadati i vikoristati U minulomu kilka algoritmiv programnogo zabezpechennya abo sistem z prihovuvannyam vnutrishnih detalej z yasuvali yak ci vnutrishni detali stayut nadbannyam gromadskosti Vipadkove rozkrittya vidbulosya kilka raziv napriklad u vidomomu vipadku GSM konfidencijna dokumentaciya shodo shifru bula peredana v bez nakladennya zvichajnih vimog konfidencijnosti Krim togo urazlivosti buli viyavleni j vikoristani v programnomu zabezpechenni navit todi koli vnutrishni detali zalishalisya sekretnimi Vzyati razom ci ta inshi prikladi pokazuyut sho skladno abo neefektivno trimati detali sistem i algoritmiv v sekreti Bezpeka cherez neyasnist ne viznayetsya vidpovidnim inzhenernim pidhodom do zabezpechennya bezpeki sistemi tak yak vona superechit principu KISS Nacionalnij institut standartiv i tehnologij specialno rekomenduye vikoristovuvati bezpeku cherez neyasnist ne bilshe nizh v odnomu dokumenti Zgidno NIST sistema bezpeki ne povinna zalezhati vid sekretnosti realizaciyi yiyi komponentiv Isnuye zagalnij konsensus navit sered tih hto vistupaye na korist bezpeki cherez neyasnist sho princip bezpeka cherez neyasnist nikoli ne povinna vikoristovuvatisya v yakosti osnovnogo zahodu bezpeki Ce v krashomu vipadku vtorinna mira j rozkrittya informaciyi pro neyasnosti ne povinno prizvoditi do komprometaciyi Prikladi vikoristannyaRiznicya znachennya vikoristannya principu u vidkritomu i zakritomu programnomu zabezpechenni Cinnist vikoristannya principu pri stvorenni vidkritogo abo zakritogo PZ duzhe rizna j neodnoznachna Rozglyanemo proces stvorennya vidkritogo PZ Najbilsh chasto rozrobniki bilsh zacikavleni v stvorenni novogo kodu nizh v analizi vzhe isnuyuchogo na nayavnist vrazlivostej Tak yak stvorennya vidkritogo PZ ye spravoyu dobrovolciv a bezpeci pridilyayetsya menshe uvagi Z inshogo boku isnuye zakon Linusa yakij govorit sho pri dostatnij kilkosti ochej bagi viplivayut na poverhnyu Tobto zakon peredbachaye pidvishenu bezpeku algoritmiv i protokoliv opis yakih opublikovano Bilshe lyudej mozhe pereglyanuti detali takih algoritmiv viyaviti nedoliki i ranishe yih vipraviti Prihilniki ciyeyi tochki zoru vvazhayut sho chastota j tyazhkist naslidkiv komprometaciyi bude mensha nizh dlya zakritogo abo sekretnogo programnogo zabezpechennya Z usogo cogo mozhna zrobiti visnovok sho v razi stvorennya vidkritogo PZ bezpeka bezposeredno zalezhit vid populyarnosti programi tobto chim vishe populyarnist tim bilshe dobrovolciv analizuyut kod programi i tim visha jmovirnist znahodzhennya vrazlivostej v nomu Na pidtverdzhennya cogo navedemo priklad sho vihidnij kod Linux maye 0 17 pomilok na tisyachu ryadkiv vihidnogo kodu v toj chas yak zakrite komercijne programne zabezpechennya v serednomu nalichuye 20 30 pomilok na 1000 ryadkiv vihidnogo kodu Sho stosuyetsya zakritogo PZ to pri jogo stvorenni analizu bezpeki kodu pridilyayetsya velika uvaga sho pidvishuye nadijnist sistemi Z inshogo boku tak yak kilkist rozrobnikiv chasto menshe nizh v razi vidkritogo PZ zmenshuye jmovirnist viyavlennya isnuyuchih vrazlivostej v programi Do togo zh operatori j rozrobniki virobniki sistem yaki pokladayutsya na bezpeku cherez neyasnist mozhut zberegti v tayemnici toj fakt sho v yih sistemi znajdena urazlivist shob uniknuti zmenshennya popitu v svoyih poslug abo produktiv i otzhe uniknuti znizhennya jogo konkurentospromozhnosti vselivshi takim chinom pomilkovu vpevnenist u bezpeci svoyih produktiv Buli vidomi vipadki shonajmenshe 1960 h rokiv koli kompaniya zatrimuvala vipusk vipravlen i patchiv viddayuchi prioritet svoyim korporativnim pravilam a ne problemam abo rizikiv kliyentiv Istoriya vikoristannya principu v servisi Skype Inzhener rozrobnik Shon O Nil Sean O Neil vidomij yak tvorec dosit gnuchkogo kriptoalgoritma Takozh vin vidomij u vuzkih kolah kriptoanalitikiv yak lyudina sho brala uchast u zlomi sekretnogo shifru v RFID chipah Ci chipi lezhat v osnovi transportnih kart elektronnih perepustok ta inshih bezkontaktnih smart kart kilkist yakih po vsomu svitu na sogodnishnij den obchislyuyetsya milyardami U lipni 2010 roku v Interneti z yavilasya novina sho Shon O Nil z grupoyu koleg zmig rozkriti vihidni kodi program yaki zahishayut vidomij servis IP telefoniyi Skype A tochnishe yim vdalosya otrimati vihidni kodi propriyetarnih protokoliv shifruvannya servisu Skype U svoyemu blozi Shon O Nil daye posilannya na sajt cryptolib com 21 lyutogo 2020 u Wayback Machine de za jogo slovami znahodyatsya otrimani kodi Za yih vlasnim svidchennyam Shon O Nil i jogo kolegi po naspravdi zajmalisya problemami bezpeki servisu Skype protyagom dovgogo periodu chasu Tak yak voni buli fahivcyami v analizi dvijkovih kodiv yim vdalosya dosit shvidko vidnoviti programu po dvijkovim kodami nezvazhayuchi na te sho programisti Skype duzhe intensivno zastosovuvali obfuskaciyu Same cherez te sho rozrobniki Skype intensivno zastosovuvali obfuskaciyu desho do cogo vdavalosya vidnoviti programu za dvijkovimi kodami a ti hto ce zmig zrobiti ne publikuvali vihidni kodi tak yak voni viglyadali strahitlivo V kincevomu pidsumku Shonu O Nilu vdalosya stvoriti ekvivalentnij kod yakij u vsih osnovnih rezhimah pracyuye yak Skype ale yakij napisanij bez vikoristannya kodu Skype Hocha stvorennya kodu vidbuvalosya privatno cherez kilka tizhniv jomu vdalosya prosochitisya v Internet i vin vidrazu stav instrumentom spameriv yaki robili rozsilki po kanalah servisu terminovih povidomlen Skype Vidchuvayuchi vidpovidalnist za te sho vidbuvayetsya Shon O Nil virishiv viklasti golovnij sekret komunikacijnogo protokolu Skype zaplutanij obfuskaciya algoritm rozshirennya dlya vektora inicializaciyi shifru RC4 Bilsh konkretno na sajti cryptolib com 21 lyutogo 2020 u Wayback Machine vikladena programa na movoyu C za dopomogoyu yakoyi mozhlive deshifruvannya sluzhbovogo trafiku mizh kliyentami Skype i supervuzlom sistemi Nezvazhayuchi na te sho dlya shifruvannya sluzhbovih danih vikoristovuyetsya potokovij metod shifruvannya RC4 vidsutni sekretni klyuchi yaki neobhidno zlamuvati Yedine zh sho realno ye ce postijne peretvorennya yake peretvoryuye chitanu informaciyu v taku sho ne chitayetsya Sens cogo algoritmu polyagav v tomu shob niyaki inshi osobi ne zmogli rozroblyati sumisni z Skype dodatki adzhe ne znayuchi algoritmiv peredachi sluzhbovih danih nemozhlivo stvoriti taki dodatki Ce buv zahist dlya monopolnogo volodinnya Skype svoyeyu sistemoyu Navedemo priklad vikoristannya obfuskaciyi Obfuskaciya tehnika spryamovana na zaplutuvannya vihidnogo abo vikonuvanogo kodu programi metoyu yakoyi ye zberezhennya pracezdatnosti ale takij kod bude vazhko proanalizuvati Obfuskaciya mozhe buti zastosovana yak na rivni algoritmu tak i na rivni vihidnogo kodu programi j navit na rivni asemblernogo kodu Napriklad stvorennya zaplutanogo asemblernogo kodu mozhe buti dosyagnuto za dopomogoyu vikoristannya specialnih kompilyatoriv Taki kompilyatori yak pravilo zanovo stvoryuyut kod vikoristovuyuchi nedokumentovani mozhlivosti seredovisha vikonannya programi Takozh isnuyut specialni programi stvoreni dlya zaplutuvannya kodu obfuskator Deyaki proceduri pri obfuskaciyi kodu programi Zmina tablic importu eksportu ta pereadresaciyi Maskuvannya originalnoyi Entry Point tochka vhodu v programu Vikoristannya polimorfnogo variantu rozpakuvannya Priklad 1 Movoyu C Vihidnij kod do obfuskaciyi int COUNT 100 float TAX RATE 0 2 for int i 0 i lt COUNT i tax i orig price i TAX RATE price i orig price i tax i Pislya obfuskaciyi for int a 0 a lt 100 a b a c a 0 2 d a c a b a Priklad 2 Movoyu Perl Vihidnij kod do obfuskaciyi my filter if pod my buffd buffer File Temp tempfile UNLINK gt 1 print buffd print buffd pod or die print buffd close buffd or die found buffer filter 1 exit sub is tainted my arg shift my nada substr arg 0 0 zero length local preserve caller s version eval eval return length 0 sub am taint checking my k v each ENV return is tainted v Pislya obfuskaciyi sub z109276e1f2 my z4fe8df46b1 shift my zf6f94df7a7 substr z4fe8df46b1 0x1eb9 765 0x21b6 0 0849 1465 0x0e02 local eval eval return length 0x26d2 59 0x270d my z9e5935eea4 if z6a703c020a my z5a5fa8125d zcc158ad3e0 File Temp tempfile 0x196a 130 0x19eb print z5a5fa8125d print z5a5fa8125d z6a703c020a or die zcc158ad3e0 x3a x20 print z5a5fa8125d close z5a5fa8125d or die z8374cc586e zcc158ad3e0 z9e5935eea4 0 1209 1039 0 1617 exit sub z021c43d5f3 my z0f1649f7b5 z9e1f91fa38 each ENV return z109276e1f2 z9e1f91fa38 Ce prikladi tak zvanoyi visokorivnevoyi obfuskaciyi Yaksho metoyu ye prihovati virusnij kod to v bilshosti vipadkiv vikoristovuyut nizkorivnevu obfuskaciyu iz zastosuvannyam komand asemblera a takozh programi dlya avtomatichnoyi obfuskaciyi taki yak i Princip bezpeki za dopomogoyu menshini Variant bazovogo principu zasnovanij na harakteristikah malovidomih program pri vikoristanni yakih znizhuyetsya jmovirnist viyavlennya vrazlivostej v vipadkovih i avtomatichnih atakah Cej pidhid maye bezlich nazv i bezpeka za dopomogoyu menshini ye najposhirenishoyu Takozh isnuyut termini bezpeka za dopomogoyu ridkosti bezpeka za dopomogoyu nepopulyarnosti bezpeka cherez vidsutnist interesu Danij princip perevazhno zustrichayetsya v poyasnenni chomu kilkist vidomih vrazlivostej znajdenih v programi dlya shirokogo segmenta rinku maye tendenciyu buti vishe nizh linijna zalezhnist peredbachuvana chastkoyu programi na rinku ale cya chastka ye faktorom u vibori programi dlya deyakih velikih organizacij Princip bezpeki za dopomogoyu menshini mozhe buti korisnij organizaciyam zmist yakih ne piddayetsya cilespryamovanim atakam i planuyut vikoristannya produktu v dovgostrokovij perspektivi Prote viyavlennya novih vrazlivostej v programi yaka ye liderom na rinku skladnishe nizh v mensh vidomih produktah tak yak cherez shiroke poshirennya programi bagato urazlivostej vzhe buli viyavleni tomu programa sho volodiye velikoyu chastkoyu rinku bilsh pidhodit dlya organizacij sho piddayutsya postijnim atakam Problema takozh uskladnena tim faktom sho viyavlennya novih vrazlivostej v malovidomih programah robit vsih koristuvachiv ciyeyi programi mishenyami dlya atak Dlya program lideriv na rinku jmovirnist togo sho novi urazlivosti v nih vipadkovo mozhut stati mishennyu dlya atak she bilsh visoka V cilomu problema tisno pov yazana z principom vidomim yak bezpeka za rahunok riznomanitnosti nayavnosti shirokogo asortimentu malovidomih program ochevidno bilsh riznomanitnih nizh propoziciyu lidera rinku v bud yakomu tipi program sho i znizhuye riziki vipadkovoyi ataki Argument na korist principu bezpeki za dopomogoyu menshini superechit principu sho sposterigayetsya v prirodi v scenariyi hizhak zhertva U comu scenariyi princip odin v poli ne voyin protidiye principu bezpeka za dopomogoyu menshini Odnak ye deyaki duzhe suttyevi vidminnosti mizh napriklad levom sho polyuye na gazel i robotoyu avtomatizovanoyi sistemi Bilshist zhertv zlomu program azh niyak ne ye pryamoyu metoyu dlya ataki Odnim z vidiv principu bezpeki za dopomogoyu menshini ye zabezpechennya bezpeki za dopomogoyu starinnya V osnovi cogo principu napriklad mozhe lezhati vikoristannya zastarilih merezhevih protokoliv napriklad IPX a ne TCP IP sho znizhuye mozhlivist atak z Internetu Nevdali prikladi vikoristannya principu U Moskvi na Hodinskomu poli robochi pid chas remontu dorogi poshkodili kabel specialnogo zv yazku yakij ne buv zaznachenij v dokumentaciyi v zv yazku z velikoyu sekretnistyu roztashuvannya kabelyu Ce horosha ilyustraciya togo sho pri vikoristanni principu bezpeka cherez neyasnist bezpeka mozhe buti porushena ne tilki zlovmisnikom ale navit i vipadkovoyu lyudinoyu Bagato lyudej hovayut svoyu osobistu informaciyu na serverah v nadiyi sho yaksho ne bude rozkrito te sho informaciya roztashovana na serveri to zlovmisnik ne zmozhe yiyi znajti vikoristovuyuchi prihovanu papku stvoryuyuchi server na nestandartnomu portu she ne vkazuyuchi DNS im ya Odnak v danij chas merezhevi skaneri legko znahodyat taku informaciyu i vona viyavlyayetsya v rukah zlovmisnika Isnuye kilka problem z vikoristannyam URL Tak yak dani v URL posilayutsya pri vikoristanni protokolu HTTP u vidkritomu viglyadi to voni mozhut buti legko perehopleni URL zberezhutsya v logah brauzer a v istoriyi brauzera v logah provajderiv i proksi server i t d spochatku zasekrechenij shifr dlya mobilnoyi telefonnoyi sistemi stilnikovogo zv yazku GSM stav vidomij chastkovo za rahunok Urazlivosti v riznih versiyah Microsoft Windows vebbrauzera za zamovchuvannyam Internet Explorer jogo poshtovij kliyent Microsoft Outlook i Outlook Express viklikali v usomu sviti problemi troyanski koni abo koristuvalisya cimi vrazlivostyami Programne zabezpechennya marshrutizatoriv Cisco vipadkovo stalo dostupnim dlya vilnogo pidklyuchennya v korporativnij merezhi Div takozhSteganografiya Morfing programnogo kodu Princip Kerkgoffsa ObfuskaciyaPrimitki Arhiv originalu za 9 kvitnya 2018 Procitovano 8 kvitnya 2018 PDF Arhiv originalu za 9 serpnya 2017 Procitovano 8 kvitnya 2018 Arhiv originalu za 9 kvitnya 2018 Procitovano 8 kvitnya 2018 Arhiv originalu za 9 kvitnya 2018 Procitovano 8 kvitnya 2018 PosilannyaGuide to General Server Security 9 serpnya 2017 u Wayback Machine Bezopasnost GSM realnaya ili virtualnaya 9 kvitnya 2018 u Wayback Machine