Portar är en av de vik­ti­gas­te an­led­ning­ar­na till att datapaket kan hitta vägen till sin önskade des­ti­na­tion. De fungerar som gräns­snitt mellan datorer och system­tjäns­ter eller program och används av nät­verks­pro­to­kol­len TCP och UDP. Till­sam­mans med IP-adressen kan ope­ra­tiv­sy­ste­men ta reda på vilken dator och ap­pli­ka­tion de ska skicka data till.

Vad är portskan­ning? En kort för­kla­ring

Portskan­ning avser den riktade processen att kon­trol­le­ra öppna portar i ett da­tor­sy­stem med hjälp av spe­ci­al­verk­tyg. Innan vi går in på vad portskan­ning är, kan det vara bra att först ta en titt på vad portar är. Portar fungerar som ett gräns­snitt mellan aktiva program och internet. De används för att dirigera in­kom­man­de och utgående datapaket till rätt ap­pli­ka­tio­ner och hanteras av ope­ra­tiv­sy­stem.

Notis

För att en ap­pli­ka­tion ska kunna kom­mu­ni­ce­ra via en port måste den vara öppen. Att öppna portar medför dock en risk. Om någon av de ap­pli­ka­tio­ner som använder porten har sä­ker­hets­bris­ter kan porten fungera som en po­ten­ti­ell in­gångs­punkt för angripare. För att minimera risken för angrepp bör du alltid vara medveten om vilka portar som är öppna på ditt system och vilka ap­pli­ka­tio­ner som är kopplade till dem.

Du behöver inte vara inloggad på mål­sy­ste­met för att kunna utföra en portskan­ning på det. Du behöver bara vara ansluten till det via ett lokalt nätverk eller internet. Med hjälp av portskann­rar kan du skicka speciella datapaket som tester till olika portar. Du får då svar eller fel­med­de­lan­den som ana­ly­se­ras av det verktyg du använder. Beroende på skan­nings­pro­gram­mets funk­tions­om­fång kan du få in­for­ma­tion om vilka portar som är öppna och vilka som är stängda. Du kan också få data om vilka tjänster och/eller ap­pli­ka­tio­ner re­spek­ti­ve portar använder.

Portskan­ning erbjuder sys­te­mad­mi­nist­ra­tö­rer ett mycket effektivt sätt att övervaka da­ta­tra­fi­ken i ett nätverk. Med portskan­ning kan po­ten­ti­el­la svagheter filtreras bort och systemets attackyta minskas. I vissa fall kan det hjälpa ad­mi­nist­ra­tö­rer att lösa konkreta nät­verks­pro­blem. Dessutom har verktygen ingen märkbar inverkan på pre­stan­dan hos de system de skannar. Det innebär att de kan användas för sä­ker­hets­åt­gär­der utan att man behöver oroa sig för oönskade effekter på systemets prestanda.

Portskann­rar är också an­vänd­ba­ra för hemda­to­rer. Så snart du börjar använda program som kräver in­ter­ne­tan­slut­ning öppnas portarna au­to­ma­tiskt, såvida inte din brandvägg för­hind­rar detta. En portskan­ning kan hjälpa dig att hålla koll på läget och visa vilka portar som inte längre behövs. Du kan sedan stänga dem för att minska sä­ker­hets­ris­ker­na.

Hur fungerar portskan­ning?

Portskann­rar erbjuder många olika metoder. De flesta av dessa in­vol­ve­rar dock det an­slut­nings­o­ri­en­te­ra­de pro­to­kol­let TCP. För att förstå de grund­läg­gan­de pro­ces­ser­na som sker under portskan­ning är det bra att titta på den allmänna struk­tu­ren för TCP-an­slut­ning­ar:

  • Denna process, som även kallas tre­vägs­handskak­ning, inleds med att klienten skickar ett SYN-paket (syn­kro­ni­se­ring) till des­ti­na­tions­por­ten.
  • När paketet når en ap­pli­ka­tion får klienten ett kom­bi­ne­rat SYN/ACK-paket (syn­kro­ni­se­ring/be­kräf­tel­se), som bekräftar att an­slut­ning­en har upp­rät­tats.
  • I det tredje och sista steget skickar klienten ett ACK-paket (be­kräf­tel­se), vilket upprättar an­slut­ning­en och gör det möjligt att påbörja da­ta­ut­by­tet.

Om en stängd port kontaktas kommer klienten att få ett RST-paket (åter­ställ­ning) under det andra steget, vilket avslutar handskak­ning­en.

Eftersom det skulle vara svårt och tidskrä­van­de att utbyta data med olika typer av ap­pli­ka­tio­ner, är portskan­ning begränsad till enkla försök att upprätta an­slut­ning­ar, vilket följande skan­nings­me­to­der visar.

TCP-SYN-skanning

Målet med en TCP-SYN-skanning är inte att upprätta en full­stän­dig TCP-an­slut­ning. Det är därför denna typ av skanning ofta kallas för en halvöppen portskan­ning. Med hjälp av portskan­nern skickar denna metod typiska SYN-paket till enskilda portar och väntar på ett svar från målvärden. Om värden skickar tillbaka ett SYN/ACK-paket sig­na­le­rar det att re­spek­ti­ve port är öppen och att det är möjligt att upprätta en an­slut­ning. Om svaret är ett RST-paket betyder det att porten är stängd. Om det inte kommer något svar kan detta troligen spåras tillbaka till ett pa­ket­fil­ter (t.ex. en brandvägg) som finns uppströms.

TCP-SYN-skan­ning­ar är inte synliga för de ap­pli­ka­tio­ner som ut­vär­de­ras och genererar därför inga loggdata. Det är därför de också kallas stealth-skan­ning­ar.

TCP-an­slut­nings­skan­ning

Om du utför en an­slut­nings­skan­ning med din portskan­ner genererar och skickar du inte själva da­ta­pa­ke­tet. Istället använder du sys­te­man­ro­pet connect. Detta finns till­gäng­ligt på nästan alla ope­ra­tiv­sy­stem. Om ett an­slut­nings­för­sök lyckas betyder det att porten är öppen. Om an­slut­nings­för­sö­ket miss­lyc­kas betyder det att porten är stängd. Om en an­slut­ning lyckades (dvs. en port var öppen) kan du se att denna skan­nings­tek­nik användes i ap­pli­ka­tio­nens loggfiler. In­for­ma­tion om vilka fil­tre­rings­pro­gram som användes kommer dock inte att till­han­da­hål­las. Om du inte har rät­tig­he­ter att skicka rå­da­ta­pa­ket kan TCP-an­slut­nings­skan­ning vara ett an­vänd­bart al­ter­na­tiv till SYN-skan­ning­ar.

TCP-FIN-, Xmas- och Null-skan­ning­ar

Dessa tre metoder för portskan­ning gör det också möjligt att skilja mellan öppna och stängda portar. Här används två grund­läg­gan­de begrepp, som do­ku­men­te­ras i RFC 793:

  1. Stängda portar ska alltid svara på paket (så länge de inte är RST-paket) med sitt eget RST-paket.
  2. Öppna portar ska ignorera alla paket som inte är markerade som SYN, RST eller ACK.

Vid skanning av RCF-kom­pa­tib­la system utnyttjar dessa skan­nings­me­to­der dessa principer med hjälp av sina egna paket:

  • Null-skan­ning­en använder inga speciella mar­ke­ring­ar.
  • Vid FIN-skan­ning­ar skickar portskan­nern FIN-paket (finish).
  • Xmas -skan­ning­ar använder en kom­bi­na­tion av FIN-, PSH- (push) och URG-mar­ke­ring­ar (urgent), vilket får paketen att lysa upp som en julgran.

Alla tre skan­nings­me­to­der­na fungerar på samma sätt. På grund av RCF-reglerna sä­ker­stäl­ler test­pa­ke­ten att stängda portar svarar med RST-paket och att öppna portar inte ger något svar. Alla routrar skickar inte fel­med­de­lan­den om en port filtreras, vilket kan innebära att en filtrerad port är inblandad om inget med­de­lan­de visas (förutom möj­lig­he­ten att det kan vara en öppen port). Och även om denna metod är mycket mer diskret än SYN-skan­ning­ar, kanske den inte fungerar korrekt om systemen inte följer RFC 793 till punkt och pricka. Ett tydligt exempel på detta är Windows.

UDP-skanning

Vid UPD-skan­ning­ar skickas tomma UDP-rubriker utan data till alla tomma portar. Om en tjänst svarar med ett UDP-paket är mot­sva­ran­de port öppen. Om portskan­nern får fel­med­de­lan­det ”Port un­re­acha­b­le” från routern (typ 3, kod 3) iden­ti­fi­e­rar den porten som stängd. Andra fel­med­de­lan­den in­for­me­rar an­vän­dar­na om att pa­ket­fil­ter är ansvariga för att blockera portar. Problemet med UDP-port­test­ning är den enorma tid det tar. Detta beror på att det för många system kan ta lång tid att skicka ut fel­med­de­lan­den av sä­ker­hets­skäl. Dessutom svarar många av dessa system endast spo­ra­diskt på portar. Linux-kärnan begränsar antalet rapporter per sekund, vilket innebär att det skulle ta cirka 18 timmar att skanna 65 535 portar full­stän­digt.

Vilka portskann­rar finns det?

Det finns många olika skannrar som skiljer sig åt i fråga om vilka funk­tio­ner de erbjuder. De flesta av dessa verktyg finns till­gäng­li­ga som freeware eller open source -al­ter­na­tiv. Många av dessa har klassiska kom­man­do­rads­pro­gram som kan användas via separata grafiska gräns­snitt. Dessutom finns det många online-lösningar som låter användare skanna portar direkt i en webb­lä­sa­re. Tjänster som portskan­nern från DNS Tools är be­grän­sa­de i fråga om funk­tio­ner och erbjuder endast möj­lig­he­ten att kon­trol­le­ra enskilda portar. Av denna anledning är de väl lämpade al­ter­na­tiv för att utföra snabba kon­trol­ler på per­son­da­to­rer.

Netcat

Netcat (förkortat: nc) pub­li­ce­ra­des 1996 av en anonym ut­veck­la­re som kallade sig ”Hobbit”. Pro­gram­met skrevs ur­sprung­li­gen för Unix-platt­for­mar, men finns nu i många portade versioner för system som Windows samt andra tillägg som GNU Netcat, OpenBSD Netcat, Cryptcat och Netcat6 (som även stöder IPv6), vilka ingår som standard i många Linux-dis­tri­bu­tio­ner. Den grund­läg­gan­de versionen av kom­man­do­rads­verk­ty­get är främst utformat för att skicka eller läsa data via TCP- och UDP-nät­verk­san­slut­ning­ar. Det kan dock också användas för enkla portskan­nings­upp­gif­ter. Detta gör det möjligt för användare att kon­trol­le­ra statusen för portarna 20 till 30 på ett specifikt system med enkla kommandon som:

nc -zv localhost 20-30
bash

För att kon­trol­le­ra UDP-portar krävs den extra pa­ra­me­tern*-u*. Du kan också använda värd­nam­net eller IP-adressen för ett externt system (om du känner till det) istället för localhost.

Nmap

Ett betydligt kraft­ful­la­re verktyg, som är särskilt an­vänd­bart för portskan­ning, är Network Mapper, ofta kallat Nmap. Nmap är utformat för Unix-liknande system, har GPL-licens och har funnits till­gäng­ligt för Windows-system sedan 2000 (dock med be­gräns­ning­ar). Detta innebär att TCP Connect-skan­ning­ar tar opro­por­tio­ner­ligt lång tid och att skanning av egna system­por­ter endast är möjlig med indirekta sökvägar. I allmänhet kan Nmap köras via en kom­man­do­rad. Zenmap, å andra sidan, har ett hög­pre­ste­ran­de grafiskt gräns­snitt som gör det enkelt för an­vän­dar­na att använda nät­verks­verk­ty­get.

Nmap-skaparen Gordon Lyon och Nmap-ut­veck­lings­tea­met ansvarar för vi­da­re­ut­veck­ling­en av pro­gram­met och dess portskan­nings­funk­tio­ner. I synnerhet tekniker som OS-fin­gerav­tryck (dvs. att iden­ti­fi­e­ra mål­vär­dens ope­ra­tiv­sy­stem) och avläsning av tjänster som döljer sig bakom portar gör Nmap till en av de mest populära portskan­nings­lös­ning­ar­na. Följande tabell visar de olika metoder som pro­gram­met erbjuder:

Metoder för portskan­ning Nmap-kommando Be­skriv­ning
TCP-an­slut­nings­skan­ning nmap -sT värd Klassisk kontroll för icke-ad­mi­nist­ra­tö­rer
TCP Syn-skanning nmap -sS värd Snabba, obemärkta in­spek­tions­me­to­der för ad­mi­nist­ra­tö­rer.
TCP FIN-/XMAS-/Null-skanning nmap -sF värd nmap -sX värd nmap -sN värd Metoder som kan kringgå brand­väg­gar
TCP ping -skanning nmap -sP värd För tra­di­tio­nel­la portskan­ning­ar; hjälper till att kon­trol­le­ra till­gäng­lig­he­ten för en värd.
TCP ACK-skanning nmap -sA värd Fast­stäl­ler le­ve­re­ra­de portar men gör ingen åt­skill­nad mellan öppna och stängda portar.
TCP-föns­ters­kan­ning nmap -sW värd Jämförbar med ACK-skanning; kan verifiera vissa öppna och stängda portar.
TCP Maimon-skanning nmap -sM värd Kom­bi­na­tion av FIN- och ACK-skan­ning­ar.
TCP-idle-skanning nmap -sI zombie värd värd Minst märkbar, mest komplex och därmed lång­sam­mas­te skan­nings­me­tod; körs via en tredje dator som märks som en “zombie” av Nmap.
UDP-skanning nmap -sU värd Skan­nings­me­to­der för an­slut­nings­lö­sa UDP-portar
SCTP init-skanning nmap -sY värd Portskan­ning med SCTP, ett al­ter­na­tiv till TCP och UDP
IP-pro­to­koll­s­kan­ning nmap -sO värd Ingen portskan­ning; kon­trol­le­rar vilket IP-baserat protokoll som stöds på mål­sy­ste­met

Du kan ladda ner både Nmap och gräns­snit­tet Zenmap för ditt ope­ra­tiv­sy­stem på Nmaps of­fi­ci­el­la webbplats. Både den aktuella (stabila) versionen och en beta­ver­sion (ut­veck­lings­ver­sion) finns till­gäng­li­ga.

Varför portskan­ning inte alltid är lagligt

Det är inte alltid lagligt att kon­trol­le­ra portar. Så snart ett försök tillexploit (ett begrepp som används av cy­ber­sä­ker­hets­ex­per­ter för att beskriva ut­nytt­jan­de av en sä­ker­hets­brist eller lucka) görs, kan den person eller grupp som är ansvarig för detta drabbas av po­ten­ti­el­la rättsliga kon­se­kven­ser.

Det är dock mindre tydligt hur den rättsliga si­tu­a­tio­nen ser ut när ett da­tor­sy­stem stoppas på grund av intensiv portskan­ning. På grund av den höga fre­kven­sen av an­slut­nings­för­fråg­ning­ar kan sådana över­vak­nings­me­to­der utgöra en utmaning för mål­sy­ste­met, vilket ibland kan leda till att systemet kraschar. Dessutom kan ad­mi­nist­ra­tö­rer av det system som är målet för attacken upptäcka an­gri­par­nas ak­ti­vi­te­ter innan kraschen och tolka åt­gär­der­na som de första stegen i en attack.

I sådana fall är det viktigt att inte utesluta rättsliga kon­se­kven­ser. Om det angripna systemet över­be­las­tas av­sikt­ligt kan det betraktas som en DDoS-attack, vilket kan leda till att offret för attacken vidtar rättsliga åtgärder.

Du bör alltid se till att du har be­hö­rig­het att utföra en portskan­ning på ett system och endast använda tekniken för sä­ker­hets­än­da­mål och inte bara för att till­freds­stäl­la din ny­fi­ken­het. De portskan­nings­me­to­der som dis­ku­te­ras här belyser hur viktigt det är att hålla ett öga på ditt eget systems portar och nät­verks­da­to­rer samt de tjänster som har åtkomst till dem.

Gå till huvudmeny