Независимые эксперты обнаружили ряд серьезных уязвимостей в популярных языках программирования для веб-страниц
29 декабря 2011 года
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/27/Wikinews-logo-ru.svg/300px-Wikinews-logo-ru.svg.png)
Группа экспертов по информационной безопасности обнаружила в ряде веб-технологий, используемых при создании интернет-сайтов, серьезную уязвимость, позволяющую хакерам организовывать атаки типа "отказ в обслуживании", не задействуя при этом значительных ресурсов, передает РИА "Новости" со ссылкой на сайт Naked Security.
О своих открытиях эксперты рассказали на "хакерской" конференции Chaos Communication Congress в Берлине. Основная уязвимость выявлена в механизме хэширования, который применяется в многих программных средах для ускоренного сохранения и извлечения данных.
Уязвимость, обнаруженная независимыми экспертами по информационной безопасности Александром Клинком и Юлианом Вальде позволяет "обрушить" атакуемый сервер с помощью всего нескольких "правильно сформированных" запросов.
"Дыра" обнаружена в популярных технологиях PHP, Java, ASP.NET, Python, Ruby и ряде других.
После объявления об уязвимости многие крупнейшие производители программного обеспечения, в частности, Microsoft и Oracle, объявили, что в ближайшее время выпустят обновления, устраняющие уязвимость в их продуктах.
По словам Вальде, команда разработчиков Ruby уже исправила большинство заявленных проблем, однако продукты PHP, Oracle, Python, Google и Microsoft все еще уязвимы.
Как это работает
В процессе работы веб-приложений на языках PHP, Java, Python, JavaScript и многих других механизм хэширования применяется для создания так называемого числового значения входных и выходных данных. Например, когда пользователь на сайте вводит пароль, программа берет его и с помощью хэш-функции (математического метода вычисления) вычисляет числовое значение (хэш) этого пароля.
После этого система сравнивает полученное число с тем, которое хранится в базе данных (оно было получено, когда пользователь только зарегистрировался на сайте и впервые ввел пароль), и если хэш из архива совпадает с только что полученным хэшем, то пароль считается правильным.
Хэш пароля хранится в хэш-таблице вместе с именем пользователя, учетной записи которого принадлежит пароль. Таким образом, использование хэширования позволяет, с одной стороны, дополнительно обезопасить персональные данные пользователя (хэш-функция необратима, по ее значению нельзя вычислить пароль). С другой, использование хэшей позволяет ускорить работу приложения, поскольку система во многих случаях работает не с самими данными, а с их своебразным числовым "дайджестом".
Недостатком такого метода является вероятность возникновения ситуации, при которой у разных паролей (или других данных) возникают одинаковые хэши.
Такие ситуации не являются редкими и для разрешения "коллизий" (так называются ситуации совпадения значений хэша) специальные программные средства проводят дополнительное сравнение входных данных и сгенерированных на их основе хэшей. Этот метод работает, когда количество коллизий относительно невелико.
Хакер может повысить их количество до критического, зная функцию, с помощью которой вычисляется хэш. В этом случае он может сгенерировать, относительно небольшое количество данных (например, несколько постов в блог, построенный на базе технологии Microsoft ASP.NET) таким образом, что хэш-функция выдаст одинаковые значения для них и вынудит систему начать дополнительную проверку.
При появлении большого количества коллизий проверка начинает отнимать слишком много вычислительных ресурсов сервера и, в конечном итоге, приводит к отказу в обслуживании.
Для защиты от таких атак существует несколько технологий, которые позволяют скрыть от злоумышленника хэш-функцию или вовремя распознать ведение атаки с помощью множественных коллизий.
Однако, как утверждают исследователи, в большинстве современных языков программирования, используемых для создания веб-приложений, этих средств нет, а используется простая математическая хэш-функция, которую способный хакер может вычислить
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.