Ayrıcalık yükseltme - Privilege escalation

Ayrıcalık yükseltmeyi açıklayan bir diyagram. Ok , çekirdeğe erişim sağlayan bir rootkit'i temsil eder ve küçük geçit, kullanıcının bir Yönetici kullanıcı adı ve şifresi girmesi gereken normal ayrıcalık yükseltmesini temsil eder.

Ayrıcalık yükseltme , normalde bir uygulamadan veya kullanıcıdan korunan kaynaklara yüksek erişim elde etmek için bir işletim sistemi veya yazılım uygulamasındaki bir hatadan , tasarım kusurundan veya yapılandırma gözetiminden yararlanma eylemidir . Sonuç olarak, uygulama geliştiricisi veya sistem yöneticisi tarafından amaçlanandan daha fazla ayrıcalığa sahip bir uygulama, yetkisiz eylemler gerçekleştirebilir .

Arka plan

Çoğu bilgisayar sistemi, her biri ayrıcalık olarak bilinen yeteneklere sahip birden çok kullanıcı hesabıyla kullanılmak üzere tasarlanmıştır . Ortak ayrıcalıklar, dosyaları görüntülemeyi ve düzenlemeyi veya sistem dosyalarını değiştirmeyi içerir.

Ayrıcalık yükseltme, kullanıcıların hakları olmayan ayrıcalıkları aldıkları anlamına gelir. Bu ayrıcalıklar dosyaları silmek, özel bilgileri görüntülemek veya virüs gibi istenmeyen programları yüklemek için kullanılabilir. Genellikle bir sistemde güvenliğin atlanmasına izin veren bir hata olduğunda veya alternatif olarak, nasıl kullanılacağına dair hatalı tasarım varsayımlarına sahip olduğunda ortaya çıkar . Ayrıcalık yükseltme iki şekilde gerçekleşir:

  • Daha düşük ayrıcalıklı bir kullanıcı veya uygulamanın, daha yüksek ayrıcalıklı kullanıcılar veya uygulamalar için ayrılmış işlevlere veya içeriğe (örneğin, İnternet Bankacılığı kullanıcıları site yönetim işlevlerine erişebilir veya bir akıllı telefon parolası atlanabilir) eriştiği, ayrıcalık yükseltmesi olarak da bilinen dikey ayrıcalık yükseltme .
  • Normal bir kullanıcının diğer normal kullanıcılar için ayrılmış işlevlere veya içeriğe eriştiği yatay ayrıcalık yükseltme (örn. İnternet Bankacılığı Kullanıcısı A, Kullanıcı B'nin İnternet bankası hesabına erişir)

Dikey

Korumalı modda kullanılabilen x86 için ayrıcalık halkaları

Bu tür ayrıcalık yükseltme, kullanıcı veya işlem, muhtemelen çekirdek düzeyinde işlemler gerçekleştirerek, bir yönetici veya sistem geliştiricisinin amaçladığından daha yüksek bir erişim düzeyi elde edebildiğinde gerçekleşir .

Örnekler

Bazı durumlarda, yüksek ayrıcalıklı bir uygulama, yalnızca arabirim belirtimine uyan girdiyle sağlanacağını varsayar, dolayısıyla bu girdiyi doğrulamaz. Ardından, bir saldırgan, uygulamanın ayrıcalıklarıyla yetkisiz kod çalıştırmak için bu varsayımdan yararlanabilir:

  • Bazı Windows hizmetleri , Yerel Sistem kullanıcı hesabı altında çalışacak şekilde yapılandırılmıştır. Yerel Sistem'e yükseltilmiş ayrıcalıkla rastgele kod yürütmek için arabellek taşması gibi bir güvenlik açığı kullanılabilir. Alternatif olarak, daha düşük bir kullanıcının kimliğine bürünen bir sistem hizmeti, kullanıcının kimliğine bürünülürken hatalar doğru bir şekilde işlenmezse (örneğin, kullanıcı kötü niyetli bir hata işleyicisi tanıttıysa ) bu kullanıcının ayrıcalıklarını yükseltebilir.
  • Microsoft Windows işletim sisteminin bazı eski sürümlerinde , Tüm Kullanıcılar ekran koruyucusu Yerel Sistem hesabı altında çalışır - dosya sistemindeki veya Kayıt Defterindeki geçerli ekran koruyucu ikili dosyasını değiştirebilen herhangi bir hesap bu nedenle ayrıcalıkları yükseltebilir.
  • Linux çekirdeğinin belirli sürümlerinde , mevcut dizini olarak ayarlayacak, çökmesi durumunda /etc/cron.dbir çekirdek dökümü yapılmasını talep edecek ve ardından başka bir işlem tarafından öldürülecek bir program yazmak mümkündü . Çekirdek döküm dosyası, programın geçerli dizinde, yerleştirilmiş olurdu /etc/cron.dve cronprograma programları çalıştırmak için talimat veren bir metin dosyası olarak ele olurdu. Dosyanın içeriği saldırganın kontrolü altında olacağından, saldırgan herhangi bir programı kök ayrıcalıklarıyla çalıştırabilir .
  • Bölgeler Arası Komut Dosyası Oluşturma, bir web sitesinin web tarayıcılarının güvenlik modelini bozduğu ve böylece istemci bilgisayarlarda kötü amaçlı kod çalıştırmasına izin verdiği bir tür ayrıcalık yükseltme saldırısıdır.
  • Ayrıca, bir uygulamanın diğer yüksek ayrıcalıklı hizmetleri kullanabileceği ve bir istemcinin bu hizmetleri kullanımını nasıl manipüle edebileceği konusunda yanlış varsayımlara sahip olduğu durumlar da vardır. Komut satırı veya kabuk komutlarını yürütebilen bir uygulama, yürütülen bir komutun parçası olarak doğrulanmamış girdi kullanıyorsa Kabuk Enjeksiyonu güvenlik açığına sahip olabilir . Saldırgan daha sonra uygulamanın ayrıcalıklarını kullanarak sistem komutlarını çalıştırabilir.
  • Texas Instruments hesap makineleri (özellikle TI-85 ve TI-82 ) orijinal olarak yalnızca TI-BASIC lehçelerinde yazılmış yorumlanmış programları kullanmak üzere tasarlanmıştır ; ancak kullanıcılar, yerel Z-80 kodunun hesap makinesi donanımında çalışmasına izin vermek için kullanılabilecek hataları keşfettikten sonra , TI, üçüncü taraf geliştirmeyi desteklemek için programlama verilerini yayınladı. (Bu kadar devam etmedi ARM tabanlı TI-NSPIRE kullanarak kaçmaya kendisi için, Ndless bulunmuştur fakat hala aktif Texas Instruments tarafından karşı mücadele edilir.)
  • iPhone'un bazı sürümleri, yetkisiz bir kullanıcının telefon kilitliyken telefona erişmesine izin verir.

jailbreak

Bir firar bir kurtulma eylemi gerçekleştirmek için kullanılan fiil veya araçtır chroot veya hapse içinde gibi UNIX- işletim sistemlerinin veya atlayarak dijital haklar yönetimi (DRM). İlk durumda, kullanıcının , yöneticinin söz konusu uygulamaya veya kullanıcıya sunmayı amaçladığı dosya sistemi dışındaki dosyaları görmesine izin verir . DRM bağlamında, bu, kullanıcının DRM'li cihazlarda keyfi olarak tanımlanmış kodu çalıştırmasının yanı sıra chroot benzeri kısıtlamalardan kurtulmasını sağlar. Terim, iPhone / iOS jailbreaking topluluğu ile ortaya çıkmıştır ve aynı zamanda PlayStation Portable bilgisayar korsanlığı için bir terim olarak kullanılmıştır ; bu cihazlar defalarca jailbreak'lere maruz kalmış, bu da rasgele kodun yürütülmesine izin vermiş ve bazen bu jailbreak'leri satıcı güncellemeleri tarafından devre dışı bırakmıştır.

iPhone , iPad ve iPod touch dahil olmak üzere iOS sistemleri , piyasaya sürüldüklerinden ve her bir üretici yazılımı güncellemesiyle devam ettiğinden beri iOS jailbreak çabalarına tabi olmuştur . iOS jailbreak araçları, sistem tweaks ve ikili dosyalarını bulmanın ve yüklemenin bir yolu olarak , App Store'a üçüncü taraf alternatifleri olan Cydia veya Sileo'yu yükleme seçeneğini içerir . Apple, iOS jailbreak'ini önlemek için , özel çekirdeklerin yüklenmesine izin vermemek ve yazılımın daha önceki, jailbreak yapılabilir bellenime indirilmesini önlemek için cihaz önyükleme ROM'unun SHSH blobları için kontroller yürütmesini sağladı. "Bağsız" bir jailbreak'de, iBoot ortamı, bir önyükleme ROM istismarı yürütmek ve yama uygulanmış düşük seviyeli bir önyükleyicinin sunulmasına izin vermek veya SHSH kontrolünden sonra jailbroken çekirdeği göndermek için çekirdeği hacklemek için değiştirilir.

Benzer bir jailbreak yöntemi, HelloOX gibi yardımcı programların imzasız kodun yürütülmesine ve sistem dosyalarına tam erişime izin verdiği S60 Platform akıllı telefonlar için mevcuttur . veya imzasız kod üzerindeki kısıtlamaları aşmak için düzenlenmiş ürün yazılımı ( PlayStation Portable için kullanılan M33 saldırıya uğramış ürün yazılımına benzer ) . Nokia , o zamandan beri Apple'a benzer bir şekilde yetkisiz jailbreak'i engellemek için güncellemeler yayınladı.

Oyun konsolları söz konusu olduğunda, jailbreaking genellikle homebrew oyunlarını yürütmek için kullanılır . 2011'de Sony , hukuk firması Kilpatrick Stockton'ın yardımıyla 21 yaşındaki George Hotz'a ve fail0verflow grubunun ortaklarına PlayStation 3'ü jailbreak yapmak için dava açtı (bkz. Sony Computer Entertainment America - George Hotz ve PlayStation Jailbreak ).

Android

Android telefonlar, üretici tarafından kontrol edilen süreçten geçerek, kök kazanmak için bir istismar kullanarak veya özel kurtarma işlemini başlatarak resmi olarak köklendirilebilir. Üreticiler, kontrol ettikleri bir işlemle köklendirmeye izin verirken, bazıları telefonun yalnızca açılış sırasında belirli tuş kombinasyonlarına basarak veya diğer kendi kendine uygulanan yöntemlerle köklenmesine izin verir. Üretici yönteminin kullanılması, cihazın kökünden sökülüp yeniden çalıştırılsa bile neredeyse her zaman garantiyi kalıcı olarak geçersiz kılar. Yazılım istismarları genellikle ya telefonun çekirdeğine özel bir istismar kullanarak ya da daha yeni sürümlerde yama uygulanmış bilinen bir Android istismarını kullanarak kullanıcının erişebildiği kök düzeyindeki bir süreci hedefler; telefonu yükseltmeyerek veya kasıtlı olarak sürümü düşürerek.

Azaltma stratejileri

İşletim sistemleri ve kullanıcılar, ayrıcalık yükseltme riskini azaltmak için aşağıdaki stratejileri kullanabilir:

Yatay

Yatay ayrıcalık yükseltme, bir uygulama, saldırganın normalde bir uygulamadan veya kullanıcıdan korunan kaynaklara erişmesine izin verdiğinde gerçekleşir . Sonuç, uygulamanın, uygulama geliştiricisi veya sistem yöneticisi tarafından amaçlanandan farklı güvenlik bağlamıyla aynı kullanıcıyla eylemler gerçekleştirmesidir ; bu, fiilen sınırlı bir ayrıcalık yükseltme biçimidir (özellikle, diğer kullanıcıların kimliğine bürünme yeteneğinin yetkisiz üstlenilmesi).

Örnekler

Bu sorun genellikle web uygulamalarında ortaya çıkar . Aşağıdaki örneği göz önünde bulundurun:

  • A Kullanıcısının bir İnternet Bankacılığı uygulamasında kendi banka hesabına erişimi vardır.
  • B Kullanıcısının aynı İnternet Bankacılığı uygulamasında kendi banka hesabına erişimi vardır.
  • Güvenlik açığı, Kullanıcı A, bir tür kötü amaçlı etkinlik gerçekleştirerek Kullanıcı B'nin banka hesabına erişebildiğinde ortaya çıkar.

Bu kötü niyetli etkinlik, yaygın web uygulaması zayıflıkları veya güvenlik açıkları nedeniyle mümkün olabilir.

Bu duruma yol açabilecek olası web uygulaması güvenlik açıkları veya durumları şunları içerir:

Ayrıca bakınız

Referanslar