Я попросил нейросеть ChatGPT, которую уже прозвали революционной из-за широкого кругозора и способности давать точные ответы на любые запросы — от сочинения музыки до написания программного кода, представить, что она создала сайт и забыла удалить из корневой папки файлы, которые могут представлять наибольшую ценность для злоумышленников.
Часто разработчики (возможно, из-за своей невнимательности) забывают в корневых папках файлы, которые могут служить злоумышленникам подспорьем для взлома сайта или кражи важной информации. Это могут быть копии баз данных, конфигурационные файлы или даже файлы с исходным кодом. Багхантеры периодически обнаруживают такие уязвимости и отправляют отчеты в программы bug bounty (программы по поиску уязвимостей за вознаграждение).
Уязвимость в одном из поддоменов платежной системы QIWI
Вознаграждение, как правило, зависит от уровня опасности найденных файлов. К примеру, в рамках программы bug bounty провайдера финансовых сервисов QIWI исследователь получил 50 $ за обнаружение фрагментов исходных файлов, в другом случае багхантеру назначили выплату в 1000 $ за найденную папку .git, которая используется при разработке.
Репорт в программу QIWI
Корневая папка — это часть после первого слеша в адресе сайта. Если описать простыми словами, то атака на корень сайта выглядит так: https://example.com/[часть_URL_которую_перебирает_злоумышленник]. Ее результативность напрямую зависит от списка, используемого хакерами (в нашем случае — исследователями безопасности). Чем актуальнее и полнее список, тем выше шансы найти оставленные разработчиками файлы.
Если напрямую запросить у ChatGPT имена потенциально опасных файлов, она не ответит. Условия OpenAI, разработчика нейросети, запрещают использовать ее в злонамеренных целях, поэтому ChatGPT никогда не научит взлому. Однако если хакеры подойдут к вопросу творчески, то смогут получить некоторую полезную информацию, в частности перечень самых важных и распространенных файлов в корне сайтов. В списке, сгенерированном ChatGPT по этому запросу, — 5 тысяч файлов, среди которых config.backup (может хранить важную информацию о конфигурации сайта) и test-odbc.php (файл с тестированием подключения к базе данных).
Содержимое одной из версий файла СhatGPT-fuzz.txt
Часть приведенных в нем файлов могла уже упоминаться в опубликованных fuzz.txt-списках, причем исследователи, как правило, составляли их вручную. Это доказывает, что у нейросети правильный ход мысли. Например, на GitHub есть похожий лист белого хакера Bo0oM. ChatGPT-fuzz.txt совпадает с ним не более чем на 354 строки, в остальном он содержит новые файлы, ранее не попадавшие в поле зрение багхантеров.
Уникальность этого списка в том, что ChatGPT выдает информацию на основе анализа огромного массива данных из интернета. Человек физически не может проанализировать такой же объем информации, как нейросеть.
Как ChatGPT собирал названия файлов для списка
Часто говорят, что осознание проблемы — это уже половина ее решения. Разработчикам сайтов стоит заранее подумать о том, чтó они хранят в корневой папке, и уже сейчас удалить оттуда лишние файлы, а нужные спрятать получше. Это поможет предотвратить проблемы в будущем. Например, что может быть опасного в утечке журналов? Рассмотрим на примере реального кейса, который удалось обнаружить с помощью СhatGPT-fuzz.txt.
Утечка журналов на одном из доменов, выявленная с помощью СhatGPT-fuzz.txt
В данном случае в файле webhook_sms_log.txt «утекали» персональные данные пользователей, среди которых мобильные номера и домашнее адреса. Как этой информацией воспользовались бы злоумышленники, если бы они обнаружили уязвимость первыми, — остается только гадать.
Помимо этого, разработчикам не следует использовать предсказуемые названия файлов, такие как test.php или config.txt. Еще одна рекомендация, актуальная как для разработчиков, так и для специалистов по ИБ, — периодически проводить повторный аудит сайтов. Если вы отвечаете за безопасность сервисов, то должны рассказывать разработчикам, какими последствиями для компании может обернуться несоблюдение простых правил.
Потенциал ChatGPT еще полностью не раскрыт. Только сейчас у специалистов по ИБ появляется понимание, что это за инструмент и как его можно использовать в рабочих задачах. Помимо имен самых опасных файлов с помощью нейросети можно определить популярные заголовки, куки, параметры конфигурации сайтов и многое другое.
Важно, чтобы как можно больше багхантеров начали при поиске уязвимостей опираться на списки, аналогичные СhatGPT-fuzz.txt. Это позволит повысить защищенность сервисов, которыми мы пользуемся ежедневно, и тем самым сделать наш мир безопаснее.
Живой, мертвый или в суперпозиции? Узнайте в нашем канале