Skydda programkonfiguration och beroenden


Programkonfigurationsinformation kan lagras med programmet. Det är dock inte en rekommenderad metod. Överväg att använda ett dedikerat konfigurationshanteringssystem som Azure App Configuration eller Azure Key Vault. På så sätt kan den uppdateras oberoende av programkoden.

Program kan innehålla hemligheter som databasanslutningssträngar, certifikatnycklar och så vidare. Lagra inte hemligheter i källkod eller konfigurationsfiler. Förvara dem i en säker lagring, till exempel Azure Key Vault. Identifiera hemligheter i kod med statiska kodgenomsökningsverktyg. Lägg till genomsökningsprocessen i din pipeline för kontinuerlig integrering (CI).

Mer information om hemlighetshantering finns i Hantering av nycklar och hemligheter.

Hanteras fel och undantag korrekt utan att exponera den informationen för användarna?


När du hanterar programundantag ska du göra så att programmet misslyckas på ett smidigt sätt och logga felet. Ange inte detaljerad information om felet, till exempel anropsstack, SQL frågor eller fel utanför intervallet. Den här informationen kan ge angripare värdefull information om programmets interna delar.

Kan konfigurationsinställningarna ändras utan att programmet återskapas eller omdistribuerats?


Programkod och konfiguration bör inte dela samma livscykel för att aktivera driftaktiviteter. Dessa aktiviteter omfattar sådana som ändrar och uppdaterar specifika konfigurationer utan inblandning av utvecklare eller omdistribution.

Tas plattformsspecifik information bort från server-klientkommunikationen?


Visa inte information om programplattformen. Sådan information (till exempel , ) kan visas via X-Powered-ByX-ASPNET-VERSION HTTP-banderoller, HTTP-huvuden, felmeddelanden och sidfötter på webbplatser. Skadliga aktörer kan använda den här informationen när de mappar programmets attackvektorer.

Föreslagna åtgärder

Överväg att Azure Front Door eller API Management för att ta bort plattformsspecifika HTTP-huvuden. Använd i Azure CDN för att separera värdplattformen från slutanvändare. Azure API Management erbjuder transformeringsprinciper som gör att du kan ändra HTTP-huvuden och ta bort känslig information.

Läs mer

Används Azure-principer för att styra konfigurationen av lösningsresurserna?


Använd Azure Policy för att distribuera inställningar där det är tillämpligt. Blockera resurser som inte uppfyller de säkerhetskrav som definierats under tjänstaktiveringen.

Beroenden, ramverk och bibliotek

Vilka ramverk och bibliotek används av programmet?


Programramverk uppdateras ofta och släpps av leverantören eller communityn. Det är viktigt att spåra de ramverk och bibliotek som används av programmet, inklusive eventuella resulterande säkerhetsrisker som de medför. Dessa ramverk och bibliotek omfattar anpassade, OSS, tredje part och andra. Förstå och hantera de tekniker som programmet använder, till exempel:

  • .NET Core
  • Spring
  • Node.js

Automatiserade lösningar kan vara till hjälp med den här utvärderingen.

Överväg följande metodtips:

  • Verifiera säkerheten för all öppen källkod som lagts till i ditt program. Kostnadsfria verktyg som hjälper dig med den här utvärderingen är:

    • OWASP-Dependency-Check
    • NPM-granskning
    • WhiteSource Bolt

    De här verktygen hittar inaktuella komponenter och uppdaterar dem till de senaste versionerna.

  • Upprätthåll en lista över ramverk och bibliotek som en del av programinventeringen. Håll också reda på de versioner som används. Om sårbarheter publiceras hjälper den här medvetenheten till att identifiera berörda arbetsbelastningar.

  • Uppdatera ramverk och bibliotek som en del av programmets livscykel. Prioritera kritiska säkerhetskorrigeringar.

Övervakas förfallodatumen för SSL/TLS-certifikat och finns det processer för att förnya dem?


Det är mycket viktigt att spåra förfallodatum för SSL/TLS-certifikat och förnya dem i rätt tid. Vi rekommenderar att processen automatiseras, även om detta ofta beror på certifikatutfärdaren som används för certifikatet. Om det inte är automatiserat bör tillräckliga aviseringar tillämpas för att säkerställa att förfallodatum inte går obemärkt förbi.

Läs mer

Refererade Azure-tjänster

Nästa steg

Gruppresurser

Säkerheten för ett program som finns i Azure är ett delat ansvar mellan dig som programägare och Azure. För IaaS ansvarar du för konfigurationer som rör virtuella datorer, operativsystem och komponenter som är installerade på den. För PaaS ansvarar du för säkerheten för programtjänstkonfigurationerna och ser till att de beroenden som används av programmet också är säkra.

Huvudpunkter

  • Lagra inte hemligheter i källkod eller konfigurationsfiler. Förvara dem i ett säkert lager, till exempel Azure App Configuration eller Azure Key Vault.
  • Visa inte detaljerad felinformation när du hanterar programundantag.
  • Exponera inte plattformsspecifik information.
  • Lagra programkonfigurationen utanför programkoden för att uppdatera den separat och för att få bättre åtkomstkontroll.
  • Begränsa åtkomsten till Azure-resurser som inte uppfyller säkerhetskraven.
  • Verifiera säkerheten för all öppen källkod som lagts till i ditt program.
  • Uppdatera ramverk och bibliotek som en del av programmets livscykel.

Konfigurationssäkerhet

Under designfasen bör du överväga hur du lagrar hemligheter och hanterar undantag. Här är några punkter.

Hur lagras programkonfigurationen och hur kommer programmet åt den?