Chromium Chronicle #5: Korumalı Alan Dışında Kodlama

5. Bölüm: Ade, Mountain View, Kaliforniya'dan (Ağustos 2019)
Önceki bölümler

Chrome süreçlere bölünmüştür. Bazıları korumalı alandadır. Diğer bir deyişle, sisteme ve kullanıcıların hesaplarına erişimleri daha azdır. Korumalı bir işlemde, kötü amaçlı kodların çalışmasına izin veren hataların ciddiyeti çok daha düşüktür.

Tarayıcı işleminde korumalı alan yoktur. Bu nedenle, bir hata kötü amaçlı kodun tüm cihaza tam erişimine izin verebilir. Neyi farklı yapmanız gerekir? Peki diğer süreçlerin durumu nedir?

Korumalı alan şeması

Tüm kodlarda hatalar vardır. Bu hatalar, tarayıcı sürecinde kötü amaçlı kodların program yüklemesine, kullanıcı verilerini çalmasına, bilgisayar ayarlarını ayarlamasına, tüm tarayıcı sekmelerinin içeriğine erişmesine, giriş verilerine erişmesine ve benzeri işlemlere izin verir.

Diğer işlemlerde, işletim sistemi erişimi platforma özel kısıtlamalar aracılığıyla sınırlıdır. Daha fazla bilgi için Chrome'un korumalı alan uygulama kılavuzuna bakın.

Aşağıdaki yaygın hatalardan kaçınmaya dikkat edin:

iki kuralı

  • Tarayıcı işleminde güvenilir olmayan verileri C++ kullanarak ayrıştırmayın veya yorumlamayın.
  • Oluşturucunun temsil ettiğini iddia ettiği kaynağa güvenmeyin. Mevcut kaynağı güvenli bir şekilde almak için tarayıcının RenderFrameHost'ı kullanılabilir.


Yapılması gerekenler

Bunun yerine aşağıdaki en iyi uygulamalardan yararlanın:

  • Kodunuz tarayıcı işlemindeyse çok fazla paranodike olabilir.
  • Diğer işlemlerden tüm IPC'leri doğrulayın. Diğer tüm süreçlerin zaten ihlal edilmiş ve sizi aldatmak için yapıldığını varsayın.
  • İşlemenizi bir oluşturucu veya yardımcı program işleminde ya da başka korumalı alana alınmış bir işlemde yapın. İdeal olarak, JavaScript gibi bellek açısından güvenli bir dil de kullanın (%50'den fazla güvenlik hatasını çözer).

Yıllar boyunca tarayıcı işleminde ağ yığınlarını (ör. HTTP, DNS, QUIC) çalıştırdık ve bu durum bazı kritik güvenlik açıklarına yol açıyordu. Bazı platformlarda artık ağ kurmanın kendine ait bir süreci var ve bunu bir korumalı alan geliyor.

Ek Kaynaklar

  • Chromium'un İki Kuralı: En fazla iki güvenli veri, güvenli olmayan kod ve güvenli olmayan işlem.
  • IPC Verilerini Doğrulama: Oluşturucu sürecinden gelen IPC'lerin fib'ler ve yanlış beyanlarla dolu olmadığından nasıl emin olacağınıza dair bir kılavuz.