In a world where almost every byte of data is digitised, there is a dire need to constantly innovate to protect sensitive information from rogue players. Here, resource-rich Python libraries can assist the cyber-defenders to tackle these problems.
Sign up for your weekly dose of what's up in emerging technology.
Python boasts of a library-rich ecosystem where developers can keep on adding task-specific libraries and packages.
Here is a list of top Python libraries to dodge and detect cyber attacks:
How to install: pip install python-nmap
Nmap specialises in automating scanning tasks by manipulating nmap scan results and will be a perfect tool for systems administrators. Pentesters use Nmap to analyse scan results, and execute custom attacks against specific hosts.
How to install: pip install impacket
Impacket is a collection of Python classes for working with network protocols and provides low-level programmatic access to the packets, and for some protocols, the entire implementation. It easily interacts with native Windows protocols such as SMB, MSSQL, NetBios, and DCERPC. It’s also great for Windows reconnaissance and exploit development (it even supports hash based authentication). CrackMapExec, SMBMap, Ranger, Polenum, Pupy, Veil-Framework, PorLa are few of the projects that use this library.
How to install: pip install scapy
Scapy is a powerful interactive packet manipulation program. It enables the users to forge or decode packets of protocols, send them on the wire, capture them, match requests and replies, and much more. It can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery. Developers are confident that it can replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal and p0f.
Scapy overcomes common challenges faced in encapsulation, decoding and interpreting and, padding tasks.
How to install: pip install requests
Requests is an Apache2 Licensed HTTP library, written in Python. It is designed to be used by humans to interact with the language. This means that there is no need for manually adding query strings to URLs, or form-encode the POST data. With Requests, HTTP connection pooling can be automated completely.
How to install: pip install cryptography
It includes both high-level recipes and low-level interfaces to common cryptographic algorithms such as symmetric cyphers, message digests, and key derivation functions. Low-level cryptographic primitives. These are often dangerous and can be used incorrectly. Because of the potential danger in working at this level, this is referred to as the “hazardous materials” or “hazmat” layer. These live in the cryptography.hazmat package, and their documentation will always contain an admonition at the top.
This module provides access to the BSD socket interface.
The Python interface is a straightforward transliteration of the Unix system call and library interface for sockets to Python’s object-oriented style: the socket() function returns a socket object whose methods implement the various socket system calls. Parameter types are somewhat higher-level than in the C interface: as with read()and write() operations on Python files, buffer allocation on receive operations is automatic, and buffer length is implicit on send operations.
Along with these, there are other well known and well documented multi-purpose packages like BeautifulSoup which can be used to scrape through HTML files. If one needs to curate the data and dress it to the need, Pandas can also be very effective.