{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
11 комментариев
Написать комментарий...
Николай Соколов

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

Ответить
Развернуть ветку
Анастасия Колодина

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

Ответить
Развернуть ветку
yurii mshorik

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

Ответить
Развернуть ветку
Герман Кирьянов

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

Ответить
Развернуть ветку
Воробьева Мария

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

Ответить
Развернуть ветку
Роман Кутузов

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

Ответить
Развернуть ветку
Степан Мяснов

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

Ответить
Развернуть ветку
Fedya

Или обзвасестись обфускастером) Получите самый настоящий нечитабельный и бесполезный код

Ответить
Развернуть ветку
Oksana Fedorova

Как много сложных слов))

Ответить
Развернуть ветку
Алена Панчук

Главное - используйте безопасные библиотеки! Мне кажется все забывают о таких базовых вещах

Ответить
Развернуть ветку
Антон Филатов

Советую всем использовать виртуальное окружение, получите и контроль версий и изоляцию независимостей. В интернете много статей по этой теме)

Ответить
Развернуть ветку
8 комментариев
Раскрывать всегда