Biztonsági keret: Konfigurációkezelés | Enyhítése
Tartalombiztonsági szabályzat (CSP) implementálása és a beágyazott JavaScript letiltása
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | Bevezetés a tartalombiztonsági szabályzatba, a tartalombiztonsági szabályzatok referenciáiba, a tartalombiztonsági szabályzatok használatába. Használhatom a CSP-t? |
Lépések | A tartalombiztonsági szabályzat (CSP) egy részletes védelmi mechanizmus, egy W3C szabvány, amely lehetővé teszi, hogy a webalkalmazás-tulajdonosok szabályozhassák a webhelyükbe ágyazott tartalmakat. A CSP HTTP-válaszfejlécként van hozzáadva a webkiszolgálón, és böngészők kényszerítik az ügyféloldalon. Ez egy engedélyezett listaalapú szabályzat – a webhelyek megbízható tartományok készletét deklarálhatják, amelyekből az aktív tartalmak, például a JavaScript betölthetők. A CSP a következő biztonsági előnyöket nyújtja:
|
Példa
Példaházirend:
Content-Security-Policy: default-src 'self'; script-src 'self' www.google-analytics.com
Ez a szabályzat lehetővé teszi, hogy a szkriptek csak a webalkalmazás kiszolgálójáról és a Google Analytics-kiszolgálóról töltődjenek be. Bármely más webhelyről betöltött szkripteket a rendszer elutasítja. Ha a CSP engedélyezve van egy webhelyen, a következő funkciók automatikusan le lesznek tiltva az XSS-támadások csökkentése érdekében.
Példa
A beágyazott szkriptek nem lesznek végrehajtva. Az alábbiakban példákat láthat beágyazott szkriptekre
<script> some JavaScript code </script>
Event handling attributes of HTML tags (for example, <button onclick="function(){}">
javascript:alert(1);
Példa
A sztringek nem lesznek kódként értékelve.
Example: var str="alert(1)"; eval(str);
A böngésző XSS-szűrőjének engedélyezése
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | XSS Védelmi szűrő |
Lépések | Az X-XSS-Protection válaszfejléc konfigurációja szabályozza a böngésző webhelyközi szkriptszűrőjét. Ez a válaszfejléc a következő értékekkel rendelkezhet:
Ez egy Chromium-függvény, amely CSP-szabálysértési jelentéseket használ, hogy adatokat küldjön egy tetszőleges URI-nak. Az utolsó két lehetőség biztonságos értéknek minősül. |
ASP.NET alkalmazásoknak az üzembe helyezés előtt le kell tiltaniük a nyomkövetést és a hibakeresést
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | ASP.NET hibakeresés áttekintése, ASP.NET nyomkövetés áttekintése, Útmutató: Nyomkövetés engedélyezése ASP.NET alkalmazásokhoz, Útmutató: Hibakeresés engedélyezése ASP.NET alkalmazásokhoz |
Lépések | Ha a nyomkövetés engedélyezve van a lapon, minden ráérő böngésző lekéri a belső kiszolgáló állapotára és munkafolyamatára vonatkozó adatokat tartalmazó nyomkövetési információkat is. Ez az információ biztonsági szempontból érzékeny lehet. Ha a hibakeresés engedélyezve van a lapon, a kiszolgálón bekövetkező hibák teljes veremkövetési adatokat eredményeznek a böngészőben. Az adatok biztonsági szempontból bizalmas információkat tehetnek közzé a kiszolgáló munkafolyamatáról. |
Külső JavaScriptek elérése csak megbízható forrásokból
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | Külső JavaScriptekre csak megbízható forrásokból lehet hivatkozni. A referenciavégpontoknak mindig TLS-en kell lenniük. |
Győződjön meg arról, hogy a hitelesített ASP.NET lapok felhasználói felületi jogorvoslati vagy kattintási védelemmel rendelkeznek
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | OWASP click-jacking Defense Cheat Sheet, Internet Explorer Internals - Elleni kattintás-jacking X-Frame-Options |
Lépések | A click-jacking( más néven "felhasználói felületi jogorvoslati támadás" az, amikor a támadó több átlátszó vagy átlátszatlan réteget használ arra, hogy a felhasználót rávezhesse egy másik oldalra, amikor a legfelső szintű lapra akart kattintani). Ez a rétegzés úgy érhető el, hogy egy kártékony lapot készít egy iframe-lel, amely betölti az áldozat lapját. Így a támadó "eltéríti" az oldalukra irányuló kattintásokat, és átirányítja őket egy másik lapra, amely valószínűleg egy másik alkalmazás, tartomány vagy mindkettő tulajdonában van. A kattintási támadások megelőzése érdekében állítsa be a megfelelő X-Frame-Options HTTP-válaszfejléceket, amelyek arra utasítják a böngészőt, hogy ne engedélyezze a más tartományokból való keretezést |
Példa
Az X-FRAME-OPTIONS fejléc az IIS web.config használatával állítható be. Web.config kódrészlet olyan webhelyekhez, amelyeket soha nem szabad keretbe helyezni:
<system.webServer>
<httpProtocol>
<customHeader>
<add name="X-FRAME-OPTIONS" value="DENY"/>
</customHeaders>
</httpProtocol>
</system.webServer>
Példa
Web.config kód olyan webhelyekhez, amelyeket csak ugyanazon tartomány lapjainak kell kereteznie:
<system.webServer>
<httpProtocol>
<customHeader>
<add name="X-FRAME-OPTIONS" value="SAMEORIGIN"/>
</customHeaders>
</httpProtocol>
</system.webServer>
Győződjön meg arról, hogy csak megbízható források engedélyezettek, ha a CORS engedélyezve van ASP.NET webalkalmazásokban
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Webes űrlapok, MVC5 |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | A böngésző biztonsági beállításai megakadályozzák, hogy egy weblap AJAX-kérelmeket küldjön egy másik tartományba. Ezt a korlátozást azonos eredetű szabályzatnak nevezzük, és megakadályozza, hogy egy rosszindulatú webhely bizalmas adatokat olvasson egy másik webhelyről. Előfordulhat azonban, hogy olyan API-kat kell biztonságosan elérhetővé tenni, amelyeket más webhelyek használhatnak. A forrásközi erőforrás-megosztás (CORS) egy W3C-szabvány, amely lehetővé teszi, hogy a kiszolgálók lazítsanak az azonos eredetű szabályzaton. A CORS használatával a kiszolgáló explicit módon engedélyezheti a forrásközi kérések egy részét, miközben másokat elutasít. A CORS biztonságosabb és rugalmasabb, mint a korábbi technikák, például a JSONP. A CORS engedélyezése alapvető célja, hogy néhány HTTP-válaszfejlécet (Access-Control-*) adjon hozzá a webalkalmazáshoz, és ez többféleképpen is elvégezhető. |
Példa
Ha elérhető a Web.config hozzáférése, akkor a CORS a következő kóddal adható hozzá:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="https://example.com" />
</customHeaders>
</httpProtocol>
Példa
Ha a web.config hozzáférése nem érhető el, akkor a CORS a következő C#-kód hozzáadásával konfigurálható:
HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "https://example.com")
Vegye figyelembe, hogy kritikus fontosságú annak biztosítása, hogy az "Access-Control-Allow-Origin" attribútum forráslistája véges és megbízható forráskészletre legyen állítva. Ha nem megfelelően konfigurálja ezt a beállítást (például "*" értékként állítja be), a rosszindulatú webhelyek korlátozás nélkül aktiválhatnak kereszt-eredetű kéréseket a webalkalmazáshoz >, így az alkalmazás sebezhetővé válik a CSRF-támadásokkal szemben.
ValidateRequest attribútum engedélyezése ASP.NET pagesen
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Webes űrlapok, MVC5 |
Attribútumok | n/a |
Hivatkozások | Kérés érvényesítése – Szkripttámadások megakadályozása |
Lépések | Az 1.1-es verzió óta ASP.NET egyik funkciója, a kérések érvényesítése megakadályozza, hogy a kiszolgáló fogadjon el kódolatlan HTML-t tartalmazó tartalmat. Ez a funkció segít megelőzni bizonyos szkriptinjektálási támadásokat, amelyek során az ügyfélszkriptkód vagy a HTML tudatlanul elküldhető egy kiszolgálóra, tárolható, majd bemutatható más felhasználóknak. Továbbra is határozottan javasoljuk, hogy ellenőrizze az összes bemeneti adatot és a HTML-kódolást, ha szükséges. A kérelmek érvényesítése úgy történik, hogy összehasonlítja az összes bemeneti adatot a potenciálisan veszélyes értékek listájával. Ha egyezés történik, ASP.NET egy |
Példa
Ez a funkció azonban le is tiltható lapszinten:
<%@ Page validateRequest="false" %>
vagy alkalmazásszinten
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
Vegye figyelembe, hogy a kérésérvényesítési funkció nem támogatott, és nem része az MVC6-folyamatnak.
JavaScript-kódtárak helyileg üzemeltetett legújabb verzióinak használata
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | A JQueryhez hasonló szabványos JavaScript-kódtárakat használó fejlesztőknek olyan általános JavaScript-kódtárak jóváhagyott verzióit kell használniuk, amelyek nem tartalmaznak ismert biztonsági hibákat. Ajánlott a kódtárak legújabb verzióját használni, mivel biztonsági javításokat tartalmaznak a régebbi verziók ismert biztonsági réseihez. Ha a legújabb kiadás kompatibilitási okokból nem használható, az alábbi minimális verziókat kell használni. Elfogadható minimális verziók:
Soha ne töltsd be a JavaScript-kódtárat külső webhelyekről, például nyilvános CDN-ekből |
Az automatikus MIME-sniffing letiltása
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | IE8 Security Part V: Comprehensive Protection, MIME type |
Lépések | Az X-Content-Type-Options fejléc egy HTTP-fejléc, amely lehetővé teszi a fejlesztők számára, hogy megadják, hogy a tartalom ne legyen MIME-sniffed. Ez a fejléc a MIME-Sniffing támadások enyhítésére szolgál. Minden olyan laphoz, amely felhasználó által vezérelhető tartalmat tartalmazhat, a HTTP-fejléc X-Content-Type-Options:nosniff elemét kell használnia. Ha globálisan szeretné engedélyezni a szükséges fejlécet az alkalmazás összes oldalához, tegye az alábbiak egyikét: |
Példa
Adja hozzá a fejlécet a web.config fájlhoz, ha az alkalmazást az Internet Information Services (IIS) 7- től kezdve üzemelteti.
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff"/>
</customHeaders>
</httpProtocol>
</system.webServer>
Példa
A fejléc hozzáadása a globális Application_BeginRequest
void Application_BeginRequest(object sender, EventArgs e)
{
this.Response.Headers["X-Content-Type-Options"] = "nosniff";
}
Példa
Egyéni HTTP-modul implementálása
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élda
A szükséges fejlécet csak adott oldalakhoz engedélyezheti, ha hozzáadja az egyes válaszokhoz:
this.Response.Headers["X-Content-Type-Options"] = "nosniff";
Standard kiszolgálófejlécek eltávolítása a Windows Azure-webhelyeken az ujjlenyomat-kezelés elkerülése érdekében
Cím | Részletek |
---|---|
Komponens | Webalkalmazás |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | EnvironmentType – Azure |
Hivatkozások | Szabványos kiiszolgálófejlécek eltávolítása Windows Azure-webhelyeken |
Lépések | Az olyan fejlécek, mint a Server, az X-Powered-By, az X-AspNet-Version, információkat fednek fel a kiszolgálóról és a mögöttes technológiákról. Javasoljuk, hogy ezeket a fejléceket letiltsa, ezáltal megakadályozza az alkalmazás ujjlenyomatának |
Windows tűzfal konfigurálása adatbázismotor-hozzáféréshez
Cím | Részletek |
---|---|
Komponens | Adatbázis |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | SQL Azure, OnPrem |
Attribútumok | N/A, SQL-verzió – V12 |
Hivatkozások | Azure SQL Database-tűzfal konfigurálása, Windows tűzfal konfigurálása adatbázismotor-hozzáféréshez |
Lépések | A tűzfalrendszerek segítenek a számítógépes erőforrások illetéktelen elérésének megakadályozásában. Az SQL Server adatbázismotor egy példányának tűzfalon keresztüli eléréséhez konfigurálnia kell a tűzfalat az SQL Servert futtató számítógépen a hozzáférés engedélyezéséhez |
Győződjön meg arról, hogy csak megbízható források engedélyezettek, ha a CORS engedélyezve van ASP.NET Webes API-n
Cím | Részletek |
---|---|
Komponens | Webes API |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | MVC 5 |
Attribútumok | n/a |
Hivatkozások | Kereszt-eredetű kérelmek engedélyezése ASP.NET Web API 2-ben, ASP.NET Webes API – CORS-támogatás a ASP.NET Web API 2-ben |
Lépések | A böngésző biztonsági beállításai megakadályozzák, hogy egy weblap AJAX-kérelmeket küldjön egy másik tartományba. Ezt a korlátozást azonos eredetű szabályzatnak nevezzük, és megakadályozza, hogy egy rosszindulatú webhely bizalmas adatokat olvasson egy másik webhelyről. Előfordulhat azonban, hogy olyan API-kat kell biztonságosan elérhetővé tenni, amelyeket más webhelyek használhatnak. A forrásközi erőforrás-megosztás (CORS) egy W3C-szabvány, amely lehetővé teszi, hogy a kiszolgálók lazítsanak az azonos eredetű szabályzaton. A CORS használatával a kiszolgáló explicit módon engedélyezheti a forrásközi kérések egy részét, miközben másokat elutasít. A CORS biztonságosabb és rugalmasabb, mint a korábbi technikák, például a JSONP. |
Példa
A App_Start/WebApiConfig.cs adja hozzá a következő kódot a WebApiConfig.Register metódushoz
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élda
Az EnableCors attribútum a következőképpen alkalmazható a vezérlő műveleti módszereire:
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);
}
}
Vegye figyelembe, hogy kritikus fontosságú annak biztosítása, hogy az EnableCors attribútum forráslistája véges és megbízható forráskészletre legyen állítva. Ha nem megfelelően konfigurálja ezt a beállítást (például "*" értékként állítja be), akkor a rosszindulatú webhelyek korlátozás nélkül aktiválhatnak kereszt-eredetű kéréseket az API-ba, >így az API sebezhetővé válik a CSRF-támadásokkal szemben. Az EnableCors vezérlőszinten díszíthető.
Példa
Ha egy osztály egy adott metódusán szeretné letiltani a CORS-t, a DisableCors attribútum az alábbiak szerint használható:
[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);
}
}
Cím | Részletek |
---|---|
Komponens | Webes API |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | MVC 6 |
Attribútumok | n/a |
Hivatkozások | Kereszt-eredetű kérések (CORS) engedélyezése a ASP.NET Core 1.0-ban |
Lépések | A ASP.NET Core 1.0-ban a CORS a köztes szoftver vagy az MVC használatával engedélyezhető. Ha az MVC-t használja a CORS engedélyezéséhez, ugyanazokat a CORS-szolgáltatásokat használja, de a CORS köztes szoftver nem. |
1 . megközelítés A CORS engedélyezése köztes szoftverrel: A CORS engedélyezése a teljes alkalmazás számára a CORS köztes szoftver hozzáadása a kérelem folyamatához a UseCors bővítménymetódus használatával. A CORS köztes szoftver CorsPolicyBuilder osztály használatával történő hozzáadásakor több forrásra vonatkozó szabályzat adható meg. Ezt kétféleképpen teheti meg:
Példa
Az első a UseCors meghívása egy lambdával. A lambda egy CorsPolicyBuilder objektumot vesz fel:
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élda
A második egy vagy több elnevezett CORS-szabályzat definiálása, majd a szabályzat kiválasztása a futtatáskor név szerint.
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!");
});
}
2 . megközelítés: A CORS engedélyezése az MVC-ben: A fejlesztők az MVC használatával is alkalmazhatnak adott CORS-t műveletenként, vezérlőnként vagy globálisan az összes vezérlőre.
Példa
Műveletenként: Ha cors-szabályzatot szeretne megadni egy adott művelethez, adja hozzá az [EnableCors] attribútumot a művelethez. Adja meg a szabályzat nevét.
public class HomeController : Controller
{
[EnableCors("AllowSpecificOrigin")]
public IActionResult Index()
{
return View();
}
Példa
Vezérlőnként:
[EnableCors("AllowSpecificOrigin")]
public class HomeController : Controller
{
Példa
Globálisan:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new CorsAuthorizationFilterFactory("AllowSpecificOrigin"));
});
}
Vegye figyelembe, hogy kritikus fontosságú annak biztosítása, hogy az EnableCors attribútum forráslistája véges és megbízható forráskészletre legyen állítva. Ha nem megfelelően konfigurálja ezt a beállítást (például "*" értékként állítja be), akkor a rosszindulatú webhelyek korlátozás nélkül aktiválhatnak kereszt-eredetű kéréseket az API-ba, >így az API sebezhetővé válik a CSRF-támadásokkal szemben.
Példa
A CORS vezérlő vagy művelet letiltásához használja a [DisableCors] attribútumot.
[DisableCors]
public IActionResult About()
{
return View();
}
Bizalmas adatokat tartalmazó web API konfigurációs fájljainak szakaszainak titkosítása
Cím | Részletek |
---|---|
Komponens | Webes API |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | Útmutató: Konfigurációs szakaszok titkosítása a ASP.NET 2.0-ban DPAPI használatával, Védett konfigurációs szolgáltató megadása, Azure Key Vault használata az alkalmazás titkos kulcskódjának védelméhez |
Lépések | Az olyan konfigurációs fájlok, mint a Web.config, appsettings.json gyakran bizalmas adatok tárolására szolgálnak, például felhasználónevek, jelszavak, adatbázis-kapcsolati sztring és titkosítási kulcsok tárolására. Ha nem védi ezeket az információkat, az alkalmazás sebezhető a támadók vagy rosszindulatú felhasználók számára, amelyek bizalmas információkat szereznek, például fiók felhasználóneveket és jelszavakat, adatbázisneveket és kiszolgálóneveket. Az üzembe helyezés típusa (azure/on-prem) alapján titkosítsa a konfigurációs fájlok bizalmas szakaszait DPAPI vagy olyan szolgáltatások használatával, mint az Azure Key Vault. |
Győződjön meg arról, hogy minden rendszergazdai felület erős hitelesítő adatokkal van védve
Cím | Részletek |
---|---|
Komponens | IoT-készülék |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | Az eszköz vagy a mezőátjáró által elérhetővé tett felügyeleti adaptereket erős hitelesítő adatokkal kell védeni. Emellett minden más közzétett felületet, például WiFi-t, SSH-t, fájlmegosztásokat és FTP-t erős hitelesítő adatokkal kell védeni. Az alapértelmezett gyenge jelszavakat nem szabad használni. |
Győződjön meg arról, hogy az ismeretlen kód nem futtatható az eszközökön
Cím | Részletek |
---|---|
Komponens | IoT-készülék |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | Biztonságos rendszerindítás és BitLocker-eszköztitkosítás engedélyezése Windows 10 IoT Core rendszeren |
Lépések | Az UEFI Secure Boot korlátozza a rendszert, hogy csak egy adott hatóság által aláírt bináris fájlok végrehajtását engedélyezze. Ez a funkció megakadályozza, hogy ismeretlen kódot hajtsanak végre a platformon, és esetleg gyengítse annak biztonsági helyzetét. Engedélyezze az UEFI biztonságos rendszerindítást, és korlátozza azon hitelesítésszolgáltatók listáját, amelyek megbízhatóak az aláírási kódhoz. Írja alá az eszközön üzembe helyezett összes kódot az egyik megbízható hatóság használatával. |
Az IoT-eszköz operációs rendszerének és egyéb partícióinak titkosítása a BitLockerrel
Cím | Részletek |
---|---|
Komponens | IoT-készülék |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | A Windows 10 IoT Core a BitLocker Device Encryption egyszerűsített verzióját implementálja, amely erősen függ a platformon található TPM-től, beleértve a szükséges UEFI-protokollt is, amely elvégzi a szükséges méréseket. Ezek a preOS-mérések biztosítják, hogy az operációs rendszer később végleges rekordot adjon az operációs rendszer indításának módjáról. Titkosítsa az operációsrendszer-partíciókat a BitLocker és más partíciók használatával is, ha bizalmas adatokat tárolnak. |
Győződjön meg arról, hogy csak a minimális szolgáltatások/szolgáltatások vannak engedélyezve az eszközökön
Cím | Részletek |
---|---|
Komponens | IoT-készülék |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | Ne engedélyezze vagy kapcsolja ki az operációs rendszer olyan funkcióit vagy szolgáltatásait, amelyek nem szükségesek a megoldás működéséhez. Ha például az eszköz nem igényel felhasználói felületet, telepítse a Windows IoT Core-t fej nélküli módban. |
Az IoT Field Gateway operációs rendszerének és egyéb partícióinak titkosítása a BitLockerrel
Cím | Részletek |
---|---|
Komponens | IoT-mezőátjáró |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | A Windows 10 IoT Core a BitLocker Device Encryption egyszerűsített verzióját implementálja, amely erősen függ a platformon található TPM-től, beleértve a szükséges UEFI-protokollt is, amely elvégzi a szükséges méréseket. Ezek a preOS-mérések biztosítják, hogy az operációs rendszer később végleges rekordot adjon az operációs rendszer indításának módjáról. Titkosítsa az operációsrendszer-partíciókat a BitLocker és más partíciók használatával is, ha bizalmas adatokat tárolnak. |
Győződjön meg arról, hogy a helyszíni átjáró alapértelmezett bejelentkezési hitelesítő adatai módosulnak a telepítés során
Cím | Részletek |
---|---|
Komponens | IoT-mezőátjáró |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | Győződjön meg arról, hogy a helyszíni átjáró alapértelmezett bejelentkezési hitelesítő adatai módosulnak a telepítés során |
Győződjön meg arról, hogy a Cloud Gateway implementál egy folyamatot a csatlakoztatott eszközök belső vezérlőprogramjának naprakészen tartásához
Cím | Részletek |
---|---|
Komponens | IoT Cloud Gateway |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | Átjáróválasztás – Azure IoT Hub |
Hivatkozások | Az IoT Hub Eszközkezelés Áttekintés, Eszközfrissítés az Azure IoT Hubhoz oktatóanyag a Raspberry Pi 3 B+ referenciarendszerkép használatával. |
Lépések | Az LWM2M az Open Mobile Alliance for IoT Eszközkezelés protokollja. Az Azure IoT-eszközök kezelése lehetővé teszi a fizikai eszközökkel való interakciót eszközfeladatok használatával. Győződjön meg arról, hogy a Cloud Gateway olyan folyamatot implementál, amely rendszeresen naprakészen tartja az eszközt és az egyéb konfigurációs adatokat az Azure IoT Hub Eszközkezelés használatával. |
Győződjön meg arról, hogy az eszközök a szervezeti házirendek szerint konfigurálva vannak a végpontok biztonsági vezérlői
Cím | Részletek |
---|---|
Komponens | Gép megbízhatósági határa |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | n/a |
Lépések | Győződjön meg arról, hogy az eszközök olyan végponti biztonsági vezérlőkkel rendelkeznek, mint a BitLocker lemezszintű titkosításhoz, frissített aláírásokkal rendelkező vírusirtó, gazdagépalapú tűzfal, operációsrendszer-frissítések, csoportszabályzatok stb. a szervezeti biztonsági szabályzatok szerint vannak konfigurálva. |
Az Azure Storage hozzáférési kulcsainak biztonságos kezelésének biztosítása
Cím | Részletek |
---|---|
Komponens | Azure Storage |
SDL-fázis | Telepítés |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | Azure Storage biztonsági útmutató – A tárfiókkulcsok kezelése |
Lépések | Kulcstároló: Javasoljuk, hogy az Azure Storage hozzáférési kulcsait titkos kulcsként tárolja az Azure Key Vaultban, és kérje le az alkalmazásokat a kulcstartóból. Ez a következő okok miatt ajánlott:
|
Győződjön meg arról, hogy csak megbízható források engedélyezettek, ha a CORS engedélyezve van az Azure Storage-ban
Cím | Részletek |
---|---|
Komponens | Azure Storage |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | Általános |
Attribútumok | n/a |
Hivatkozások | CORS-támogatás Azure Storage-szolgáltatásokhoz |
Lépések | Az Azure Storage lehetővé teszi a CORS – Forrásközi erőforrásmegosztás engedélyezését. Minden tárfiókhoz megadhatja azokat a tartományokat, amelyek hozzáférhetnek az adott tárfiók erőforrásaihoz. Alapértelmezés szerint a CORS minden szolgáltatásban le van tiltva. A CORS engedélyezéséhez használja a REST API-t vagy a tárolási ügyfélkódtárat a szolgáltatásszabályzatok beállítására szolgáló módszerek egyikének meghívásához. |
A WCF szolgáltatásszabályozási funkciójának engedélyezése
Cím | Részletek |
---|---|
Komponens | WCF |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | .NET-keretrendszer 3 |
Attribútumok | n/a |
Hivatkozások | MSDN, Fortify Kingdom |
Lépések | Ha nem korlátozza a rendszererőforrások használatát, az erőforrás-kimerüléshez és végső soron szolgáltatásmegtagadáshoz vezethet.
|
Példa
Az alábbi példakonfiguráció engedélyezve van a szabályozással:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="Throttled">
<serviceThrottling maxConcurrentCalls="[YOUR SERVICE VALUE]" maxConcurrentSessions="[YOUR SERVICE VALUE]" maxConcurrentInstances="[YOUR SERVICE VALUE]" />
...
</system.serviceModel>
WCF-Információk közzététele metaadatokon keresztül
Cím | Részletek |
---|---|
Komponens | WCF |
SDL-fázis | Létrehozás |
Alkalmazható technológiák | .NET-keretrendszer 3 |
Attribútumok | n/a |
Hivatkozások | MSDN, Fortify Kingdom |
Lépések | A metaadatok segítségével a támadók megismerhetik a rendszert, és megtervezhetik a támadás egy formáját. A WCF-szolgáltatások konfigurálhatók metaadatok felfedésére. A metaadatok részletes szolgáltatásleírási információkat adnak meg, és nem szabad éles környezetben sugározni. A HttpGetEnabled / HttpsGetEnabled ServiceMetaData osztály tulajdonságai határozzák meg, hogy egy szolgáltatás elérhetővé teszi-e a metaadatokat |
Példa
Az alábbi kód arra utasítja a WCF-et, hogy közvetítse a szolgáltatás metaadatait
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri(EndPointAddress);
Host.Description.Behaviors.Add(smb);
Ne közvetítse a szolgáltatás metaadatait éles környezetben. Állítsa a ServiceMetaData osztály HttpGetEnabled/HttpsGetEnabled tulajdonságát false (hamis) értékre.
Példa
Az alábbi kód arra utasítja a WCF-et, hogy ne közvetítse a szolgáltatás metaadatait.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = false;
smb.HttpGetUrl = new Uri(EndPointAddress);
Host.Description.Behaviors.Add(smb);
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: