Продемонстрирован способ хищения файлов через 17-летнюю (и всё ещё неисправленную) уязвимость в Firefox
04/07/19
Независимый эксперт Барак Тавили (Barak Tawily) продемонстрировал, как злоумышленники могут получить доступ к файлам на компьютере с помощью вредоносного HTML-файла и известной уязвимости в браузере Firefox.
Атака эксплуатирует реализованный в Firefox механизм Same Origin Policy (политика единого происхождения, SOP) для схемы URI "file://", позволяющий любому файлу в папке на системе получить доступ к другим файлам в той же папке и подпапках.
Поскольку точного определения SOP для схемы URI File в документации RFC нет, производители браузеров и программного обеспечения по-разному реализуют ее в своих продуктах. По словам Тавили, Firefox – единственный из основных браузеров, в котором до сих пор используется ненадежная реализация SOP для схемы URI File, а также Fetch API.
Как видно в видео ниже, с помощью комбинации кликджекинга и бага «переключения контекста» эксперту удалось получить список файлов, расположенных в той же папке, куда был загружен вредоносный HTML файл, прочитать контент определенных или всех файлов с помощью Fetch API и отправить собранные данные на удаленный сервер.
Для успешной атаки злоумышленнику потребуется убедить жертву загрузить и открыть вредоносный HTML-файл в браузере Firefox и кликнуть на фальшивую кнопку. Вся вредоносная деятельность происходит незаметно для пользователя, а сама атака занимает секунды.
Тавили сообщил о проблеме инженерам Mozilla, однако в компании заявили, что ее реализация SOP разрешает любому file:// URL получить доступ к файлам в тех же папках и подпапках. Судя по всему, Mozilla не намерена исправлять ситуацию. Альтернативным решением, по мнению Тавили, будет на уровне RFC обязать производителей браузеров использовать более безопасные подходы и не разрешать разработчикам оставлять без исправления ошибки, подвергающие пользователей риску.
Политика единого происхождения (правило ограничения домена, Same Origin Policy) - концепция безопасности для некоторых языков программирования на стороне клиента, таких как JavaScript. Политика разрешает сценариям, находящимся на страницах одного сайта, доступ к методам и свойствам друг друга без ограничений, но предотвращает доступ к большинству методов и свойств для страниц на разных сайтах. Одинаковые источники — источники, у которых совпадают три признака: домен, порт, протокол.