Чи відомо вам, що зловмисник здатний ініціювати банківські операції або покупки в інтернеті від вашого імені, навіть не заволодівши вашими обліковими даними?
Ми звикли пов’язувати файли cookie з відстеженням дій користувача та нав’язливою рекламою, однак вони також зберігають історію пошуку, що дозволяє нам відвідувати вебсайти без повторного введення логіна та пароля.
Проте, якщо сторонній отримає доступ до вашого файлу cookie, це може призвести до серйозної кібератаки, відомої як викрадення сесії. Це може поставити під загрозу ваші конфіденційні дані і завдати значної шкоди до того, як ви взагалі дізнаєтеся про те, що трапилося.
Розглянемо, що це за явище і як від нього захиститися!
Що являє собою викрадення сесії?
Викрадення сесії – це коли зловмисник перехоплює та бере під контроль встановлену сесію між користувачем та сервером, будь то вебсервер, Telnet чи інше з’єднання на основі TCP. Сесія розпочинається, коли ви входите на вебсайт чи в додаток, наприклад, в соціальну мережу.
Сесія продовжується, коли ви авторизовані, переглядаєте свій профіль або берете участь в обговореннях, і завершується, коли ви виходите з системи. Але яким чином вебсервер ідентифікує, що кожен ваш запит дійсно надходить від вас?
Саме тут в гру вступають файли cookie. Після входу ви відправляєте свої облікові дані на сервер. Він підтверджує вашу ідентичність та видає вам ідентифікатор сесії у вигляді файлу cookie, який асоціюється з вашою сесією. Завдяки цьому ви не виходите з додатку щоразу, коли заходите на інший профіль, і онлайн-магазин пам’ятає товари, які ви додали в кошик, навіть якщо оновлюєте сторінку.
Зловмисники можуть перехопити сесію, скориставшись методами керування сесіями або викравши ваш файл cookie. В результаті, сервер може помилково вважати, що запити надходять від вас, як від авторизованого користувача.
Феномен викрадення сесій отримав поширення на початку 2000-х років, але й досі залишається одним з розповсюджених прийомів, які використовують хакери.
Останній приклад – це Lapsus$ Group, яка нещодавно потрапила до списку найбільш розшукуваних ФБР. Вони використовують зараження шкідливим ПЗ InfoStealer для викрадення сесії.
Аналогічно, GenesisStore, магазин, доступний за запрошеннями, яким керує однойменна група, продає скомпрометовані дані файлів cookie, і має в своєму списку понад 400 000 ботів.
Види захоплення сесії
Викрадення сесії поділяється на дві основні категорії, залежно від намірів зловмисника.
Активне: в ході активної атаки зловмисник перехоплює вашу сесію, беручи під контроль з’єднання легітимного користувача з ресурсом. Залежно від вебсайту, хакер може робити покупки онлайн, змінювати паролі або відновлювати облікові записи. Типовими прикладами активної атаки є атаки грубою силою, XSS або DDoS.
Джерело: OSWAP
Пасивне: в ході пасивної атаки зловмисник не перехоплює та не змінює сесію. Замість цього він непомітно відстежує трафік даних між вашим пристроєм і сервером, збираючи конфіденційну інформацію. Зазвичай для проведення пасивних атак застосовують IP-спуфінг та ін’єкції шкідливого ПЗ.
Джерело: OSWAP
Як відбувається викрадення сесії?
HTTP є протоколом без збереження стану, тобто сервер не має інформації про дії клієнта. Кожен новий HTTP-запит розглядається як окрема операція, тобто сервер просто надає сторінки клієнту, не запам’ятовуючи попередні запити.
Однак, коли ми користуємось вебсайтами, ми бачимо, що програми добре “пам’ятають” користувача. Завдяки цій “пам’яті” сервера стало можливим створення сучасних захищених областей вебсайтів, онлайн-банків, сервісів вебпошти тощо.
Для цього створили механізм, що дозволяє протоколу без збереження стану, такому як HTTP, стати таким, що зберігає стан: файли cookie.
Сесії зі збереженням стану
Після авторизації вебпрограми, які використовують сесії зі збереженням стану, видають файл cookie. Тобто, вони спираються на цей файл cookie для відстеження клієнта. Всередині файлу cookie зберігається унікальний ідентифікатор, який дозволяє розпізнати клієнта, наприклад:
SESSIONID=ACF3D35F216AAEFC
Будь-хто з вказаним унікальним ідентифікатором або кодом буде вважатися авторизованим користувачем для сервера. Якщо зловмисник отримає цей ідентифікатор, як показано на зображенні нижче, він зможе скористатися сесією, спочатку призначеною для жертви, перехопивши її або повністю заволодівши нею. Цей ідентифікатор, як правило, міститься в URL-адресі, прихованому полі будь-якої форми або в файлах cookie.
OSWAP
Сесії без стану
З розвитком інтернету з’явилися рішення для керування “пам’яттю” сервера без використання файлів cookie. У вебдодатку, де інтерфейс та сервер розділені і взаємодіють лише через API, оптимальним варіантом може бути JWT (JSON Web Token), підписаний токен, що дозволяє інтерфейсу використовувати API, надані сервером.
Зазвичай JWT зберігається в sessionStorage браузера, області пам’яті, яка активна до закриття вкладки. Таким чином, відкриття нової вкладки створює нову сесію (на відміну від файлів cookie).
Викрадення токена ідентифікації клієнта дозволяє викрасти сесію користувача та здійснити атаку з викраденням сесії. Але як вкрасти цей токен?
Наразі хакери найчастіше використовують наступні методи:
#1. Перехоплення сесії
Цей метод використовує незахищені мережі для отримання ідентифікатора вашої сесії. Зловмисник використовує сніффінг (спеціалізоване ПЗ) і націлюється зазвичай на публічні Wi-Fi мережі або вебсайти без сертифіката SSL, відомі своєю низькою безпекою.
#2. Фіксація сесії
Жертва використовує ідентифікатор сесії, сгенерований зловмисником. Це може відбутися через фішингову атаку (зловмисне посилання), що “фіксує” ваш ідентифікатор сесії.
#3. Атака грубою силою
Найбільш трудомісткий і малоефективний спосіб. Під час цієї атаки хакер не викрадає ваші файли cookie. Натомість він намагається підібрати ваш ідентифікатор сесії, перебираючи усі можливі комбінації.
#4. XSS або міжсайтовий скриптинг
Хакер використовує вразливості вебсайтів або додатків для впровадження шкідливого коду. Коли користувач відвідує сайт, скрипт активується, викрадає файли cookie користувача і відправляє їх зловмиснику.
#5. Ін’єкція шкідливого ПЗ
Шкідливе ПЗ здатне виконувати несанкціоновані дії на вашому пристрої, викрадаючи особисту інформацію. Його також часто використовують для перехоплення файлів cookie та передачі інформації зловмиснику.
#6. IP-спуфінг
Кіберзлочинець змінює IP-адресу відправника свого пакета даних, щоб він виглядав так, наче надходить від вас. Через фальшиву IP-адресу вебсервер вважає, що це ви, і сесія захоплюється.
Як уникнути викрадення сесії?
Ймовірність викрадення сесії залежить від рівня безпеки вебсайтів або додатків, якими ви користуєтесь. Тим не менш, ви можете вжити певних заходів, щоб захистити себе:
- Уникайте публічного Wi-Fi, оскільки безкоштовні точки доступу є ідеальним місцем для кіберзлочинців. Зазвичай вони мають низький рівень безпеки та можуть бути легко підроблені хакерами. Крім того, там завжди багато потенційних жертв, чий трафік даних постійно під загрозою.
- Будь-який сайт, який не використовує сертифікат SSL, робить вас вразливим, оскільки він не шифрує трафік. Переконайтеся, що сайт захищений, знайшовши маленький замочок поруч з URL-адресою.
- Встановіть програму захисту від шкідливого ПЗ, щоб виявляти та захищати ваш пристрій від шкідливих програм і програм віддаленого доступу, що можуть викрадати особисту інформацію.
- Уникайте завантаження шкідливого ПЗ, використовуючи офіційні магазини додатків або вебсайти для завантаження програм.
- Не натискайте на незнайомі посилання в повідомленнях. Це може бути фішингова атака, що може заразити ваш пристрій та викрасти особисту інформацію.
Користувач мало що може зробити, щоб протистояти атаці викрадення сесії. Натомість, програма може розпізнати, що інший пристрій підключився з тим же ідентифікатором сесії. На основі цього можна розробити стратегії пом’якшення наслідків, такі як:
- Зв’яжіть кожну сесію з певними технічними характеристиками підключеного пристрою для відстеження змін у параметрах. Цю інформацію слід зберігати в файлі cookie (для сесій зі збереженням стану) або JWT (для сесій без стану) у повністю зашифрованому вигляді.
- Якщо сесія базується на файлах cookie, видаліть файл cookie з атрибутом HTTPOnly, щоб він був недоступним у разі XSS-атаки.
- Налаштуйте систему виявлення вторгнень (IDS), систему запобігання вторгненням (IPS) або рішення для моніторингу мережі.
- Деякі сервіси застосовують вторинну перевірку ідентичності користувача. Наприклад, вебсервер може перевіряти з кожним запитом, чи відповідає IP-адреса користувача останній, використаній в ході сесії. Однак, це не захищає від атак з боку зловмисника з тією ж IP-адресою і може викликати незручності у користувачів, чия IP-адреса може змінюватися під час сеансу.
- Крім того, деякі сервіси змінюють значення файлу cookie з кожним запитом. Це значно зменшує час, протягом якого зловмисник може діяти і полегшує виявлення атаки, але може спричинити технічні проблеми.
- Використовуйте різноманітні рішення багатофакторної аутентифікації (MFA) для кожної сесії користувача.
- Слідкуйте за оновленнями усіх систем, встановлюючи останні виправлення безпеки.
FAQ
Чим відрізняється викрадення сесії від підміни сесії?
Викрадення сесії – це видавання себе за користувача, тоді як підміна сесії – це заміна користувача. За останні кілька років деякі експерти з питань безпеки почали вважати останнє видом викрадення сесії.
На завершення
Останніми роками кількість атак, пов’язаних з викраденням сесій, зростає. Тому розуміння таких атак і дотримання профілактичних заходів стає все важливішим. Однак, паралельно з розвитком технологій, атаки стають все більш витонченими. Отже, важливо розробляти активні стратегії пом’якшення наслідків викрадення сесій.
Вам також може бути цікаво дізнатися, скільки коштують ваші дані в даркнеті.