Security, Tech

Hur förhindrar vi publik access till våra plattformstjänster?

Samir Abdou

Vad är en plattformstjänst och varför är den publik?

En plattformstjänst, även kallad Platform as a Service (PaaS), är en tjänst där den underliggande infrastrukturen ansvaras för av ett externt bolag, till exempel Microsoft. Ni som kund behöver bara ansvara över applikationen som är bunden till infrastrukturen (exempelvis data).

Fördelarna med plattformstjänster är många, som skalbarhet, flexibilitet, prestanda, ekonomi och säkerhet.

När du skapar plattformstjänster i Azure är de per automatik publika för hela internet eftersom de tilldelas ett unikt DNS-namn.

Anledningen till att PaaS är publika är för att det ska vara så enkelt som möjligt att komma i gång och nyttja tjänsten. Men om man inte har en tydlig strategi initialt, så är det väldigt lätt att bygga på sig en stor IT-skuld över tid.

Vad introducerar vi för risker när våra plattformstjänster är publika?

Riskerna ser olika ut beroende på vilken PaaS vi använder. Exempel på PaaS som finns är till exempel appar, lagringskonton, databaser eller ett nyckelvalv.

Tar vi ett nyckelvalv som exempel så innehåller det oftast hemligheter, certifikat eller nycklar. Då möts vi av följande risker:

  • Ifall ett användarkonto med behörigheter till nyckelvalvet hamnar på vift, så riskeras hemligheter, certifikat och nycklar att vara nåbara över det publika internet.
  • Information blir tillgänglig för potentiella angripare om vilken typ av infrastruktur man använder och vilken eventuell sårbarhet de kan utnyttja i applikationer/resurser.
  • Om din plattformstjänst skall anropa, eller blir anropad av något internt i ditt nätverk, så underlättar det om resurserna är i samma nätverk så att trafiken slipper gå en omväg genom det publika internet.

Målet bör alltid vara att minimera attackytan och förhindra vägar in till er miljö från det publika internet. För att efterleva detta måste vi ha en design som tillåter oss att bygga rätt infrastruktur från början. En rekommendation från vår sida är att följa Microsofts Zero Trust Principles.

Zero Trust Principles består av tre grundpelare; verifiera explicit, använd minst privilegierad åtkomst och förutsätt intrång.

Dessa principer kan ses som en del av en betydligt större strategi som vi alltid bör efterleva när vi designar, implementerar och jobbar i molnet.

Hur förhindrar vi att våra plattformstjänster är publika?

Med hjälp av en private endpoint kan vi blockera trafiken till den publika delen av vår tjänst och i stället ansluta ett virtuellt nätverkskort, som i sin tur är anslutet direkt till vårt interna nätverk med en privat IP-adress. På så sätt kontrollerar vi trafiken till och från vår PaaS, precis som vilken annan trafik som helst i vårt virtuella nätverk.

Vi kan även använda oss av Azure Private DNS för att sätta ett internt DNS-namn på den privata IP-adressen. På så vis kan vi internt nå applikationen via ett DNS-namn, likt hur vi gjorde tidigare när den var publik. Sedan kan du associera din Azure Private DNS-zon till ett virtuellt nätverk, där du vill att namnuppslagen ska gälla.

Om ni själva hanterar interna DNS-servrar, så behöver ni även lägga till så kallade Conditional Forwarders i er DNS-server till respektive Azure Private DNS-zon, för att uppslagen även skall fungera över det interna nätverket.

Sammanfattning

Nu har vi efterlevt ”förutsätt intrång”-delen av Zero Trust Principles, genom att minimera antalet vägar in till vår miljö. Vi kan även kontrollera och inspektera trafiken, eftersom nyckelvalvet är en del av vårt privata nätverk och är bakom brandväggar, där vi har investerat i säkerhetsfunktioner och har koll på trafiken.

 

Författare: Samir Abdou, Molnkonsult.

Upptäck mer