nixp.ru v3.0

18 апреля 2024,
четверг,
05:53:33 MSK

31 марта 2010, 00:24

Эксперт — авторам PHP: Почитайте Шнайера

7
Андреас Богк
Андреас Богк
Иллюстрация с сайта Abgedichtet.Org

Эксперт по безопасности Андреас Богк (Andreas Bogk) опубликовал сообщение об уязвимости в PHP, позволяющей подделывать идентификаторы сессий, и посоветовал авторам этого языка ознакомиться с базовыми аспектами безопасности и криптографии.

Идентификаторы сессий (session IDs) используются в PHP для ассоциации с текущим пользователем каких-либо данных, что фактически предоставляет клиенту те или иные права доступа в рамках веб-приложения. Как выяснилось, механизм генерации этих идентификаторов далек от по-настоящему случайного, что потенциально предоставляет злоумышленнику возможность предугадывать идентификаторы новых сессий.

Для генерации случайного числа используется LCG (Linear Congruential Generator), который путем сложных математических операций создает новые числа на основе предыдущих значений. Но для того, чтобы все работало эффективно, генератор требуется инициализировать случайными значениями. Сэми Камкар (Samy Kamkar) обнаружил, что в PHP с этим были проблемы, и написал программу, которая «предугадывала» идентификаторы сессий. Команда разработчиков PHP сообщила, что устранила проблему в релизах 5.3.2 и 5.2.13.

Однако, как выяснилось теперь, проблема была «решена» дополнительным вызовом функции gettimeofday(), что в действительности ничего не изменило. Об этом и сообщил Богк в своем уведомлении о проблеме. Также он отметил, что такой уязвимости в PHP с патчем Suhosin от Стефана Эссера (Stefan Esser) нет.

Богк приводит и несколько рекомендаций как для PHP-программистов, так и для разработчиков самого языка программирования. Последним он, в частности, рекомендует почитать Брюса Шнайера*.

* Брюс Шнайер — известный эксперт в области ИТ-безопасности и криптографии, автор ряда книг по соответствующим темам и разработчик популярных алгоритмов шифрования, как Blowfish и Twofish.

Постоянная ссылка к новости: http://www.nixp.ru/news/10292.html. Дмитрий Шурупов по материалам h-online.com, SecLists.org.

fb twitter vk
myst

Ололо! Ничего, собственно, удивительного, но всё равно приятно.

wjfh

Авторы PHP — «эксперту»: почитай документацию www.php.net/manual/en/session.configuration.php#ini.session.entropy-file

Дмитрий Шурупов

Проблема в том, что «по умолчанию» все плохо. Поэтому он советует программистам: «Make sure to use real entropy in your session IDs».