Эксперт — авторам 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.
Cloud Native Computing Foundation возглавила Приянка Шарма — теперь судьба Kubernetes и других облачных проектов в ее руках 2 1
Canonical пропатчила патчи: последняя порция обновлений вызывала регрессию ядра
Исследователи безопасности нашли 26 уязвимостей в USB-драйверах разных ОС — 18 из них на Linux
Сообщество Drupal выпустило рекомендации по противодействию критической уязвимости SA-CORE-2014-005 2 1
Вышла самая уязвимая операционная система на базе GNU/Linux 4 4
Команду безопасности PHP покинул Стефан Эссер 1 2
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ололо! Ничего, собственно, удивительного, но всё равно приятно.
Авторы PHP — «эксперту»: почитай документацию www.php.net/manual/en/session.configuration.php#ini.session.entropy-file
Проблема в том, что «по умолчанию» все плохо. Поэтому он советует программистам: «Make sure to use real entropy in your session IDs».