COOKIES – КРАТКИЙ ЭКСКУРС В ХРАНИМЫЕ ДАННЫЕ
Всем привет и доброго времени суток. В последнее время в личку все чаще и чаще прилетают сообщения по поводу куков и капчи. Именно такое количество вопросов и с подвигло меня к написанию данной статьи, в которой я вкратце расскажу про куки, с чем их едят и какие данные они в себе хранят. Мы не будем рассматривать спецификации и вдаваться в каждый байт хранимой информации, а лишь разберемся в базовых принципах работы.
1.COOKIES– ПОЛЕЗНЫЕ ПЕЧЕНЬКИ И С ЧЕМ ИХ ЕДЯТ
И так, куки. Что же это такое? В широком понимании, куки файлы — это временное хранилище данных пользователя для сайтов. Я не зря подчеркнул краткосрочное хранение поскольку в большинстве своем куки имеют определенный цикл жизни. Однако, бывают и исключения, когда кукисы хранятся до тех пор, пока пользователь сам не удалит их. Давайте взглянем, какие типы cookies существуют. Лично я разделяю куки на 2 категории:
Это разделение лично, по-моему, скромному мнению нужно отчетливо понимать, если вы постоянно работаете с куки файлами или интересуетесь веб безопасностью. В первую категорию относятся куки следующих типов:
- Сессионные куки – то самое временное хранилище в самом простом его понимании. Именно эти кукисы хранят данные до тех пор, пока пользователь не закроет вкладку с веб-сайтом или сам браузер. Ярким примером таких куков является режим инкогнито в вашем браузе. При работе браузера в данном режиме, он создает сессионные куки, которые работают до тех пор, пока включен данный режим. После закрытия окна с режимом инкогнито, все созданные в процессе работы кукисы будут удалены.
- Постоянные куки – хоть они и называются постоянными, они также имеют определенный цикл жизни, однако, этот цикл жизни определяется не наличием открытого окна браузера, а ограничен определенным временем или датой. Этот тип куков является самым распространенным и именно он отвечает за автоматическую настройку сайтов под пользователя и автоматическую авторизацию на всевозможных сайтах.
- Сторонние куки – название говорит само за себя. Этот тип куков, который хранит в себе данные для сторонних ресурсов. Именно этот тип важен в так называемом «нагуле» куков. Например, данный тип хранилища может содержать в себе информацию о пользователе для таргетированной рекламы. Это не всегда хорошо, но порой это приносит и пользу.
Теперь, давайте взглянем на вторую категорию куки файлов – плохие кукисы. Они также состоят из нескольких типов:
- Super-Cookies. Супер куки это файлы, которые хранят в себе данные не для конкретного домена (mysite.ru), а для целой доменной зоны (.ru). И информация из такого типа куков может повлиять на выдачу ответов от всех сайтов, которые находятся в той доменной зоне, под которую они были созданы. Супер куки несут в себе прямую угрозу для пользователя, они могут повышать вашу уникальность, раскрывать ваши данные и порождать идентификаторы вашей системы. То есть, если на вашем компьютере будут такие куки, то сайты смогут не только с точностью определять пользователя системы, но и получать данные о вашей рабочей машине при помощи MUID (персонального идентификатора вашего компьютера). Это делается при помощи специальных скриптов на сайтах, которые могут получать выгоду от использования супер куков. Но не стоит впадать в отчаяние и паниковать раньше времени. Современные браузеры заботятся о безопасности своих пользователей и по дефолту блокирую данный тип небезопасных куков.
- Следующий тип мусорных кукисов – это так называемые зомби-куки. Поскольку данные о посещении того или иного ресурса могут хранится не только во временном хранилище данных, но и в дата базах, файловых данных различных приложений, е-тагах (ETag) и тд, некоторые сайты могут порождать зомби кукисы. Как это работает? Например, вы зашли на определённый ресурс, у вас создались хорошие (постоянные) куки-файлы, а после того, как вы попользовались данным сервисом, вы взяли и собственноручно удалили куки для этого сайта. При повторном обращении к данному ресурсу, в первую очередь, этот ресурс проверит наличие куков под него и не найдет их. Обычный сайт в такой ситуации просто создаст новое хранилище данных. Однако, если сайт умеет создавать зомби-куки, то он начнет искать данные о посещении в других хранилищах. И если он найдет о себе упоминание других хранилищах данных, то сможет восстановить удаленные вами куки и вновь идентифицировать вас, словно вы ничего и не удаляли.
Вот мы и рассмотрели основные категории cookie и их типы. Как же работают куки? Всё предельно просто! При авторизации на сайте, вы отправляете на сервер свой логин и пароль, сервер сверяет эти данный. Если данные совпадают, то сервер выдает вам ключ авторизации и записывает этот ключ в свою базу, а браузер записывает этот ключ в соответствующую ячейку в куки-файле. При повторном заходе на сайт, сервер сверяет уже не ваш логин и пароль, а только имеющийся ключ из ваших кукисов. Теперь, давайте взглянем на то, из чего же состоят те самые «печеньки».
Куки файлы это намного интереснее и сложнее, чем вы можете себе представить. Помимо данных о домене и авторизации, которые в основном интересуют мультиаккаунтеров и хакеров, куки могут содержать в себе кучу дополнительных параметров:
- Время жизни самих куков. За это отвечает параметр «max-age». Данный параметр содержит в себе конкретную дату до которой будут действительны все данные в интересующем нас куки-файле. Например, если этот параметр имеет в себе дату «31-Oct-2023», то ресурс, под который были созданы данные кукисы, просто перестанет их воспринимать после 30 октября 2023 года 23 часов 59 минут. То есть, как только наступит 31 октября, куки перестанут работать, а ваши данные авторизации будут недействительны и сайт попросит вас вновь авторизоваться. Этот параметр также может иметь в себе не только данные о конкретной дате, но и о времени вплоть до секунд и часового пояса, например, «31-Oct-2023 19:30:11 GTM+2». Здесь все тоже самое, что и в примере с датой. Помимо общепринятых обозначений даты, могут быть использованы и числовые эквиваленты срока жизни куков. Также за жизнь куков может отвечать параметр «expires». Данный параметр имеет всего 2 значения: «true» и «false». Этот параметр сообщает серверу действительны ли куки в данный момент в зависимости от значения в параметре.
- Куки могут иметь параметр языка и указывать какой язык использует клиент.
- Настройки сайта. Например, если сайт поддерживает несколько тем или цветовых палитр.
- Различные идентификаторы сессий такие как «csfr-token».
- Пути расположения куки файлов дабы не было пересечений куков из разных браузеров.
- Настройки безопасности (http-only) и многие другие параметры, на которые мы не обращаем внимание.
3.БЕЗОПАСНОСТЬ
Несмотря на множество всевозможных параметров безопасности, которые хранятся в куках, а также, несмотря на то, что большинство хранимой информации находится в зашифрованном виде, сами по себе куки являются не безопасным местом для хранения персональных данных. Например, если открыть куки-файл в обычном блокноте и найти параметр, который отвечает за время жизни сессии (max-age), можно спокойно отредактировать его под актуальную дату и тогда, даже ваши старые куки могут стать актуальными. И если сайт не имеет должного уровня безопасности, то он спокойно примет данные и авторизует пользователя. Поэтому, на многих сервисах сейчас имеется возможность «закрыть все существующие сессии». Эта функция помогает очистить базу данных сайта от всех упоминаний о вашей авторизации на нем. Практически все более-менее защищенные сайты имеют функцию обнаружения подмены даты и так просто обмануть их не получится. Однако, это лишь самая простая манипуляция, помимо подмены даты, ваши куки файлы могут быть похищены при помощи специальных программ — Стилеров. Данное ПО специально создано для похищения данных с вашего ПК. И имея на руках актуальную копию ваших куков, злоумышленник сможет авторизоваться на нужном ему ресурсе под вашими учетными данными просто заменив свои куки на ваши. Кто-то скажет: «Но у меня же стоит крутой антивирус! Мне не страшны все возможные вирусы!». И будет прав, но лишь отчасти. Помимо того, что те же вирусные программы могут обманывать антивирусы, втираться им в доверие и всячески скрывать свою деятельность, существуют куда более простые и эффективные методы похищения текущих сессий. Да, многие люди уделяют особое внимание защите данных на своем ПК, но забывают о безопасности в сети. Самый яркий пример — как часто вы видели данное окно, когда подключались со своего ноутбука к какой-либо точке доступа WI-FI?
И как часто, вы просто закрывали его? Уверен, практически всегда… Фатальная ошибка..
Именно это окно с настройками сети помогает настроить вашу систему таким образом, чтоб вы могли контролировать предоставляемые вами данные для той или иной сети. Элементарный пример похищения вашей сессии: Вы зашли в кафе выпить чашечку кофе и перекусить. Пока вам готовят ваш заказ, вы решили зайти и посидеть в своей любимой социальной сети. Вы открываете свою страницу и вуаля! Вы не единственный, кто сейчас имеет полный доступ к вашей странице.
Но как же это произошло? Все просто... Уровень безопасности во всевозможных кафе и публичных местах всегда оставлял желать лучшего. Стандартные пароли от точки доступа WI-FI мало где меняют, следовательно, если вы и злоумышленник находитесь в одной сети (подключены к одному вайфаю), злоумышленник может войти по стандартному ip доступа к web-морде, ввести стандартный логин и пароль от админки (admin:admin / admin1:admin / admin:admin1), установить в качестве прокси-сервера данные от своего сниффера и в режиме реального времени получать ваши запросы к различным сайтам. Именно оттуда он и сможет скопировать ваши куки. А теперь вспомните, сколько бедолаг с ноутбуками сидят в кофейнях… Вы подумали о том же о чем, и я? Если да, то предупреждаю, это плохая идея! По законодательству РФ куки-файлы относятся к персональным данным. Если вы завладели ими неправомерно, то это уже уголовная статья. Возможно, когда-нибудь, я запишу видео пример с тем, как перехватывают чужие данные в публичных сетях. И конечно же я буду показывать это на примере своего вайфая (но это не точно…Совсем не точно...).
Вы можете подумать, что, находясь в такой ситуации в качестве жертвы, вы сможете найти злоумышленника, который также, как и вы будет сидеть в этом кафе с ноутбуком. Но вы снова будете неправы. Не забывайте о том, что вайфай может пробивать сигнал как в соседние заведения, где как раз-таки и будет сидеть злоумышленник, а если он не глуп, то его вообще может не быть не то что бы в радиусе нескольких кварталов от вас, он вообще может находиться в другом городе! Как это происходит? Вместо сниффера, который стоит на ПК у злоумышленника, он может указать в качестве прокси-сервера адрес своей веб-прокладки и весь ваш трафик будет проходить и собираться на его ресурсе, а после переадресовываться на нужный вам сайт. Помимо простого перехвата, злоумышленники могут модернизировать ваши запросы и использовать ваши учетные записи для проведения атак, накрутки и т.д. Секунду назад вы ставили лайк своей коллеге по работе, одногруппнице или возлюбленной, но злоумышленник модернизировал ваш запрос и вот ваш лайк уже летит на другую фотку.
Исправить данную ситуацию помог переход от http протокола к https. Но и здесь не все так радужно, как хотелось бы. Подведем итог.
Cookie-файлы являются временным хранилищем данных о пользователе для web-ресурсов. Куки - это не только файл, в котором хранятся данные для авторизации пользователя, в них также хранится множество дополнительных параметров. Не все кукисы являются хорошими, а их безопасность остается под вопросом. За безопасностью данных должен отвечать не только владелец ресурса/сети, но и сам пользователь. Печеньки (cookies) являются нашими помощниками, которые упрощают нам использование всевозможных ресурсов, а также экономят нам время при помощи сохранения настроек, данных авторизации и много другого. А время – самый ценный ресурс, что есть у человека.
Спасибо за внимание и уделенное время на прочтение данной статьи. Если вы дочитали до этого момента это значит, что я на верном пути.
Название следующего материала: «Нагул» куков – лекарство от всех болезней или очередное плацебо.