Linux Saldırı Yüzeylerini Küçültmek

Çoğu zaman, bir çekirdek geliştirici, tamamen kapatılamasa bile Linux'a yönelik bir saldırı yüzeyinin boyutunu azaltmaya çalışır. Bu tür bir yamanın çekirdeğe girip girmediği genellikle bir savurganlıktır. Linus Torvalds, saldırganlara biraz daha zor bir zaman vermek yerine, her zaman bir deliği gerçekten kapatan güvenlik yamalarını tercih eder.

Matthew Garrett, kullanıcı alanı uygulamalarının herhangi bir zamanda RAM'de oturan gizli verilere sahip olabileceğini ve bu uygulamaların kimsenin bakmaması için bu verileri silmek isteyebileceğini fark etti.

Matthew'un işaret ettiği gibi bunu zaten çekirdeğin içinde yapmanın çeşitli yolları vardı. Bir uygulama, bellek içeriğinin takas haline getirilmesini önlemek için mlock () kullanabilir ve burada saldırganlar tarafından daha kolay okunabilir. Bir uygulama ayrıca, uygulamadan çıkarken belleğinin üzerine yazılmasına neden olmak için atexit () yöntemini kullanabilir ve böylece kullanılabilir RAM'in genel havuzunda gizli veri bırakmaz.

Matthew, sorunun bir saldırganın kritik bir anda sistemi yeniden başlatabildiğini, yani kullanıcının verilerinin üzerine yazılmadan önce geldiğini belirtti. Saldırganlar daha sonra farklı bir işletim sistemine önyükleme yaparlarsa, daha önce çalışan Linux sisteminden kalan RAM'de hala depolanan verileri inceleyebilirler.

Matthew'un da belirttiği gibi, bunu önlemenin mevcut yolu, UEFI ürün yazılımına başka bir işletim sistemine önyükleme yapmadan önce sistem belleğini silmesini söylemektir, ancak bu yeniden başlatma süresini önemli ölçüde artıracaktır. Ve eğer iyi adamlar saldırganları kazanmış olsaydı, onları yeniden başlatma için uzun süre beklemeye zorlamak, bir hizmet reddi saldırısı ya da en azından düpedüz sinir bozucu olarak kabul edilebilir.

İdeal olarak, Matthew, saldırganların sadece soğuk bir önyükleme değil, sadece temiz bir kapanma başlatabilseydi, Linux'a tüm verileri RAM'den temizlemesini söylemenin bir yolunun olması gerektiğini söyledi, bu yüzden UEFI'ye daha fazla gerek kalmayacaktı ve böylece yeniden başlatma sırasında çok uzun bir gecikmeye gerek yoktur.

Matthew yamasının ardındaki mantığı açıkladı. Dedi ki:

Ne yazık ki, bir uygulama kirli bir şekilde çıkarsa, sırları RAM'de hala mevcut olabilir. Bu kullanıcı arazisinde kolayca düzeltilemez (örneğin, OOM katili sırları tutan bir işlemi öldürmeye karar verirse, bundan kaçınamayız), bu nedenle bu yama madvise'ye () izin vermek için yeni bir bayrak ekler kullanıcı referansı, sayfa referans sayısı sıfıra ulaştığında çekirdeğin kapsanan sayfaları temizlemesini istemektedir. Vm_flags 32 bit üzerinde zaten dolu olduğundan, yalnızca 64 bit sistemlerde çalışır.
Matthew Wilcox bu planı beğendi ve Matthew G'nin yaması için bazı teknik öneriler sundu ve Matthew G yanıt olarak güncellenmiş bir versiyon yayınladı.

Michal Hocko ayrıca, ek koruma için yamanın sadece RAM'i değil, aynı zamanda takas alanını da silmesi gerektiği fikri de dahil olmak üzere bazı teknik önerilere sahipti.

Ancak, Christopher Lameter, saldırıyı gerçekleştirmeyi zorlaştırsa bile, sorunu gerçekten çözmediğini söyleyerek Matthew G'nin yamasına cevap verdi. Koyduğu gibi:
Sayfalar, başka bir işleme yeniden aktarıldığında yine de temizlenir. Bu, yeniden kullanmadan önce daha erken temizler. Bu nedenle, programın iptal edilmesi ve çıkış işlemesini gerçekleştirememesi durumunda bir sayfanın gizli sos içerme süresini azaltacaktır.

Bu, sistem çağrılarını genişletmeye ve bunun için çekirdek işleme eklemeye gerçekten değer mi? Belki de "güvenlik" ile ilgili herhangi bir şey hakkındaki mevcut kaygımız göz önüne alındığında, evet cevabı evettir.
Matthew G, sistem çoğunlukla boştaysa, başka hiçbir işlemin hala gizli verileri tutan RAM'i talep edemeyeceğini belirtti. Bu durumda, bu sırlar korunmasız kalacaktı. Ve eğer birisi o sırada sistemi yeniden başlatırsa, gizli veriler ortaya çıkar.

Bir grup insan teknik önerilere katkıda bulundu ve Matthew G, tartışma sona ermeden önce yamasının birkaç yeni versiyonunu gönderdi.

Bu yamaya açıkça biraz ilgi var, ama hiç kimse Gri Havens'e giderken şarkı söylemiyordu. Bir saldırganın açıkta kalan verilerden faydalanması için zaman penceresini biraz daha sıkı hale getirmesi açısından bir güvenlik geliştirmesini açıkça temsil eder, ancak aynı zamanda bu pencere belirli bir süre açık kalır. Düşman saldırganlar, Matthew G'nin yamasıyla bile ayrıcalıklı verilere erişmek için bundan yararlanabilirler. Bu yamanın çekirdeğe girip girmeyeceği net değil.

Not: Yukarıda bahsedildiyseniz ve yorum bölümünün üstünde bir yanıt göndermek istiyorsanız, yanıt metninizi içeren bir mesaj [email protected] adresine gönderin.

Zack Brown, Linux Journal ve Linux Magazine'de teknik gazetecidir ve "Kernel Traffic" haftalık bülteninin ve "Plover'ı Öğrenin" stenografik yazım öğreticilerinin eski yazarıdır. İlk olarak 1993 yılında Slackware Linux'u 386'sına 8 megabayt RAM ile kurdu ve zihnini sürekli Açık Kaynak topluluğu tarafından uçurdu. Kendinizi birkaç parça kartonla yapabileceğiniz Crumble saf strateji masa oyununun mucididir. Ayrıca kurgu yazmayı, canlandırmayı denemeyi, Labanotation'da reform yapmayı, kendi kıyafetlerini tasarlamayı ve dikmeyi, Fransızca öğrenmeyi ve arkadaşlarıyla aile birlikte vakit geçirmeyi seviyor.
About author
Slaweally
Ben Ali Çömez (Slaweally) Uzun yıllar internet sektöründe zaman geçirdikten sonra tecrübelerimi sizinle paylaşmak için buradayım.

Comments

There are no comments to display.

guvenlik information

Yazar
Slaweally
Görüntüleme
72
Last update

More in Güvenlik (Security) Dökümanları

More from Slaweally