Hvis en Linux-server bare åpner SSH-port 22 og HTTP-port 80, må vi gå gjennom en av disse to portene for å hacke oss inn på serveren fra internett?
Hvis en Linux-server bare åpner SSH-port 22 og HTTP-port 80, må vi gå gjennom en av disse to portene for å hacke oss inn på serveren fra internett?
Egentlig ikke. Jeg vil si det kommer an på trusselmodellen din. Det kan være andre trusler som ikke trenger å bruke disse portene for å kompromittere serveren din. Det første eksemplet jeg kan tenke på akkurat nå, er et angrep fra forsyningskjeden. Når du oppdaterer programvare på serveren din, hvis den oppdaterte programvaren har blitt kompromittert av et forsyningskjedeangrep, blir serveren din smittet. Eller hvis du ved en feiltakelse installerer eksempelprogram
i stedet for eksempel_program
(merk bindestrek i stedet for understrek), og eksempelprogram
var skadelig og hadde fått det navnet med vilje for å forvirre deg, vil serveren din bli kompromittert. Jeg tror noe som dette skjedde nylig ... å, i går ( Bitcoin stjeler apper i Ruby repository). Andre eksempler? Kanskje noen MITM i utgående tilkoblinger fra serveren din. La oss ikke glemme phishing eller noe som involverer sosialingeniør.
Så for å være presis, hvis du spurte meg "generelt, kan jeg bare bli hacket av en ekstern trussel gjennom åpne porter?", Mitt svar ville være nei. Hvorvidt noen trusler er sannsynlige eller ikke, avhenger av trusselmodellen din, som igjen avhenger av hva serveren din gjør, hvordan du administrerer den, hvem du er osv.
Nei.
Det er flere ting som kan angripes på en måldatamaskin, og en serveringsapplikasjon (httpd eller sshd for eksempel) er bare en av disse tingene.
Husk at det er en hel nettverksstabel mellom den fysiske nettverksporten på nettverkskortet og applikasjonen som håndterer den faktiske trafikken (dvs. sshd) - i denne stabelen inneholder det ting som kjernefunksjonalitet som brannmurer, nettverksdrivere osv. Som alle kan være angrepet separat til behandlingsapplikasjonen.
Se antall sårbarheter for fjernkjøring av Linux-kjernen fremhevet her som ikke krever noe håndteringsprogram for å utnytte, og i stedet tillateren angriper for å utføre kode bare ved å lage en dårlig nettverkspakke.
Selvfølgelig er det lettere å angripe applikasjonen i stedet for kjernen, fordi kjernen har en tendens til å bli mye tyngre inspisert.
Et forsøk på å liste noen måter å hacke inn på en server uten å bruke http eller ssh:
Eksempel på 4.: For lenge siden var det et ping of death -angrep som utnyttet en feil i IP-lagdriveren, ingen åpen port var nødvendig i det hele tatt.
Å stenge havner er en veldig tidlig forsvarslinje.
Når en port er åpen, kjører det noe programvare som håndterer dataene som kommer inn på den porten.Denne programvaren kan ha feil som gjør at et angrep kan lykkes.Hvis du åpner 100 porter, er det 100 stykker programvare som potensielt er usikre.Bare med to åpne porter er det bare to programvarer som er potensielt sårbare.Å sørge for at 100 stykker ikke er sårbare er åpenbart mye vanskeligere enn to stykker.
Men en angriper kan prøve å komme seg inn gjennom en annen rute.Serveren din skal motta blokker med data som inneholder et portnummer, og programvaren din bør lede blokken til riktig port eller kaste den, eventuelt logge den.Hvis programvaren som sender innkommende blokker til porter har feil, kan en angriper utnytte disse feilene, og en slik utnyttelse kan være uavhengig av hvilke porter som er åpne.
Hvis serveren bare har ssh- og http-tjenester åpne, må du utnytte mulige sårbarheter relatert til en eller begge tjenestene, for å hacke inn på serveren.
En annen måte ville være fysisk tilgang til serverens tastatur, men jeg tror du mente bare å angripe gjennom nettverket.(husk å skanne alle 1-65535-porter)