python cybersicurezza sicurezza venv librerie CTF

Python per la Cybersicurezza

Python è il linguaggio più diffuso in ambito cybersicurezza grazie alla sua versatilità, alla ricchezza di librerie specializzate e alla facilità con cui permette di automatizzare test, analisi di rete, sviluppo di exploit e interazione con servizi remoti.

Environment virtuali

Gli environment virtuali sono ambienti isolati che permettono di gestire le dipendenze e le versioni dei pacchetti Python necessari per un determinato progetto, evitando conflitti tra librerie installate globalmente.

Creare e gestire un environment con venv

# Creare un nuovo environment chiamato "env"
python3 -m venv env

# Attivare l'environment (Linux/macOS)
source env/bin/activate

# Attivare l'environment (Windows)
env\Scripts\activate.bat

# Disattivare l'environment
deactivate

Una volta attivato l’environment, tutti i pacchetti installati con pip rimarranno isolati in quell’ambiente.

Creare e gestire un environment con Anaconda

Anaconda offre una distribuzione di Python preconfigurata con molte librerie per data science e cybersicurezza:

# Creare un nuovo environment
conda create --name env

# Attivare l'environment
conda activate env

# Disattivare l'environment
conda deactivate

Installare librerie Python

Installazione globale

# Windows
pip install nome_libreria

# Linux/macOS
pip install nome_libreria
# oppure, con privilegi amministratore:
sudo pip install nome_libreria
# oppure, nella propria home:
pip install --user nome_libreria

Installazione in un environment Anaconda

# Con conda (cerca nel canale ufficiale)
conda install nome_libreria

# Con pip (cerca su PyPI)
pip install nome_libreria

Disinstallare librerie

pip uninstall nome_libreria          # globale o in venv
conda remove nome_libreria           # in environment Anaconda

Principali librerie Python per la Cybersicurezza

Pyshark — analisi di rete con Wireshark

Permette di analizzare i pacchetti di rete tramite l’interfaccia Python di Wireshark.

pip install pyshark
import pyshark

# Cattura pacchetti in tempo reale sull'interfaccia eth0
cap = pyshark.LiveCapture(interface='eth0')
for pkt in cap.sniff_continuously(packet_count=10):
    print(pkt)

Casi d’uso: analisi di traffico, monitoraggio di rete, filtraggio pacchetti per protocollo o campo.


Pwntools — exploit development e CTF

Libreria specializzata per la scrittura di exploit e l’interazione con servizi remoti durante competizioni CTF.

pip install pwntools
from pwn import *

conn = remote('esempio.com', 1337)
conn.recvuntil(b'Input:')
conn.sendline(b'payload')
conn.interactive()

Casi d’uso: CTF, exploit development, interazione con binari, costruzione di payload, debugging con GDB.


Pycryptodome — crittografia

Implementa algoritmi e protocolli crittografici: AES, RSA, SHA, HMAC, Diffie-Hellman e molti altri.

pip install pycryptodome
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

key = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(b'messaggio segreto')

Casi d’uso: cifratura/decifratura di dati, firme digitali, hashing, scambio di chiavi.


Scapy — manipolazione pacchetti a basso livello

Permette di creare, inviare, ricevere e manipolare pacchetti di rete a basso livello.

pip install scapy
from scapy.all import *

# Invio di un pacchetto ICMP (ping)
pkt = IP(dst="192.168.1.1") / ICMP()
risposta = sr1(pkt, timeout=2)
if risposta:
    risposta.show()

Casi d’uso: testing sicurezza di reti, port scanning, sniffing, spoofing, attacchi DoS (in ambiente di laboratorio).


Requests — interazione con API e web

Semplifica l’invio di richieste HTTP e la gestione delle risposte.

pip install requests
import requests

# GET request con autenticazione
r = requests.get('https://api.esempio.com/dati',
                 headers={'Authorization': 'Bearer TOKEN'})
print(r.status_code, r.json())

# POST request
r = requests.post('https://api.esempio.com/login',
                  json={'user': 'mario', 'pass': 'secret'})

Casi d’uso: interazione con API web, download di file, autenticazione, web scraping.


BeautifulSoup — web scraping

Facilita l’analisi e l’estrazione di dati da documenti HTML e XML.

pip install bs4
import requests
from bs4 import BeautifulSoup

r = requests.get('https://esempio.com')
soup = BeautifulSoup(r.text, 'html.parser')

# Estrae tutti i link
for link in soup.find_all('a'):
    print(link.get('href'))

Casi d’uso: web scraping, estrazione di informazioni, crawling.


Selenium — automazione browser

Automatizza il controllo di browser web (Chrome, Firefox, ecc.).

pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://esempio.com/login')

driver.find_element(By.ID, 'username').send_keys('mario')
driver.find_element(By.ID, 'password').send_keys('secret')
driver.find_element(By.ID, 'submit').click()

Casi d’uso: simulazione azioni utente, testing applicazioni web, crawling di siti con JavaScript, automazione form.


Riepilogo librerie

LibreriaInstallazioneUso principale
pysharkpip install pysharkAnalisi pacchetti di rete
pwntoolspip install pwntoolsCTF ed exploit development
pycryptodomepip install pycryptodomeCrittografia
scapypip install scapyManipolazione pacchetti a basso livello
requestspip install requestsHTTP, API web
beautifulsoup4pip install bs4Web scraping HTML/XML
seleniumpip install seleniumAutomazione browser

Risorse aggiuntive

Nota etica: tutti gli strumenti presentati devono essere utilizzati esclusivamente in ambienti autorizzati (laboratori, CTF, sistemi propri). L’accesso non autorizzato a sistemi informatici è illegale.