Більшість людей щодня користуються різними сайтами та порталами. Як тільки ви відкриваєте сайт, починається сеанс – процес взаємодії двох систем, який триває доти, доки користувач не завершить його. Сеанс – це невід’ємна частина інформаційного взаємодії, але кожен сеанс пов’язані з ризиком його перехоплення. У цій статті ми розповімо, що таке перехоплення сеансу та як захистити себе від атаки.
Що таке перехоплення сеансу?
Перехоплення сеансу – це атака, під час якої зловмисник перехоплює керування вашим сеансом. Її ще називають перехопленням файлів cookie або перехопленням TCP. Атака може статися, коли ви вибираєте товар в інтернет-магазині, сплачуєте квитанцію або перевіряєте баланс банківського рахунку. Як правило, зловмисники перехоплюють сеанси браузера та веб-додатків, намагаючись отримати доступ до ваших персональних даних та паролів.
Видаючи себе за авторизованого користувача, шахрай отримує несанкціонований доступ до захищених облікових записів (і в них містяться) – в результаті такі атаки можуть призводити до дуже серйозних наслідків для безпеки ресурсу.
Що таке сеанс?
При кожному підключенні до сайту або додатку за протоколом HTTP сервіс аутентифікує користувача (наприклад, за логіном та паролем) і тільки після цього відкриває канал зв’язку та надає доступ. Однак HTTP-підключення самі по собі не відстежують дані про стан, тобто сприймають кожну дію користувача окремо від інших дій. І якби ми покладалися виключно на протокол HTTP, нам доводилося вводити облікові дані при кожному переході на нову сторінку або вчиненні інших дій на сайті.
Сеанси дозволяють вирішити цю проблему. Після введення облікових даних на сервері, на якому розміщено сайт або програму, створюється сеанс, який дозволяє платформі запам’ятати початкові автентифікаційні дані. Користувач залишається в системі, поки сеанс відкритий, і закриває сеанс, виходячи із системи. Іноді сеанс закривається після певного періоду бездіяльності користувача.
При відкритті сеансу багато сервісів створюють ідентифікатор сеансу – рядок, що складається з чисел та літер, що зберігається у тимчасовому файлі сеансу – cookie, посиланнях чи прихованих полях на сайті. Деякі послуги (але не всі) шифрують ідентифікатори сеансів. Ідентифікатори часто містять дані, які легко дізнатися, наприклад IP-адресу користувача.
Як відбувається перехоплення сеансу?
Ось гіпотетичний приклад того, як може здійснюватись перехоплення сеансу.
Крок 1. Користувач входить до свого облікового запису
в онлайн-банку, інтернет-магазині, додатку або на порталі як завжди. Браузер створює тимчасовий файл сеансу cookie. Цей файл містить інформацію про користувача, яка дозволяє йому залишатися в системі, та відстежує його активність під час сеансу. Cookie-файл сеансу зберігається до того часу, поки користувач не вийде з облікового запису або поки сеанс не завершиться автоматично після закінчення настроєного на сервері періоду бездіяльності.
Крок 2. Зловмисник отримує доступ до активного сеансу користувача.
Злочинці знають багато способів перехоплення сеансів. Наприклад, вони можуть вкрасти файл cookie, знайти в ньому ідентифікатор сеансу і скористатися цією інформацією для перехоплення сеансу. Ідентифікатор сеансу також називають ключем сеансу. Здобувши ідентифікатор, зловмисник може перехопити сеанс, не залишивши слідів.
Крок 3. Атака починає давати плоди.
Легітимний користувач продовжує свою подорож інтернетом, а зловмисник тим часом використовує його активний сеанс у своїх підступних цілях. Він може вкрасти гроші з рахунку користувача, купити собі щось, отримати персональні дані і згодом скористатися ними або зашифрувати важливу інформацію і вимагати викуп за її розшифровку.
Такі атаки зазвичай відбуваються в мережах з інтенсивним трафіком, де одночасно відкрито велику кількість сеансів. Це дозволяє зловмисникам експлуатувати одразу кілька сеансів і підвищує їх шанси залишитися в тіні – у жвавій мережі виявити їх буде складно.

Види перехоплення сеансів
- Міжсайтовий скриптинг: Міжсайтовий скриптинг – це атака, під час якої злочинець експлуатує прогалини в безпеці веб-сервера або програми та впроваджує скрипти у веб-сторінки. Внаслідок цих дій він витягує з браузера ключ сеансу для подальшого перехоплення.
- Зламування на стороні сеансу (або прослуховування сеансу): У цьому випадку злочинці намагаються отримати доступ до вашого мережного трафіку. Це можливо, якщо ви користуєтеся незахищеним Wi-Fi, а також внаслідок атаки типу Man in-the-Middle. Для злому зловмисник використовує метод прослуховування пакетів: він стежить за мережним трафіком жертви, очікуючи на початок сеансу, після чого перехоплює cookie і встановлює контроль над сеансом.
- Фіксація сеансу: Кіберзлочинець створює ідентифікатор сеансу і знаходить спосіб змусити користувача почати сеанс із цим ідентифікатором, наприклад, відправляє йому повідомлення з посиланням на сторінку входу на сайт, який цікавить шахрая. Користувач входить на сайт із підробленим ідентифікатором та приводить із собою самозванця.
- Атака типу Man-in-the-Browser: Вона має багато спільного з атакою типу Man-in-the-Middle, тільки в цьому випадку зловмиснику спочатку потрібно відправити троянця на комп’ютер жертви. Шкідлива програма входить у справу, коли користувач переходить на потрібний сайт. Вона здатна непомітно змінити відомості про транзакцію і навіть ініціювати нові транзакції потай від користувача. Оскільки запити надходять із комп’ютера жертви, веб-сервіс не може визначити, що за ними стоїть шахрай.
- Передбачуваний ідентифікатор сеансу: Для створення ідентифікаторів сеансів багато веб-серверів використовують власні алгоритми або готові шаблони. Чим більш передбачуваним є ідентифікатор сеансу, тим слабший. Щоб обчислити черговий ідентифікатор сеансу, зловмиснику буває достатньо перехопити кілька інших ідентифікаторів і проаналізувати шаблон. (Цей метод схожий на атаку методом перебору.)
Чим перехоплення сеансу відрізняється від заміни сеансу?
Перехоплення та підміна сеансу – це різні види атаки, хоча вони мають деякі подібності. Основна різниця між ними в тому, що перехоплення сеансу відбувається після того, як легітимний користувач розпочав сеанс. Підміна сеансу – це атака, коли зловмисник починає сеанс від імені іншого користувача (тобто самому користувачеві у цей час зовсім не обов’язково перебувати на сайті).
Таким чином, атаки на перевірених користувачів можуть відбуватися по-різному. Перехоплення сеансу може спровокувати помилки та навіть збої в роботі сайту або програми на стороні жертви. У разі підміни сеансу жертва не користується сайтом під час атаки і при наступному вході до системи не помітить жодних проблем.
Наслідки перехоплення сеансу
Вживши заходів до захисту від перехоплення сеансів, ви зможете захистити себе від багатьох загроз. Ось деякі з них.
- Крадіжка ідентифікаційних даних: Отримавши несанкціонований доступ до особистих даних, збережених в облікових записах, зловмисники можуть скористатися ними за межами зламаного сайту або програми.
- Крадіжка грошей: Перехоплення сеансу дозволяє зловмисникам виконувати транзакції від імені користувача, наприклад, виводити гроші з банківського рахунку або робити покупки на сайтах, які зберігають платіжні дані.
- Зараження шкідливим ПЗ: Отримавши ідентифікатор сеансу, зловмисник може заразити пристрій користувача шкідливим програмним забезпеченням, отримати контроль над комп’ютером і вкрасти важливі дані.
- DoS-атаки (атаки типу «відмова в обслуговуванні»): Отримавши контроль над сеансом користувача, злочинець може розпочати DoS-атаку на сайт чи сервер, якого він підключений. Це може призвести до збоїв у роботі сервісу або тимчасової недоступності сайту.
- Доступ до інших систем через SSO: SSO – це служба єдиного входу (англ. single sign-on). Якщо ви користуєтеся цією службою, кіберзлочинець може отримати несанкціонований доступ одразу до кількох сервісів, якими ви користуєтесь, що ще більше підвищує ризик атаки з перехопленням сеансу. Це особливо важливо враховувати організаціям, які впровадили цю технологію для зручності працівників. Адже зрештою це означає, що навіть неприступні на перший погляд системи з надійними протоколами аутентифікації та непередбачуваними cookie сеансів, наприклад системи для обробки фінансової та клієнтської інформації, захищені рівно настільки, наскільки захищена найслабша ланка.
Приклади атак із перехопленням сеансу
Zoom-бомбінг
Під час пандемії Covid-19 величезну популярність набрали програми відеоконференцій, такі як Zoom. Популярними вони стали і серед зловмисників, а для позначення атак на програму навіть з’явився спеціальний термін – Zoom-бомбінг. У новинах раз у раз з’являлися історії про те, як злочинці вторгалися у відеоконференцію, вигукуючи непристойні та образливі фрази та відправляючи в чат зображення порнографічного характеру. Для зниження ризиків розробники Zoom розширили набір інструментів захисту приватності.
Slack
У 2019 році один із учасників програми Bug Bounty знайшов у додатку Slack вразливість, яка дозволяла зловмисникам створювати фальшиві сеанси для користувачів та красти cookie сеансів. Таким чином, зловмисник отримував доступ до всіх даних, що передаються через Slack (для багатьох організацій це може бути серйозною загрозою). Розробники Slack оперативно відреагували на повідомлення про загрозу та виправили вразливість за 24 години.
GitLab
У 2017 році фахівець з безпеки виявив у GitLab вразливість, яка дозволяла перехоплювати токени сеансів користувача через URL-адресу. В результаті подальшого розслідування з’ясувалося, що GitLab використовували постійні токени сеансів без терміну дії. Тобто, отримавши такий токен, зловмисник міг користуватися ним як завгодно довго. Така доступність ідентифікаторів і використання постійних токенів піддавали користувачів високому ризику атаки з перехопленням сеансу або атаки методом перебору. В результаті GitLab змінила підхід до використання та зберігання токенів, усунувши вразливість.
Як запобігти перехопленню сеансу
Дотримуйтесь наших порад, щоб запобігти перехопленню сеансу та зміцнити свою безпеку.
- Не користуйтеся публічним Wi-Fi: Намагайтеся не здійснювати важливих транзакцій у публічній мережі Wi-Fi: не користуйтеся банківськими програмами, не робіть покупок і не входьте до облікових записів електронної пошти або соціальних мереж. Поблизу можуть бути зловмисники, які прослуховують пакети, щоб перехопити файли cookie та іншу цінну інформацію.
- Використовуйте VPN: Якщо без публічного Wi-Fi не обійтися, використовуйте технологію VPN (Віртуальна приватна мережа), щоб підвищити безпеку та захистити сеанс від перехоплення. VPN передає ваш трафік захищеним тунелем, приховуючи IP-адресу та забезпечуючи приватність у мережі, а також шифрує дані, які ви передаєте та отримуєте.
- Не забувайте про фішинг та інші види онлайн-шахрайства: Не переходьте на посилання в електронних листах, якщо не впевнені в надійності відправника. Зловмисники, які планують перехопити сеанс, можуть надіслати листа з посиланням, натиснувши на яке ви ризикуєте встановити на пристрій шкідливу програму або перейти на сайт, який використовує ідентифікатор сеансу, сфабрикований шахраєм.
- Користуйтеся надійними сайтами: Відомі банки, сервіси електронної пошти, інтернет-магазини та соціальні медіа вживають заходів для захисту користувачів від перехоплення сеансу. Адреси таких сайтів починаються з HTTPS – літера S означає безпечний (англ. secure). Сумнівні сайти та послуги можуть мати недостатній рівень захисту, залишаючи користувачів вразливими для перехоплення сеансів.
- Використовуйте антивірусне програмне забезпечення: Встановіть надійну антивірусну програму, яка виявляє віруси та захищає від усіх типів шкідливого програмного забезпечення (у тому числі від програм, які зловмисники використовують для перехоплення сеансів). Налаштуйте автоматичне оновлення програм на всіх пристроях.
