Sdílet prostřednictvím


Rámec zabezpečení: Správa konfigurace | Zmírnění rizik

Produkt/služba Článek
Webová aplikace
Databáze
Webové rozhraní API
Zařízení IoT
IoT Field Gateway
Cloudová brána IoT
Hranice důvěryhodnosti počítače
Azure Storage
WCF

Implementace zásad zabezpečení obsahu (CSP) a zakázání vloženého JavaScriptu

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy Úvod do zásad zabezpečení obsahu, referenční informace o zásadách zabezpečení obsahu, úvod do zásad zabezpečení obsahu, můžu použít CSP?
Kroky

Content Security Policy (CSP) je mechanismus zabezpečení hloubkové ochrany, standard W3C, který umožňuje vlastníkům webových aplikací mít kontrolu nad obsahem vloženým na svém webu. CSP se přidá jako hlavička odpovědi HTTP na webovém serveru a vynucuje se na straně klienta prohlížeči. Jedná se o povolené zásady založené na seznamu – web může deklarovat sadu důvěryhodných domén, ze kterých lze načíst aktivní obsah, jako je JavaScript.

CSP poskytuje následující výhody zabezpečení:

  • Ochrana před XSS: Pokud je stránka zranitelná vůči XSS, útočník ji může zneužít dvěma způsoby:
    • Vložit <script>malicious code</script>. Toto zneužití nebude fungovat kvůli základnímu omezení CSP-1.
    • Vložit <script src="http://attacker.com/maliciousCode.js"/>. Toto zneužití nebude fungovat, protože doména řízená útočníkem nebude v seznamu povolených domén CSP.
  • Kontrola nad exfiltrací dat: Pokud se jakýkoli škodlivý obsah na webové stránce pokusí připojit k externímu webu a ukrást data, CSP připojení přeruší. Důvodem je to, že cílová doména nebude v seznamu povolených poskytovatelů CSP.
  • Obrana proti klikni-jacking: click-jacking je technika útoku, pomocí které nežádoucí osoba může zarámovat originální web a vynutit uživatele, aby klikli na prvky uživatelského rozhraní. V současné době se obrana proti konektoru klikni dosahuje konfigurací hlavičky odpovědi X-Frame-Options. Ne všechny prohlížeče respektují tuto hlavičku a V budoucnu bude CSP standardním způsobem, jak se bránit proti klikni- jacking.
  • Hlášení útoků v reálném čase: Pokud na webu s podporou CSP dojde k útoku prostřednictvím injektáže, prohlížeče automaticky aktivují oznámení koncovému bodu nakonfigurovaného na webovém serveru. CSP tak slouží jako systém upozornění v reálném čase.

Příklad

Příklad zásady:

Content-Security-Policy: default-src 'self'; script-src 'self' www.google-analytics.com 

Tato zásada umožňuje skriptům načíst pouze ze serveru webové aplikace a serveru Google Analytics. Skripty načtené z jakéhokoli jiného webu budou odmítnuty. Pokud je na webu povolený CSP, následující funkce se automaticky deaktivují, aby se zmírnit útoky XSS.

Příklad

Vložené skripty se nespustí. Následují příklady vložených skriptů.

<script> some JavaScript code </script>
Event handling attributes of HTML tags (for example, <button onclick="function(){}">
javascript:alert(1);

Příklad

Řetězce nebudou vyhodnoceny jako kód.

Example: var str="alert(1)"; eval(str);

Povolení filtru XSS v prohlížeči

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy Filtr ochrany XSS
Kroky

Konfigurace hlavičky odpovědi X-XSS-Protection řídí filtr skriptu mezi weby prohlížeče. Tato hlavička odpovědi může mít následující hodnoty:

  • 0: Tím se filtr zakáže.
  • 1: Filter enabled Pokud se zjistí útok skriptování mezi weby, aby se zabránilo útoku, prohlížeč stránku sanitizuje.
  • 1: mode=block : Filter enabled. Místo sanitizace stránky, když se zjistí útok XSS, prohlížeč zabrání vykreslení stránky.
  • 1: report=http://[YOURDOMAIN]/your_report_URI : Filter enabled. Prohlížeč stránku sanitizuje a nahlásí porušení předpisů.

Jedná se o funkci Chromium využívající hlášení porušení CSP k odeslání podrobností na identifikátor URI podle vašeho výběru. Poslední dvě možnosti jsou považovány za bezpečné hodnoty.

ASP.NET aplikace musí před nasazením zakázat trasování a ladění.

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy ASP.NET Přehled ladění, přehled trasování ASP.NET, Postupy: Povolení trasování pro aplikaci ASP.NET, Postupy: Povolení ladění pro ASP.NET aplikace
Kroky Pokud je pro stránku povolené trasování, každý prohlížeč, který požaduje, získá také informace o trasování, které obsahují data o interním stavu serveru a pracovním postupu. Tato informace by mohla být citlivá na zabezpečení. Pokud je pro stránku povolené ladění, výsledkem chyb na serveru jsou úplná data trasování zásobníku prezentovaná v prohlížeči. Tato data mohou vystavit informace citlivé na zabezpečení pracovního postupu serveru.

Přístup pouze k JavaScriptům třetích stran z důvěryhodných zdrojů

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky JavaScripty třetích stran by měly být odkazovány pouze z důvěryhodných zdrojů. Referenční koncové body by měly být vždy na protokolu TLS.

Ujistěte se, že ověřené ASP.NET stránky zahrnují nápravu uživatelského rozhraní nebo ochranu proti klikání.

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy OWASP click-jacking Defense Tahák, Internet Explorer Internals - Boj proti klikni-jacking s X-Frame-Options
Kroky

Klikni a zvednutí, označované také jako "útok na nápravu uživatelského rozhraní", je, když útočník používá více průhledných nebo neprůhledných vrstev k tomu, aby uživatel klikl na tlačítko nebo odkaz na jinou stránku, když chtěl kliknout na stránku nejvyšší úrovně.

Tohoto vrstvení dosáhnete tak, že vytvoříte škodlivou stránku s elementem iframe, který načte stránku oběti. Útočník tedy "unesl" kliknutí určené pro svoji stránku a směrování na jinou stránku, s největší pravděpodobností vlastněnou jinou aplikací, doménou nebo obojím. Pokud chcete zabránit útokům na konektory kliknutí, nastavte správné hlavičky odpovědi HTTP X-Frame-Options, které prohlížeči dávají pokyn, aby nepovolil framování z jiných domén.

Příklad

Hlavičku X-FRAME-OPTIONS lze nastavit přes web.config služby IIS. Fragment kódu Web.config pro weby, které by se nikdy neměly zarámovat:

    <system.webServer>
        <httpProtocol>
            <customHeader>
                <add name="X-FRAME-OPTIONS" value="DENY"/>
            </customHeaders>
        </httpProtocol>
    </system.webServer>

Příklad

Kód Web.config pro weby, které by měly být zarámované pouze stránkami ve stejné doméně:

    <system.webServer>
        <httpProtocol>
            <customHeader>
                <add name="X-FRAME-OPTIONS" value="SAMEORIGIN"/>
            </customHeaders>
        </httpProtocol>
    </system.webServer>

Ujistěte se, že jsou povoleny pouze důvěryhodné zdroje, pokud je v ASP.NET webových aplikacích povolená cors.

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Webové formuláře, MVC5
Atributy
Odkazy
Kroky

Zabezpečení prohlížečů brání webovým stránkám v odesílání požadavků AJAX na jinou doménu. Toto omezení se označuje jako zásada stejného původu a brání škodlivému webu ve čtení citlivých dat z jiného webu. Někdy se ale může vyžadovat, abyste bezpečně zpřístupnila rozhraní API, která můžou využívat jiné weby. Sdílení prostředků mezi zdroji (CORS) je standard W3C, který umožňuje serveru uvolnit zásady stejného původu. Pomocí CORS může server explicitně povolit některé požadavky mezi zdroji a zároveň odmítnout jiné.

CORS je bezpečnější a flexibilnější než dřívější techniky, jako je JSONP. V jádru umožňuje CORS přidávat do webové aplikace několik hlaviček odpovědi HTTP (Access-Control-*), což se dá provést několika způsoby.

Příklad

Pokud je k dispozici přístup k web.config, můžete CORS přidat pomocí následujícího kódu:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="Access-Control-Allow-Origin" value="https://example.com" />
      </customHeaders>
    </httpProtocol>

Příklad

Pokud přístup k souboru web.config není k dispozici, můžete CORS nakonfigurovat přidáním následujícího kódu C#:

HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "https://example.com")

Všimněte si, že je důležité zajistit, aby seznam původů v atributu Access-Control-Allow-Origin byl nastaven na konečný a důvěryhodný soubor zdrojů. Pokud tuto konfiguraci nenakonfigurujete nevhodně (například nastavení hodnoty jako *), umožní škodlivým webům aktivovat žádosti mezi zdroji pro webovou aplikaci >bez jakýchkoli omezení, což způsobí, že aplikace bude zranitelná vůči útokům CSRF.

Povolení atributu ValidateRequest na ASP.NET Pages

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Webové formuláře, MVC5
Atributy
Odkazy Ověření požadavku – obrana před skriptovými útoky
Kroky

Ověření požadavku je funkce ASP.NET od verze 1.1, která zabraňuje serveru přijímat obsah obsahující nekódovaný HTML. Tato funkce je navržena tak, aby pomohla zabránit některým útokům s vložením skriptu, pomocí kterých může být kód skriptu klienta nebo HTML nevědomky odeslán na server, uložen a poté prezentován ostatním uživatelům. Přesto důrazně doporučujeme, abyste ověřili všechna vstupní data a zakódovali je pomocí HTML v případě potřeby.

Ověření požadavku se provádí porovnáním všech vstupních dat se seznamem potenciálně nebezpečných hodnot. Pokud dojde ke shodě, ASP.NET vyvolá .HttpRequestValidationException Ve výchozím nastavení je povolená funkce Ověření požadavku.

Příklad

Tuto funkci ale můžete zakázat na úrovni stránky:

<%@ Page validateRequest="false" %> 

nebo na úrovni aplikace

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

Všimněte si, že funkce ověření požadavku není podporovaná a není součástí kanálu MVC6.

Použití nejnovějších verzí javascriptových knihoven hostovaných místně

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky

Vývojáři používající standardní javascriptové knihovny, jako je JQuery, musí používat schválené verze běžných knihoven JavaScriptu, které neobsahují známé chyby zabezpečení. Osvědčeným postupem je použít nejnovější verzi knihoven, protože obsahují opravy zabezpečení známých ohrožení zabezpečení ve starších verzích.

Pokud nejnovější verzi nelze použít z důvodu kompatibility, měly by se použít následující minimální verze.

Přijatelné minimální verze:

  • JQuery
    • JQuery 1.7.1
    • JQueryUI 1.10.0
    • JQuery Validate 1.9
    • JQuery Mobile 1.0.1
    • JQuery Cycle 2.99
    • JQuery DataTables 1.9.0
  • Sada nástrojů Ajax Control Toolkit
    • Ajax Control Toolkit 40412
  • ASP.NET webových formulářů a ajax
    • Webové formuláře ASP.NET a Ajax 4
    • ASP.NET Ajax 3.5
  • ASP.NET MVC
    • ASP.NET MVC 3.0

Nikdy nenačítejte žádnou javascriptovou knihovnu z externích webů, jako jsou veřejné sítě CDN.

Zakázání automatického zašifrování MIME

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy IE8 Security Part V: Komplexní ochrana, typ MIME
Kroky Hlavička X-Content-Type-Options je hlavička HTTP, která vývojářům umožňuje určit, že jejich obsah by neměl být zašifrován MIME. Tato hlavička je navržená tak, aby zmírnit útoky MIME-Sniffing. Pro každou stránku, která by mohla obsahovat obsah s možností ovládání uživatele, musíte použít hlavičku HTTP X-Content-Type-Options:nosniff. Pokud chcete povolit požadované záhlaví globálně pro všechny stránky v aplikaci, můžete udělat jednu z následujících věcí:

Příklad

Pokud je aplikace hostovaná službou Internetová informační služba (IIS) 7, přidejte hlavičku do souboru web.config.

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff"/>
</customHeaders>
</httpProtocol>
</system.webServer>

Příklad

Přidání záhlaví prostřednictvím globálního Application_BeginRequest

void Application_BeginRequest(object sender, EventArgs e)
{
this.Response.Headers["X-Content-Type-Options"] = "nosniff";
}

Příklad

Implementace vlastního modulu HTTP

public class XContentTypeOptionsModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += newEventHandler(context_PreSendRequestHeaders);
}
#endregion
void context_PreSendRequestHeaders(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
if (application == null)
  return;
if (application.Response.Headers["X-Content-Type-Options "] != null)
  return;
application.Response.Headers.Add("X-Content-Type-Options ", "nosniff");
}
}

Příklad

Požadované záhlaví můžete povolit jenom pro konkrétní stránky tak, že ho přidáte do jednotlivých odpovědí:

this.Response.Headers["X-Content-Type-Options"] = "nosniff";

Odebrání standardních záhlaví serverů na webech Windows Azure, abyste se vyhnuli otisku prstu

Nadpis Detaily
Součást Webová aplikace
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy EnvironmentType – Azure
Odkazy Odebrání standardních záhlaví serveru na webech Windows Azure
Kroky Hlavičky jako Server, X-Powered-By, X-AspNet-Version odhalí informace o serveru a základních technologiích. Doporučuje se potlačit tyto hlavičky, čímž zabráníte otisku prstu aplikace.

Konfigurace brány Windows Firewall pro přístup k databázovému stroji

Nadpis Detaily
Součást Databáze
Fáze SDL Sestavení
Použitelné technologie SQL Azure, OnPrem
Atributy Není k dispozici, verze SQL – V12
Odkazy Konfigurace brány firewall služby Azure SQL Database, konfigurace brány Windows Firewall pro přístup k databázovému stroji
Kroky Firewallové systémy zabraňují neoprávněnému přístupu k počítačovým prostředkům. Pokud chcete získat přístup k instanci databázového stroje SQL Serveru přes bránu firewall, musíte bránu firewall nakonfigurovat na počítači s SQL Serverem tak, aby povolil přístup.

Ujistěte se, že jsou povoleny pouze důvěryhodné zdroje, pokud je v ASP.NET webovém rozhraní API povolené CORS.

Nadpis Detaily
Součást Webové rozhraní API
Fáze SDL Sestavení
Použitelné technologie MVC 5
Atributy
Odkazy Povolení požadavků mezi zdroji ve webovém rozhraní API 2 ASP.NET Web API 2 ASP.NET – podpora CORS ve ASP.NET webovém rozhraní API 2
Kroky

Zabezpečení prohlížečů brání webovým stránkám v odesílání požadavků AJAX na jinou doménu. Toto omezení se označuje jako zásada stejného původu a brání škodlivému webu ve čtení citlivých dat z jiného webu. Někdy se ale může vyžadovat, abyste bezpečně zpřístupnila rozhraní API, která můžou využívat jiné weby. Sdílení prostředků mezi zdroji (CORS) je standard W3C, který umožňuje serveru uvolnit zásady stejného původu.

Pomocí CORS může server explicitně povolit některé požadavky mezi zdroji a zároveň odmítnout jiné. CORS je bezpečnější a flexibilnější než dřívější techniky, jako je JSONP.

Příklad

Do App_Start/WebApiConfig.cs přidejte následující kód do metody WebApiConfig.Register.

using System.Web.Http;
namespace WebService
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // New code
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

Příklad

Atribut EnableCors lze použít u metod akcí v kontroleru následujícím způsobem:

public class ResourcesController : ApiController
{
  [EnableCors("http://localhost:55912", // Origin
              null,                     // Request headers
              "GET",                    // HTTP methods
              "bar",                    // Response headers
              SupportsCredentials=true  // Allow credentials
  )]
  public HttpResponseMessage Get(int id)
  {
    var resp = Request.CreateResponse(HttpStatusCode.NoContent);
    resp.Headers.Add("bar", "a bar value");
    return resp;
  }
  [EnableCors("http://localhost:55912",       // Origin
              "Accept, Origin, Content-Type", // Request headers
              "PUT",                          // HTTP methods
              PreflightMaxAge=600             // Preflight cache duration
  )]
  public HttpResponseMessage Put(Resource data)
  {
    return Request.CreateResponse(HttpStatusCode.OK, data);
  }
  [EnableCors("http://localhost:55912",       // Origin
              "Accept, Origin, Content-Type", // Request headers
              "POST",                         // HTTP methods
              PreflightMaxAge=600             // Preflight cache duration
  )]
  public HttpResponseMessage Post(Resource data)
  {
    return Request.CreateResponse(HttpStatusCode.OK, data);
  }
}

Mějte na paměti, že je důležité zajistit, aby seznam původů v atributu EnableCors byl nastaven na konečný a důvěryhodný soubor původu. Pokud tuto konfiguraci nenakonfigurujete nevhodně (například nastavení hodnoty *), umožní škodlivým webům aktivovat požadavky mezi zdroji do rozhraní API bez jakýchkoli omezení, což způsobí, >že rozhraní API bude zranitelné vůči útokům CSRF. EnableCors lze dekorovat na úrovni kontroleru.

Příklad

Chcete-li zakázat CORS u konkrétní metody ve třídě, lze atribut DisableCors použít, jak je znázorněno níže:

[EnableCors("https://example.com", "Accept, Origin, Content-Type", "POST")]
public class ResourcesController : ApiController
{
  public HttpResponseMessage Put(Resource data)
  {
    return Request.CreateResponse(HttpStatusCode.OK, data);
  }
  public HttpResponseMessage Post(Resource data)
  {
    return Request.CreateResponse(HttpStatusCode.OK, data);
  }
  // CORS not allowed because of the [DisableCors] attribute
  [DisableCors]
  public HttpResponseMessage Delete(int id)
  {
    return Request.CreateResponse(HttpStatusCode.NoContent);
  }
}
Nadpis Detaily
Součást Webové rozhraní API
Fáze SDL Sestavení
Použitelné technologie MVC 6
Atributy
Odkazy Povolení žádostí mezi zdroji (CORS) v ASP.NET Core 1.0
Kroky

V ASP.NET Core 1.0 je možné CORS povolit buď pomocí middlewaru, nebo pomocí MVC. Při použití MVC k povolení CORS se používají stejné služby CORS, ale middleware CORS není.

Přístup-1 Povolení CORS pomocí middlewaru: Pokud chcete povolit CORS pro celou aplikaci, přidejte middleware CORS do kanálu požadavku pomocí metody rozšíření UseCors. Při přidávání middlewaru CORS pomocí třídy CorsPolicyBuilder je možné zadat zásadu mezi zdroji. Toto lze provést dvěma způsoby:

Příklad

První je volání UseCors s lambda. Lambda přebírá objekt CorsPolicyBuilder:

public void Configure(IApplicationBuilder app)
{
    app.UseCors(builder =>
        builder.WithOrigins("https://example.com")
        .WithMethods("GET", "POST", "HEAD")
        .WithHeaders("accept", "content-type", "origin", "x-custom-header"));
}

Příklad

Druhým je definovat jednu nebo více pojmenovaných zásad CORS a pak zásadu vybrat podle názvu za běhu.

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowSpecificOrigin",
            builder => builder.WithOrigins("https://example.com"));
    });
}
public void Configure(IApplicationBuilder app)
{
    app.UseCors("AllowSpecificOrigin");
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World!");
    });
}

Přístup-2 Povolení CORS v MVC: Vývojáři můžou alternativně použít konkrétní CORS na akci, na kontroler nebo globálně pro všechny kontrolery.

Příklad

Pro každou akci: Chcete-li zadat zásadu CORS pro konkrétní akci, přidejte do akce atribut [EnableCors]. Zadejte název zásady.

public class HomeController : Controller
{
    [EnableCors("AllowSpecificOrigin")] 
    public IActionResult Index()
    {
        return View();
    }

Příklad

Na kontroler:

[EnableCors("AllowSpecificOrigin")]
public class HomeController : Controller
{

Příklad

Globálně:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new CorsAuthorizationFilterFactory("AllowSpecificOrigin"));
    });
}

Mějte na paměti, že je důležité zajistit, aby seznam původů v atributu EnableCors byl nastaven na konečný a důvěryhodný soubor původu. Pokud tuto konfiguraci nenakonfigurujete nevhodně (například nastavení hodnoty *), umožní škodlivým webům aktivovat požadavky mezi zdroji do rozhraní API bez jakýchkoli omezení, což způsobí, >že rozhraní API bude zranitelné vůči útokům CSRF.

Příklad

Pokud chcete CORS pro kontroler nebo akci zakázat, použijte atribut [DisableCors].

[DisableCors]
    public IActionResult About()
    {
        return View();
    }

Šifrování oddílů konfiguračních souborů webového rozhraní API obsahujících citlivá data

Nadpis Detaily
Součást Webové rozhraní API
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy Postupy: Šifrování oddílů konfigurace v ASP.NET 2.0 pomocí ROZHRANÍ DPAPI, určení zprostředkovatele chráněné konfigurace pomocí služby Azure Key Vault k ochraně tajných kódů aplikací
Kroky Konfigurační soubory, jako je web.config, appsettings.json se často používají k uchovávání citlivých informací, včetně uživatelských jmen, hesel, databázových připojovací řetězec a šifrovacích klíčů. Pokud tyto informace nechráníte, je vaše aplikace zranitelná vůči útočníkům nebo uživatelům se zlými úmysly, kteří získávají citlivé informace, jako jsou uživatelská jména účtů a hesla, názvy databází a názvy serverů. Na základě typu nasazení (azure/místní prostředí) zašifrujte citlivé části konfiguračních souborů pomocí DPAPI nebo služeb, jako je Azure Key Vault.

Ujistěte se, že všechna rozhraní pro správu jsou zabezpečená pomocí silných přihlašovacích údajů.

Nadpis Detaily
Součást Zařízení IoT
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Všechna rozhraní pro správu, která brána zařízení nebo pole zveřejňuje, by měla být zabezpečená pomocí silných přihlašovacích údajů. Také všechna další vystavená rozhraní, jako je WiFi, SSH, Sdílené složky, by měla být zabezpečená pomocí silných přihlašovacích údajů. Výchozí slabá hesla by se neměla používat.

Ujistěte se, že na zařízeních nejde spustit neznámý kód.

Nadpis Detaily
Součást Zařízení IoT
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy Povolení zabezpečeného spouštění a šifrování zařízení BitLockeru ve Windows 10 IoT Core
Kroky Zabezpečené spouštění rozhraní UEFI omezuje systém tak, aby umožňoval pouze spouštění binárních souborů podepsaných zadanou autoritou. Tato funkce zabraňuje spuštění neznámého kódu na platformě a potenciálně oslabit stav zabezpečení. Povolte zabezpečené spouštění UEFI a omezte seznam certifikačních autorit, které jsou důvěryhodné pro podpisový kód. Podepište veškerý kód nasazený na zařízení pomocí některého z důvěryhodných autorit.

Šifrování operačního systému a dalších oddílů zařízení IoT pomocí BitLockeru

Nadpis Detaily
Součást Zařízení IoT
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Windows 10 IoT Core implementuje zjednodušenou verzi nástroje BitLocker Device Encryption, která má silnou závislost na přítomnosti čipu TPM na platformě, včetně nezbytného protokolu preOS v rozhraní UEFI, který provádí potřebná měření. Tato měření preOSu zajišťují, že operační systém později obsahuje konečný záznam o tom, jak byl operační systém spuštěn. Zašifrujte oddíly operačního systému pomocí Nástroje BitLocker a všech dalších oddílů také v případě, že budou ukládat citlivá data.

Ujistěte se, že jsou na zařízeních povolené jenom minimální služby nebo funkce.

Nadpis Detaily
Součást Zařízení IoT
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Nepovolujte ani nevypínejte žádné funkce nebo služby v operačním systému, které nejsou potřeba pro fungování řešení. Pokud například zařízení nevyžaduje nasazení uživatelského rozhraní, nainstalujte Windows IoT Core v bezobsadovém režimu.

Šifrování operačního systému a dalších oddílů brány IoT Field pomocí BitLockeru

Nadpis Detaily
Součást IoT Field Gateway
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Windows 10 IoT Core implementuje zjednodušenou verzi nástroje BitLocker Device Encryption, která má silnou závislost na přítomnosti čipu TPM na platformě, včetně nezbytného protokolu preOS v rozhraní UEFI, který provádí potřebná měření. Tato měření preOSu zajišťují, že operační systém později obsahuje konečný záznam o tom, jak byl operační systém spuštěn. Zašifrujte oddíly operačního systému pomocí Nástroje BitLocker a všech dalších oddílů také v případě, že budou ukládat citlivá data.

Ujistěte se, že se během instalace změní výchozí přihlašovací údaje brány pole.

Nadpis Detaily
Součást IoT Field Gateway
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Ujistěte se, že se během instalace změní výchozí přihlašovací údaje brány pole.

Ujistěte se, že cloudová brána implementuje proces, který udržuje firmware připojených zařízení v aktualizovaném stavu.

Nadpis Detaily
Součást Cloudová brána IoT
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy Volba brány – Azure IoT Hub
Odkazy Přehled služby IoT Hub Správa zařízení, kurz aktualizace zařízení pro Azure IoT Hub s využitím referenční image Raspberry Pi 3 B+.
Kroky LWM2M je protokol z Open Mobile Alliance for IoT Správa zařízení. Správa zařízení Azure IoT umožňuje interakci s fyzickými zařízeními pomocí úloh zařízení. Ujistěte se, že cloudová brána implementuje proces, který rutinně udržuje zařízení a další konfigurační data v aktualizovaném stavu pomocí služby Azure IoT Hub Správa zařízení.

Ujistěte se, že zařízení mají nakonfigurované ovládací prvky zabezpečení koncových bodů podle zásad organizace.

Nadpis Detaily
Součást Hranice důvěryhodnosti počítače
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy
Kroky Zajistěte, aby zařízení měla ovládací prvky zabezpečení koncového bodu, jako je BitLocker pro šifrování na úrovni disku, antivir s aktualizovanými podpisy, brána firewall založená na hostiteli, upgrady operačního systému, zásady skupiny atd. jsou nakonfigurované podle zásad zabezpečení organizace.

Zajištění zabezpečené správy přístupových klíčů azure storage

Nadpis Detaily
Součást Azure Storage
Fáze SDL Nasazení
Použitelné technologie Obecná
Atributy
Odkazy Průvodce zabezpečením služby Azure Storage – Správa klíčů účtu úložiště
Kroky

Úložiště klíčů: Doporučuje se uložit přístupové klíče azure Storage ve službě Azure Key Vault jako tajný klíč a nechat aplikace načítat klíč z trezoru klíčů. To se doporučuje z následujících důvodů:

  • Aplikace nebude mít nikdy pevně zakódovaný klíč úložiště v konfiguračním souboru, který odebere tu cestu někoho, kdo získá přístup ke klíčům bez konkrétního oprávnění.
  • Přístup ke klíčům je možné ovládat pomocí ID Microsoft Entra. To znamená, že vlastník účtu může udělit přístup k několika aplikacím, které potřebují načíst klíče ze služby Azure Key Vault. Jiné aplikace nebudou mít přístup ke klíčům bez udělení oprávnění.
  • Regenerace klíčů: Z bezpečnostních důvodů se doporučuje mít zavedený proces opětovného vygenerování přístupových klíčů k úložišti Azure. Podrobnosti o tom, proč a jak naplánovat regeneraci klíčů, najdete v referenčním článku Průvodce zabezpečením služby Azure Storage.

Ujistěte se, že jsou povoleny pouze důvěryhodné zdroje, pokud je v úložišti Azure povolené CORS.

Nadpis Detaily
Součást Azure Storage
Fáze SDL Sestavení
Použitelné technologie Obecná
Atributy
Odkazy Podpora CORS pro služby Azure Storage
Kroky Azure Storage umožňuje povolit CORS – sdílení prostředků mezi zdroji. Pro každý účet úložiště můžete zadat domény, které mají přístup k prostředkům v daném účtu úložiště. Ve výchozím nastavení je CORS ve všech službách zakázaná. CORS můžete povolit pomocí rozhraní REST API nebo klientské knihovny úložiště a volat jednu z metod pro nastavení zásad služby.

Povolení funkce omezování služby WCF

Nadpis Detaily
Součást WCF
Fáze SDL Sestavení
Použitelné technologie .NET Framework 3
Atributy
Odkazy MSDN, Fortify Kingdom
Kroky

Neumisťování omezení použití systémových prostředků může vést k vyčerpání prostředků a nakonec k odepření služby.

  • VYSVĚTLENÍ: Windows Communication Foundation (WCF) nabízí možnost omezovat požadavky služby. Povolení příliš velkého počtu požadavků klientů může zahltět systém a vyčerpat jeho prostředky. Na druhou stranu povolení pouze malého počtu požadavků na službu může zabránit legitimním uživatelům v používání služby. Každá služba by měla být individuálně vyladěná a nakonfigurovaná tak, aby umožňovala odpovídající množství prostředků.
  • RECOMMENDATIONS Povolte funkci omezování služby WCF a nastavte limity vhodné pro vaši aplikaci.

Příklad

Následuje příklad konfigurace s povoleným omezováním:

<system.serviceModel> 
  <behaviors>
    <serviceBehaviors>
    <behavior name="Throttled">
    <serviceThrottling maxConcurrentCalls="[YOUR SERVICE VALUE]" maxConcurrentSessions="[YOUR SERVICE VALUE]" maxConcurrentInstances="[YOUR SERVICE VALUE]" /> 
  ...
</system.serviceModel> 

Zpřístupnění informací WCF prostřednictvím metadat

Nadpis Detaily
Součást WCF
Fáze SDL Sestavení
Použitelné technologie .NET Framework 3
Atributy
Odkazy MSDN, Fortify Kingdom
Kroky Metadata můžou útočníkům pomoct získat informace o systému a naplánovat formu útoku. Služby WCF je možné nakonfigurovat tak, aby zpřístupnily metadata. Metadata poskytují podrobné informace o popisu služby a neměly by být vysílány v produkčních prostředích. HttpGetEnabled / HttpsGetEnabled Vlastnosti Třídy ServiceMetaData definuje, zda služba zveřejní metadata.

Příklad

Následující kód dává WCF pokyn k vysílání metadat služby.

ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true; 
smb.HttpGetUrl = new Uri(EndPointAddress); 
Host.Description.Behaviors.Add(smb); 

Nevysílejte metadata služby v produkčním prostředí. Nastavte HttpGetEnabled / HttpsGetEnabled vlastnosti ServiceMetaData třídy false.

Příklad

Následující kód dává WCF pokyn, aby nevysílal metadata služby.

ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
smb.HttpGetEnabled = false; 
smb.HttpGetUrl = new Uri(EndPointAddress); 
Host.Description.Behaviors.Add(smb);