Hoppa till innehåll

Webinar: Registrera dig för vårt kommande webbinarium

Registrera nu

En guide för att skydda och hantera SSH-nycklar för att minska säkerhetsrisker

en-guide-till-att-skydda-och-hantera-ssh-nycklar-för-att-minska-säkerhetsrisker

Om någon har tillbringat tillräckligt med tid i en IT-miljö är det mer än troligt att han/hon stöter på termen SSH-nycklar. Secure Shell (SSH)-nycklar är en åtkomstbehörighet som används i SSH-protokollet för moderna Infrastructure-as-a-Service-plattformar som AWS, Google Cloud och Azure.

Vad är SSH-nycklar?

SSH-nycklar finns i olika storlekar, medan det mest populära valet är RSA 2048-bitars kryptering. Det är jämförbart med ett enormt 617-siffrigt lösenord. Hur man genererar ett SSH-nyckelpar skiljer sig åt för olika operativsystem. På Windows kan en användare generera det genom att ladda ner och använda en SSH-klient som PuTTY, medan det på Mac- och Linux-system är möjligt med hjälp av ett terminalfönster. 

SSH-nycklar finns alltid tillgängliga i par, vilka består av en publik nyckel och en privat nyckel. Det finns tre olika typer av nycklar, beroende på vem eller vad som innehar dessa nycklar:

  • Användarnyckel

    Om de privata och publika nycklarna finns kvar hos användaren kallas denna uppsättning SSH-nycklar för användarnycklar.

  • Värdnyckel

    Om de privata och publika nycklarna finns på fjärrsystemet kommer det nyckelparet att kallas värdnycklar.

  • Sessionsnyckel

    Den här typen av nyckel används när en stor mängd data ska överföras och dessa behöver krypteras.

Hur fungerar SSH-nyckelautentisering?

Efter att ett nyckelpar har genererats kommer användaren att bli ombedd att ange SSH-användarnamnet och IP-adressen för fjärrsystemet. Nu kommer detta angivna användarnamn och protokollet att tala om för fjärrservern vilken offentlig nyckel som behövs för att autentisera användaren. Därefter kommer fjärrservern att använda den redan tillgängliga offentliga nyckeln för att kryptera ett utmaningsmeddelande som skickas tillbaka till klienten, vilket dekrypteras med den privata nyckeln på användarens system.

Efter denna process, när meddelandet har dekrypterats, kombineras det med ett tidigare insamlat sessions-ID och skickas senare tillbaka till servern. Endast om detta meddelande matchar servern autentiseras klienten och åtkomst till fjärrservern ges. Det viktigaste är att se till att dessa SSH-nycklar hanteras korrekt.

Skräddarsydda rådgivningstjänster

Vi utvärderar, strategiserar och implementerar krypteringsstrategier och lösningar anpassade efter era behov.

Hantera SSH-nycklar

Det finns flera miljoner SSH-nycklar som används för att ge åtkomst till olika digitala tillgångar, främst av Fortune 500-företag. Så ett effektivt SSH-nyckelhanteringssystem skulle bidra mycket till att minska säkerhetsriskerna. Det finns olika alternativ för att få kontroll över SSH-nycklar i både utvecklings- och produktionsmiljöer. Det innebär att användaren måste hantera SSO-leverantören, en katalogtjänst och olika systemhanteringslösningar.

Risker förknippade med SSH-nycklar

Det finns många risker eller sårbarheter som involverar SSH-nycklar, men vissa sårbarheter är kritiska och bör inte ignoreras:

Problem med SSH-nyckelspårning

Ett stort företag kan ha mer än en miljon SSH-nycklar, och det är praktiskt taget omöjligt att hålla reda på eller hantera varje nyckel. Detta scenario uppstår eftersom slutanvändare kan skapa nya SSH-nycklar eller duplicera dem utan större krångel, till skillnad från certifikat eller lösenord. När ett stort antal SSH-nycklar har samlats in blir det svårt att spåra dessa inloggningsuppgifter när utvecklingsservrar migreras till produktionsmiljöer eller när en anställd lämnar organisationen utan att ändra sin nyckel. Dessa okända SSH-nycklar kan ge angripare långsiktig privilegiumåtkomst till företagsresurser. Ibland kan dessa angripare till och med ha ett permanent åtkomstnätverk genom att utge sig för att vara användaren med den faktiska SSH-nyckeln.

Att dela SSH-nycklar är problematiskt

För effektivitets skull delas eller dupliceras ofta SSH-nycklar mellan anställda eller servrar. På grund av denna duplicering kan en enda SSH-nyckel ha flera instanser som ger åtkomst till alla maskiner i ett företag. Detta kan göra användarnas jobb enklare, men det gör också angriparnas liv enklare på lång sikt. SSH-nyckladuplicering skapar komplicerade, många-till-många privata-publika nycklar vilket minskar säkerheten, eftersom det är svårt att rotera och återkalla utan samma lämpliga nyckelfingeravtryck. Nyckeldelning är farligt eftersom det minskar hörbarheten och oavvisligheten.

Statiska SSH-nycklar

Det är ingen lätt uppgift att rotera mer än en miljon SSH-nycklar. Många IT-administratörer ändrar eller omfördelar sällan nycklar av rädsla för att en kritisk komponent eller anställd ska missa något. Dessa faktorer leder till en kraftig ökning av statiska SSH-nycklar, vilket på sätt och vis leder till att angripare komprometterar en oförändrad nyckel, använder den eller rör sig i sidled inom organisationen och får tillgång till kritiska eller känsliga tillgångar.

Inbäddade SSH-nycklar

SSH-nycklar är ofta inbäddade i en applikation eller ett skript, vilket gör det mycket svårare att ändra dem eftersom koden och de inbäddade nycklarna har en viss nivå av samordning för att förhindra systemintrång. Detta kan leda till bakdörrar för angripare, genom dessa inbäddade SSH-nycklar i applikationer, kod och skript.

Svag SSH-konfiguration

SSH-klient- och serverimplementeringar som OpenSSH inkluderar några specifika konfigurationsparametrar som IT-administratörer missar. Att välja standardinställningar som portvidarebefordran ökar säkerhetsriskerna avsevärt.

Säkerhetsproblem med SSH

Det finns några sårbarheter relaterade till säkerhetsåtgärder som:

  • Brute force- och malware-attacker

    Angripare riktar in sig på SSH-nycklar för att få lateral förflyttning inom ett företag, utföra brute force-attacker och skadlig kodattacker genom att skapa bakdörrar.

  • Kapning av SSH-sessioner och obehörig åtkomst

    Angripare kan kapa en användares SSH-session genom att utnyttja den betrodda kommunikationen som upprättats mellan flera system. Detta görs genom att kapa eller få obehörig åtkomst till användarens socket. Det är därför det är bättre att undvika standardkonfigurationer, eftersom dessa äventyrar den privilegierade användaråtkomsten.

Mildra SSH-säkerhetsattacker

Även om det finns många sårbarheter relaterade till SSH-nyckelhantering finns det också sätt att förhindra dem:

  1. Upptäck och kartlägg nycklar

    Användaren behöver identifiera SSH-servrar, certifikat och privata nycklar som har behörighet att bevilja SSH-åtkomst. Regelbundna nätverksskanningar och användning av identifieringsverktyg för att lokalisera och underhålla den centraliserade vägen är också avgörande. Det är också viktigt att kartlägga nyckel-användar-relationen.

  2. Kontrollera SSH-nycklar och åtkomst

    Det är bättre att implementera SSH-nyckelhanteringspolicyer och -metoder för att generera nya nycklar och ta bort oanvända nycklar. Användaren kan använda katalogtjänster för att tilldela de nödvändiga godkännandenivåerna för att komma åt SSH-inloggningsuppgifterna.

  3. Inaktivera root-inloggning

    Root-kontot är det primära användarkontot som möjliggör fullständig åtkomst till alla UNIX-baserade system. Angripare riktar in sig på denna root-inloggning för att få obegränsad åtkomst till kritiska system.

Slutsats

Om IT-administratörerna upprätthåller korrekta revisionsloggar för att säkerställa att alla nycklar som används följer policyerna, kan detta leda till transparens och lämpliga modifieringar kan göras för nyckelgenerering och rotation.