Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Опубликовали отчёт по результатам годичного мониторинга систем управления контентом (CMS) и других веб-технологий в Рунете. Кроме прочего, там есть граф переходов веб-узлов между разными CMS. Например, видно, что Joomla! активно теряет установки.

Comments Off on Ссылки: CMS в Рунете, итоги 2013 года
С относительно недавних пор WordPress получил функцию автоматического обновления. То есть, и раньше-то эта CMS была среди лидеров по удобству процедуры обновления: кликнул на кнопку в панели управления – всё успешно обновилось (не чета, например, Drupal-у, который до сих пор требует ручного накатывания файлов обновления, что, конечно, не слишком удобно). А теперь для обновления WordPress-а и кнопку нажимать не нужно: скачивает и накатывает новые файлы он самостоятельно, тихо, никого не спрашивая. Присылает e-mail по результатам обновления. Замечательная практика.
Действительно, интересно будет посмотреть, как однажды эти смелые люди, разработчики данной CMS, одним неловким движением сломают миллионы ничего не подозревающих сайтов в Интернете (о перспективе взлома раздающего обновления центра – пока лучше не думать).
В общем, обнаружив такое нововведение, я первым делом кинулся выяснять, как это безобразие отключить. К счастью, отключить, пока что, можно. Нужно поправить файл конфигурации – есть довольно подробная инструкция от разработчиков.
Комментарии (1) »
Сейчас проходит очередная массовая атака на сайты, работающие под CMS WordPress. В этот раз она сводится к POST-запросам по адресу /wp-login.php. Видимо, это следы попытки подбора паролей. Отличие этой атаки в том, что запросы приходят с очень большого числа IP-адресов, что несколько затрудняет блокирование. Похоже, атака касается только сайтов в домене .ru (но тут нет уверенности). Поток запросов велик, кто-то активировал ботнет: например, на одном из сайтов я сейчас вижу около 20 POST-запросов в секунду.
Кстати, прошлая массовая атака была устроена несколько хитрее.
Comments Off on Традиционные атаки на WordPress
Опубликовано исследование распространения CMS в Рунете, включающее, кроме того, анализ использования современных веб-технологий (HTML5, различные DOCTYPE и др.). Выполнено аналитической группой RU-CENTER.
С большим отрывом побеждают Joomla! и WordPress, Drupal – третий. Там, по ссылке, опубликовано описание методики и ещё куча интересной статистики.
Комментарии (2) »
Ещё немного веб-технологий. Как известно, dxdt.ru работает на WordPress (WP). Ещё лучше известно, что связка Apache+PHP+MySQL+WordPress – это монструозный источник нагрузки для сервера. Надо сказать, что так как большого трафика на dxdt.ru нет, то я никогда не тратил время на “повышение нагрузочной способности” этого конкретного веб-сайта. Но тут таки на досуге попробовал установить нахваливаемый многими плагин для WP – W3 Total Cache (W3TC). Оказалось, что, да, нахваливают обоснованно.
В случае с dxdt.ru, означенный плагин исправил ситуацию самым кардинальным образом. До установки плагина, тестирование (в терминологии blitz.io) двумя сотнями одновременных пользовательских коннектов приводило к тому, что сервер капитально ложился через несколько секунд (причину я не расследовал, но, похоже, что множество набежавших Apache+MySQL съедало всю доступную память). После установки и настройки этого самого W3TC – работоспособность, при тех же условиях, сохраняется, хотя часть “пользователей” (~8%) теряется. Неплохо, на мой вкус. Думаю, что соответствующий трафик – примерно 5 млн хитов в сутки – dxdt.ru не грозит. Да и “длительное” время ответа (~500 ms) не должно беспокоить.
Пояснение (03.04.12):
Насчёт времени ответа: всё просто, речь же шла о тесте из штатовского дата-центра, а dxdt.ru размещается в Ирландии, поэтому время ответа такое “большое”, пакетам требуется дважды пересечь океан. Сам сервер генерирует страницы примерно за 30-60 ms.
Дополнение:
Да, о настройках W3TC. Я использовал кэширование на диск и включил дополнительные правила mod_rewrite, как рекомендуют в описании плагина. То есть, это самая простая конфигурация. Но эффект заметен, так что – рекомендую.
Дополнение-2 (01.04.12):
Посмотрел на причину падений без плагина. Всё так и есть: без плагина W3TC, благодаря особенностям работы mod_php, Apache поднимает отдельный “тред” MySQL для каждого http-коннекта (то есть, для ста пользователей – сто “тредов”); с плагином – “тред” был замечен ровно один, вне зависимости от числа коннектов. Поэтому и не падает.
Комментарии (1) »
Снова спрашивают про одноразовые пароли, которые сейчас можно без особых проблем прикрутить к авторизационной системе CMS, при этом пароль генерируется специальным брелоком. Почему-то многие считают, что использование такого брелка и одноразовых паролей выводит защищённость “от взлома” всей системы авторизации на уровень, требующий физически украсть брелок – а это очень сложно и, поэтому, надёжно: типа, такой “сейф” получается (сейфы, как известно, дистанционно обычно не взламывают, нужно персонально выезжать на место). А про “токены”, выдающие пароли, говорят, мол, даже если и скопировали пароль от сайта, всё равно он – одноразовый.
Вообще, известно, что это опасное заблуждение. Так, пароли от хостингов, сайтов, и CMS, как показывает статистика работы саппорта, обычно крадут не удалённым сетевым снифером, а с помощью троянской программы, внедрённой непосредственно на ПК жертвы. Понятно, что модифицировать троянскую программу, наделив её возможностями по перехвату (до использования) одноразового пароля, – не такая уж сложная для профессионального взломщика задача. (Задача, судя по всему, много раз решена теми спецами, которые работают в направлении систем интернет-банкинга.) Конечно, механизм поддаётся полной автоматизации.
Более того, если предположить, что “многоразовый” пароль крадётся из открытой сети – обычно в пример приводят общедоступный Wi-Fi, – то в этом случае атакующий может вмешаться в трафик, перенаправить атакуемого на другой ресурс и там запросить у него хоть бы и сразу пять-десять одноразовых паролей впрок (тоже схема не новая). Есть и другие способы борьбы с “одноразовыми”.
Да, конечно, брелок-генератор одноразовых паролей – вещь полезная. Если правильно встроен в процесс пользования системой авторизации (SSL никто не отменяет!), то защищённость повышает, но сводить всё к необходимости кражи брелка – это большая ошибка. Система с таким брелком не надёжнее, чем защита компьютера, который используется для ввода одноразовых кодов-паролей.
Комментарии (7) »
Рейтинг CMS от iTrack – довольно странный: не приводят количества сайтов в выборке (типа, 2 млн доменов второго уровня .RU обошли, хотя там не все делегированы, много сайтов на третьего уровня доменах) и не публикуют, на скольких сайтах из выборки установлены коммерческие CMS. Без этих данных рейтинг бесполезен.
Особенно забавно выглядит “подробное” описание методики: не публикуется список “сигнатур”; куча странных для изложения методики исследования фраз, типа “…учитывались домены, ответившие в течение 4 секунд на запрос по адресу http://domain.ru.” (какой запрос? почему в течение 4 секунд? что значит – “ответивший домен”? и т.п., и т.д.) Очень сомнительно.
Впрочем, довольно занимательна вот какая “аппроксимация”: S.Builder пишет на сайте, что на их CMS сделано более 3500 сайтов. Предположим, что сайтов 3500, и это всё сайты на доменах второго уровня в .ru (наилучший для рейтинга вариант). В рейтинге iTrack у S.Builder – 4% от всех коммерческих CMS. Это даёт оценку количества всех сайтов на коммерческих CMS в 87500 (понятно, что всё приблизительно). То есть, если продолжать в терминах рейтинга iTrack, общая доля всех платных CMS – всего около 4.4% от объёма сайтов. В десять раз меньше, чем у WordPress, например. (Реально, я думаю, платных российских CMS использует ещё меньше, чем 4% от всех сайтов.)
Кросс-пост отсюда: http://1.dxdt.ru/2009/07/20/
Комментарии (1) »
До сих пор в Интернете популярна авторизация по IP-адресу, например в тех же CMS (но не только). Например, помимо предъявления авторизационного куки-файла, для авторизации требуется, чтобы и запрос был с заданного IP-адреса, скажем с того же, с которого делался логин, породивший куку, или просто готовится “белый список” допустимых IP-адресов.
С одной стороны, это увеличивает “стойкость”, так как, на первый взгляд, если злоумышленник “угнал куки” или подслушал снифером пароль, то авторизоваться в системе со своей машины он не сможет, так как у этой машины, предположительно, другой IP-адрес.
А вот с другой стороны в реальности есть хитрости. Например, пользователи, которым требуется авторизация в “защищаемой системе”, могут располагаться за тем или иным NATом – это приводит к тому, что извне IP-адрес соединения пользователя будет выглядеть другим, нежели внутренний адрес этого пользователя. Но не это главное. Главное, что “внешний” адрес разделяется между многими пользователями внутренней сети, то есть с точки зрения внешнего сервера разные компьютеры всех этих пользователей будут выглядеть как имеющие один и тот же IP-адрес. Это сейчас очень и очень распространённая ситуация и в корпоративных сетях, и у “домовых” интернет-провайдеров: IP-адреса – ресурс дефицитный. При этом пользователь, не будучи подкован в технических вопросах, может и не подозревать о том, как хитро всё работает и что он разделяет с соседями один “внешний” IP-адрес.
Теперь приплюсуем сюда такой момент: прослушивать, с целью похищения “куков и паролей”, сетевой трафик данного пользователя минимальными затратами, скорее всего, могут его соседи по сети (скажем, “хакеры-пионеры” балуются в плохо настроенных “домовых сетях”). Выходит, что похитивший авторизационные данные нехороший сосед, очень вероятно, автоматом имеет возможность работать с внешним сервером с того же IP-адреса, что и пострадавший пользователь.
Так что на практике дополнительная авторизация по IP-адресу хоть и работает хорошо, но уже не выглядит панацеей.
Интересен и другой практический эффект: в системах онлайн-голосования за всякие рейтинги и конкурсы запрет повторного голосования с одного IP-адреса в течение некоторого отрезка времени (типа, защита от накруток, вспоминаем “Премию Рунета”) приводит к тому, что множество добросовестных пользователей вообще не могут проголосовать (они, волей админов, сидят за общим “IPшником”), а владелец среднего ботнета (или социальной сети) элементарно накручивает голосовалку, действуя с набора разных IP-адресов, да ещё и с нужным разбросом по времени.
Комментарии (5) »
Вновь приходится слышать от разработчиков CMS старую песню: “мы закрываем исходный код, потому что там наверняка уязвимости, а в закрытом коде найти их сложнее”. Речь о коммерческой CMS, о PHP, а “закрывают код”, понятно, с помощью Zend Optimizer.
А вот интересно разобраться, кому в действительности нужно, чтобы код был закрыт подобным образом. Разбираемся. Например, раз уязвимости есть (а они есть), то наверняка среди них полно шаблонных решений. Разработчики-то, собственно, нормальные, как и у других продуктов, поэтому нужно ожидать неистребимых SQL injection и далее по списку. То есть, обнаружению и использованию типичных уязвимостей закрытый код не помешал. Не удивительно – ведь от того, что код закрыт, дыры не исчезли, их просто хуже видно.
Но это одно дело. Теперь предположим, что некий квалифицированный специалист-хакер решил найти особую дыру в данной конкретной CMS. CMS эта не самая распространённая, а значит специалиста заинтересовала не просто так, но с точки зрения атаки конкретного сервера. Потому что ради спортивного интереса специалисты не работают по мелочи, а вот под заказ – вполне. (Заказ может быть и “имиджевым”, кстати. Для этого сайт-цель должен быть очень известным.) Специалист либо приобретает демо-версию, либо покупает лицензию – и, так как он специалист, “раскрывает для себя” исходный код и исследует его. То есть, особенных препятствий нет, и специалисту “закрытый код” не очень помешает – всё ж технологии используются известные. Так что опять концепция “спрятанных под Zend`ом дыр” промахивается.
А вот “хакеры-дети” (“пионеры”), которым не все технологии понятны – может, им помешает “закрытый код”? Нет, оказывается, что “пионеры” либо используют готовый инструментарий, который ищет шаблонные уязвимости (от доступности исходных кодов не зависят), либо просто отправляются атаковать другой сервер. Предположить, что этот тип атакующего станет тратить сутки на тщательный аудит кода одной CMS, когда на сайтах вокруг полно других соблазнов, будет, мягко говоря, странным – потому что это уже не начинающий хакер выходит, а тот самый спец, работающий под заказ. То есть, “закрытый код” тут просто не играет роли, которую ему приписывают.
Итак, против кого работают “спрятанные дыры”? Оказывается, что только против добропорядочных веб-мастеров и админов, которые хотели бы поверхностно взглянуть, что же там внутри CMS, которую планируют поставить на свой любимый сервер. Хотя бы с целью оценить стиль, прикинуть возможности “адаптации”, а вовсе и не для поиска дыр. Для них создаются дополнительные трудности, вполне ощутимые.
А выгода, естественно, у разработчиков: во-первых, спрятаны от глаз потребителя дыры, огрехи и неряшливый код; во-вторых, можно списывать ошибки и проблемы на сопутствующие технологии, потому что потребитель-то в исходный код пальцем ткнуть не может; ну и, в-третьих, можно и в ус не дуть, считая что система лучше защищена, потому что Zend все глубокие архитектурные дефекты попрятал.
Так вот. Требуйте открытых исходников CMS – проще будет эксплуатировать ПО.
Комментарии (23) »
Кстати, особенностей CMS касается вот какой момент. CMS, в подавляющем большинстве случаев, служат для управления веб-сайтом, который предназначен для публикации (то есть распространения) данных через Интернет – всё это очевидно. Так что “дыра”, уязвимость в CMS годится не только для того, чтобы просто “взломать сайт”. Как показывает практика, нынче уязвимость CMS оказывается более востребованной в качестве инструмента рассаживания червей и вирусов с добропорядочного сайта.
Работает инструмент так: получив достаточно прав по управлению сайтом, злоумышленник скрытно размещает на нём зловредный программный код, таким образом, что он будет загружаться к посетителям сайта. Расчёт, понятно, делается на то, что посетители сайту доверяют и без лишних сомнений присланный сайтом вирус активируют.
Если удачно использованная злыми хакерами уязвимость в операционной системе настольного компьютера рядового клерка компании приводит к тому, что этот компьютер начинает рассылать спам и вирусы, то это небольшая имиджевая потеря для компании. Если вирусы и зловреды начинает раздавать корпоративный сайт компании, то это уже совсем другое дело, более масштабное в смысле удара по имиджу.
Более того, с рассылкой вирусов компьютером клерка админы локальных сетей могут эффективно побороться – всё ж это нетипичная активность для пользователя-клерка, легко обнаруживаемая сетевыми мониторами. В случае сайта, который специально предназначен для рассылки информации во внешнюю сеть, всё бывает не так уж и просто, обнаружить “лишний модуль” могут не сразу.
А при этом механизмы автоматического обновления всё популярнее у создателей CMS. Есть “самообновляющиеся” коммерческие CMS. Для планирования рисков, связанных с корпоративным сайтом, хорошо бы знать, откуда и как получают свои обновления эти системы? Насколько надёжен канал? Когда его захватят злоумышленники, чтобы успешно рассадить трояны по многим сайтам? Всё это хитрые вопросы. Ответы на которые ещё сложнее отыскать, если используется CMS с “закрытым кодом”, работающая неясным способом и “обложенная” изнутри какими-то якобы “защитными модулями”.
Комментарии (2) »
Часто приводят разную статистику по российским коммерческим CMS – сколько у кого установок. Измеряют, обычно, тысячами. При этом отчего-то регулярно забывают такой “масштабирующий” фактор, как отношение к реально лидирующим CMS – “опенсорсным”, тем самым искажая “ситуацию на рынке”. Между тем оценить масштабы не сложно.
Скажем, сейчас “Яндекс.блоги” “знают” около 186 000 автономных блогов (так пишет сам сервис). Беглая оценка списка плюс учёт тенденций в блогосфере позволяют ввести разумную “оценку снизу”: что-нибудь около 70% от этого числа – блоги на WordPress. То есть, уже по “Яндекс.блогам” выходит, что только WordPress – опенсорсная CMS – может записать на свой счёт около 130 000 установок в Рунете. Понятно, что реально WordPress гораздо больше, но даже и 130 тысяч – это уже другая весовая категория.
А ведь ещё есть Drupal, Joomla и т.д.
Комментарии (2) »
Кратко этот сайт характеризуется так: здесь можно узнать про технологический прогресс, Интернет, математику, криптографию, авиацию, компьютеры, авиационные компьютеры, вооружения, роботов, вооружение роботов, армии мира, астрономию, космические исследования. И иногда о чём-то ещё (