The python core code is secure, but third-party modules, the way you have developed an application may not be, and that’s why you need a security scanner to find vulnerabilities if any. There are many comprehensive online security scanners to test for online threats, but they may not be able to detect platform specific weakness like Python, Node.js. etc. Let’s take a look at the following scanner to find security risk in Python application.

PYT (Python Taint)

An open source static analysis tool to detect command injection, cross-site scripting, SQL injection, directory transversal attacks in Python web applications. PYT is based on the theoretical foundation, and if you would like to contribute, then you can join their slack group.

Bandit

Bandit is an Open Stack’s initiative to find common security risk in python code. It processes each file to build AST and generate a report. You can get it installed using pip. The usage of Bandit can be customized. For an ex, by default test is done against all the profile, however, if you want to check just ShellInjection then you can try below. You may also instruct to report based on severity (Low, Medium or High) level.

Pyntch

Pyntch support only Python 2.x, a static code analyzer to detect possible runtime error. It’s not exactly to find risk but will be useful to see runtime exception which can leak sensitive information sometimes. It’s fast and capable of scanning thousands of lines in a minute.

Spaghetti

A python based open-source scanner on finding misconfiguration, insecure files and supporting web frameworks like CherryPy, CakePHP, etc. Spaghetti is capable of discovering various attacks including the following.

Brute forceCredit card, email, IP disclosureHTML/SQL/LDAP/XPATH/XSS injectionShellShock, Crime, Struts-shockAnonymous cipher

RATS (Rough Auditing Tools for Security)

RATS perform a rough analysis of Python, PHP, Perl, C++ code and highlight security related errors like below.

Time of CheckTime of UseBuffer overflows

Acunetix

A comprehensive vulnerability scanning platform to test network & web applications. Acunetix checks your website for more than 5000 vulnerabilities and provides a detailed report with remediation guidelines. If your Python web application is exposed to the Internet and looking for in-depth security analysis, then give a try to Acunetix.

Requires

Not a scanner but Requires.io monitor Python dependencies security and notify you when found outdated or vulnerable. You can configure to get notified by adding badges, email or GitHub pull.

Safety

A python dependencies checker, Safety can scan the local virtual environment, requirements file, stdin inputs for security issues.

PyUp

Keep your Python application up-to-date, compliant, and secure with PyUp’s Python Dependency Security. It helps you secure your code from thousands of security vulnerabilities in Python dependencies that can breach your Python code.  Instead of spending your time manually updating and tracking each dependency, you can get PyUp to automate tasks. It fixes new vulnerabilities automatically and allows you to stay away from known vulnerabilities to boost your confidence in your code.  Furthermore, PyUp maintains a database of vulnerabilities, and to date, it has recorded 393,800 Python dependencies. Its scanners are built for solving complex environments and scanning your files for outdated and insecure requirements.  These scanners are also highly configurable according to your needs, and their safety CI catches vulnerabilities before the code goes to production. Integrate command-line tools in your CI workflows.  Get unlimited public and private repositories at $99/month and avail dependency licenses, CVSS, API key, and safety CI. You can also take a 7-day free trial with the plan you select.

Conclusion

I hope the above-listed tools help you to find security risk in Python application.

How to Find Security Vulnerabilities in Python Application  - 66How to Find Security Vulnerabilities in Python Application  - 75How to Find Security Vulnerabilities in Python Application  - 25How to Find Security Vulnerabilities in Python Application  - 32How to Find Security Vulnerabilities in Python Application  - 5How to Find Security Vulnerabilities in Python Application  - 18How to Find Security Vulnerabilities in Python Application  - 69How to Find Security Vulnerabilities in Python Application  - 38How to Find Security Vulnerabilities in Python Application  - 15How to Find Security Vulnerabilities in Python Application  - 26How to Find Security Vulnerabilities in Python Application  - 50How to Find Security Vulnerabilities in Python Application  - 10How to Find Security Vulnerabilities in Python Application  - 48How to Find Security Vulnerabilities in Python Application  - 49How to Find Security Vulnerabilities in Python Application  - 22How to Find Security Vulnerabilities in Python Application  - 24How to Find Security Vulnerabilities in Python Application  - 26How to Find Security Vulnerabilities in Python Application  - 10How to Find Security Vulnerabilities in Python Application  - 89How to Find Security Vulnerabilities in Python Application  - 73How to Find Security Vulnerabilities in Python Application  - 40How to Find Security Vulnerabilities in Python Application  - 80How to Find Security Vulnerabilities in Python Application  - 81How to Find Security Vulnerabilities in Python Application  - 31How to Find Security Vulnerabilities in Python Application  - 35How to Find Security Vulnerabilities in Python Application  - 24How to Find Security Vulnerabilities in Python Application  - 26How to Find Security Vulnerabilities in Python Application  - 73How to Find Security Vulnerabilities in Python Application  - 71