Facebook открыла средство поиска проблем безопасности в коде Python
Компания Facebook в прошлую пятницу сообщила об открытии исходников Pysa, инструмента, используемого ею для поиска уязвимостей в программном коде своей социальной платформы.
Pysa предназначен исключительно для анализа программ, написанных на Python. C одной стороны это ограничивает круг сценариев его применения, с другой - Python все же является вторым по популярности языком программирования, в частности, он повсеместно используется для разработки приложений искусственного интеллекта.
Facebook с большим успехом применяет Pysa для контроля безопасности кода Instagram (практически полностью написанного на Python). По данным компании, за первую половину 2020 г. на долю Pysa приходилось 44 процента серверных проблем безопасности, выявленных в этом фотообменном социальном сервисе. Из обнаруженных Pysa уязвимостей, 49 получили статус "серьезных".
Используемый этим инструментом метод статического анализа кода, позволяет ему работать непосредственно с исходными файлами разработчиков и быстро генерировать заключение, не задерживаясь для запуска кода.
Для облегчения анализа сложных корпоративных рабочих нагрузок с большим числом компонентов, Pysa делает это послойно. "Pysa выполняет итерационные раунды анализа для создания сводок, чтобы определить, какие функции возвращают данные из источника, а какие функции имеют параметры, в конечном итоге достигающие приемника (например, уязвимой базы данных на сервере)", - пояснили в блоге инженеры Facebook Грэм Блини (Graham Bleaney) и Синан Сепел (Sinan Cepel).
Наряду с распространенными типами ошибок, Pysa можно настроить на поиск более тонких проблем соответствия политикам, например, требующим от программы пропускать персональные данные пользователя через фильтр приватности перед записью в базу данных. К достоинствам Pysa относят и небольшое количество ошибочных срабатываний - 150 ошибок при 330 найденных за полгода уязвимостях Instagram. Это снижает нагрузку на инженеров безопасности, которым нужно проверить каждый сигнал.