Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Enjeksiyon saldırıları, bilgisayar korsanlarının sistemlere saldırmalarının en yaygın yollarından biridir çünkü birçok komutu ve kodu kolayca çalıştırmalarına izin verir. OS komut enjeksiyonu, farkında olmanız gereken bu tür bir enjeksiyon saldırısıdır. Bu, sistem, veritabanı ve web uygulaması yöneticilerinin çok ciddiye alması gereken bir güvenlik açığından yararlanır.

Peki OS komut enjeksiyon saldırısı nedir?

İşletim Sistemi Komut Enjeksiyonunun Tanımı

OS komut enjeksiyonu, kötü niyetli bir saldırganın güvenlik açığı bulunan bir işletim sistemini, programı, uygulamayı, veritabanını veya eklentiyi kullanarak istediği herhangi bir komutu çalıştırmasına olanak tanır. Uygulamalar, aşağıdakiler gibi kabuk işlevlerini çağırırken kullandıkları parametreleri düzgün bir şekilde doğrulamadığında ve temizlemediğinde meydana gelir. sistem() veya yürütme() sistem komutlarını yürütmek için.

instagram viewer

OS komut enjeksiyonunun tespitini ve istismarını daha iyi anlamak için bu konuyu üç ana kategoride incelemekte fayda var.

1. Doğrudan Komut Enjeksiyonu

Bunu saldırganın bakış açısıyla değerlendirin. Siber saldırgan, bir uygulamanın belirli bir sistem komutunu çalıştırdığını keşfeder; kötü amaçlı komutu beklenen bağımsız değişkenlerin bir parçası olarak girerler. Uygulama daha sonra orijinal komutu ve ardından kötü amaçlı olanı yürütür.

Saldırgan, böyle bir güvenlik açığını bulmak için çeşitli yaklaşımlar kullanır. Bununla mücadele etmenin en kolay yöntemi, işletim sistemini her zaman güncel tutmaktır; bunu yetkin bir BT ekibiyle işbirliği içinde yapabilirsiniz. Saldırgan doğrudan kod ekleyebileceğinden ve zararı tahmin edilemez olduğundan, sistem açıklarına neden olabilecek tüm uygulama ve programlardan kaçınmalısınız.

2. Dolaylı Komut Enjeksiyonu

Dolaylı komut enjeksiyonu durumunda, saldırgan sisteme doğrudan bir kod veya komut girmez. Bunun için sistemdeki savunmasız bir uygulama veya programı kullanırlar. Güvenlik açığı, saldırgan ile işletim sistemi arasında bir köprü oluşturur. Saldırgan bu iletişimden yararlanarak hedef üzerinde zararlı kod ve komutlar çalıştırmayı amaçlar.

Saldırgan, bu güvenlik açığını belirlemek için bir dizi test yürütür ve yazılımın bir sistem komutunu çağırmak için dosya veya ortam değişkeni gibi harici bir kaynaktan gelen verileri kullanır. Saldırgan daha sonra harici kaynağın içeriğini değiştirerek artık kötü amaçlı bir komut içerir. Bu daha sonra orijinal uygulamanın talimatlarıyla birlikte yürütülür.

Doğrudan ve dolaylı komut enjeksiyonu arasındaki temel fark, saldırganın işletim sistemiyle iletişim kurmak için bir uygulama kullanmasıdır. Ancak iki enjeksiyon şeklinin verebileceği zarar arasında gerçek bir fark yoktur, bu nedenle her ikisinin de ele alınması gerekir. Bu yüzden ağınızdaki programların güvenilir ve gerekli olduğundan emin olmalısınız. Güvenmediğiniz uygulamaları cihazınızda tutmayın.

3. Kör Komut Enjeksiyonu

Başka bir işletim sistemi komut enjeksiyonu türü, kör komut enjeksiyonudur. Bu, uygulamanın HTTP yanıtındaki komuttan herhangi bir çıktı döndürmediği anlamına gelir. Saldırgan, bu güvenlik açığından yararlanmak için zaman gecikmesi ve çıktı yönlendirme gibi farklı teknikler kullanır.

Bir web sitesi aradığınızı ve URL'deki "/?search=id" değerinin her aramada değiştiğini düşünün. Buradaki id değeri bir kullanıcı sayfası, bir ürün fotoğrafının adresi veya sitedeki herhangi bir sayfa olabilir. Saldırgan id değerini değiştirerek farklı sonuçlar elde edebilir. Bunu manuel olarak yapmak zordur, ancak Burp Suite gibi araçlar bunun için. Daha sonra, saldırgan bir sayfada bir tuhaflık keşfeder: herhangi bir sonuç göstermese bile, bir id değeri döndürülebilir. web sitesinin yanıtı 200 oldu, bu da her şeyin yolunda olduğunu gösterir. Böyle bir durumda, saldırgan bir kör komut enjeksiyonu kullanabilir.

Zaman geciktirme gibi bir teknik özellikle yararlıdır. Açılan sayfa boş olacağından herhangi bir cevap alamayacaksınız ama yine de bilgi toplamanız mümkün olabilir. yalnızca belirli bir karakter varsa sayfayı yükleyen zaman gecikmelerine dayalı olarak bir veritabanında nelerin depolandığı hakkında bilgi Sunmak. Bu, manuel bir işlem olamayacak kadar zaman alıcıdır, ancak birçok araç saldırıyı otomatikleştirebilir.

Örnek Bir Saldırı Senaryosu

Yukarıdakilerin hepsini bir örnek üzerinden inceleyelim. Kullanıcının ürünlerin stokta olup olmadığını görmesini sağlayan bir alışveriş uygulamanız olduğunu hayal edin. Tüm bu bilgilere erişmek için aşağıdaki gibi bir URL kullanalım:

example_unsafe_store.com/stockStatus? ürünkimliği=245&mağazakimliği=

Uygulamanın eski kayıtları sorgulaması gerekeceğinden, ürün ve mağaza kimliklerini "stockstat.pl 245 38" gibi bir kabuk komutuna argüman olarak ilettiğinizi hayal edin. Geliştirici, komut enjeksiyonlarına karşı herhangi bir işlem yapmazsa, saldırgan istenen komutu yürütmek için bir girdi gönderebilir:

& Eko this_a_harmful_command &

Bu giriş productID parametresine girerse, uygulama tarafından yürütülen komut şöyle olacaktır:

stokstat.pl & Eko this_a_harmful_command & 38

echo komutu, verilen dizgenin çıktıda göründüğünden emin olmanın yanı sıra komut enjeksiyonlarını algılamak için kullanışlı bir yöntemdir. "&" karakteri bir kabuk komut ayırıcı, bu nedenle yürütülen, birbiri ardına üç ayrı komuttur. Sonuç olarak, kullanıcıya döndürülen çıktı şöyle olacaktır:

Hata -ürün kimliği bulunamadı
this_a_harmful_command
38: emretmek bulunamadı

Burada "stockstat.pl" dosyası, komutu beklediği bağımsız değişkenler olmadan çalıştırdı ve bu nedenle bir hata mesajı verdi. Ardından saldırganın enjekte ettiği echo komutu çalıştırıldı ve saldırgan ekranda girdiği ifadeyi gördü. Orijinal bağımsız değişken olan "38", hataya neden olan bir komut olarak çalıştı.

İşletim Sistemi Komut Enjeksiyonlarına Karşı Nasıl Korunulur?

Komut enjeksiyonu güçlü ve zararlı bir saldırı vektörü olsa da, bundan kaçınmanın bazı püf noktaları vardır. İşletim sistemi komut enjeksiyon saldırılarının arkasındaki mantık, bir uygulama kullanarak belirli işletim sistemi komutlarını yürütmektir. Bunun olmasını engellemelisiniz. Dikkate alınması gereken bazı konular var:

  1. Uygulamaya erişimi olan herkesin kod çalıştırabilmesini engellemelisiniz.
  2. Uygulamaya erişimi olan herkesin sunucuya sözdizimsel ifadelerle istekte bulunmasını engellemelisiniz.
  3. Erişimi olan herkesin istekte bulunduğu ifadeleri şifrelemelisiniz.

Her öğeyi tek tek inceleyelim. İlk soruna iyi bir çözüm beyaz liste yöntemini kullan uygulama katmanına ulaşan herhangi birinin belirli kodları veya istekleri çalıştırmasını engellemek için. Tanımlamadığınız hiç kimse kod çalıştıramaz.

İkincisinin çözümü, komutlarda kullanılan bazı metin ifadelerini kabul etmemek. Kullanıcı sadece sayısal değerler girebilir. Bunu beyaz liste yöntemiyle birlikte uygulayın, çok daha güvenli bir sisteme sahip olacaksınız.

Üçüncü madde, girilen karakter ve boşluklar gibi sözdizimsel parametrelerin şifrelenmesi ile ilgilidir. Sonuç olarak, beyaz liste yöntemi, girişlerin sözdizimsel kontrolü ve girişlerin şifrelenmesi sizi OS komut enjeksiyonundan korumalıdır.

Enjeksiyon Saldırıları Her Gün Gelişiyor

OS komutu, SQL, SSI ve XPath gibi farklı saldırı tekniklerine sahip birçok enjeksiyon yöntemi vardır. Her birini engellemeye çalışmak kolay değil. Tüm bu saldırıların her geçen gün geliştiğini ve geliştiricilerin gözden kaçırdığı küçük güvenlik açıklarından yararlandığını unutmayın. Bu nedenle her zaman güncel kalmanız ve siber güvenlik dünyasındaki güncel gelişmeleri yakından takip etmeniz hayati önem taşımaktadır.