Bir müşterinin dahili ağındaki cihazların ve sunucuların web'e istemeden maruz kalmasıyla ilişkili riskleri azaltın.
Özel bir ağda barındırılan cihazlara ve sunuculara istekte bulunan kötü amaçlı web siteleri uzun süredir tehdit oluşturuyor. Örneğin, saldırganlar Man-in-the-Middle saldırılarını etkinleştirmek için kablosuz yönlendiricinin yapılandırmasını değiştirebilir. CORS-RFC1918, bu tür isteklerin tarayıcıda varsayılan olarak engellenmesini ve dahili cihazların herkese açık internetten gelen isteklere izin vermesini zorunlu kılan bir öneridir.
Bu değişikliğin web ekosistemini nasıl etkilediğini anlamak için Chrome ekibi, özel ağlar için sunucu oluşturan geliştiricilerden geri bildirim bekliyor.
Mevcut durumla ilgili sorun nedir?
Birçok web sunucusu özel bir ağda çalışır. Kablosuz yönlendiriciler, yazıcılar, intranet web siteleri, kurumsal hizmetler ve Nesnelerin İnterneti (IoT) cihazları bunlardan yalnızca birkaçıdır. Bu sunucular, herkese açık olanlardan daha güvenli bir ortamda gibi görünse de bir web sayfasını proxy olarak kullanan saldırganlar tarafından kötüye kullanılabilir. Örneğin, kötü amaçlı web siteleri, kurban tarafından (JavaScript'in etkin olduğu bir tarayıcıda) basitçe görüntülendiğinde kurbanın evindeki geniş bant yönlendiricisinde DNS sunucusu ayarlarını değiştirmeye çalışan bir URL yerleştirebilir. Bu tür saldırılara "Drive-By Pharming" adı verilir ve 2014'te gerçekleşmiştir. 300.000'den fazla savunmasız kablosuz yönlendiricinin DNS ayarları değiştirilerek saldırganların kullanıcıları kötü amaçlı sunuculara yönlendirmesine izin verildi.
CORS-RFC1918
Web topluluğu, benzer saldırıların tehdidini azaltmak için CORS-RFC1918'i (Merkezler Arası Kaynak Paylaşımı (CORS)) kullanıma sunuyor. Bu özellik, RFC1918'de tanımlanan özel ağlar için özel olarak geliştirilmiştir.
CORS'u uygulayan tarayıcılar, hedef kaynaklarla farklı bir kaynaktan yüklenmelerinin uygun olup olmadığını kontrol eder. Bu, karmaşıklığa bağlı olarak erişimi açıklayan satır içi ek üstbilgilerle veya ön kontrol istekleri adı verilen bir mekanizma kullanılarak gerçekleştirilir. Daha fazla bilgi edinmek için Merkezler Arası Kaynak Paylaşımı başlıklı makaleyi okuyun.
CORS-RFC1918 ile tarayıcı, CORS kullanılarak ve HTTPS üzerinden sunucu tarafından açıkça izin verilenler hariç olmak üzere, özel ağ üzerinden kaynak yüklemeyi varsayılan olarak engeller. Bu kaynaklara istekte bulunan web sitesinin CORS başlıkları göndermesi, sunucunun ise karşılık gelen CORS başlıklarıyla yanıt vererek kaynaklar arası isteği kabul ettiğini açıkça belirtmesi gerekir. (Tam CORS başlıkları henüz geliştirme aşamasındadır.)
Bu tür cihazların veya sunucuların geliştiricilerinden iki şey yapmaları istenir:
- Özel bir ağa istekte bulunan web sitesinin HTTPS üzerinden sunulduğundan emin olun.
- CORS-RFC1918 için sunucu desteğini ayarlayın ve beklenen HTTP başlıklarıyla yanıt verin.
Ne tür istekler etkilenir?
Etkilenen istekler şunlardır:
- Herkese açık ağdan özel ağa gönderilen istekler
- Özel bir ağdan yerel bir ağa yapılan istekler
- Herkese açık ağdan yerel ağa yapılan istekler
Özel ağ
IPv4'te RFC1918'in 3. Bölümünde tanımlanan özel adres alanına çözümlenen bir hedef, eşlenen IPv4 adresinin kendisi özel olan bir IPv4 ile eşlenmiş IPv6 adresi veya ::1/128, 2000::/3 ve ff00::/8 alt ağlarının dışında bir IPv6 adresi.
Yerel ağ
IPv4'ün RFC1122'sinin 3.2.1.3 bölümünde tanımlanan "geri döngü" alanına (127.0.0.0/8), IPv4'ün RFC3927'sinde tanımlanan "bağlantı yerel" alanına (169.254.0.0/16), IPv6'nın RFC4193'ünün 3. bölümünde tanımlanan "Unique Local Address" (Benzersiz Yerel Adres) önekine (fc00::/7) veya IPv6'nın RFC4291'inin 2.5.6 bölümünde tanımlanan "bağlantı yerel" önekine (fe80::/10) çözümlenen bir hedef.
Herkese açık ağ Diğer tüm ağlar.
Chrome'un CORS-RFC1918'i etkinleştirme planları
Chrome, CORS-RFC1918'i iki aşamada kullanıma sunuyor:
1. adım: Özel ağ kaynaklarına yönelik isteklere yalnızca HTTPS web sayfalarından izin verilecek
Chrome 87, herkese açık web sitelerinin özel ağ kaynaklarına istekte bulunmasını zorunlu kılan bir işaret ekliyor. Bu işaret, HTTPS'yi zorunlu kılıyor. Özelliği etkinleştirmek için about://flags#block-insecure-private-network-requests bölümüne gidebilirsiniz. Bu işaret etkinleştirildiğinde, bir HTTP web sitesinden özel ağ kaynağına yapılan tüm istekler engellenir.
Chrome 88'den itibaren CORS-RFC1918 hataları, konsolda CORS politikası hataları olarak bildirilecektir.
Chrome Geliştirici Araçları'nın Ağ panelinde, engellenen isteklere odaklanmak için Engellenen İstekler onay kutusunu etkinleştirebilirsiniz:
Chrome 87'de CORS-RFC1918 hataları yalnızca Geliştirici Araçları Konsolu'nda ERR_INSECURE_PRIVATE_NETWORK_REQUEST olarak bildirilir.
Bu test web sitesini kullanarak kendiniz deneyebilirsiniz.
2. adım: Özel bir üstbilgiyle ön kontrol istekleri gönderme
Gelecekte, herkese açık bir web sitesi özel veya yerel bir ağdan kaynak getirmeye çalıştığında Chrome, gerçek istekten önce bir ön kontrol isteği gönderir.
İstek, diğer CORS istek başlıklarına ek olarak bir Access-Control-Request-Private-Network: true
başlığı içerecek. Bu başlıklar, diğer şeylerin yanı sıra isteği yapan kaynağı tanımlayarak ayrıntılı erişim denetimine olanak tanır. Sunucu, kaynağa erişim izni verdiğini açıkça belirtmek için Access-Control-Allow-Private-Network:
true üst bilgisiyle yanıt verebilir.
Geri bildirimlerinizi bekliyoruz
Herkese açık ağlardan istek bekleyen bir özel ağda web sitesi barındırıyorsanız Chrome Ekibi, geri bildirimlerinizi ve kullanım alanlarınızı öğrenmek istiyor. Bu durumda iki şey yapabilirsiniz:
about://flags#block-insecure-private-network-requestsbölümüne gidin, işareti etkinleştirin ve web sitenizin özel ağ kaynağına beklendiği gibi istek gönderip göndermediğini kontrol edin.- Herhangi bir sorunla karşılaşırsanız veya geri bildirimde bulunmak isterseniz crbug.com adresinden sorun kaydı oluşturun
ve bileşeni
Blink>SecurityFeature>CORS>RFC1918olarak ayarlayın.
Örnek geri bildirim
Kablosuz yönlendiricimiz, aynı özel ağ için ancak HTTP üzerinden bir yönetici web sitesi sunuyor. Yönetici web sitesini yerleştiren web siteleri için HTTPS gerekiyorsa bu durumda karma içerik söz konusudur. Kapalı bir ağda yönetici web sitesinde HTTPS'yi etkinleştirmeli miyiz?
Chrome'un aradığı geri bildirim türü tam olarak budur. Lütfen crbug.com adresinden kullanım alanınızla ilgili bir sorun bildirin. Chrome, sizden haber almayı çok ister.