Способы повышения безопасности Python-кода

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

В чем источники уязвимости Python

Почти все угрозы безопасности при кодировании на Python возникают из-за проблем в самом ПО. Самые уязвимые места языка:

Исходный код с ошибками. Если код содержит серьезные недоработки, использовать его нецелесообразно и даже опасно, это может привести к полному разрушению системы.

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

Вводные данные. Если нет нормального контроля и фильтрации поступающих данных, велика вероятность проникновения чужих, вредоносных команд.

Если взять эти уязвимости под контроль, можно значительно улучшить показатели безопасности продуктов, созданных на Python.

Как проявляются проблемы с безопасностью

Наиболее серьезная ситуация может возникнуть при несанкционированном доступе к системе. Из-за проникновения в код чужих команд происходит замена вводных данных и киберпреступники получают доступ к важным данным.

Также коррективы в приложение или сайт могут быть внесены с помощью парсинга XML. Злоумышленники внедряют в XML‑документы свои команды, которые сервер вынужден обрабатывать и выполнять. Такими действиями совершаются DoS-атаки или SSRF с целью подрыва стабилизации системы.

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

Как защитить Python-приложения

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

Для проверки безопасности можно использовать специальные сервисы, например, OWASP ZAP и Solar appScreener.

1414
10 комментариев

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

Я не всё поняла после первого прочтения, но тема мне кажется интересной)) Буду изучать глубже, спасибо за наводку!

Расскажите подробнее, как провериться на утечку или угрозу безопасности кода на Питоне?

Варианты отличные, почти всё использую в работе. Информация пока под защитой, без происшествий))

Мне кажется для новичков важно сделать акцент на том, что «просто всё время будь осторожнее» не равно 100% безопасности. Но все-таки стоит продумать, как предотвратить самые частые проблемы угрозы коду.

Хорошо организованный код помогает обезопасить весь проект, сразу видно все ошибки и вмешательства. Да и модули потом можно интегрировать в другие коды.

Самый хороший способ компилировать. Не спасет от всего, но все-таки по энергозатратам он лучший