Защита защитных решений: исправляем ошибки

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

Защита защитных решений: исправляем ошибки

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

Требуются охотники за багами

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

Однако, какими бы тщательными ни были превентивные меры, баги все равно просачиваются, и ни один программный продукт в мире не может полностью избавиться от них на предварительном этапе. Именно поэтому мы не только внимательно наблюдаем за продуктами после релиза, но и поощряем независимых исследователей, которые ищут уязвимости в наших решениях и сообщают нам о них. Для этого вместе с HackerOne мы запустили программу bug bounty, предлагающую вознаграждения до 100 000 долларов за сообщения о найденных багах. Также мы создали «тихую гавань» для исследователей в рамках проекта Disclose.io. В целом мы рады любым исследователям, рассказывающим нам о багах и уязвимостях в наших продуктах, какой бы канал связи они ни выбрали.

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

Найдено и исправлено

Чтобы обеспечить безопасность пользователей в Интернете, что среди прочего подразумевает блокировку рекламы и предупреждения о вредоносных результатах поиска, мы используем расширение браузера. Разумеется, вы можете отказаться от установки этого (и любого другого) расширения. Наше приложение не оставит вас без защиты: если оно обнаружит, что расширение не установлено, оно будет внедрять специальные скрипты в посещаемые вами веб-страницы, чтобы с их помощью отслеживать угрозы. В таких случаях между скриптом и телом защитного решения устанавливается канал связи.

Основная часть уязвимостей, обнаруженных Палантом, была именно в этом канале связи. Теоретически, если бы злоумышленник атаковал его, он мог бы попытаться перехватить управление самим приложением. Палант обнаружил эту проблему в Kaspersky Internet Security 2019 в декабре 2018 года и сообщил нам о ней в рамках программы bug bounty. Мы немедленно занялись ее устранением.

Также Палант нашел потенциальный эксплойт, который мог использовать канал связи между расширением браузера и продуктом для доступа к важным данным, таким как ID продукта «Лаборатории Касперского», его версия и версия операционной системы. Эту уязвимость мы также закрыли.

Наконец, сотрудник журнала c’t Рональд Айкенберг обнаружил уязвимость, из-за которой уникальные ID могли быть раскрыты владельцам веб-сайтов, посещаемых пользователями продуктов «Лаборатории Касперского». Эту уязвимость мы исправили еще в июле, и уже в августе все наши клиенты были защищены. Впоследствии Палант обнаружил еще одну уязвимость такого рода — она была устранена в ноябре 2019 года.

Зачем же использовать эти скрипты?

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

В основном скрипты служат для повышения комфорта пользователя (например, они помогают блокировать рекламные баннеры). Но еще, например, они защищают от атак с использованием динамических веб-страниц, которые иначе невозможно было бы обнаружить, если расширение Kaspersky Protection выключено. Также на скриптах основана работа таких компонентов, как защита от фишинга и родительский контроль.

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

Резюмируя вышесказанное

Мы устранили все обнаруженные уязвимости и значительно сократили поверхность атаки. Наши продукты безопасны – вне зависимости от того, используете вы расширение браузера Kaspersky Protection или нет.

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

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

Советы