Вопрос или проблема
На сайте, работающем в компании, есть ошибка при входе в систему. Случайным образом, когда я пытаюсь войти, я могу получить доступ к интерфейсу другого пользователя.
Учитывая мой ограниченный доступ к инструментам, я могу видеть только саму ошибку, но не имею возможности провести дальнейшее расследование.
Я пробовал многие вещи, но у меня закончились идеи.
##Дополнительная информация:
#Процесс входа:
Сайт отправляет имя пользователя и пароль в нагрузке в двух текстовых переменных. Затем сайт возвращает cookie .ASPXAUTH, который используется для дальнейших запросов для аутентификации.
#Ошибка:
Когда я вхожу в систему, сайт случайным образом возвращает интерфейс другого человека. Если я обновлю страницу быстро, я могу увидеть тот же неправильный интерфейс несколько раз, прежде чем снова увидеть свой собственный.
Я использую программу на Python, чтобы собирать информацию с этого сайта, и программа работает каждые несколько минут. Но то же самое происходит время от времени, если я использую браузер.
#Настройка:
Сайт использует решение хостинга Microsoft на локальном сетевом сервере. Все в компании используют VPN-клиент, что означает, что к каждому компьютеру можно получить доступ по локальному адресу, однако каждый компьютер получает IP-адрес из подсети /24, а трафик между подсетями управляется тем же компьютером, который управляет шлюзом. Сервер тот же, но сайт доступен только через определенный порт.
#Что я проверил:
Я создал мониторинговую программу, которая выполняет вход каждые пять секунд и регистрирует большинство процессов. У меня есть логи моего локального и глобального IP-адресов, время отклика сервера, содержание полученных заголовков после входа, cookie, предоставленные сервером, время между ошибочными возвратами и содержание интерфейса, когда происходит ошибка.
- В течение дня не было изменений в любом IP-адресе.
- Время отклика сервера остается постоянным, нет связи между этим и ошибкой.
- Я не заметил повторного использования каких-либо аутентификационных cookie.
- Нет изменения маршрута сети, связанного с ошибкой.
- Я не заметил истечения времени аренды DHCP во время ошибки.
- Я изменил свой IP на тот, который, как известно, используется для входа, и проверил, использует ли сервер его для проверки входов, но и тут не получилось.
- Время между каждым ошибочным возвращением случайно, и нет видимого шаблона (также нет связи с занятостью офиса).
- Чаще всего пользователь, интерфейс которого я вижу, является новым, но некоторые пользователи встречались несколько раз ранее.
#Что я не могу сделать:
Поскольку это корпоративный ноутбук, я не смог углубиться в мониторинг сети. У меня есть права администратора в терминале и оболочке, но и тут есть определенные ограничения. Я могу запускать скрипты Python, так что есть довольно много вещей, которые я могу зарегистрировать, но библиотеки для глубокого мониторинга сети не работают. У меня нет доступа к любым сетевым устройствам и серверам, так что я не могу проверить вещи с другой стороны.
##Каковы мои варианты? Я не вижу причин или закономерностей, почему эта ошибка возникает, и у меня закончили идеи, что проверить. Как мне двигаться дальше с этой точки?
(Чтобы быть ясным, я сообщил об этой проблеме управляющему персоналу, но прошло больше года, и это все еще не исправлено, так что я хочу обратиться напрямую к разработчикам. Но без какой-либо информации о том, почему это происходит, я не вижу смысла. И кажется более интересным немного порасследовать, чтобы найти причину и извлечь из этого урок.)
Любая помощь будет высоко оценена.
Ответ или решение
Анализ проблемы: Незаконный доступ к информации пользователей на сайте
1. Понимание проблемы
На вашем рабочем сайте имеется критическая уязвимость, позволяющая пользователям случайным образом получать доступ к панелям других пользователей при попытке входа в систему. Эта проблема является следствием недостатков в аутентификации и управлении сессиями и может привести к серьезным последствиям для безопасности данных. Невозможность стабильно сохранять сессию может быть связана с неправильной обработкой аутентификационных данных, что приводит к коллизиям сессий.
2. Что происходит
Согласно вашему описанию, процесс входа на сайт происходит следующим образом:
- Сайт отправляет имя пользователя и пароль в виде текстовых переменных.
- В ответ сервер возвращает cookie
.ASPXAUTH
, используемый для последующих запросов.
Судя по всему, при случайном входе на сайт вы видите панель управления другого пользователя. Это может указывать на различные проблемы, включая неправильное управление сессиями, кэширование на серверной стороне или проблемы с балансировкой нагрузки.
3. Возможные причины возникновения проблемы
- Неправильное управление сессиями: Сервер не очищает сессии должным образом после завершения сеансов, что может позволить кэшу возвращать данные предыдущего пользователя.
- Кэширование данных: На уровне веб-сервера или приложения может быть неправильно настроено кэширование, которое не обновляет состояние текущей сессии.
- Проблемы с обработкой запросов: Ошибки в коде приложения, которые вызывают перепутывание аутентификационных данных. Возможно, где-то происходит неправильная ссылка на идентификаторы сессий.
- Балансировка нагрузки: В случае использования нескольких экземпляров сервера, ошибка в маршрутизации запросов может привести к тому, что один и тот же пользователь будет направлен на разные экземпляры с разными состояниями сессии.
4. Рекомендации по дальнейшим действиям
- Документация и логирование: Продолжайте документировать все ваши наблюдения, включая временные метки, IP-адреса и любые изменения в поведении сайта. Это поможет создать более полное представление о проблеме.
- Обратитесь к разработчикам: Подготовьте сводный отчет о ваших находках и передайте его команде разработчиков. Обязательно укажите все детали, включая шаги воспроизведения ошибки, результаты вашего тестирования и логи.
- Повышение осведомленности: Убедитесь, что проблема задокументирована в системах или отчетах об ошибках вашей организации, чтобы руковод staff могли принять надлежащие меры для исправления.
- Задавайте вопросы: Попробуйте получить доступ к разработчикам или системным администраторам, чтобы задать вопросы о конфигурациях сервера, механизмах балансировки нагрузки и безопасности сессий.
5. Заключение
Проблема с доступом к панелям других пользователей является серьезным инцидентом безопасности, требующим внимания и немедленных действий. Подготовка информативного отчета для разработчиков и активное взаимодействие с ними могут помочь в выявлении и устранении уязвимости. Такой подход не только повысит уровень безопасности, но и улучшит практики разработки внутри вашей организации.