Атака TCP Reset, «фальшиві TCP Reset», «скидання TCP», «спуфінг пакетів TCP reset» — спосіб розірвати TCP з'єднання за допомогою надсилання підробленого пакета TCP Reset. Такий спосіб можуть використовувати фаєрволи або зловмисники.

The Great Firewall of China[en], та Іранські цензори[en] використовують цей підхід для впровадження цензури в інтернет.[1]

Технічні подробиці ред.

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

Скидання TCP ред.

Кожен TCP-пакет в рамках з'єднання несе заголовок. У кожному з них є біт прапора скидання (RST). У більшості пакетів цей біт встановлений в 0 і нічого не означає, але якщо він встановлений в 1, це означає, що одержувач повинен негайно припинити використовувати дане з'єднання: не посилати пакетів з поточним ідентифікатором (на поточний порт), а також ігнорувати всі наступні пакети цього з'єднання (згідно інформації в їх заголовках). По суті, скидання TCP вмить розриває з'єднання.

При належному використанні такого скидання — корисний механізм. Такий спосіб застосовується, коли на одному комп'ютері (умовно А) відбувається збій під час передачі даних TCP. Другий комп'ютер (умовно Б) продовжить слати TCP-пакети, так як не знає про збої на А. Після перезавантаження А продовжить отримувати пакети від старого з'єднання, але, не володіючи даними про з'єднання, вже не буде знати, що з ними робити. У цьому випадку він відправить вимогу скидання TCP комп'ютеру Б, повідомляючи, що з'єднання перервано. Користувач комп'ютера може Б встановити нове з'єднання або вжити інші дії.

Фальшиве скидання TCP ред.

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

Області застосування ред.

Очевидним застосуванням методу скидання TCP є таємне порушення зловмисником з'єднання між сторонами. З іншого боку, відомі системи мережевої безпеки, що використовують такий спосіб. Прототип програми «Buster» був показаний в 1995 р. і міг відправляти фальшиві пакети скидання на будь-які з'єднання, які використовують порти із заданого списку. Розробники Linux запропонували аналогічні можливості для брандмауерів на базі Linux в 2000 р.[2], а вільна програма Snort використовувала скиди TCP для переривання підозрілих з'єднань вже в 2003 р.[3]

Інцидент в Comcast ред.

В кінці 2007 р. провайдер Comcast почав використовувати спуфінг TCP для виведення з ладу P2P-програм і ПЗ для спільної роботи (groupware) своїх клієнтів.[4]. Це викликало конфлікт, результатом якого стало створення Групи мережевого нейтралітету (NNSquad) у складі Lauren Weinstein[en], Вінтона Серфа, David Farber[en], Крейга Ньюмарка та інших борців за відкритість Інтернету.[5] У 2008 р. NNSquad випустили програму NNSquad Network Measurement Agent для Windows, яка виявляла фальшиві пакети від Comcast і відрізняла їх від справжніх скидів. Примітно, що алгоритм виявлення скидів був розроблений на основі існуючої відкритої програми «Buster», створеної для боротьби з шкідливими об'єктами і рекламою на вебсторінках.

У січні 2008 р. FCC оголосила про початок розслідування спуфінга з боку Comcast, а 21 серпня 2008 р. наказала їм припинити цю практику.

Слово «фальшиві» ред.

Деякі представники провайдерів вважають слово «фальшиві» недоречним щодо скидання TCP. Вони також заявляли, що це легітимний спосіб скорочення мережевого трафіку.[6]

Примітки ред.

  1. Clayton, Richard; Murdoch, Steven J.; Watson, Robert N. M. (2006). Danezis, George; Golle, Philippe (ред.). Ignoring the Great Firewall of China Privacy Enhancing Technologies. Lecture Notes in Computer Science (англ.). Т. 4258. Cambridge, UK: Springer Berlin. с. 20–35. doi:10.1007/11957454_2. ISBN 978-3-540-68793-1 — через Department of Computer Science and Technology. 
  2. May 2000 Linux discussion archives. Архів оригіналу за 3 березня 2016. Процитовано 10 квітня 2018. 
  3. Архів обговорення SNORT re: TCP resets [Архівовано 11 серпня 2007 у Wayback Machine.]
  4. Associated Press, Comcast Blocks Some Internet Traffic. Архів оригіналу за 7 травня 2011. Процитовано 10 квітня 2018. 
  5. Домашня сторінка NNSquad. Архів оригіналу за 18 травня 2020. Процитовано 10 квітня 2018. 
  6. Про легітимність скидання для керування мережею [Архівовано 9 червня 2012 у Wayback Machine.] (англ.)

Посилання ред.