Rámec zabezpečení: Správa konfigurace | Zmírnění rizik
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í:
|
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:
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á . |
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:
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ů:
|
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.
|
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);