Поиск Compromised Cookies, опыт Slack
Всем привет!
Компрометация Cookie не самая приятная вещь, которая может быть использована для доступа к данным пользователя. Одной из практик противодействия является контроль времени жизни сессии пользователя.
Но всегда ли этого достаточно? У ребят из команды Slack свое мнение на этот счет и свои подходы к реализации защиты. Ознакомиться с ними можно в статье.
Основная идея Slack заключается в поиске «Session Forking» (т.е. когда один и тот же Cookie используется одновременно на разных устройствах).
Для этого они используют Last Access Timestamp – дату «установки» Cookie, которая постоянно обновляется (как в самой Cookie, так и в БД).
Сценарий примерно следующий:
🍭 Злоумышленник получил Cookie и пытается с помощью нее получить доступ. Временная метка, скорее всего, будет старой и Session Forking будет найден
🍭 Злоумышленник получил «свежий» Cookie и запросил доступ. Last Access Timestamp обновился. Session Forking будет найден уже когда легитимный пользователь запросит доступ (его метка будет старее)
Однако, такая логика привела к наличию большого количества False Positive и False Negative при тестировании. И решение… было найдено! Какое? Ответ в статье 😊
Кроме этого, там есть еще несколько интересных рассуждений на тему производительности полученного решения. Рекомендуем!
Post #983
2.87K