Уязвимость веб сервера GoAhead. Как она угражала и угражает владельцам камер видеонаблюдения?
Что такое GoAhead? И с чем его едят?
GoAhead - это легковесный веб-сервер, написанный на языке
программирования C. Он был разработан компанией Embedthis Software LLC и
впервые выпущен в 2001 году. Изначально GoAhead разрабатывался как
часть встраиваемого программного обеспечения, предназначенного для
использования во встраиваемых системах, таких как маршрутизаторы,
видеокамеры наблюдения, сетевые хранилища и другие устройства, требующие
веб-интерфейса для управления и конфигурации.
Основная цель GoAhead заключается в предоставлении простого и
эффективного веб-сервера, который потребляет минимум ресурсов и подходит
для ограниченных по мощности устройств. Он был спроектирован таким
образом, чтобы обеспечить высокую производительность и эффективность
работы даже на устройствах с ограниченными вычислительными ресурсами и
низким объемом памяти.
GoAhead основан на событийно-ориентированной архитектуре, которая
позволяет обрабатывать одновременно множество запросов без создания
отдельного потока для каждого запроса. Это существенно снижает нагрузку
на систему и позволяет серверу эффективно обрабатывать большое
количество запросов.
Поскольку GoAhead был изначально предназначен для встраиваемых систем,
он имеет небольшой размер и низкие требования к системным ресурсам. Код
GoAhead легко настраивается и интегрируется с другим программным
обеспечением, что делает его привлекательным выбором для разработчиков,
работающих в ограниченной среде.
Казалось бы, прекрасное решение для разработчиков! Но у всего есть подводные камни.
Проблемы с безопасностью:
GoAhead, как и любое программное обеспечение, имеет свои проблемы с
безопасностью, которые были выявлены и устранены со временем. Некоторые
из проблем безопасности, связанных с GoAhead, включали:
Уязвимости в версиях до 2.5.0: Ранние версии GoAhead имели несколько
уязвимостей, таких как переполнение буфера, утечка информации и
возможность удаленного выполнения кода. Эти проблемы были обнаружены и
устранены в последующих версиях.
Недостаточная обработка пользовательского ввода: Некорректная обработка
пользовательского ввода может привести к уязвимостям в GoAhead.
Например, если сервер не проверяет или фильтрует входные данные,
возможны атаки на основе внедрения кода (например, инъекции SQL или
скриптов) или переполнения буфера.
Компрометация конфиденциальных данных: Если GoAhead неправильно настроен
или недостаточно безопасен, может возникнуть риск компрометации
конфиденциальных данных. Например, если на сервере GoAhead размещается
веб-приложение, которое не обеспечивает должного контроля доступа или
аутентификации, злоумышленник может получить доступ к конфиденциальной
информации, хранимой на сервере.
Именно о последнем и пойдёт речь дальше...
Опасность камер с GoAhead:
Существует известная уязвимость, связанная с веб-сервером GoAhead,
которая может позволить злоумышленнику получить конфигурационный файл
камеры или другую конфиденциальную информацию, изменяя URL-адрес
запроса.
Уязвимость связана с недостаточной проверкой доступа и аутентификации в
GoAhead. В некоторых версиях сервера GoAhead (обычно до версии 3.6.5),
был реализован неправильный механизм обработки URL-адресов, позволяющий
злоумышленнику получить доступ к защищенным файлам, включая
конфигурационные файлы камеры.
Как это работало на практике:
Допустим у нас есть камера с веб сервером GoAhead в локальной сети.
Доступ к просмотру картинки с камеры находится по адрессу:
http://192.168.1.57:81
Перейдя по нему у нас будет запрос авторизации:
Допустим что пароля мы не знаем.
http://192.168.1.57:81/system.ini?loginuse&loginpas
И если, как и было выше сказано, сервер с недостаточной проверкой доступа, то у нас начнётся скачивание файла system.ini (файла конфигурации камеры).
В этом файле, помимо настроек камеры, содержится логин и пароль для доступа к ней.
Теперь, мы можем получить доступ к управлению и просмотру камеры.
Предупреждение! Данная информация предоставлена в качестве учебных целей и не призывает выполнять её на практике. Помните, что неправильное использование данной информации несёт за собой последствия. Автор не несёт ответственности за использование данной информации читателями.
Заключение:
Важно отметить, что разработчики GoAhead и сообщество активно работают
над устранением обнаруженных проблем безопасности и выпускают обновления
для повышения безопасности сервера. Чтобы защититься от известных
проблем безопасности, рекомендуется регулярно обновлять GoAhead до
последней версии и следовать рекомендациям по безопасной настройке
сервера.
Проверяйте свои устройства на безопасность! Особенно если они выходят в общий доступ по сети интернет. Спасибо за прочтение! Внизу есть ещё немного интересной информации)
Дополнительные материалы:
Shodan
С помощью всеми любимого и самого популярного поисковика можно найти камеры которые возможно будут с этой уязвимостью.
Чтобы это сделать вводим запрос:
realm="GoAhead", domain=":81"
Большинство камер из результатов всё ещё будут уязвимы.
Эта информация для справки! Напоминаю, что несанкционированный доступ к информационным системам уголовно наказуемо!
Expcamera
Если у вас есть несколько камер для тестирования то чтобы автоматизировать весь этот процесс можно использовать данный инструмент.
https://github.com/vanpersiexp/expcamera
Он проверит камеры и в случае если есть уязвимые выведет логины и пароли к ним.
Также в данном инструменте есть поддержка shodan.
Эта информация для справки! Напоминаю, что несанкционированный доступ к информационным системам уголовно наказуемо!