Tek bir tıklamayı geçici bir güvenlik duvarı kuralına dönüştürmek kullanışlıdır ve aynı zamanda kimin bir hizmete erişebileceğine karar veren bir yetkilendirme sistemi kurar. Verdiği şey kişi değil adrestir ve bu fark, iki kişinin tek bir NAT'ı paylaştığı anda önem kazanır. İznin kapsamını sınırlayın, bilinçli olarak onaylayın ve bağlantı kurulmadan önce süre sonuna anlam yükleyin. Önünüzdeki karar sınırın nereye konacağıdır, bir sınırın olması gerekip gerekmediği değil.

İznin hangi soruyu yanıtladığına karar verin

Gereksinimden başlayın. Adı belirli bir kişinin hizmete erişmesi gerekiyorsa ve uygulama bu kişiyi zaten kimlik doğruluyorsa, kimliği doğrulanmış bir ağ geçidi kimliği uygulama noktasında tutar ve hiçbir adres kabulüne ihtiyaç duymaz. Hedef bir derleme aracısı, yönetici sıçrama bağlantı noktası veya kullanıcı oturum açmasına katılamayan bir cihazsa, kapsamı dar bir adres izni mevcut tek pratik kontrol olabilir.

Kullanıcıya dönük bir uygulama için adres kabulünü seçmek asıl yetkilendirme sorununu başka bir yere taşır ve portal sonra hiç kapatmadığı bir boşluğun suçunu devralır.

İsteği sunucuda sınırlayın

Tarayıcı hedefi, bağlantı noktasını veya öneki seçmemelidir. Portal hizmeti kendi kayıtlarından çözer ve hakkı sunucu tarafındaki bir testle denetler; bu da OWASP'ın yetkilendirme rehberinin her isteğe uyguladığı ilkenin aynısıdır. Adresin türetilmesi de korunan sınıra aittir: ters vekil sunucu istemci adresini bildirdiğinde yalnızca yapılandırılmış vekil zincirini ve onun belgelenmiş başlık işleyişini kabul edin. Bir ziyaretçinin sağladığı yönlendirme başlığı, kaynak hakkında bir iddiadır, onun kanıtı değildir.

Ardından portalın ve hizmetin aynı kaynağı gördüğünü doğrulayın. Bölünmüş tünel, tek bir vekil sıçraması ve IPv4 ile IPv6 arasındaki fark iki hedefe iki farklı adres verebilir; bu yüzden bir yoldan etkinleştirilen izin sonraki isteği kapsamayabilir.

İzni kurmadan önce gösterin

Bir bağlantının açılması önerilen hizmeti, gözlenen kaynağı ve süreyi göstermeli ve henüz hiçbir şeyi değiştirmemelidir. Bu tek adım, e-postayla gelen bağlantıyı bir eylemden bir öneriye dönüştürür ve bir önizleme botunun veya posta tarayıcısının yalnızca onu getirerek erişim vermesini engeller.

Onay, olağan siteler arası ve kaynak savunmalarıyla durumu değiştiren bir istek olmalıdır. Belirteç tek kullanımlık olmalı ve kural kurulduğu anda atomik olarak tüketilmelidir; kayıt ise sahibi, hizmeti, adresi, izin tanımlayıcısını ve süre sonunu, ham belirteci hiç günlüğe yazmadan kaydetmelidir.

Belirtecin teslimi, kuralın kendisi kadar özen hak eder. Süresi geçmiş veya zaten tüketilmiş bir bağlantı hâlâ bir kural üretiyorsa, bu aynı anahtarla takılmış ikinci bir kapıdır.

İzin yaşarken bile adres paylaşılır

Bir ofis NAT'ı, bir operatör NAT'ı ve paylaşılan bir VPN çıkışı, her biri birkaç kişiyi tek bir adresin arkasına koyar. O adresi kabul etmek, arkasındaki herkesi kabul etmektir — hizmetin bir sonraki sınırı açısından —, aynı zamanda hizmetin beklediği hesabın kimde olduğu konusunda hiçbir şey kanıtlamaz.

Kuralı kaldırmak da evrensel bir bağlantı kesme değildir. Kurulmuş bağlantılar, önbelleğe alınmış uygulama belirteçleri ve uzun ömürlü oturumlar kuralı dakikalarca veya çok daha uzun süre aşabilir; bu yüzden seçtiğiniz ömür yalnızca kuralın ne kadar sürdüğünü değil, hizmetin kabulden sonra ne yaptığını yansıtmalıdır.

Dört durumu ve her iki adres ailesini test edin

Bir izin, ancak dayandığı dört durum kadar iyidir: yeni izin verilen istek, onaylanmamış istemci, aynı bağlantının tekrarı ve süre sonundan sonraki aynı istek.

Ardından her aileyi ayrı ayrı test edin, çünkü hizmetin gözlediği kaynak adres ikisi arasında farklı olabilir.

dig +short A service.example.com
dig +short AAAA service.example.com
curl -4 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com
curl -6 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com

Yararlı sonuç, olağan kullanıcı yetkilendirmesinin altında duran geçici ve denetlenebilir bir kabul kararıdır; ilk tıklayanın adını taşıyan kalıcı bir açıklık değil.

İlgili makaleler