TCP Hijacking — Різновид атаки «Людина посередині», коли атакуючий здатний переглядати пакети учасників мережі та посилати свої власні пакети в мережу. Атака використовує особливості встановлення з'єднання в протоколі TCP, і може здійснюватися як під час «потрійного рукостискання», так і під час з'єднання.
Проблема можливої підміни TCP-повідомлення важлива, оскільки аналіз протоколів FTP і TELNET, реалізованих на базі протоколу TCP, показав, що проблема ідентифікації FTP і TELNET-пакетів цілком покладається даними протоколами на транспортний рівень, тобто на TCP.
Установка TCP з'єднання
Для ідентифікації TCP-пакета в TCP-заголовку існують два 32-розрядних ідентифікатора, які також грають роль лічильника пакетів — Sequence Number і Acknowledgment Number. У випадку, якщо хост A хоче встановити TCP-з'єднання з хостом B, відбувається т. зв. «потрійне рукостискання», в процесі якого хости обмінюються наступними пакетами:
- хост A посилає хосту B пакет зі встановленим бітом SYN та 32-бітовим значенням ISSa в полі Sequence Number
- хост B відповідає хосту A пакетом із встановленими бітами SYN і ACK, 32-бітовим значенням ISSb в полі Sequence Number, і значенням (ISSa+1) в полі ACK
- хост A відповідає хосту B пакетом з встановленим бітом ACK, значенням (ISSa+1) в полі Sequence Number, і значенням (ISSb+1) в полі ACK.
На цьому пакеті завершується установка з'єднання, тому в наступному пакеті хост A передає хосту B корисну інформацію
- хост A відповідає хосту B пакетом з встановленим бітом ACK, значенням (ISSa+1) в полі Sequence Number, і значенням (ISSb+1) в полі ACK. У цьому пакеті включена вся корисна інформація.
Принцип атаки
Розглянувши схему установки з'єднання, описану вище, можна помітити, що єдиними ідентифікаторами, за якими кінцевий хост може розрізняти TCP-абонентів та TCP-сполуки, є поля Sequence Number і Acknowledge Number. Таким чином, якщо атакуючий визначить значення ISSa і ISSb для цього з'єднання, то він зможе сформувати помилковий TCP-пакет, який буде сприйнятий та оброблений кінцевим хостом.
Один з видів атаки має на увазі, що атакуючий вбудовує в TCP-пакет контрольний біт RST (Reset). Відповідно до стандарту RFC 793, цей прапор говорить хосту-мішені скинути з'єднання без будь-яких подальших взаємодій. По полю Sequence Number хост-мішень визначає, обробляти або ігнорувати команду скидання, причому мішені заборонено посилати відповідь з встановленим бітом RST. Важливо зауважити, що хост-мішень перевіряє справжність RST запиту лише по Sequence Number, і закриває з'єднання, якщо воно потрапляє в поточне TCP вікно. І, незважаючи на те, що хост-мішень може розрахувати acknowledgment number, він не зобов'язаний цього робити, і, як виявив Paul Watson, більшість стеків TCP просто ігнорують цей крок.
Ухвалений RST пакет завжди приведе до завершення з'єднання. З'єднання, розраховані на тривалий час, наприклад BGP-з'єднання між роутерами, надзвичайно вразливі до таких атак. Насамперед, у нападника буде достатньо часу для впровадження акуратно спланованого пакету, і, з іншого боку, величезні втрати викличе DoS. Роутерам доводиться перенастроювати таблицю сусідів, що може зайняти декілька хвилин в реальних умовах.
Менш очевидний факт, що прапор SYN також може обрушити з'єднання. Згідно RFC 793, коли прапор SYN встановлюється при установці з'єднання, полі Sequence Number містить початкове значення, яке буде використано в подальшому. Якщо згодом по цьому з'єднанню буде прийнятий SYN пакет, RFC 793 буде трактувати це як помилку. Внаслідок чого одержувачу доведеться скасувати з'єднання шляхом посилки RST пакета. На відміну від RST пакету, хост відповість на SYN пакет відправкою RST пакета. Це відкриває можливість ще однієї DoS атаки. Атакуючий згодом може використовувати смугу пропускання жертви. Ця атака особливо успішна в ADSL лініях.
У той час як RST і SYN атаки не використовують корисне навантаження IP-датаграми, третя технологія вбудовує дані в наявне з'єднання. Атакуючий може вставити будь-які дані які приведуть до розриву з'єднання, або акуратно сформувати дані, які приведуть до помилки, або ж будуть виконувати якусь функцію на благо атакуючого. Жертва може навіть не помітити цих маніпуляцій. Наприклад, протоколи FTP і Telnet не перевіряють IP-адреса відправника, і отже при успішному формуванні помилкового TCP-запиту дадуть відповідь на реальний IP-адреса атакуючого, що дозволить повністю перехопити з'єднання.
Отже, для здійснення атаки необхідно знати два параметри TCP-з'єднання. У випадку, якщо атакуючий може безпосередньо прослуховувати канал зв'язку між хостами A і B, ці параметри визначаються простим аналізом трафіку. В іншому ж випадку доводиться вдаватися до більш складних методів.
Математична оцінка параметра ISN
Даний метод ґрунтується на припущенні, що вибір вихідних параметрів ISSa і ISSb (так званого [ru] — Initial Sequence Number) при встановленні з'єднання деяким чином залежить від часу. Найкращим з точки зору безпеки був би вибір ISN абсолютно довільним, що зробило б передбачення практично непридатним, однак, в описі протоколу TCP в RFC 793 рекомендується збільшувати значення цього лічильника на 1 кожні 4 мікросекунди, що робить передбачення цього значення тривіальним. На практиці, аналіз вихідного коду старих ядер Linux'а, а також поведінки операційної системи Windows NT 4.0 і молодше підтверджують функціональну залежність обраного значення ISN від часу.
У загальному випадку, при існуванні такої залежності, вона буде виражатися деякою формулою виду ISN = F(mcsec), де mcsec — кількість мікросекунд по апаратним годинах досліджуваної операційної системи.
Таким чином, атакуючому необхідно провести деякий аналіз функції залежності призначуваного значення ISN від часу. Для цього в досліджувану мережеву ОС передається серія звичайних запитів на створення TCP-з'єднання та приймається відповідна кількість відповідей з поточними значеннями ISN операційної системи в кожний момент часу. При цьому заміряються тимчасові інтервали (в мікросекундах) приходу відповідей на запити. Побудувавши таблицю залежності отриманих ISN від часу t, що пройшов з початку експерименту, отримаємо безперервну функцію зміни ISN від t, справедливу на цьому часовому проміжку: ISN(t) = F(t);
Ця формула дасть нам можливість за попереднім значенням ISN, вимірявши час, що минув з його призначення, отримати актуальне на цей момент часу значення ISN.
Надалі, атакуючому залишається лише стежити за поведінкою досліджуваних хостів, і, обчисливши момент створення з'єднання, приблизно оцінити діапазон обраних хостами значень ISSa і ISSb. Оскільки цей метод є наближеним, то деякого перебору уникнути не вийде, проте математичне моделювання дозволяє на багато порядків (з ~ до ~) скоротити кількість пакетів, необхідних атакуючому, щоб провести вдалу атаку.
Підміна вікна
Однак, не завжди буває можливим провести попередню математичну оцінку значень ISN. Також, в деяких випадках значення вибирається більш-менш незалежно від часу, і, отже, математична оцінка буває ускладнена або неможлива. У такому випадку доводиться вдаватися до більш грубих методів як перебір всіляких значень цих параметрів. Однак, при уважному вивченні стандарту RFC 793, ситуація дещо спрощується.
Перше, що слід згадати — це механізм вікон в TCP протоколі. Пакети при поширенні по Інтернету можуть обганяти один одного. Щоб не втратити прибулі раніше попередників пакети, одержувач встановлює так зване вікно, в якому він може відновити порядок пакетів. Таким чином, якщо значення поля Sequence Number лежить всередині вікна одержувача, протокол TCP прийме та обробить цей пакет. Це значно зменшує кількість спроб, які доведеться зробити атакуючому: воно зменшується з до .
Залежно від операційної системи, розмір вікна може варіюватися від байт (Windows XP з SP2) і 5840 байт (Linux kernel 2.4 і 2.6).
Вікно зменшить кількість sequence number, яке необхідно використовувати атакуючому. У разі Windows XP це число опускається до . Іншими словами, атакуючому доведеться згенерувати лише атакуючих пакетів, щоб ін'ектувати RST пакет і, таким чином, порушити з'єднання. Це дуже маленьке число.
Все стає ще гірше, якщо учасники з'єднання підтримують змінюваний розмір вікна. Ця функція TCP збільшує ймовірність знаходження відповідного sequence number за короткий час. Зміна розміру вікна призначене для сполучень, яким потрібне більше вікно через великі затримки або зайняту смугу пропускання. Щоб дозволити всім передавати без ускладнень, ця технологія розширює розмірність вікна до 14 біт (Microsoft Windows), тобто до .
Однак, атакуючому доведеться подолати ще одну перешкоду: четвірку IP-адреса/порт відправника та одержувача. IP адреса навряд чи є проблемою — атакуючий зазвичай знає, на кого він націлюється; також легко визначається порт одержувача. Трохи важче визначити порт відправника, який теоретично може лежати в діапазоні від 0 до 65535. На практиці ж порти нижче 1024 і вище порога, що визначається операційною системою, зарезервовані для спеціальних завдань.
Linux з версією ядра 2.4 або 2.6 використовує як порт відправника числа від до .
До задоволення атакуючого, решта варіантів розподілені не випадковим чином; ядро розподіляє їх по конкретній схемі. Таким чином, у атакуючого не виникне особливих проблем з прогнозом порту відправника. Існує лише кілька винятків, наприклад, OpenBSD, яка розподіляє їх довільним чином. Наприклад, Windows XP починає з порту для першого з'єднання, і збільшує порт на 1 для кожного наступного. Linux (Fedora Core 3 з ядром 2.6.9 зокрема) з знову-таки збільшує по порядку. Системи Cisco збільшують значення порту на 512 для кожного нового з'єднання, але це не робить механізм безпечніше.
Атакуючому не потрібно вгадувати номер порту, якщо відомо кількість з'єднань на машині жертви. Все, що зазвичай необхідно зробити атакуючому — почати з першого значення та перепробувати, наприклад, 50 портів. Також для атакуючого не представляє складності дізнатися операційну систему жертви. Так що, власне, визначення порту не є серйозною перешкодою.
Це незавершена стаття про комп'ютерні мережі. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
TCP Hijacking Riznovid ataki Lyudina poseredini koli atakuyuchij zdatnij pereglyadati paketi uchasnikiv merezhi ta posilati svoyi vlasni paketi v merezhu Ataka vikoristovuye osoblivosti vstanovlennya z yednannya v protokoli TCP i mozhe zdijsnyuvatisya yak pid chas potrijnogo rukostiskannya tak i pid chas z yednannya Problema mozhlivoyi pidmini TCP povidomlennya vazhliva oskilki analiz protokoliv FTP i TELNET realizovanih na bazi protokolu TCP pokazav sho problema identifikaciyi FTP i TELNET paketiv cilkom pokladayetsya danimi protokolami na transportnij riven tobto na TCP Ustanovka TCP z yednannyaDlya identifikaciyi TCP paketa v TCP zagolovku isnuyut dva 32 rozryadnih identifikatora yaki takozh grayut rol lichilnika paketiv Sequence Number i Acknowledgment Number U vipadku yaksho host A hoche vstanoviti TCP z yednannya z hostom B vidbuvayetsya t zv potrijne rukostiskannya v procesi yakogo hosti obminyuyutsya nastupnimi paketami host A posilaye hostu B paket zi vstanovlenim bitom SYN ta 32 bitovim znachennyam ISSa v poli Sequence Number host B vidpovidaye hostu A paketom iz vstanovlenimi bitami SYN i ACK 32 bitovim znachennyam ISSb v poli Sequence Number i znachennyam ISSa 1 v poli ACK host A vidpovidaye hostu B paketom z vstanovlenim bitom ACK znachennyam ISSa 1 v poli Sequence Number i znachennyam ISSb 1 v poli ACK Na comu paketi zavershuyetsya ustanovka z yednannya tomu v nastupnomu paketi host A peredaye hostu B korisnu informaciyu host A vidpovidaye hostu B paketom z vstanovlenim bitom ACK znachennyam ISSa 1 v poli Sequence Number i znachennyam ISSb 1 v poli ACK U comu paketi vklyuchena vsya korisna informaciya Princip atakiRozglyanuvshi shemu ustanovki z yednannya opisanu vishe mozhna pomititi sho yedinimi identifikatorami za yakimi kincevij host mozhe rozriznyati TCP abonentiv ta TCP spoluki ye polya Sequence Number i Acknowledge Number Takim chinom yaksho atakuyuchij viznachit znachennya ISSa i ISSb dlya cogo z yednannya to vin zmozhe sformuvati pomilkovij TCP paket yakij bude sprijnyatij ta obroblenij kincevim hostom Odin z vidiv ataki maye na uvazi sho atakuyuchij vbudovuye v TCP paket kontrolnij bit RST Reset Vidpovidno do standartu RFC 793 cej prapor govorit hostu misheni skinuti z yednannya bez bud yakih podalshih vzayemodij Po polyu Sequence Number host mishen viznachaye obroblyati abo ignoruvati komandu skidannya prichomu misheni zaboroneno posilati vidpovid z vstanovlenim bitom RST Vazhlivo zauvazhiti sho host mishen pereviryaye spravzhnist RST zapitu lishe po Sequence Number i zakrivaye z yednannya yaksho vono potraplyaye v potochne TCP vikno I nezvazhayuchi na te sho host mishen mozhe rozrahuvati acknowledgment number vin ne zobov yazanij cogo robiti i yak viyaviv Paul Watson bilshist stekiv TCP prosto ignoruyut cej krok Uhvalenij RST paket zavzhdi privede do zavershennya z yednannya Z yednannya rozrahovani na trivalij chas napriklad BGP z yednannya mizh routerami nadzvichajno vrazlivi do takih atak Nasampered u napadnika bude dostatno chasu dlya vprovadzhennya akuratno splanovanogo paketu i z inshogo boku velichezni vtrati vikliche DoS Routeram dovoditsya perenastroyuvati tablicyu susidiv sho mozhe zajnyati dekilka hvilin v realnih umovah Mensh ochevidnij fakt sho prapor SYN takozh mozhe obrushiti z yednannya Zgidno RFC 793 koli prapor SYN vstanovlyuyetsya pri ustanovci z yednannya poli Sequence Number mistit pochatkove znachennya yake bude vikoristano v podalshomu Yaksho zgodom po comu z yednannyu bude prijnyatij SYN paket RFC 793 bude traktuvati ce yak pomilku Vnaslidok chogo oderzhuvachu dovedetsya skasuvati z yednannya shlyahom posilki RST paketa Na vidminu vid RST paketu host vidpovist na SYN paket vidpravkoyu RST paketa Ce vidkrivaye mozhlivist she odniyeyi DoS ataki Atakuyuchij zgodom mozhe vikoristovuvati smugu propuskannya zhertvi Cya ataka osoblivo uspishna v ADSL liniyah U toj chas yak RST i SYN ataki ne vikoristovuyut korisne navantazhennya IP datagrami tretya tehnologiya vbudovuye dani v nayavne z yednannya Atakuyuchij mozhe vstaviti bud yaki dani yaki privedut do rozrivu z yednannya abo akuratno sformuvati dani yaki privedut do pomilki abo zh budut vikonuvati yakus funkciyu na blago atakuyuchogo Zhertva mozhe navit ne pomititi cih manipulyacij Napriklad protokoli FTP i Telnet ne pereviryayut IP adresa vidpravnika i otzhe pri uspishnomu formuvanni pomilkovogo TCP zapitu dadut vidpovid na realnij IP adresa atakuyuchogo sho dozvolit povnistyu perehopiti z yednannya Otzhe dlya zdijsnennya ataki neobhidno znati dva parametri TCP z yednannya U vipadku yaksho atakuyuchij mozhe bezposeredno prosluhovuvati kanal zv yazku mizh hostami A i B ci parametri viznachayutsya prostim analizom trafiku V inshomu zh vipadku dovoditsya vdavatisya do bilsh skladnih metodiv Matematichna ocinka parametra ISNDanij metod gruntuyetsya na pripushenni sho vibir vihidnih parametriv ISSa i ISSb tak zvanogo ru Initial Sequence Number pri vstanovlenni z yednannya deyakim chinom zalezhit vid chasu Najkrashim z tochki zoru bezpeki buv bi vibir ISN absolyutno dovilnim sho zrobilo b peredbachennya praktichno nepridatnim odnak v opisi protokolu TCP v RFC 793 rekomenduyetsya zbilshuvati znachennya cogo lichilnika na 1 kozhni 4 mikrosekundi sho robit peredbachennya cogo znachennya trivialnim Na praktici analiz vihidnogo kodu starih yader Linux a a takozh povedinki operacijnoyi sistemi Windows NT 4 0 i molodshe pidtverdzhuyut funkcionalnu zalezhnist obranogo znachennya ISN vid chasu U zagalnomu vipadku pri isnuvanni takoyi zalezhnosti vona bude virazhatisya deyakoyu formuloyu vidu ISN F mcsec de mcsec kilkist mikrosekund po aparatnim godinah doslidzhuvanoyi operacijnoyi sistemi Takim chinom atakuyuchomu neobhidno provesti deyakij analiz funkciyi zalezhnosti priznachuvanogo znachennya ISN vid chasu Dlya cogo v doslidzhuvanu merezhevu OS peredayetsya seriya zvichajnih zapitiv na stvorennya TCP z yednannya ta prijmayetsya vidpovidna kilkist vidpovidej z potochnimi znachennyami ISN operacijnoyi sistemi v kozhnij moment chasu Pri comu zamiryayutsya timchasovi intervali v mikrosekundah prihodu vidpovidej na zapiti Pobuduvavshi tablicyu zalezhnosti otrimanih ISN vid chasu t sho projshov z pochatku eksperimentu otrimayemo bezperervnu funkciyu zmini ISN vid t spravedlivu na comu chasovomu promizhku ISN t F t Cya formula dast nam mozhlivist za poperednim znachennyam ISN vimiryavshi chas sho minuv z jogo priznachennya otrimati aktualne na cej moment chasu znachennya ISN Nadali atakuyuchomu zalishayetsya lishe stezhiti za povedinkoyu doslidzhuvanih hostiv i obchislivshi moment stvorennya z yednannya priblizno ociniti diapazon obranih hostami znachen ISSa i ISSb Oskilki cej metod ye nablizhenim to deyakogo pereboru uniknuti ne vijde prote matematichne modelyuvannya dozvolyaye na bagato poryadkiv z 264 displaystyle 2 64 do 1002 displaystyle 100 2 skorotiti kilkist paketiv neobhidnih atakuyuchomu shob provesti vdalu ataku Pidmina viknaOdnak ne zavzhdi buvaye mozhlivim provesti poperednyu matematichnu ocinku znachen ISN Takozh v deyakih vipadkah znachennya vibirayetsya bilsh mensh nezalezhno vid chasu i otzhe matematichna ocinka buvaye uskladnena abo nemozhliva U takomu vipadku dovoditsya vdavatisya do bilsh grubih metodiv yak perebir vsilyakih znachen cih parametriv Odnak pri uvazhnomu vivchenni standartu RFC 793 situaciya desho sproshuyetsya Pershe sho slid zgadati ce mehanizm vikon v TCP protokoli Paketi pri poshirenni po Internetu mozhut obganyati odin odnogo Shob ne vtratiti pribuli ranishe poperednikiv paketi oderzhuvach vstanovlyuye tak zvane vikno v yakomu vin mozhe vidnoviti poryadok paketiv Takim chinom yaksho znachennya polya Sequence Number lezhit vseredini vikna oderzhuvacha protokol TCP prijme ta obrobit cej paket Ce znachno zmenshuye kilkist sprob yaki dovedetsya zrobiti atakuyuchomu vono zmenshuyetsya z 232 displaystyle 2 32 do 232 windowsize displaystyle 2 32 windowsize Zalezhno vid operacijnoyi sistemi rozmir vikna mozhe variyuvatisya vid 65535 displaystyle 65535 bajt Windows XP z SP2 i 5840 bajt Linux kernel 2 4 i 2 6 Vikno zmenshit kilkist sequence number yake neobhidno vikoristovuvati atakuyuchomu U razi Windows XP ce chislo opuskayetsya do 65000 displaystyle 65000 Inshimi slovami atakuyuchomu dovedetsya zgeneruvati lishe 65000 displaystyle 65000 atakuyuchih paketiv shob in ektuvati RST paket i takim chinom porushiti z yednannya Ce duzhe malenke chislo Vse staye she girshe yaksho uchasniki z yednannya pidtrimuyut zminyuvanij rozmir vikna Cya funkciya TCP zbilshuye jmovirnist znahodzhennya vidpovidnogo sequence number za korotkij chas Zmina rozmiru vikna priznachene dlya spoluchen yakim potribne bilshe vikno cherez veliki zatrimki abo zajnyatu smugu propuskannya Shob dozvoliti vsim peredavati bez uskladnen cya tehnologiya rozshiryuye rozmirnist vikna do 14 bit Microsoft Windows tobto do 16384 displaystyle 16384 Odnak atakuyuchomu dovedetsya podolati she odnu pereshkodu chetvirku IP adresa port vidpravnika ta oderzhuvacha IP adresa navryad chi ye problemoyu atakuyuchij zazvichaj znaye na kogo vin nacilyuyetsya takozh legko viznachayetsya port oderzhuvacha Trohi vazhche viznachiti port vidpravnika yakij teoretichno mozhe lezhati v diapazoni vid 0 do 65535 Na praktici zh porti nizhche 1024 i vishe poroga sho viznachayetsya operacijnoyu sistemoyu zarezervovani dlya specialnih zavdan Linux z versiyeyu yadra 2 4 abo 2 6 vikoristovuye yak port vidpravnika chisla vid 32768 displaystyle 32768 do 61000 displaystyle 61000 Do zadovolennya atakuyuchogo reshta 28232 displaystyle 28232 variantiv rozpodileni ne vipadkovim chinom yadro rozpodilyaye yih po konkretnij shemi Takim chinom u atakuyuchogo ne vinikne osoblivih problem z prognozom portu vidpravnika Isnuye lishe kilka vinyatkiv napriklad OpenBSD yaka rozpodilyaye yih dovilnim chinom Napriklad Windows XP pochinaye z portu 1050 displaystyle 1050 dlya pershogo z yednannya i zbilshuye port na 1 dlya kozhnogo nastupnogo Linux Fedora Core 3 z yadrom 2 6 9 zokrema z 32768 displaystyle 32768 znovu taki zbilshuye po poryadku Sistemi Cisco zbilshuyut znachennya portu na 512 dlya kozhnogo novogo z yednannya ale ce ne robit mehanizm bezpechnishe Atakuyuchomu ne potribno vgaduvati nomer portu yaksho vidomo kilkist z yednan na mashini zhertvi Vse sho zazvichaj neobhidno zrobiti atakuyuchomu pochati z pershogo znachennya ta pereprobuvati napriklad 50 portiv Takozh dlya atakuyuchogo ne predstavlyaye skladnosti diznatisya operacijnu sistemu zhertvi Tak sho vlasne viznachennya portu ne ye serjoznoyu pereshkodoyu Ce nezavershena stattya pro komp yuterni merezhi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na storinci obgovorennya Cya stattya mistit tekst sho ne vidpovidaye enciklopedichnomu stilyu Bud laska dopomozhit udoskonaliti cyu stattyu pogodivshi stil vikladu zi stilistichnimi pravilami Vikipediyi Mozhlivo storinka obgovorennya mistit zauvazhennya shodo potribnih zmin zhovten 2017 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti zhovten 2017 Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno zhovten 2017