Programmering

Portbanking: En sikkerhetside hvis tid er kommet

Mange, mange innovasjoner kommer fra Linux- og Unix-verdenen. Få er mer spennende for meg enn å banke på. Som et globalt sikkerhetsprogramtillegg for å beskytte tjenester, har det mye å gjøre og få ulemper. Av en eller annen grunn lider det imidlertid av mangel på bruk og forståelse. Mange administratorer har kanskje hørt om det, men få vet hvordan de skal implementeres. Enda færre har brukt den.

Portbanking fungerer på konseptet at brukere som ønsker å knytte til en nettverkstjeneste, må starte en forhåndsbestemt rekkefølge av portforbindelser eller sende en unik bytestreng før den eksterne klienten kan koble til den eventuelle tjenesten. I sin mest grunnleggende form må fjernbrukerens klientprogramvare først koble til en eller flere porter før den kobles til den endelige destinasjonsporten.

Anta for eksempel at den eksterne klienten vil koble til en SSH-server. Administratoren konfigurerer portbankingskravene på forhånd, og krever at tilkobling av eksterne klienter først kobles til portene 3400, 4000 og 9887 før den kobles til den endelige destinasjonsporten, 22. Administratoren forteller alle legitime klienter den riktige "kombinasjonen" for å koble til ; ondsinnede hackere som ønsker å koble seg til SSH-tjenesten nektes tilgang uten kombinasjonen. Portbanking vil foliere selv port-scanning og banner-grabbing entusiaster.

Fordi en kombinasjon av porter og transportprotokoller kan brukes, er antallet mulige sekvenser som en angriper måtte gjette høyt. Selv om hackeren visste at bare tre havneknopper var involvert, som i det veldig enkle eksemplet ovenfor, med 64 000 mulige TCP, UDP og ICMP (Internet Control Message Protocol) porter å velge mellom, vil det resulterende settet med mulige kombinasjoner for hackeren å velge mellom. prøve løper inn i millioner. Havneskannere vil bli frustrerte fordi portbanking bruker lukkede porter for å lytte (mer om dette nedenfor).

Den største fordelen av alt er at baneknusing er plattform-, service- og applikasjonsuavhengig: Ethvert operativsystem med riktig klient- og serverprogramvare kan dra nytte av beskyttelsen. Selv om portbanking hovedsakelig er en Linux / Unix-implementering, finnes det Windows-verktøy som kan gjøre det samme. Og i likhet med IPSec og andre beskyttelsesmekanismer, er det ingen av de involverte tjenestene eller applikasjonene som må være portbankende.

Port-banke serverprogramvare fungerer ved å overvåke brannmurloggen og se etter tilkoblinger til lukkede porter, eller ved å overvåke IP-stakken. Den tidligere metoden krever at alle avviste tilkoblingsforsøk skrives raskt til en brannmurlogg, og port-banktjenesten (daemon) overvåker og korrelerer legitime port-banking-kombinasjoner. For autentiserte bankekombinasjoner, forteller porttjener-tjenesten da brannmuren å åpne den endelige forespurte porten for bare den legitime port-banke-klienten - vanligvis spores etter IP-adresse.

Mer avanserte implementeringer av bankebanking fungerer ved IP-bunken, og du kan enten lytte og ta opp forbindelser til lukkede porter, eller bruke en mer sofistikert mekanisme. Noen implementeringer ser etter en bestemt byteserie i det første tilkoblingsforsøket. Disse bytene kan til og med "skjules" i en enkel ICMP-ekko-ping-ping. Enda sterkere portbankende forhandlingsmetoder innebærer kryptering eller asymmetrisk autentisering.

Portbanking kan også tjene som et ekstra sikkerhetslag for å beskytte høyrisiko fjernadministrasjonstjenester, for eksempel SSH og RDP (Remote Desktop Protocol). Dessverre har portbanking blitt brukt av mer enn noen få rootkit-trojanere, da deres hackerskapere prøver å beholde kontrollen over sine egne ondsinnede kreasjoner.

Kritikere peker ofte på det faktum at avlytting av hackere kan være i stand til å fange opp og spille av den vellykkede portbankende sekvensen eller byteserien. Selv om dette kan være sant med de grunnleggende implementeringene, vil angrep som disse bli klemt ved å bruke mer sofistikerte autentiseringsmetoder eller minimeres ved å bruke sekundære hardkodede tillatte IP-adresser som TCP-innpakninger.

Hvis en hacker ikke klarer å samle på kombinasjonen din, er det verste tilfellet at inntrengeren omgår port-bankebeskyttelsen og nå må møte de vanlige tjenestesikkerhetstiltakene - påloggingspassord og så videre. Så vidt jeg kan si, kan bruk av havnebanking bare styrke enhver forsvarsdypende strategi og gjør ingenting for å skade den.

Jeg skulle ønske Windows hadde innebygd portbanking-mekanismer. Det ville være et fint supplement til Microsofts markedsplasstestede IPSec- og Kerberos-implementeringer. Linux / Unix-verdenen har en mengde portbanking-implementeringer å velge mellom, og ingen av dem krever utrolig ekspertise for å konfigurere eller bruke.

For mer informasjon om portbanking, besøk www.portknocking.org eller en.wikipedia.org/wiki/Port_knocking. For konfigurasjonsdetaljer fra ett implementeringseksempel, sjekk ut gentoo-wiki.com/HOWTO_Port_Knocking.

En utmerket samling av port-banke programvare og verktøy finner du på www.portknocking.org/view/implementations, og en annen Windows-basert port-knocking server og klient finner du på www.security.org.sg/code/portknock1 .html.

$config[zx-auto] not found$config[zx-overlay] not found