Я упоминал о том, что количество взломов блогов в последнее время резко возросло. Изучая взломанные блоги, можно заметить одно уязвимое место, которым может воспользоваться грамотный взломщик – куки.
Куки (cookie — печенье) – это такие файлы, которые сохраняются на компьютере пользователя. Они содержат дополнительную информацию, которая может потребоваться при следующем заходе на сайт. Например, информацию о логинах и паролях, которые пользователь запоминает, вводя данные в форму входа. Зная определенные уязвимые места блога, злоумышленник может завладеть данными, хранимыми в куки, и проникнуть в блог. Ну а дальше – уже отработанная схема: внедрение вредоносных скриптов, перенаправление трафика, всплывающие окна, левые ссылки в содержимом страниц.
Чтобы защитить куки, разработчики WordPress придумали для этих печенек соль – дополнительных набор символов, делающих расшифровку файлов куки трудным делом. Эти символы нужно добавить в файл wp-config.php, предварительно сгенерировав. Пример:
define('AUTH_KEY', 'XwG3,`3CHwWJp01X.+vPqy!|.0y0$v!~]TRC%lF&OA+VX%!}vByDgrKY0V1D%T-i'); define('SECURE_AUTH_KEY', ',Yy!l2#uL_;-)3f{~:bf&`{kGM:d3<w_`B3+W{_|dZTVtc5bnUQ'); define('LOGGED_IN_KEY', 'vjT?j_b)C@vN--BjC-:dLJF=)oM412)).u;ys9jM#80-|>}[8@nStq(qz.eM57xpuH^[6|}FwjF*uj|S_Wah h24b0hXC&ZxwAT]Wc23T!lb=R_j'); define('AUTH_SALT', ';nGT@KliHF|6uRvV5%+&O7Q$e1-obuRar-;C!IR#=mC_}0a|:3::5eykt`A;/,gj'); define('SECURE_AUTH_SALT', '[j|emZkg|:=729WT+&}}w`kwy:~5&H}dpH@u.X-d$sz0EB|H*rMZ{ag}Ty-#AA$_'); define('LOGGED_IN_SALT', 'Lh?[p#Bo~-n18f/X[R3+E');
Сгенерировать дополнительный набор символов, защищающих приватные данные, поможет специальный сервис.
Создана эта соль для того, чтобы злоумышленник, сумевший завладеть хешом админского пароля, не сгенерировал для себя парольные куки админа, с которыми он смог бы попасть в блог (более ранние версии WordPress не были от этого защищены). Хэш – это ассоциативный массив, то есть массив данных, состоящий из пар (например, название ключа и его значение).
Однако говорят, что есть способы получения напрямую хэша админа (в большинстве блогов админом является пользователь с логином admin), а значит и опасность взлома блога: злоумышленник посылает к блогу XSS-запрос, выуживает хэш админа, подменяет куки администратора, подставляя их вместо своих (например, вместо куки любого зарегистрированного пользователя с самыми обычными правами), и проникает в блог с правами администратора. Вот через эту уязвимость и взламывают блоги.
То, что нужно защищаться от XSS-атак (межсайтовый скриптинг), и так понятно, но всех нюансов не предусмотришь, особенно после выхода новых версий. Поэтому желательно изначально защитить куки от возможности подобного воровства. Одним из способов является жесткая привязка куки к IP-адресу. То есть даже если злоумышленник и сможет получить ваши куки, он не сможет ими воспользоваться по причине того, что они в добавок в “соленой” добавке еще зашифрованы ключем, зависящим от IP-адреса. Воспользоваться этими куки можно только с того-же IP-адреса, то есть только с вашего компьютера. Внедрить такую защиту позволяет плагин IP Dependent Cookies.
Этот плагин намертво связывает генерируемые куки для сайта и IP-адрес, с которого этот сайт просматривается. Воспользоваться куки с другого IP-адреса не получится. В худшем случае пользователь будет разлогинен, и чтобы попасть в админку, ему придется заново вводить логин и пароль, а значит и заново генерировать куки, соответствующие текущему IP-адресу. Хуже всего, наверное, придется тем, у кого динамический IP-адрес, меняющийся каждый раз при выходе в интернет – они будут вынуждены каждый раз вводить логин и пароль, и чекбокс “Запомнить пароль” работать для них должным образом не будет. Но все же лучше перестраховаться, нежели чем лечить потом блог от всякой заразы.
IP Dependent Cookies