Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Termék/szolgáltatás | Cikk |
|---|---|
| Azure Event Hub | |
| Dynamics CRM | |
| Azure Data Factory | |
| Identitáskiszolgáló | |
| Webalkalmazás |
|
| Adatbázis | |
| Azure Storage | |
| Mobilügyfél | |
| WCF | |
| Webes API | |
| Azure Managed Redis | |
| IoT-mezőátjáró | |
| IoT Cloud Gateway |
Biztonságos kommunikáció az Event Hubtal SSL/TLS használatával
| Cím | Részletek |
|---|---|
| Komponens | Azure Event Hub |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Az Event Hubs-hitelesítés és a biztonsági modell áttekintése |
| Lépések | AMQP- vagy HTTP-kapcsolatok védelme az Event Hubhoz SSL/TLS használatával |
Ellenőrizze a szolgáltatásfiók jogosultságait, és ellenőrizze, hogy az egyéni szolgáltatások vagy ASP.NET lapok tiszteletben tartják-e a CRM biztonságát
| Cím | Részletek |
|---|---|
| Komponens | Dynamics CRM |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Nincs adat. |
| Lépések | Ellenőrizze a szolgáltatásfiók jogosultságait, és ellenőrizze, hogy az egyéni szolgáltatások vagy ASP.NET lapok tiszteletben tartják-e a CRM biztonságát |
Adatkezelési átjáró használata a helyszíni SQL Server és az Azure Data Factory összekapcsolása során
| Cím | Részletek |
|---|---|
| Komponens | Azure Data Factory |
| SDL-fázis | Telepítés |
| Alkalmazható technológiák | Általános |
| Attribútumok | Társított szolgáltatástípusok – Azure és helyszíni |
| Hivatkozások | Adatok áthelyezése a helyszíni és az Azure Data Factory között |
| Lépések | Az Adatkezelési átjáró (DMG) eszköz szükséges a corpnet vagy tűzfal mögött védett adatforrásokhoz való csatlakozáshoz.
|
Győződjön meg arról, hogy az Identity Server felé történő összes forgalom HTTPS-kapcsolaton keresztül van
| Cím | Részletek |
|---|---|
| Komponens | Identitáskiszolgáló |
| SDL-fázis | Telepítés |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Nincs adat. |
| Lépések | Alapértelmezés szerint az IdentityServer megköveteli, hogy az összes bejövő kapcsolat HTTPS-en keresztül jöjjön létre. Teljesen kötelező, hogy az IdentityServerrel való kommunikáció csak biztonságos átviteleken keresztül legyen végrehajtva. Bizonyos üzembehelyezési forgatókönyveknél, mint a TLS tehermentesítése, ez a követelmény enyhíthető. További információkért tekintse meg az Identity Server üzembehelyezési oldalát a hivatkozások között. |
Ssl-, TLS- és DTLS-kapcsolatok hitelesítéséhez használt X.509-tanúsítványok ellenőrzése
| Cím | Részletek |
|---|---|
| Komponens | Webalkalmazás |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Nincs adat. |
| Lépések | Az SSL-t, TLS-t vagy DTLS-t használó alkalmazásoknak teljes mértékben ellenőrizniük kell a hozzájuk csatlakozó entitások X.509-tanúsítványait. Ez magában foglalja a következő tanúsítványok ellenőrzését:
|
TLS/SSL-tanúsítvány konfigurálása egyéni tartományhoz az Azure App Service-ben
| Cím | Részletek |
|---|---|
| Komponens | Webalkalmazás |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | EnvironmentType – Azure |
| Hivatkozások | HTTPS engedélyezése egy alkalmazáshoz az Azure App Service-ben |
| Lépések | Alapértelmezés szerint az Azure már engedélyezi a HTTPS-t minden olyan alkalmazáshoz, amely helyettesítő tanúsítvánnyal rendelkezik a *.azurewebsites.net tartományhoz. Azonban, mint minden helyettesítő tartomány, ez sem olyan biztonságos, mint egy egyéni tartomány használata saját tanúsítvánnyal Hivatkozik. Javasoljuk, hogy engedélyezze a TLS-t ahhoz az egyéni tartományhoz, amelyen keresztül az üzembe helyezett alkalmazás elérhető lesz |
Az Azure App Service felé történő összes forgalom kényszerítése HTTPS-kapcsolaton keresztül
| Cím | Részletek |
|---|---|
| Komponens | Webalkalmazás |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | EnvironmentType – Azure |
| Hivatkozások | HTTPS kényszerítése az Azure App Service-ben |
| Lépések | Bár az Azure már engedélyezi a HTTPS-t az Azure-appszolgáltatásokhoz a *.azurewebsites.net tartomány helyettesítő tanúsítványával, nem kényszeríti a HTTPS-t. A látogatók továbbra is HTTP használatával érhetik el az alkalmazást, ami veszélyeztetheti az alkalmazás biztonságát, ezért a HTTPS-t explicit módon kell kikényszeríteni. ASP.NET, MVC-alkalmazásoknak a RequireHttps szűrőt kell használniuk, amely egy nem biztonságos HTTP-kérést kényszerít a HTTPS-en keresztül történő újraküldésre. Alternatív megoldásként az Azure App Service-ben található URL-átírási modul is használható a HTTPS kényszerítésére. Az URL-átírási modul lehetővé teszi a fejlesztők számára, hogy olyan szabályokat határozzanak meg, amelyek a bejövő kérelmekre vonatkoznak, mielőtt a kéréseket átadják az alkalmazásnak. Az URL-átírási szabályok az alkalmazás gyökerében tárolt web.config fájlban vannak definiálva |
példa
Az alábbi példa egy egyszerű URL-átírási szabályt tartalmaz, amely az összes bejövő forgalmat HTTPS használatára kényszeríti
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Ez a szabály úgy működik, hogy egy 301-alapú HTTP-állapotkódot (állandó átirányítást) ad vissza, amikor a felhasználó HTTP-t használó lapot kér. A 301 a kérést a látogató által kért URL-címre irányítja át, de a kérelem HTTP-részét HTTPS-ra cseréli. Például a HTTP://contoso.com át lesz irányítva a HTTPS://contoso.com-re.
A HTTP szigorú átviteli biztonságának (HSTS) engedélyezése
| Cím | Részletek |
|---|---|
| Komponens | Webalkalmazás |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | OWASP HTTP Strict Transport Security Cheat Sheet |
| Lépések | A HTTP Strict Transport Security (HSTS) egy választható biztonsági fejlesztés, amit a webalkalmazás határoz meg egy speciális válaszfejléc használatával. Ha egy támogatott böngésző megkapja ezt a fejlécet, a böngésző megakadályozza a http-en keresztüli kommunikációt a megadott tartományba, és ehelyett az összes kommunikációt HTTPS-en keresztül küldi el. Emellett megakadályozza a HTTPS-kattintást a böngészőkben megjelenő parancssorokban. A HSTS implementálásához a következő válaszfejlécet globálisan kell konfigurálni egy webhelyhez kódban vagy konfigurációban: Strict-Transport-Security: max-age=300; includeSubDomains. Az HSTS a következő fenyegetéseket kezeli:
|
Az SQL Server kapcsolattitkosításának és tanúsítványérvényesítésének biztosítása
| Cím | Részletek |
|---|---|
| Komponens | Adatbázis |
| SDL-fázis | Épít |
| Alkalmazható technológiák | SQL Azure |
| Attribútumok | SQL-verzió – V12 |
| Hivatkozások | Ajánlott eljárások az SQL Database biztonságos kapcsolati sztringjeinek írásához |
| Lépések | Az SQL Database és az ügyfélalkalmazás közötti összes kommunikáció a Transport Layer Security (TLS) használatával van titkosítva, amely korábban Ssl néven ismert. Az SQL Database nem támogatja a titkosítatlan kapcsolatokat. A tanúsítványok alkalmazáskóddal vagy eszközökkel való érvényesítéséhez explicit módon kérjen titkosított kapcsolatot, és ne bízzon meg a kiszolgálótanúsítványokban. Ha az alkalmazás kódja vagy eszközei nem kérnek titkosított kapcsolatot, akkor is titkosított kapcsolatokat kapnak Előfordulhat azonban, hogy nem ellenőrzik a kiszolgálótanúsítványokat, ezért "középen lévő ember" támadásokra lesznek érzékenyek. A tanúsítványok ADO.NET alkalmazáskóddal való érvényesítéséhez állítsa be |
Kényszerítsék a titkosított kommunikációt az SQL Serverhez
| Cím | Részletek |
|---|---|
| Komponens | Adatbázis |
| SDL-fázis | Épít |
| Alkalmazható technológiák | OnPrem |
| Attribútumok | SQL-verzió – MsSQL2016, SQL-verzió – MsSQL2012, SQL-verzió – MsSQL2014 |
| Hivatkozások | Titkosított kapcsolatok engedélyezése az adatbázismotorhoz |
| Lépések | A TLS-titkosítás engedélyezése növeli az SQL Server példányai és az alkalmazások közötti hálózatokon keresztül továbbított adatok biztonságát. |
Győződjön meg arról, hogy az Azure Storage-ral való kommunikáció HTTPS-en keresztül történik
| Cím | Részletek |
|---|---|
| Komponens | Azure Storage |
| SDL-fázis | Telepítés |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Azure Storage Transport-Level Titkosítás – HTTPS használatával |
| Lépések | Az Azure Storage-adatok átvitel közbeni biztonságának biztosítása érdekében mindig használja a HTTPS protokollt a REST API-k meghívásakor vagy a tárolóban lévő objektumok elérésekor. A közös hozzáférésű jogosultságkódok, amelyek az Azure Storage-objektumokhoz való hozzáférés delegálásához használhatók, megadható, hogy csak a HTTPS protokoll használható közös hozzáférésű jogosultságkódok használatakor, biztosítva, hogy bárki, aki SAS-jogkivonatokkal küld hivatkozásokat, a megfelelő protokollt használja. |
MD5 kivonat ellenőrzése a blob letöltése után, ha a HTTPS nem engedélyezhető
| Cím | Részletek |
|---|---|
| Komponens | Azure Storage |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | StorageType – Blob |
| Hivatkozások | A Windows Azure Blob MD5 áttekintése |
| Lépések | A Windows Azure Blob service olyan mechanizmusokat biztosít, amely biztosítja az adatok integritását mind az alkalmazás, mind az átviteli rétegek esetében. Ha bármilyen okból HTTP-t kell használnia a HTTPS helyett, és blokkblobokkal dolgozik, az MD5-ellenőrzéssel ellenőrizheti az átvitt blobok integritását Ez segít a hálózati/átviteli réteg hibáival szembeni védelemben, de nem feltétlenül közvetítő támadásoknál. Ha az átviteli szintű biztonságot biztosító HTTPS-t használhatja, akkor az MD5-ellenőrzés használata redundáns és szükségtelen. |
Az SMB 3.x-kompatibilis ügyfél használata az Azure-fájlmegosztásokra való átvitel közbeni adattitkosítás biztosításához
| Cím | Részletek |
|---|---|
| Komponens | Mobilügyfél |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | StorageType – Fájl |
| Hivatkozások | Azure Files, Azure Files SMB-támogatás Windows-ügyfelek számára |
| Lépések | Az Azure Files támogatja a HTTPS-t a REST API használatakor, de gyakrabban használják virtuális géphez csatolt SMB-fájlmegosztásként. Az SMB 2.1 nem támogatja a titkosítást, ezért a kapcsolatok csak ugyanabban a régióban engedélyezettek az Azure-ban. Az SMB 3.x azonban támogatja a titkosítást, és a Windows Server 2012 R2, a Windows 8, a Windows 8.1 és a Windows 10 rendszereken is használható, így régiók közötti hozzáférést és akár asztali hozzáférést is lehetővé tesz. |
Tanúsítvány-rögzítés megvalósítása
| Cím | Részletek |
|---|---|
| Komponens | Azure Storage |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános, Windows Phone |
| Attribútumok | Nincs adat. |
| Hivatkozások | Tanúsítvány- és nyilvánoskulcs-rögzítés |
| Lépések | A tanúsítvány rögzítése védelmet nyújt a Man-In-The-Middle (MITM) támadások ellen. A rögzítés a hostnak a várt X509-tanúsítvánnyal vagy a nyilvános kulccsal való társításának folyamata. Amint egy gazdagépen ismertté vagy láthatóvá válik egy tanúsítvány vagy nyilvános kulcs, a tanúsítványt vagy nyilvános kulcsot a gazdagéphez társítják vagy 'rögzítik'. Így amikor egy támadó megpróbál TLS MITM-támadást végrehajtani, a TLS-kézfogás során a támadó kiszolgálójának kulcsa eltér a rögzített tanúsítvány kulcsától, és a kérés el lesz vetve, így a MITM-tanúsítvány rögzítésének megakadályozása a ServicePointManager delegáltjának |
példa
using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography;
namespace CertificatePinningExample
{
class CertificatePinningExample
{
/* Note: In this example, we're hardcoding the certificate's public key and algorithm for
demonstration purposes. In a real-world application, this should be stored in a secure
configuration area that can be updated as needed. */
private static readonly string PINNED_ALGORITHM = "RSA";
private static readonly string PINNED_PUBLIC_KEY = "3082010A0282010100B0E75B7CBE56D31658EF79B3A1" +
"294D506A88DFCDD603F6EF15E7F5BCBDF32291EC50B2B82BA158E905FE6A83EE044A48258B07FAC3D6356AF09B2" +
"3EDAB15D00507B70DB08DB9A20C7D1201417B3071A346D663A241061C151B6EC5B5B4ECCCDCDBEA24F051962809" +
"FEC499BF2D093C06E3BDA7D0BB83CDC1C2C6660B8ECB2EA30A685ADE2DC83C88314010FFC7F4F0F895EDDBE5C02" +
"ABF78E50B708E0A0EB984A9AA536BCE61A0C31DB95425C6FEE5A564B158EE7C4F0693C439AE010EF83CA8155750" +
"09B17537C29F86071E5DD8CA50EBD8A409494F479B07574D83EDCE6F68A8F7D40447471D05BC3F5EAD7862FA748" +
"EA3C92A60A128344B1CEF7A0B0D94E50203010001";
public static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://azure.microsoft.com");
request.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
{
if (certificate == null || sslPolicyErrors != SslPolicyErrors.None)
{
// Error getting certificate or the certificate failed basic validation
return false;
}
var targetKeyAlgorithm = new Oid(certificate.GetKeyAlgorithm()).FriendlyName;
var targetPublicKey = certificate.GetPublicKeyString();
if (targetKeyAlgorithm == PINNED_ALGORITHM &&
targetPublicKey == PINNED_PUBLIC_KEY)
{
// Success, the certificate matches the pinned value.
return true;
}
// Reject, either the key or the algorithm does not match the expected value.
return false;
};
try
{
var response = (HttpWebResponse)request.GetResponse();
Console.WriteLine($"Success, HTTP status code: {response.StatusCode}");
}
catch(Exception ex)
{
Console.WriteLine($"Failure, {ex.Message}");
}
Console.WriteLine("Press any key to end.");
Console.ReadKey();
}
}
}
HTTPS engedélyezése – Biztonságos átviteli csatorna
| Cím | Részletek |
|---|---|
| Komponens | WCF |
| SDL-fázis | Épít |
| Alkalmazható technológiák | NET-keretrendszer 3 |
| Attribútumok | Nincs adat. |
| Hivatkozások | MSDN, Fortify Kingdom |
| Lépések | Az alkalmazáskonfigurációnak biztosítania kell, hogy a HTTPS minden bizalmas információhoz való hozzáféréshez használható legyen.
Gyakorlati szempontból a hálózat védelméért felelős személyek nem mindig követik az alkalmazás biztonsági követelményeit a fejlődésük során. |
WCF: Az Üzenetbiztonság védelmi szintjének beállítása a EncryptAndSign értékre
| Cím | Részletek |
|---|---|
| Komponens | WCF |
| SDL-fázis | Épít |
| Alkalmazható technológiák | .NET-keretrendszer 3 |
| Attribútumok | Nincs adat. |
| Hivatkozások | MSDN |
| Lépések |
Fontolja meg a titkosítás kikapcsolását, és csak akkor írja alá az üzenetet, ha csak az információk integritását kell ellenőriznie a bizalmassági szempontok nélkül. Ez olyan műveletekhez vagy szolgáltatási szerződésekhez lehet hasznos, amelyekben ellenőriznie kell az eredeti feladót, de bizalmas adatok nem kerülnek továbbításra. A védelmi szint csökkentésekor ügyeljen arra, hogy az üzenet ne tartalmazzon személyes adatokat. |
példa
Az alábbi példákban látható, hogy a szolgáltatás és a művelet csak az üzenet aláírására van konfigurálva. Példa szolgáltatási szerződésre ProtectionLevel.Sign: Az alábbi példa a ProtectionLevel.Sign szolgáltatásszerződés szintjén való használatára mutat be példát:
[ServiceContract(Protection Level=ProtectionLevel.Sign]
public interface IService
{
string GetData(int value);
}
példa
Példa az ProtectionLevel.Sign műveletszerződésre (finomhangolt vezérlés esetén): Az alábbiakban az OperationContract szintjén történő ProtectionLevel.Sign használatra mutatunk példát.
[OperationContract(ProtectionLevel=ProtectionLevel.Sign]
string GetData(int value);
WCF: A WCF-szolgáltatás futtatásához használjon egy legkevésbé kiemelt fiókot
| Cím | Részletek |
|---|---|
| Komponens | WCF |
| SDL-fázis | Épít |
| Alkalmazható technológiák | .NET-keretrendszer 3 |
| Attribútumok | Nincs adat. |
| Hivatkozások | MSDN |
| Lépések |
Ha a szolgáltatásnak bizonyos erőforrásokhoz kell hozzáférnie az eredeti hívó nevében, a megszemélyesítés és a delegálás használatával áramolhatja a hívó identitását egy alsóbb rétegbeli engedélyezési ellenőrzéshez. Fejlesztési forgatókönyv esetén használja a helyi hálózati szolgáltatásfiókot, amely egy speciális beépített fiók, amely csökkentett jogosultságokkal rendelkezik. Termelési környezetben hozzon létre egy minimális jogosultságú egyéni tartományi szolgáltatásfiókot. |
A webes API-k felé történő forgalom kényszerítése HTTPS-kapcsolaton keresztül
| Cím | Részletek |
|---|---|
| Komponens | Webes API |
| SDL-fázis | Épít |
| Alkalmazható technológiák | MVC5, MVC6 |
| Attribútumok | Nincs adat. |
| Hivatkozások | SSL kényszerítése webes API-vezérlőben |
| Lépések | Ha egy alkalmazás HTTPS- és HTTP-kötéssel is rendelkezik, az ügyfelek továbbra is HTTP-t használhatnak a webhely eléréséhez. Ennek megakadályozása érdekében használjon műveletszűrőt annak biztosítására, hogy a védett API-kra irányuló kérelmek mindig HTTPS-en keresztül legyenek. |
példa
Az alábbi kód egy TLS-t ellenőrző webes API-hitelesítési szűrőt mutat be:
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
base.OnAuthorization(actionContext);
}
}
}
Adja hozzá ezt a szűrőt a TLS-t igénylő webes API-műveletekhez:
public class ValuesController : ApiController
{
[RequireHttps]
public HttpResponseMessage Get() { ... }
}
Győződjön meg arról, hogy a Azure Felügyelt Redis szolgáltatáshoz való kommunikáció TLS-en keresztül történik
| Cím | Részletek |
|---|---|
| Komponens | Azure által felügyelt Redis |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Az Azure Redis TLS támogatása |
| Lépések | A Redis-kiszolgáló nem támogatja a TLS-t, de az Azure által kezelt Redis igen. Ha Azure Felügyelt Redishez csatlakozik, és az ügyfél támogatja a TLS-t (például StackExchange.Redis), akkor tLS-t kell használnia. Alapértelmezés szerint a nem TLS-port le van tiltva az új Azure Felügyelt Redis-példányok esetében. Győződjön meg arról, hogy a biztonságos alapértelmezett értékek csak akkor változnak meg, ha az Redis-ügyfelek TLS támogatást igényelnek. |
Vegye figyelembe, hogy a Redist megbízható környezetekben lévő megbízható ügyfelek számára tervezték. Ez azt jelenti, hogy általában nem jó ötlet a Redis-példányt közvetlenül az interneten vagy általában olyan környezetben elérhetővé tenni, ahol a nem megbízható ügyfelek közvetlenül elérhetik a Redis TCP-portot vagy a UNIX-szoftvercsatornát.
Biztonságos kommunikáció az eszköz és a Field Gateway között
| Cím | Részletek |
|---|---|
| Komponens | IoT-mezőátjáró |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | Nincs adat. |
| Lépések | AZ IP-alapú eszközök esetében a kommunikációs protokoll általában egy SSL-/TLS-csatornába ágyazható az átvitel közbeni adatok védelme érdekében. Az SSL-t/TLS-t nem támogató egyéb protokollok esetében vizsgálja meg, hogy a protokollnak vannak-e olyan biztonságos verziói, amelyek biztonságot nyújtanak az átviteli vagy üzenetrétegben. |
Eszközök és felhőátjárók közötti kommunikáció biztonságossá tétele SSL/TLS használatával
| Cím | Részletek |
|---|---|
| Komponens | IoT Cloud Gateway |
| SDL-fázis | Épít |
| Alkalmazható technológiák | Általános |
| Attribútumok | Nincs adat. |
| Hivatkozások | A kommunikációs protokoll kiválasztása |
| Lépések | HTTP/AMQP vagy MQTT protokollok biztonságossá tételét SSL/TLS használatával. |