Ayrıcalık yükseltme - Privilege escalation
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
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.d
bir ç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.d
vecron
programa 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:
- Veri Yürütme Engellemesi
- Adres alanı düzeni rastgeleleştirme ( bellekteki bilinen adreslerde ayrıcalıklı talimatları yürütmek için arabellek taşmalarını zorlaştırmak için )
- Uygulamaları en düşük ayrıcalıkla çalıştırmak (örneğin , işlem belirtecinde Yönetici SID'si devre dışıyken Internet Explorer'ı çalıştırarak ), arabellek taşması istismarlarının yükseltilmiş bir kullanıcının ayrıcalıklarını kötüye kullanma yeteneğini azaltmak için .
- Çekirdek modu kodunun dijital olarak imzalanmasını gerektiriyor.
- yama
- Arabellek taşmalarını yakalayan derleyicilerin kullanımı
- Yazılım ve/veya ürün yazılımı bileşenlerinin şifrelenmesi .
- SELinux gibi Zorunlu Erişim Kontrollerine (MAC) sahip bir işletim sisteminin kullanılması
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:
- Kullanıcının HTTP tanımlama bilgisindeki öngörülebilir oturum kimlikleri
- Oturum sabitleme
- Siteler arası komut dosyası oluşturma
- Kolay tahmin edilebilir şifreler
- Oturum çerezlerinin çalınması veya ele geçirilmesi
- tuş vuruşu günlüğü
Ayrıca bakınız
- savunma programlama
- Tüketici elektroniğinin hacklenmesi
- yasadışı numara
- En az ayrıcalık ilkesi
- Ayrıcalık iptali (bilgi işlem)
- Ayrıcalık ayrımı
- Köklenme (Android işletim sistemi)
- sıra çekiç