Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Ürün/Hizmet | Makale |
|---|---|
| Azure Olay Hub'ı | |
| Dynamics CRM | |
| Azure Data Factory | |
| Kimlik Sunucusu | |
| Web uygulaması | |
| Veritabanı | |
| Azure Depolama | |
| Mobil İstemci | |
| WCF | |
| Web API'si | |
| Azure Yönetimli Redis |
|
| IoT Alan Ağ Geçidi | |
| IoT Cloud Gateway |
SSL/TLS kullanarak Olay Hub'ına güvenli iletişim
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Olay Hub'ı |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Event Hubs kimlik doğrulama ve güvenlik modeli genel bakış |
| Adımları | SSL/TLS kullanarak Olay Hub'ına AMQP veya HTTP bağlantılarının güvenliğini sağlama |
Hizmet hesabı ayrıcalıklarını denetleyin ve özel Hizmetlerin veya ASP.NET Sayfalarının CRM'nin güvenliğine uygun olup olmadığını denetleyin
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Dynamics CRM |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımları | Hizmet hesabı ayrıcalıklarını denetleyin ve özel Hizmetlerin veya ASP.NET Sayfalarının CRM'nin güvenliğine uygun olup olmadığını denetleyin |
Şirket içi SQL Server'ı Azure Data Factory'ye bağlarken Veri yönetimi ağ geçidini kullanma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Data Factory |
| SDL Aşaması | Dağıtım |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Bağlı Hizmet Türleri - Azure ve Şirket İçi |
| Referanslar | Şirket içi ile Azure Data Factory arasında veri taşıma |
| Adımları | Corpnet veya güvenlik duvarı arkasında korunan veri kaynaklarına bağlanmak için Veri Yönetimi Ağ Geçidi (DMG) aracı gereklidir.
|
Kimlik Sunucusuna gelen tüm trafiğin HTTPS bağlantısı üzerinden olduğundan emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Kimlik Sunucusu |
| SDL Aşaması | Dağıtım |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımları | Varsayılan olarak, IdentityServer tüm gelen bağlantıların HTTPS üzerinden gelmesini gerektirir. IdentityServer ile iletişimin yalnızca güvenli aktarımlar üzerinden yapılması kesinlikle zorunludur. Bu gereksinimin gevşetilebileceği TLS boşaltma gibi bazı dağıtım senaryoları vardır. Daha fazla bilgi için referanslardaki Kimlik Sunucusu dağıtım sayfasına bakın. |
SSL, TLS ve DTLS bağlantılarının kimliğini doğrulamak için kullanılan X.509 sertifikalarını doğrulama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımları | SSL, TLS veya DTLS kullanan uygulamaların bağlandıkları varlıkların X.509 sertifikalarını tam olarak doğrulaması gerekir. Bu, aşağıdakiler için sertifikaların doğrulanmasını içerir:
|
Azure App Service'te özel etki alanı için TLS/SSL sertifikası yapılandırma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | OrtamTürü - Azure |
| Referanslar | Azure App Service'te bir uygulama için HTTPS'yi etkinleştirme |
| Adımları | Varsayılan olarak Azure, *.azurewebsites.net etki alanı için joker sertifikaya sahip her uygulama için HTTPS'yi zaten etkinleştirir. Ancak, tüm joker etki alanları gibi, kendi sertifikası olan özel bir etki alanı kullanmak kadar güvenli değildir Refer. Dağıtılan uygulamaya erişilecek özel etki alanı için TLS'nin etkinleştirilmesi önerilir |
HTTPS bağlantısı üzerinden bütün trafiği Azure App Service'e yönlendirme
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | OrtamTürü - Azure |
| Referanslar | Azure App Service'te HTTPS'ye zorlama |
| Adımları | Azure, *.azurewebsites.net etki alanı için joker karakter sertifikasıyla Azure uygulama hizmetleri için HTTPS'yi zaten etkinleştirse de HTTPS'yi zorunlu kılmaz. Ziyaretçiler uygulamaya HTTP kullanarak erişmeye devam edebilir ve bu da uygulamanın güvenliğini tehlikeye atabilir ve bu nedenle HTTPS'nin açıkça uygulanması gerekir. ASP.NET MVC uygulamaları, güvenli olmayan bir HTTP isteğinin HTTPS üzerinden yeniden gönderilmesini zorlayan RequireHttps filtresini kullanmalıdır. Alternatif olarak, Azure App Service'e dahil edilen URL Yeniden Yazma modülü HTTPS'yi zorunlu kılmak için kullanılabilir. URL Yeniden Yazma modülü, geliştiricilerin gelen isteklere uygulanan kuralları uygulamanıza teslim etmeden önce tanımlamasını sağlar. URL Yeniden Yazma kuralları, uygulamanın kökünde depolanan bir web.config dosyasında tanımlanır |
Örnek
Aşağıdaki örnek, tüm gelen trafiği HTTPS kullanmaya zorlayan temel bir URL Yeniden Yazma kuralı içerir
<?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>
Bu kural, kullanıcı HTTP kullanarak bir sayfa istediğinde 301 (kalıcı yeniden yönlendirme) HTTP durum kodu döndürerek çalışır. 301, isteği ziyaretçinin istediği URL'ye yönlendirir, ancak isteğin HTTP bölümünü HTTPS ile değiştirir. Örneğin, HTTP://contoso.com öğesi HTTPS://contoso.com öğesine yeniden yönlendirilir.
HTTP Katı Aktarım Güvenliğini (HSTS) Etkinleştirme
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | OWASP HTTP Strict Transport Security Özet Rehber |
| Adımları | HTTP Strict Transport Security (HSTS), bir web uygulaması tarafından özel bir yanıt üst bilgisi kullanılarak belirtilen isteğe bağlı bir güvenlik geliştirmesidir. Desteklenen bir tarayıcı bu üst bilgiyi aldığında, tarayıcı belirtilen etki alanına HTTP üzerinden herhangi bir iletişim gönderilmesini engeller ve bunun yerine tüm iletişimleri HTTPS üzerinden gönderir. Tarayıcılarda, HTTPS ile ilgili uyarı pencerelerinin görüntülenmesini de engeller. HSTS'yi uygulamak için aşağıdaki yanıt üst bilgisinin bir web sitesi için kodda veya yapılandırmada genel olarak yapılandırılması gerekir. Strict-Transport-Security: max-age=300; includeSubDomains HSTS aşağıdaki tehditleri giderir:
|
SQL Server bağlantı şifrelemesini ve sertifika doğrulamasını sağlama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Veritabanı |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | SQL Azure |
| Öznitelikler | SQL Sürümü - V12 |
| Referanslar | SQL Veritabanı için Güvenli Bağlantı Dizeleri Yazma konusunda En İyi Yöntemler |
| Adımları | SQL Veritabanı ile istemci uygulaması arasındaki tüm iletişimler, daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği (TLS) kullanılarak her zaman şifrelenir. SQL Veritabanı şifrelenmemiş bağlantıları desteklemez. Sertifikaları uygulama kodu veya araçlarla doğrulamak için, açıkça şifreli bir bağlantı isteyin ve sunucu sertifikalarına güvenmeyin. Uygulama kodunuz veya araçlarınız şifreli bağlantı isteğinde bulunmazsa şifrelenmiş bağlantılar almaya devam eder Ancak, sunucu sertifikalarını doğrulamayabilirler ve bu nedenle "ortadaki adam" saldırılarına maruz kalabilirler. Sertifikaları ADO.NET uygulama koduyla doğrulamak için veritabanı bağlantı dizesini ayarlayın |
SQL Server ile Şifreli iletişimi zorlamak
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Veritabanı |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | OnPrem |
| Öznitelikler | SQL Sürümü - MsSQL2016, SQL Sürümü - MsSQL2012, SQL Sürümü - MsSQL2014 |
| Referanslar | Veritabanı Altyapısına Şifreli Bağlantıları Etkinleştirme |
| Adımları | TLS şifrelemesinin etkinleştirilmesi, SQL Server örnekleri ile uygulamalar arasında ağlar arasında iletilen verilerin güvenliğini artırır. |
Azure Depolama ile iletişimin HTTPS üzerinden olduğundan emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Depolama |
| SDL Aşaması | Dağıtım |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Azure Depolama Transport-Level Şifrelemesi – HTTPS Kullanma |
| Adımları | Aktarımdaki Azure Depolama verilerinin güvenliğini sağlamak için REST API'leri çağırırken veya depolamadaki nesnelere erişirken her zaman HTTPS protokollerini kullanın. Ayrıca, Azure Depolama nesnelerine erişimi temsilci olarak atamak için kullanılabilen Paylaşılan Erişim İmzaları, Paylaşılan Erişim İmzaları kullanılırken yalnızca HTTPS protokollerinin kullanılabileceğini belirten bir seçenek içerir ve SAS belirteçleriyle bağlantı gönderen herkesin uygun protokolü kullanmasını sağlar. |
HTTPS etkinleştirilemiyorsa blob indirildikten sonra MD5 karması doğrulama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Depolama |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Depolama Türü - Blob |
| Referanslar | Windows Azure Blob MD5'e Genel Bakış |
| Adımları | Windows Azure Blob hizmeti, hem uygulama hem de aktarım katmanlarında veri bütünlüğünü sağlamaya yönelik mekanizmalar sağlar. Herhangi bir nedenle HTTPS yerine HTTP kullanmanız gerekiyorsa ve blok bloblarıyla çalışıyorsanız, aktarılmakta olan blobların bütünlüğünü doğrulamaya yardımcı olması için MD5 denetimini kullanabilirsiniz Bu, ağ/aktarım katmanı hatalarına karşı koruma sağlamaya yardımcı olur, ancak aracı saldırılarla ilgili olması gerekmez. Aktarım düzeyi güvenliği sağlayan HTTPS'yi kullanabiliyorsanız MD5 denetimini kullanmak gereksizdir ve gereksizdir. |
Azure dosya paylaşımlarına aktarım veri şifrelemesi sağlamak için SMB 3.x uyumlu istemcisini kullanma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Mobil İstemci |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | StorageType - Dosya |
| Referanslar | Azure Dosyalar, Windows İstemcileri için Azure Dosyalar SMB Desteği |
| Adımları | Azure Dosyalar REST API kullanırken HTTPS'yi destekler, ancak daha yaygın olarak vm'ye eklenmiş bir SMB dosya paylaşımı olarak kullanılır. SMB 2.1 şifrelemeyi desteklemez, bu nedenle yalnızca Azure'da aynı bölgede bağlantılara izin verilir. Ancak SMB 3.x şifrelemeyi destekler ve Windows Server 2012 R2, Windows 8, Windows 8.1 ve Windows 10 ile birlikte kullanılabilir ve bölgeler arası erişime ve hatta masaüstünde erişime izin verir. |
Sertifika sabitleme uygulayın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Depolama |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel, Windows Phone |
| Öznitelikler | Mevcut Değil |
| Referanslar | Sertifika ve Ortak Anahtar Sabitleme |
| Adımları | Sertifika sabitleme,The-Middle Kişi (MITM) saldırılarına karşı savunma sağlar. Sabitleme işlemi, bir barındırıcıyı beklenen X.509 sertifikası veya ortak anahtarıyla ilişkilendirme sürecidir. Bir konak için bir sertifika veya ortak anahtar bilindikten veya görüldükten sonra, sertifika veya ortak anahtar konakla ilişkilendirilir veya 'sabitlenir'. Bu nedenle, bir saldırgan TLS MITM saldırısı gerçekleştirmeye çalıştığında, TLS el sıkışması sırasında saldırganın sunucusundan alınan anahtar sabitlenmiş sertifikanın anahtarından farklı olur ve istek atılır, böylece ServicePointManager'ın |
Örnek
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'yi etkinleştirme - Güvenli Aktarım kanalı
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | WCF |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | NET Çerçevesi 3 |
| Öznitelikler | Mevcut Değil |
| Referanslar | MSDN, Krallığı Güçlendir |
| Adımları | Uygulama yapılandırması, hassas bilgilere tüm erişim için HTTPS'nin kullanıldığından emin olmalıdır.
Pratik bir bakış açısıyla ağın güvenliğini sağlamaktan sorumlu kişiler, geliştikçe uygulamanın güvenlik gereksinimlerini her zaman izlemez. |
WCF: İleti güvenliği Koruma düzeyini EncryptAndSign olarak ayarlayın
Örnek
Hizmeti ve işlemi yalnızca iletiyi imzalamak üzere yapılandırmak aşağıdaki örneklerde gösterilmiştir. Hizmet Sözleşmesi Örneği ProtectionLevel.Sign: Aşağıda, Hizmet Sözleşmesi düzeyinde ProtectionLevel.Sign kullanma örneği verilmiştir:
[ServiceContract(Protection Level=ProtectionLevel.Sign]
public interface IService
{
string GetData(int value);
}
Örnek
İşlem Sözleşmesi Örneği ProtectionLevel.Sign (Ayrıntılı Denetim için): İşlemSözleşmesi düzeyinde kullanım ProtectionLevel.Sign örneği aşağıda verilmiştir:
[OperationContract(ProtectionLevel=ProtectionLevel.Sign]
string GetData(int value);
WCF: WCF hizmetinizi çalıştırmak için en az ayrıcalıklı bir hesap kullanın
Tüm trafiği HTTPS bağlantısı üzerinden Web API'lerine yönlendirin.
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web API'si |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | MVC5, MVC6 |
| Öznitelikler | Mevcut Değil |
| Referanslar | Web API Denetleyicisinde SSL'yi zorlama |
| Adımları | Bir uygulamanın hem HTTPS hem de HTTP bağlaması varsa, istemciler siteye erişmek için HTTP kullanmaya devam edebilir. Bunu önlemek için, korumalı API'lere yönelik isteklerin her zaman HTTPS üzerinden olduğundan emin olmak için bir eylem filtresi kullanın. |
Örnek
Aşağıdaki kod, TLS'yi denetleen bir Web API'si kimlik doğrulama filtresi gösterir:
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);
}
}
}
Bu filtreyi TLS gerektiren herhangi bir Web API'sine ekleyin:
public class ValuesController : ApiController
{
[RequireHttps]
public HttpResponseMessage Get() { ... }
}
Azure Yönetilen Redis ile iletişimin TLS üzerinden olduğundan emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Yönetilen Redis |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Azure Redis TLS desteği |
| Adımları | Redis sunucusu, kutudan çıktığı gibi TLS desteği sunmaz, ancak Azure Yönetilen Redis sunar. Azure Managed Redis'e bağlanıyorsanız ve istemciniz StackExchange.Redis gibi TLS'yi destekliyorsa TLS kullanmalısınız. Varsayılan olarak, yeni Azure Yönetilen Redis örnekleri için TLS olmayan bağlantı noktası devre dışıdır. Redis istemcileri için TLS desteğine bağımlılık olmadığı sürece güvenli varsayılan değerlerin değiştirilmediğinden emin olun. |
Redis'in güvenilen ortamlardaki güvenilir istemciler tarafından erişilecek şekilde tasarlandığını lütfen unutmayın. Bu, Redis örneğini doğrudan İnternet'e veya genel olarak güvenilmeyen istemcilerin Redis TCP bağlantı noktasına veya UNIX yuvasına doğrudan erişebildiği bir ortamda kullanıma sunmanın genellikle iyi bir fikir olmadığı anlamına gelir.
Cihaz ve Alan Ağ Geçidi İletişimini Güvenceye Alma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | IoT Alan Geçidi |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımları | IP tabanlı cihazlarda iletişim protokolü genellikle aktarımdaki verileri korumak için ssl/TLS kanalında kapsüllenebilir. SSL/TLS'yi desteklemeyen diğer protokoller için, protokolün aktarım veya ileti katmanında güvenlik sağlayan güvenli sürümleri olup olmadığını araştırın. |
SSL/TLS kullanarak Cihazdan Bulut Ağ Geçidine iletişimin güvenliğini sağlama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | IoT Cloud Gateway |
| SDL Aşaması | İnşa et |
| Geçerli Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | İletişim Protokolünüzü seçin |
| Adımları | SSL/TLS kullanarak HTTP/AMQP veya MQTT protokollerinin güvenliğini sağlayın. |