Файли cookie (HTTP cookie) — невеликі фрагменти даних, які сайт зберігає в браузері користувача і які браузер повертає з кожним запитом; вони потрібні для входу в акаунт, налаштувань і відстеження.
Як працюють cookie
Вебсервер встановлює cookie за допомогою заголовка відповіді Set-Cookie, після чого браузер додає його до наступних запитів до того самого сайту. Механізм описано в RFC 6265. Cookie поділяють на кілька груп:
- Сесійні cookie — підтримують вхід користувача в систему; зазвичай містять випадковий ідентифікатор сесії.
- Постійні cookie — зберігають налаштування або вхід з опцією «запам’ятати мене» до завершення терміну дії.
- Сторонні cookie — встановлюються вбудованими рекламними й аналітичними сервісами для відстеження користувачів на різних сайтах; більшість браузерів уже обмежує їх.
Поведінку cookie визначають атрибути безпеки: Secure дозволяє передавання лише через HTTPS, HttpOnly приховує cookie від JavaScript, а SameSite обмежує їх надсилання з міжсайтовими запитами.
Чому cookie важливі для безпеки
Чинний сесійний cookie рівноцінний паролю разом із другим фактором, адже вхід уже виконано. Тому зловмисники викрадають cookie, щоб обійти багатофакторну автентифікацію, — це різновид перехоплення сесії, описаний у MITRE ATT&CK як T1539 (Steal Web Session Cookie). Інфостилери масово копіюють бази cookie з браузерів, а викрадені сесії продаються на кримінальних майданчиках. 2023 року YouTube-канал Linus Tech Tips було захоплено після того, як співробітник запустив шкідливе ПЗ, що викрало сесійні cookie. Відсутність HttpOnly відкриває шлях до крадіжки через міжсайтовий скриптинг, а без SameSite стає можливою CSRF-атака.
Як захистити cookie
- Розробникам — задавати для сесійних cookie атрибути Secure, HttpOnly і SameSite та обмежувати час життя сесій.
- Анулювати сесії під час виходу з акаунта та зміни пароля.
- Користувачам — виходити з важливих сервісів, не встановлювати піратське ПЗ і оновлювати браузер.