Re: Securing sshd against unwanted login attempts

From: Erik Norgaard (none@norgaard--locolomo.org.lh.bsd-dk.dk)
Date: Sun 31 Oct 2004 - 16:53:37 CET


Date: Sun, 31 Oct 2004 16:53:37 +0100
From: Erik Norgaard <none@norgaard--locolomo.org.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: Securing sshd against unwanted login attempts

Flemming Frøkjær wrote:
>>Denne løsning løser intet. Nu vil du så se en masse forsøg på at gætte
>>port-knocking sekvensen. Det har jo sådan set ikke rigtig løst dit
>>problem, det har bare erstattet det med et andet.
>
> Forkert. De skal jo foerst vide at der er en port knocking daemon som
> lytter, og hvilke porte der monitoreres.

Ligesom at man først skal vide at der er en ssh daemon og gætte den
rigtige sekvens af tegn i kodeordet. Så nu skal crackerne så lave et
script der forsøger at brute-force port-knocking daemonen ved at flodde
med en masse pakker til vilkårlige porte.

> Hvorfor skulle jeg ikke kunne kryptere port knocking koden?

Port-knocking fungerer ved at du sender pakker til bestemte porte i en
bestemt rækkefølge. Det svarer til at indtaste en pin-kode, og enhver
kan kigge dig over skulderen. Det er port-numrene der er koden. Og der
er ikke noget brugernavn.

Det eneste der indikerer din identitet er source ip - men hvis det kunne
bruges kunne du jo bare lukke for forbindelser fra alle andre ip.

Hvis du vil have port-numrene krypteret skal du bruge ex. IPSec, men så
har du jo allerede en sikker forbindelse.

Port-knocking er ikke state-full som en ssh-forbindelse. Man sender bare
et antal udp (eller tcp?) pakker til bestemte porte i en bestemt række-
følge. Du får ingen pakker igen, men serveren åbner for adgang til
service fra dit ip.

Dermed bliver firewall eller serveren usynlig for standard port-scan-
ninger. Pointen er at du gerne vil undgå at annoncere en bestemt service
til andre end dem der må bruge den.

Du kan opnå det samme og bedre ved i stedet at sende en udp-pakke (der
jo heller ikke er state-full) med en krypteret payload - du har jo 1500
bytes til rådighed. Data er krypteret med på forhånd delte nøgler og kan
indeholde identifikation og anden data så den ikke kan spoofes.

> Det drejer sig ikke om sikkerhed i sig selv, men om at faa relevante
> log filer. Jeg skrev netop sikre mod unvanted login attempts. En
> sikker server skal overvaages og saa er det vaesentligt at sortere
> stoej fra saa man kan se de serioese angreb.

Hvornår er angrebet seriøst? Er det seriøst hvis man forsøger at broute-
force et password uden held? Er det seriøst hvis man forsøger at gætte
port-knocking sekvensen uden held?

Min pointe er at så vil du få støj fra din port-knocking daemon. Og du
skal så til at vurdere hvornår et login-forsøg med port-knocking er
seriøst eller ej.

Medmindre du har store resourcer til at forfølge alle der forsøger at
logge ind, så er det normalt først seriøst når login lykkedes. Der er
rimelig nemt at sortere de mislykkede forsøg fra.

Hvis du gerne vil blokkere robot-angreb på bestemte services for at få
mere overskuelige logfiler, så flyt din ssh til en anden port, og hvis
du kan se at alle angreb kommer fra en bestemt region, så blokker den
region for den pågældende service. Den eneste fordel du får ved port-
knocking er at det ikke er særlig udbredt, og derfor heller ikke særlig
angrebet.

port-knocking software er ikke særlig udbredt, så hvis du bruger dette
kan det blive svært for dig at logge ind når du er på rejse. Men alle
kan hente putty og logge på en anden port.

Alternativt, så kan Snort være reaktiv og lukke forbindelser der bryder
reglerne ved eksempelvis at etablere mange forbindelser.

Mvh Erik

-- 
Ph: +34.666334818                                  web: www.locolomo.org
S/MIME Certificate: http://www.locolomo.org/crt/2004071206.crt
Subject ID:  A9:76:7A:ED:06:95:2B:8D:48:97:CE:F2:3F:42:C8:F2:22:DE:4C:B9
Fingerprint: 4A:E8:63:38:46:F6:9A:5D:B4:DC:29:41:3F:62:D3:0A:73:25:67:C2



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:44 CET