Port scanning: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6.2)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(37 versioni intermedie di 18 utenti non mostrate)
Riga 1:
In [[informatica]] ilCon '''port scanning''', èin [[informatica]], si indica una tecnica informatica progettata per sondare un [[server]] o un [[host]] al fine di stabilire quali [[Porta (reti)|porte]] siano in ascolto sulla macchina. Questa tecnica è spesso utilizzatoutilizzata dagli [[Amministratore di rete|amministratori]] per verificare le politiche di sicurezza delle loro [[Rete di computer|reti]], e dagli [[hacker]] per identificare i servizi in esecuzione su un host e sfruttarne le vulnerabilità.
 
Un '''port scan''' o '''portscan''' è un processo che invia le richieste dei [[client]] a un intervallo di indirizzi di porte su un host, con l'obiettivo di trovare una porta aperta.<ref>{{Cita web|url=https://tools.ietf.org/html/rfc2828|titolo=Internet Security Glossary|autore=|editore=|data=|accesso=}}</ref>; Elaborandoelaborando le risposte è possibile stabilire (anche con precisione) quali servizi di rete siano attivi su quel computer.: Unauna porta si dice "in ascolto" ("''listening''") o "aperta" o ''attiva'' quando vi è un servizio, [[programma (informatica)|programma]] o [[processo (informatica)|processo]] che la usa. Viene utilizzato soprattutto per determinare quali siano i servizi disponibili su un [[computer]], piuttosto che essere sfruttato per un attacco.
 
Con il termine '''portsweep''' si intende l'esecuzione di una scansione di più host per una specifica porta di ascolto. È in genere utilizzato per la ricerca di un determinato servizio, per esempio, un SQL-based [[worm]] può cercare host in ascolto sulla porta [[Transmission Control Protocol|TCP]] 1433.<ref>{{Cita web|url=httphttps://support.microsoft.com/kb/313418|titolo=Worm|autore=|editore=|data=|accesso=}}</ref>
Il port scan viene utilizzato soprattutto per determinare quali siano i servizi disponibili su un computer, piuttosto che essere sfruttato per un attacco.
 
Con il termine '''portsweep''' si intende l'esecuzione di una scansione di più host per una specifica porta di ascolto. È in genere utilizzato per la ricerca di un determinato servizio, per esempio, un SQL-based [[worm]] può cercare host in ascolto sulla porta [[Transmission Control Protocol|TCP]] 1433.<ref>{{Cita web|url=http://support.microsoft.com/kb/313418|titolo=Worm|autore=|editore=|data=|accesso=}}</ref>
 
== Conoscenze di base TCP/IP ==
Riga 16 ⟶ 14:
* chiusa (''denied''): l'host ha inviato una risposta indicando che le connessioni alla porta saranno rifiutate (ICMP port-unreachable),
* bloccata/filtrata (''dropped''/''filtered''): non c'è stata alcuna risposta dall'host, quindi è probabile la presenza di un firewall o di un ostacolo di rete in grado di bloccare l'accesso alla porta impedendo di individuarne lo stato.
Le porte aperte presentatopresentano due tipi di vulnerabilità alle quali gli amministratori devono prestare attenzione:
* la sicurezza e la stabilità devono essere implementate dal programma responsabile di fornire il servizio - open ports
* la sicurezza e la stabilità sono associate al sistema operativo che gira sull'host - open/closed ports
Riga 22 ⟶ 20:
 
== Premessa ==
Tutte le forme di port scanning si basano sul presupposto che l'host mirato è conforme a [[Request for Comments|RFC]] [http://www.faqs.org/rfcs/rfc793.html 793 - Transmission Control Protocol] . Nonostante sia presente quasi sempre, c'è anche la possibilità che un host remoto possa spedire strani pacchetti o addirittura generare falsi positivi quando lo stack TCP/IP dell'host non è RFC (RFC-compliant) oppure se è stato alterato. Ciò spesso accade per le tecniche di scansione meno comuni che dipendono dal sistema operativo, come il FIN scanning.
 
== Tipologie ==
=== [[TCP connectIdle scan]] ===
{{Vedi anche|Idle scan}}
 
=== TipiTCP diconnect port scanningscan ===
I più semplici port scanning utilizzano funzioni di rete del sistema operativo e normalmente sono impiegati quando non è possibile effettuare una scansione [[SYN scan]] (descritto di seguito).
=== [[TCP connect scan]] ===
I più semplici port scanning utilizzano funzioni di rete del sistema operativo e normalmente sono impiegati quando non è possibile effettuare una scansione SYN scan (descritto di seguito).
 
[[Nmap]] chiama questa modalità connect scan, dal nome della [[chiamata di sistema]] Unix connect(), utilizzata per aprire una connessione ad ogni porta interessante sulla macchina di destinazione. Se una porta è aperta, il sistema operativo completa il three-way handshake ([[Connessione (informatica)|connessione]] TCP affidabile tra due host), e il port scan chiude immediatamente la connessione per evitare l'esecuzione di un attacco [[Denial of Service]].<ref name=":0">{{Cita libro|autore=Erikson, Jon|titolo=(HACKING the art of exploitation (2nd ed.)|anno=1977|editore=NoStarch Press|città=San Francisco|p=264|pp=|ISBN=1-59327-144-1}}</ref> In caso contrario viene restituito un codice di errore.
 
Questa modalità di scansione ha il vantaggio che l'utente non deve avere privilegi particolari. Tuttavia, utilizzando le funzioni di rete del sistema operativo, impedisce il controllo di basso livello, per cui questo tipo di scansione è poco comune.
Riga 34 ⟶ 35:
Questo metodo è “rumoroso”, in particolare se si tratta di un “portsweep”: i servizi possono registrare l'indirizzo IP del mittente e gli [[Intrusion detection system|Intrusion Detection System]] sono in grado far scattare un allarme.
 
=== [[SYN scan]] ===
SYN scan è un'altra forma di TCP scanning. Invece di utilizzare le funzioni di rete del sistema operativo, il port scan genera lui stesso pacchetti IP non validi, e monitora le risposte. Questo tipo di scansione è anche conosciuto come “half-open scanning”, perché in realtà non viene mai aperta completamente una connessione TCP. Il port scan genera un pacchetto SYN. Se la porta di destinazione è aperta, risponde con un pacchetto SYN-ACK. L'host scanner risponde con un pacchetto RST, così da chiudere la connessione prima che la three-way handshake sia completata. Se la porta è chiusa, ma non filtrata, l'obiettivo sarà di rispondere immediatamente con un pacchetto RST. In entrambi i casi la connessione non verrà mai completata e per questa ragione difficilmente comparirà nei file di log, anche se generalmente viene riconosciuta e registrata dagli [[Intrusion detection system|IDS]].
 
L'uso di reti “raw” ha diversi vantaggi, dando allo scan pieno controllo dei pacchetti inviati e dei timeout per le risposte, e viene fornito un rapporto dettagliato delle risposte. C'è un dibattito su quale scansione sia meno intrusiva sull'host di destinazione. SYN scan ha il vantaggio che i singoli servizi non ricevono effettivamente una connessione. Tuttavia, la RST durante la three-way handshake può causare problemi per alcune reti, in particolare nei dispositivi più semplici come le stampanti.
 
=== [[UDP scan]] ===
È possibile utilizzare anche l'UDP scan, nonostante siano presenti vari problemi tecnici. [[User Datagram Protocol|UDP]] è un protocollo [[Comunicazione senza connessione|senza connessione]], per questo motivo non esiste un equivalente al pacchetto TCP SYN. Tuttavia, se un pacchetto UDP viene inviato ad una porta che non è aperta, il sistema risponderà con un pacchetto [[Internet Control Message Protocol|ICMP]] tipo 3 codice 3 (port unreachable) o tipo 3 codice 13 (administratively prohibited). La maggior parte dei port scan UDP usano questo tipo di scansione, e utilizzano l'assenza di una risposta per dedurre l'apertura di una porta. Tuttavia, se una porta è bloccata da un [[firewall]], questo metodo segnalerà erroneamente che la porta è aperta.
 
Un approccio alternativo è quello di inviare pacchetti UDP per applicazioni specifiche, nella speranza di generare una risposta a [[livello di applicazione]]. Per esempio, inviando una query DNS alla porta 53 si tradurrà in una risposta, se è presente un server DNS. Questo metodo è molto più affidabile per individuare porte aperte. Tuttavia, è limitato alla scansione delle porte per le quali è disponibile un pacchetto sonda tramite un'applicazione specifica. Alcuni tools (e.g. [[nmap]]) hanno generalmente sonde per meno di 20 servizi UDP, mentre alcuni tools commerciali (e.b. [[nessus]]) ne hanno fino a 70. In alcuni casi, un servizio può essere in ascolto su una determinata porta, ma configurato a non rispondere a un determinato pacchetto sonda.<ref>{{Cita web|url=http://www.networkuptime.com/nmap/page3-10.shtml|titolo=Secrets of Network Cartography - UDP Scan (-sU)|sito=www.networkuptime.com|accesso=5 luglio 2016-07-05|urlmorto=sì|urlarchivio=https://web.archive.org/web/20160516002101/http://www.networkuptime.com/nmap/page3-10.shtml|dataarchivio=16 maggio 2016}}</ref>
 
=== [[ACK scan]] ===
L'ACK scan è una delle scansioni più insolite, in quanto non si determina esattamente se la porta è aperta o chiusa, ma se una determinata porta è filtrata o non filtrata. Ciò è particolarmente utile quando si tenta di sondare se in un host è presente un firewall e le sue regole. I pacchetti inviati per effettuare l'ACK scanning hanno solamente il flag ACK abilitato e si avranno risposte con pacchetti RST solamente se le porte sono aperte o chiuse. In caso contrario, cioè se non arriva alcuna risposta o vengono restituiti errori ICMP, le porte vengono classificate come filtrate.<ref>{{Cita web|url=https://nmap.org/man/it/man-port-scanning-techniques.html|titolo=Tecniche di Port Scanning|sito=nmap.org|accesso=5 luglio 2016-07-05}}</ref>
 
=== Window scan ===
Questo tipo di scansione viene utilizzato molto raramente, a causa della sua natura obsoleta, poiché la Window scanning è piuttosto inaffidabile nel determinare se una porta è aperta o chiusa. Genera un pacchetto uguale all'ACK scan, ma controlla se il campo TCP Window del pacchetto RST di ritorno è stato modificato. Se ritorna una grandezza positiva per il campo Window allora la porta è aperta, se ritorna una grandezza pari a zero si ha una porta chiusa. Quindi al contrario dell'ACK scan che ad ogni pacchetto RST restituito dall'host cataloga la porta come non filtrata, questo scan determina se la porta è aperta o chiusa in base se il valore RST è positivo o pari a zero. Purtroppo il Window scan non è spesso affidabile poiché utilizza un'implementazione presente solamente in alcuni sistemi.
 
=== [[FIN scan]] ===
Dal momento che SYN scan non è abbastanza efficiente, poiché i firewall, che vengono scansionati, bloccano pacchetti della forma del SYN scan, si può utilizzare [[FIN scan]]. I pacchetti FIN possono sorpassare i firewall senza apportare modifiche. Le porte chiuse rispondono a un pacchetto FIN con un pacchetto con RST attivo, mentre le porte aperte o filtrate ignorano direttamente il pacchetto FIN e non viene restituito alcun pacchetto in risposta. Purtroppo non è affidabile poiché sistemi come Windows, IRIX, Cisco e HP-UX rispondono sempre con un pacchetto con flag RST attivo.
 
=== Altri tipi di scansioni ===
Riga 60 ⟶ 61:
* '''Protocol scan:''' determina quali protocolli a livello IP (TCP, UDP, [[Generic Routing Encapsulation|GRE]], etc.) sono abilitati.
* '''[[Proxy]]''' '''scan:''' un proxy ([[SOCKS]] o [[Hypertext Transfer Protocol|HTTP]]) viene usato per eseguire la scansione. Sarà visualizzato l'indirizzo IP del proxy come source. Questa scansione può essere effettuata anche utilizzando alcuni server [[File Transfer Protocol|FTP]].
* '''[[Idle scan]]''': un altro metodo di scansione che permette di non rivelare il proprio [[indirizzo IP]] (scansione completamente invisibile).
* '''[[Internet Control Message Protocol|ICMP]]''' '''scan''': determina se un host risponde alle richieste ICMP, come il [[ping]].
*'''[[Decoy scan]]''': tecnica che prevede di confondere amministratori o [[Intrusion detection system|IDS]] inviando, assieme ai pacchetti di scansione, una gran numero di pacchetti fittizi con mittente IP modificato tramite [[IP spoofing|spoofing]].
 
== Filtraggio delle porte tramite ISP ==
Molti [[Internet Service Provider|Internet service providers]] limitano la capacità dei loro clienti per eseguire scansioni delle porte verso host al di fuori delle reti domestiche. Questo è di solito coperto in termini di servizio o di policy di utilizzo con il quale il cliente deve essere d'accordo.<ref>{{Cita web|url=httphttps://www.xfinity.com/policies?CCT=53BA3D76CB1473BFF49C79FE4AA86DFF1EE2DE626F409A593A09AF6D8893FD9E310B72B0C537FF7D2571FC1FBB069221EB49D2A19CFC0F15A2D1A2575314A8FEB9BF4D69C917BFF1|titolo=Customer Agreements, Policies & Service Disclosures|sito=www.xfinity.com|accesso=5 luglio 2016-07-05}}</ref> Alcuni ISP implementano [[Firewall|packet filters]] o [[Firewall|proxy]] trasparenti che impediscono le richieste di servizio in uscita a determinate porte. Ad esempio, se un ISP fornisce un proxy HTTP trasparente sulla porta 80, con la scansione delle porte di qualsiasi indirizzo si avrà la porta 80 aperta, indipendentemente dalla configurazione attuale dell'host di destinazione.
 
== Etica ==
Riga 72 ⟶ 74:
 
== Implicazioni legali ==
A causa dell'architettura intrinsecamente aperta e decentralizzata di Internet, i legislatori hanno lottato sin dalla sua creazione per definirne i confini legali che permettano un efficace perseguimento dei [[Crimine informatico|crimini informatici]]. I casi che coinvolgono le attività di port scanning sono un esempio delle difficoltà incontrate nel giudicare tali violazioni. Anche se questi casi sono rari, la maggior parte delle volte il processo legale richiede che venga dimostrato l'intento di commettere un brakebreak-in o l'esistenza di accessi non autorizzati, piuttosto che l'esecuzione di un port scan.
* Nel giugno del 2003, unil Israeliano,cittadino israeliano Avi Mizrahi, è stato accusato dalle autorità israeliane per ildi reatoIsraele di aver provato ad accedere a materiale informatico per il quale non era autorizzato. Aveva scansionato il sito del [[Mossad]]. È stato assolto da tutte le accuse il 29 febbraio 2004. Il giudice ha stabilito che questo tipo di azioni non dovrebbero essere scoraggiate quando vengono svolte in modo positivo.<ref>{{Cita web|url=httphttps://www.law.co.il/media/computer-law/mizrachi_en.pdf|titolo="Verdict in the case Avi Mizrahi vs. Israeli Police Department of Prosecution"|autore=Hon. Abraham N. Tennenbaum|editore=|data=2004-02-29 febbraio 2004|accesso=|urlarchivio=https://web.archive.org/web/20091007114218/http://www.law.co.il/media/computer-law/mizrachi_en.pdf|dataarchivio=7 ottobre 2009|urlmorto=sì}}</ref>
* Un diciassettenne di nome Finnfinlandese è stato accusato perdi aver provatotentato undi break-inaccedere daal network di una delle maggiori banche finlandesi nel 1998. Aveva effettuato un port scan nel network della banca per accedere ai network interni, senza successo. Il 9 aprile 2003, è stato condannato dalla [[Corte suprema (Finlandia)|Corte suprema della Finlandia]] e costretto a pagare US$12,000 per le spese delledi analisi forensiforense da parte della banca. Nel 1998, aveva effettuato un port scan nel network della banca per accedere ai closed network, ma fallì.<ref>{{Cita web|url=http://insecure.org/stf/fin.html|titolo="First ruling by the Supreme Court of Finland on attempted break-in"|autore=Esa Halmari|editore=|data=2003|accesso=}}</ref>
* Nel dicembre del 1999, Scott Moulton è stato arrestato dall'FBI con l'accusa di violazione del computer delladel Computer Systems Protection Act della Georgia e Computer Fraud and Abuse Act dell'Americafederale. In questoquel momento la sua società di servizi IT haaveva un contratto ancora in corso con Cherokee County dellain Georgia (Stati Uniti) per mantenere e migliorare il centro di sicurezza del 911.locale Haservizio di emergenza. effettuatoEffettuando diversi port scan sui server di Cherokee County per verificare la loro sicurezza e scansionatoscansionando le porte di un server web monitorato da un'altra compagnia IT, provocandoaveva unprovocato bisticciouno finitoscontro inpassato tribunalepoi alle vie legali. FuMoulton è stato successivamente assolto nel 2000, quando il giudice ha sentenziato che non cierano sonostati commessi danni cheatti a compromettonocompromettere l'integrità e la disponibilità della rete.<ref>{{Cita web|url=http://www.securityfocus.com/news/126|titolo="Port scans legal, judge says"|autore=Poulsen, Kevin|editore=|data=2000-12-18 dicembre 2000|accesso=}}</ref>
* Nel 2006, il Parlamento britannico ha votato un emendamento allaal Computer MisureMisuse Act 1990 in modo tale che una personadefinisce colpevole di un reato chechiunque ''"makes, adapts, supplies or offers to supply any article knowing that it is designed or adapted for use in the course of or in connection with an offence under section 1 or 3 [of the CMA]”''<ref>{{Cita web|url=http://www.publications.parliament.uk/pa/cm200506/cmbills/119/06119.27-33.html#j383A|titolo="Police and Justice Bill - Bill 119"|autore=UK Parliament|editore=|data=25 gennaio 2006-01-25|accesso=}}</ref>(faccia, si adatti, fornisca o offra qualsiasi articolo sapendo che è stato progettato o adottato per l'uso nel corso di o in connessione con un reato ai sensi dell'articolo 1 o 3 [del CMA]). Tuttavia, l'area d'effetto di questo emendamento è sfocataimprecisa, ede essopertanto è stato ampiamente criticato dagli esperti di sicurezza.<ref>{{Cita web|url=httphttps://www.theregister.co.uk/2008/01/02/hacker_toll_ban_guidance/|titolo="UK gov sets rules for hacker tool ban"|autore=Leyden, John|editore=|data=2 gennaio 2008-01-02|accesso=}}</ref>
* La Germania ha una legge in materia, il Strafgesetzbuch § 202a, b, c.
* La Germania, con il Strafgesetzbuch § 202a, b, c ha anche essa una legge simile, e il Consiglio dell'Unione Europea ha pubblicato un comunicato stampa dichiarando che stanno pianificando di passare una legge simile ma più precisa e dettagliata.<ref>{{Cita web|url=http://www.consilium.europa.eu/uedocs/cms_data/docs/pressdata/en/jha/122516.pdf|titolo=Council of the European Union|autore=|editore=|data=2011-06-10|accesso=}}</ref>
*Il [[Consiglio dell'Unione europea|Consiglio dell'Unione Europea]], nel 2013, ha approvato una direttiva in materia.<ref>{{Cita web|url=https://eur-lex.europa.eu/legal-content/IT/TXT/HTML/?uri=CELEX:32013L0040&from=EN|titolo=L_2013218IT.01000801.xml|sito=eur-lex.europa.eu|accesso=3 ottobre 2018}}</ref>
 
== Portscanner online ==
* [https://web.archive.org/web/20061119050228/http://scan.sygate.com/ Sygate Online Scan] extended security check (Stealth Scan, Trojan Scan)
* [http://www.planet-security.net/index.php?xid=%F7%04T%BDP%92nD Planet Security Firewall-Check] {{Webarchive|url=https://web.archive.org/web/20060628220802/http://www.planet-security.net/index.php?xid=%F7%04T%BDP%92nD |date=28 giugno 2006 }} Fast, extended check, checks currently high-endangered ports
* [http://www.crucialtests.com/ Crucialtests] concise, incl. advisor
* [httphttps://www.grc.com/default.htm ShieldsUP (Gibson Research Corporation)] Quick Scanner, clearly laid out
* [https://web.archive.org/web/20061129112241/http://www.derkeiler.com/Service/PortScan/ DerKeiler's Port Scanner] You can only scan your IP, useful when you are in an internet cafe with many restrictions.
* [https://web.archive.org/web/20060526221737/http://www.auditmypc.com/freescan/scanoptions.asp AuditMyPC Free Port Scanning] Can scan all 65535 ports.
 
Riga 107 ⟶ 110:
== Collegamenti esterni ==
* {{cita web|http://www.insecure.org|nmap}}
* {{cita web | 1 = http://www.hping.org/ | 2 = hping | accesso = 16 agosto 2004 | dataarchivio = 19 dicembre 2017 | urlarchivio = https://web.archive.org/web/20171219210137/http://www.hping.org/ | urlmorto = sì }}
* {{cita web|http://www.hping.org|hping}}
* {{cita web | 1 = http://autoscan-network.com | 2 = AutoScan-Network | accesso = 20 aprile 2020 | urlarchivio = https://web.archive.org/web/20190826024415/http://autoscan-network.com/ | dataarchivio = 26 agosto 2019 | urlmorto = sì }}
 
{{Portale|sicurezza informatica}}