Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

В CouchDB была обнаружена уязвимость, вызванная несоответствием между собственным парсером JSON и JSON-парсером Javascript, используемым во время проверки документа. Поскольку базы данных CouchDB открыты для доступа через интернет, эта брешь может поспособствовать эскалации привилегий и удаленному выполнению кода на большом количестве установок.

CouchDB написана на языке Erlang, но позволяет указывать сценарии проверки документов в Javascript. Эти сценарии автоматически оцениваются при создании или обновлении документа. CouchDB управляет учетными записями пользователей через специальную базу данных — _users.

Когда вы создаете или изменяете пользователя в базе данных CouchDB, сервер проверяет изменение с помощью функции Javascript validate_doc_update, чтобы удостовериться, что это не попытка сделать себя администратором, например.

«Проблема в том, что существует расхождение между JSON-парсером Javascript (используемым в скриптах проверки) и тем, что используется внутри CouchDB, называемым jiffy», — пишет эксперт, обнаруживший брешь.

Далее специалист привод куски кода для демонстрации этой разницы:

Erlang:

> jiffy:decode("{\"foo\":\"bar\", \"foo\":\"baz\"}"). 
{[{<<"foo">>,<<"bar">>},{<<"foo">>,<<"baz">>}]}

Javascript:

> JSON.parse("{\"foo\":\"bar\", \"foo\": \"baz\"}")
{foo: "baz"}

Для данного ключа парсер Erlang сохранит оба значения, а вот Javascript-парсер сохранит только последнее, что позволит обойти все соответствующие проверки ввода и создать пользователя с правами администратора.

Исследователь указывает на то, что использовать несколько парсеров для обработки одних и тех же данных не очень правильно. Он предлагает сделать все возможное, чтобы не было никаких функциональных различий между парсерами, если есть необходимость использовать несколько.

В России разработали защиту квантовых ключей от ослепления детекторов

Специалисты инженерно-квантовой лаборатории «СФБ Лаб» и Центра квантовых технологий МГУ разработали способ защиты систем квантового распределения ключей от ослепления детекторов. Метод позволяет не только заметить атаку, но и сохранить безопасную часть ключа. Решение защищено российским патентом, результаты исследования приняты к публикации в журнале Physical Review Applied.

При атаке ослепления злоумышленник направляет на детектор одиночных фотонов оптическое излучение и лишает его чувствительности.

После этого устройством можно управлять с помощью специально подобранных световых импульсов, подсовывая приёмнику нужные биты. Если всё рассчитать правильно, атакующий узнает ключ, а система не заметит ни лишних ошибок, ни подозрительных срабатываний. Квантовая физика вроде на посту, но аппаратуру переиграли.

Обычные средства защиты умеют обнаружить такое вмешательство, однако после тревоги весь сформированный ключ приходится отправлять в утиль. Новый метод действует тоньше.

Приёмник в случайные моменты незначительно меняет квантовую эффективность детекторов. Злоумышленник не знает их текущего состояния и не может подобрать универсальную энергию импульса: значения для разных режимов различаются более чем в десять раз.

В результате атакующий неизбежно оставляет следы — ошибочные или двойные срабатывания. По их статистике система вычисляет, сколько битов могло оказаться под контролем злоумышленника, и удаляет именно эту часть на этапе усиления секретности. Остальной ключ продолжает использоваться.

Подход проверили на серийном детекторе. Он не требует усложнять оптическую схему и подходит для широкого класса коммерчески доступных устройств. Патент RU 2 856 208 C1 предусматривает варианты реализации для приёмников с одним и двумя детекторами.

RSS: Новости на портале Anti-Malware.ru