
Сканер уязвимостей кода: весь код под контролем
Узнать больше
Получить консультацию по Solar appScreener
Спасибо, заявка получена
Мы свяжемся с вами в течение двух дней
по вашему запросу.
Python не первый год входит в Топ-4 языков программирования по популярности. Его используют для различных целей:
При автоматизации задач в системном администрировании.
В банковской сфере. Например, один из крупнейших банков России применяет его для управления своими банкоматами.
Во встроенных системах станков с ЧПУ.
В телекоммуникационном оборудовании.
При разработке мобильных приложений (преимущественно для серверной части).
В Data Science, при разработке облачных решений, в области машинного обучения, искусственного интеллекта.
Учитывая важность программного обеспечения и информационных систем, в которых применяется этот язык программирования, можно судить о том, насколько живой интерес проявляют к ним злоумышленники. Так что проверке безопасности Python и созданных с его помощью продуктов необходимо уделять должное внимание.
Методы и инструменты тестирования уязвимости Python
При анализе безопасности программ, написанных на этом языке, используются те же подходы и технологии, как и в случае с другими. Для тестирования безопасности программного обеспечения применяются методы:
DAST – динамическое тестирование методом черного ящика. Выявляет проблемы в работающем приложении – воздействуя на интерфейсы программы и анализируя ее реакцию на такие события. Для анализа уязвимости написанных на Python продуктов с помощью этого метода требуются специалисты в области тестирования на проникновение. Также необходимо развертывание отдельных сред для тестирования, что могут позволить себе далеко не все конечные пользователи программного обеспечения.
SAST – тестирование безопасности Python методом белого ящика. Для SAST-анализатора исходного кода не требуется запуск приложения. Кроме того, результаты работы этого инструмента представляются в удобном для восприятия виде: с ними может работать специалист, не имеющий опыта в разработке (офицер по информационной безопасности, системный администратор). Более того, SAST-инструменты могут использовать и конечные пользователи программ. Еще одно преимущество этот метода при тестировании уязвимости – проверка не только самой программы, но и сторонних компонентов и библиотек, что для этого языка программирования с присущим ему огромным количеством зависимостей весьма актуально.
IAST – интерактивное тестирование безопасности. В методе сочетаются черты двух предыдущих. за счет чего покрывается большее количество кода, выдаются более точные результаты, а также достигается ряд других преимуществ. Но чтобы использовать его, потребуется собственная команда разработчиков для интерпретации некоторых результатов, а также развертывание отдельных сред для тестирования.
SAST-тестирование безопасности Python
При разработке анализатора исходного кода Solar appScreener мы опирались на метод тестирования безопасности белого ящика, который могут использовать как разработчики программного обеспечения, так и пользователи.
Тестирование уязвимости с помощью SAST-инструментов позволяет выявлять как «универсальные», характерные для многих языков программирования уязвимости (например, места в коде, через которые возможны атаки с помощью инъекций или парсинг XML), так и специфичные. SAST-анализатор исходного кода находит конструкции, через которые может быть реализована угроза, и формирует оповещения об этом.
При проверке уязвимостей методом белого ящика выявляются слабые места в работе с вводимыми пользователями и принимаемыми от сторонних источников данными. SAST находит проблемы с авторизацией, работой с базами данных, сессиями и так далее. За счет покрытия почти 100% кода практически ни одна уязвимость не остается незамеченной.
Проверка безопасности Python с помощью SAST-анализаторов позволяет находить практически все типовые проблемы, характерные для этого языка. Среди них:
Уязвимости, связанные с использованием в процессе разработки старых версий языка и небезопасных конструкций, из-за чего существует вероятность реализации некоторых угроз. Пример – функция init() в Python 2.7, которая работает аналогично небезопасной eval в более новых версиях языка. Через нее возможно выполнение сторонних скриптов (которые могут быть вредоносными). Пример небезопасной конструкции – использование assert для защиты фрагментов кода, к которым не должны обращаться пользователи.
Публичное отображение ошибок. Это может отрицательно повлиять на безопасность приложения. SAST-инструмент может находить такие моменты (пример – значение true для debug при использовании Django), опираясь на стандартные или добавляемые пользователями правила.
Пакеты с вредоносным кодом в модулях и уязвимости, проблемы, связанные с импортированием. При разработке программного обеспечения на этом языке программирования может использоваться множество библиотек, устанавливающихся с помощью Pip. Инструменты статического анализа кода проверяют не только само приложение, но и подключаемые компоненты. Еще одна потенциальная угроза для программ на Python – использование относительных и неявных путей для импорта. Такие проблемы выявляются с помощью стандартных правил SAST-инструментов, а также правил, задаваемых пользователями.
Это лишь малая часть проблем, которые можно выявить в программах на Python при анализе исходного кода методом белого ящика. Возможности современных SAST-анализаторов позволяют находить довольно сложные уязвимости, на поиск которых другими методами ушло бы немало времени. И еще один весомый плюс таких инструментов – возможность применения SAST-анализа на всех этапах жизненного цикла программного обеспечения, включая стадию его эксплуатации конечными пользователями.
Скачать материал
Спасибо!
Если файл не скачался, перейдите по ссылке
Файл не найден
Самые важные новости кибербезопасности у вас в почте
Выберите темы, на которые бы вам было интересно получать новости.
Для получения бесплатной консультации заполните форму ниже и отправьте заявку. Наш менеджер свяжется с вами в ближайшее время.