Bir Hackerın Aklının İçinde

Mark Hearn tarafından | Gelişmekte olan teknoloji | Ekim 1, 2019

Okuma süresi 24 dakika

AI'ya Genel Bakış

Siber suçlular artık işletmeler gibi faaliyet gösteriyor; IoT bağlantısını ve standartlaştırılmış platformları kullanarak saldırıları ölçeklendiriyor, yüksek değerli varlıkları hedef alırken maliyetleri en aza indiriyorlar. Savunmacılar saldırganlar gibi düşünmelidir: değerli varlıkları ve tehditleri belirlemeli, tersine mühendislik, modifikasyon ve otomasyon saldırı aşamalarını haritalamalı ve ardından katmanlı, yenilenebilir savunmalar yoluyla saldırganların maliyetlerini artırmalıdır. SPIDER modeli Bütünlük, Çeşitlilik, Bağlantı ve Yenilenebilirlik'i özetler ve bütünlük kontrollerini, kontrol ve veri akışı dönüşümlerini, gizlemeyi, beyaz kutu şifrelemeyi, hata ayıklamayı önlemeyi, kancayı önlemeyi, jailbreak tespitini, parmak izi almayı ve güvenli depolamayı teşvik eder. Yazılım ve donanım korumalarını birleştirmek ve çeşitli örnekleri sürekli olarak yenilemek, saldırıları ekonomik olmaktan çıkarır ve işletme değerini korur.

Bu günlerde, bilgisayar kabahatleri çoğunlukla ticari bir şekilde işleniyor.

Bu makale ilk olarak İstanbul'da düzenlenen 2018 Uluslararası Asansör ve Yürüyen Merdiven Sempozyumu'nda sunulmuştur. 3-4 Aralık 2019'da Las Vegas'ta düzenlenecek etkinlik hakkında daha fazla bilgi almak ve katılmak için adresini ziyaret edin. www.elevatorssymposium.org adresini ziyaret edin..

"Inside the Mind of a Hacker" kulağa psikolojik bir gerilim filminin başlığı gibi geliyor. Ana karakteri, sabahın erken saatlerinde, dünyayı kasıp kavurmak için mükemmel bir tüyo hazırlayan yalnız bir kurt olarak hayal edebilirsiniz. Oysa gerçek çok farklıdır. Suçlu bilgisayar korsanları, açık iş modelleriyle, yasadışı olsa da ticari ağların bir parçası olarak diğer tüm işletmeler gibi çalışır. Yalnız hacker klişesinden çok yol kat ettik.

Hacker işi büyüyor. Görünüşe göre özel veri sızıntıları, botnet'ler, fidye yazılımı saldırıları ve sıfırıncı gün güvenlik açıkları keşfedilmeden geçen bir gün yok. Birlikte mükemmel fırtınayı oluşturan birçok faktör rol oynuyor:

  1. Arabalardan kalp pillerine kadar çok sayıda cihaz arasında artan bağlantı, bilgisayar korsanlarının içeri girmesi için daha fazla fırsat yaratıyor. Çoğu durumda, cihaz veya ekosistem için güvenlik riskleri düşünülmeden bu cihazlara internet bağlantısı eklendi. hangisinde faaliyet göstermektedir.
  2. Bu artan bağlantı ile birlikte, geleneksel bir bilgi teknolojisi (BT) güvenlik altyapısının dışındaki cihazların çoğalması da var. Bu cihazlar, Nesnelerin İnterneti (IoT) ağlarının kenarlarını oluşturur, ancak bilgisayar korsanlarının erişmesi kolaydır. Saldırganın eline geçtiğinde, araçlarını ve tekniklerini uygulamak ve cihaza ölçeklenebilir bir saldırı bulmak için çok zamanları olur.
  3. Dark web gibi ağlar, hatta sadece internet, uçtan uca bir saldırı başlatmanın karmaşıklığını ortadan kaldırdıkları için bilgisayar korsanlarının işleri için bir platform haline geldi. Bunun yerine siber suçlular, bir botnet oluşturmak ve bunu en yüksek teklifi verene satmak gibi değer zincirinin bir bölümünde uzmanlaşabilir.
  4. Linux ve Android gibi yaygın yonga setlerinin veya platformların standardizasyonu, bilgisayar korsanlarının araçlarını birçok ürüne karşı, genellikle çok farklı pazarlardaki hedeflere karşı kullanmalarına olanak tanır. Bu, hack'lerini ülkeler, endüstriler, cihazlar ve bulut platformları arasında ölçeklenebilir ve aktarılabilir hale getirir.

Tüm bu değişiklikler göz önüne alındığında, yazılım güvenliğine hala 20 yıl önce yaptığımız gibi yaklaşmamız şaşırtıcı:

  • Dışarıdan gelen yazılımlara erişimi engellemeyi amaçlayan ağ veya çevre güvenliğine hala yoğun bir şekilde odaklanılmaktadır. Ancak bu, her şeyin birbirine bağlı olması için durdurulamaz bir baskıyla doğrudan çelişiyor; bir noktada “yabancı” diye bir şey olmayacak.
  • Bu güvenliği geliştirmek için çok az düşünce ile en baştan “tamamen güvenli” bir şey yapma hedefi hala var. Ancak bu model, yazılımın en büyük avantajlarından birini gözden kaçırıyor: kolayca güncellenebilir.

Günümüzün bağlantılı dünyasında, farklı bir yaklaşıma ihtiyacınız var, daha çok suçlu bilgisayar korsanlarının neyi başarmaya çalıştığına odaklanan, yazılımımızın erişilebilir ve dolayısıyla düşmanca bir ortamda çalıştığı öncülünden başlayan bir yaklaşım. En değerli varlıklarınızı tanımlamanız, neden başka birinin ilgisini çektiğini keşfetmeniz, ayrıcalıklı erişime sahip biri tarafından nasıl saldırıya uğrayabileceklerini bulmanız ve ardından bu saldırıları kârsız hale getirecek savunmalar uygulamanız gerekir. Bir hacker gibi düşünmeye başlamalısın.

Hacking İşi

Suçlu bilgisayar korsanlarının bir işletme gibi çalıştığını anladığımızda, onların diğer işletmelerle aynı hedefler tarafından yönlendirildiklerini görüyoruz: geliri en üst düzeye çıkarmak ve maliyetleri en aza indirmek.

Satış Tutarı

Bir bilgisayar korsanı, kendileri için en değerli olan hedeflerin peşinden gider. Elde edilebilecek fikri mülkiyet (IP) veya tescilli bir algoritma var mı? Dark web'de satılabilecek kişisel veriler? Tehlikeye atılabilecek bir güvenlik sistemi mi? Fidye için bir sistemi felç etmenin veya bir şirkete veya markaya zarar vermenin bir yolu var mı? Veya daha doğrudan, manipüle edilebilecek para akışları var mı? Varlık ne kadar değerli olursa, getirisi de o kadar büyük olur. Ayrıca, zayıflık ne kadar yaygınsa, o kadar fazla gelir elde edilebilir.

Ücret

Bir saldırı ne kadar hızlı kurulursa, maliyeti o kadar düşük olur, bu nedenle bilgisayar korsanları en az dirençli yolu seçme eğilimindedir. Bir hırsız düşünün - ön kapının sağlam güvenliğini kırmaya veya sensörlerin takılı olduğu zemin kat pencerelerinden içeri girmeye çalışmayacaktır. Bir merdivene erişmek için ucuz asma kilitli kulübeyi görecek ve ardından yukarıdaki zemine girecek. Bir evde olduğu gibi, yazılım asla tamamen aşılmaz olmayacaktır, ancak bilgisayar korsanlığını çok zaman alıcı veya tek seferlik bir saldırı yapan ve dolayısıyla çok maliyetli hale getiren herhangi bir şey, bilgisayar korsanını daha kolay bir hedefe doğru ilerlemeye teşvik edecektir.

Varlık ve Tehdit Tanımlama

Bir bilgisayar korsanı gibi düşünmek, kendinize basit bir soru sormakla başlar: "Bir bilgisayar korsanının istediği bende ne var?" Bunlar korunması gereken varlıklardır. Yukarıdaki gibi, bu IP, dijital içerik, kişisel veriler ve daha fazlasını içerebilir.

Her varlık için “Bir bilgisayar korsanı bununla ne yapabilir?” Diye soruyorsunuz. Daha spesifik olarak, "Geliri artırmak için varlıktan nasıl yararlanacaklar?" Bunlar tehditler ve her zaman varlar. Örneğin, bir suç korsanı, uygulamanızdan değerli IP'yi kaldırabilir ve önemli Ar-Ge yatırımınızı tekrarlamadan rakip bir ürün yapmak için kullanabilir. Bu tehdit - IP hırsızlığı - ürününüz aktif olduğu sürece var olacaktır.

Tehditleri sınıflandırmanın bir yolu, Microsoft tarafından geliştirilen STRIDE modelidir. STRIDE, tehditleri altı kategoriye ayırmanın bir yolunu temsil eder:

  1. Sahtekarlık - bir kişinin veya işlemin kimliğine bürünme
  2. Kurcalama - bir varlığın değiştirilmesi
  3. Reddetme - bir eylemin gerçekleştiğini reddetme
  4. Bilgi İfşası - bir sırrın ifşası
  5. Hizmet Reddi — bir sistemin kullanılabilirliğini etkiler
  6. Ayrıcalığın Yükseltilmesi — yetkisiz erişim

Böyle bir model, tehditlerin daha bütüncül bir şekilde ele alınmasını teşvik etmek için yararlıdır. Suçlular, rakip bir ürünü satmak için IP çalmak (Bilgi İfşası) yerine, yazılımınızdaki lisans kontrollerini devre dışı bırakan (Kurcalama), özgürce korsanlığa izin veren bir hizmet sunsalar mı? Ya suçlu, hisse senedi fiyatınızı kısaltmaktan kâr etmek için şirketinizi utandırmak istiyorsa? Ya da suçlu aslında şirketinize saldırmakla ilgilenmiyorsa, ürününüzü tüm müşterilerinize karşı büyük ölçekli bir saldırı vektörü olarak görüyorsa? Bunların her biri bilgisayar korsanı için tamamen farklı bir iş modelidir, ancak tümü işletmeniz için eşit derecede zarar verir.

saldırı Kimlik

Artık bilgisayar korsanlarının ne istediğini ve bununla ne yapmak istediklerini belirlediğinize göre, bir bilgisayar korsanı gibi düşünmenin bir sonraki kısmına geçersiniz: "Varlıklarıma nasıl ulaşacaklar?" Bunlar yazılımınıza yönelik saldırılardır. Saldırıları tanımlarken eksiksiz olmak çok önemlidir, çünkü bu bir bilgisayar korsanının ana avantajıdır: sadece bir saldırı bulmaları gerekir, oysa tüm saldırılara karşı savunmanız gerekir.

Bu makale yazılım saldırılarına odaklanmaktadır, çünkü bu yol sıklıkla gözden kaçırılmaktadır, ancak saldırı tanımlaması aynı zamanda donanım saldırılarını, protokol saldırılarını, veritabanı saldırılarını, ağ saldırılarını, bulut saldırılarını ve daha fazlasını da dikkate almalıdır.

Saldırı Aşamaları

Neredeyse tüm saldırı geliştirmelerinin öngörülebilir aşamalardan geçtiğini anlamak çok önemlidir:

  1. Tersine Mühendislik — kod ve veri analizi, varlıkları ve güvenlik açıklarını arama (saldırıya giden yollar)
  2. Modifikasyon — bir tehdidi gerçekleştirmek için kod veya verilerin statik veya dinamik kurcalanması
  3. Otomasyon - istismarın otomatik olarak ve tekrar tekrar yapılmasına izin verir

Belirli saldırılar için (örn. IP hırsızlığı), 2. adım gerekli olmayabilir. Ancak, 1. adım kritiktir ve 3. adım, suçluların izole bir saldırıyı ölçeklenebilir bir işletmeye dönüştürmesine olanak tanır.

Bu neden bu kadar önemli? Çünkü bu sizin ana avantajınız. Suçlu bilgisayar korsanları, iş hedeflerini gerçekleştirmek için bir saldırının tüm aşamalarını gerçekleştirmelidir. Her aşamada savunma oluşturabilir ve böylece bilgisayar korsanının maliyetlerini artırabilirsiniz. Yeterli bariyerle saldırı artık uygun maliyetli değildir ve bilgisayar korsanı başka bir yere bakar. Saldırının her aşamasını daha zor hale getirmek için birden fazla teknik kullanan bu “derinlemesine savunma” fikrine geri döneceğiz.

saldırı teknikleri

Aşağıda, her aşama için birkaç saldırı tekniğini açıklıyoruz. Başarılı bir saldırı genellikle her kategoriden bir veya daha fazla tekniği birleştirir.

1. Tersine mühendislik
Saldırı TekniğiTanım
Çalışma zamanı bellek denetimiGeçici rasgele erişimli bellekte depolanan içeriğin daha sonra analiz edilebilmesi için bir sabit diske kopyalanması eylemi. Saldırganlar, güç kapatıldıktan sonra da bellek içeriğini analiz edebilir. Hedefler, korumasız şifreleme anahtarları gibi gizli verileri içerir.
sökmeSaldırganlar için daha okunabilir hale getirerek ikili koddan montaj diline çevirme eylemi
diferansiyel saldırıAynı yazılımın ve/veya verilerin iki varyasyonunu karşılaştırma eylemi. Saldırganlar, ikili farklılıkları tespit ederek, güvenlik geliştirmelerinin uygulandığı kodu tanımlayabilir ve hedefleyebilir.
hileBaşarılı bir saldırı şansını artırmak için iki veya daha fazla saldırganın üzerinde anlaşılan bir şekilde birlikte çalıştığı bir saldırı taktiği.
Ters kontrol akışıİşlev çağrılarının, döngülerin ve koşullu dalların konumlarını belirlemek için bir programın yürütmesini talimat düzeyinde izleme eylemi
Etkileşimli hata ayıklamaYazılımın güvenliğini ihlal etmek için hedeflenen yazılımı kontrollü bir şekilde yürütmek için etkileşimli bir hata ayıklayıcı kullanma eylemi
Süreç gözetlemeMevcut bir süreci kesintiye uğratmadan gerçekleştirilebilecek tüm tersine mühendislik. Başlatma sırasında olası hedefler arasında "eve çağırma" işlevi, beklenmeyen lisanslar ve kullanıcı verisi kontrolü yer alır.
2. Değişiklik
Saldırı TekniğiTanım
Veri kaldırmaBir uygulamanın statik bir bölümünden veri çıkarma ve onu bağlama veya farklı bir uygulamaya yükleme eylemi
Kod kaldırmaBir uygulamanın statik bir bölümünden, ya belirli bir kodun bulunduğu bellek bölümüne açıkça işaret ederek (yerinde kod kaldırma) ya da ikili programın bir bölümünü ayrıştırıp başka bir ikili dosyaya yeniden derleyerek (dışarıdan) kod çıkarma eylemi. yer kodu kaldırma)
Kontrol akışını değiştirmeBir bilgisayar programının orijinal davranışını değiştirme eylemi. Bu, orijinal olarak amaçlanmayan işlevlere erişim sağlamak için alternatif talimatlar oluşturarak bilgisayar talimatlarının değiştirilmesini içerir.
Veri dosyası değiştirmeSınırlı erişim veya yürütme ayrıcalıklarına karşılık gelen orijinal veri dosyalarının yeni verilerle değiştirilmesi ve bir saldırganın başlangıçta erişilemeyen ayrıcalıklar kazanmasına izin verme eylemi.
Program dosyası değiştirmeYazar tarafından kullanılması amaçlanan dinamik olarak yüklenebilir bir yürütülebilir dosyayı kötü niyetli yan etkileri olabilecek bir dosyayla değiştirme eylemi. Potansiyel saldırı hedefleri, premium korumalı medya içeriğinin çıkarılmasını veya bir lisans kontrolünün atlanmasını içerir.
Talimat değiştirmeİkili komutları ekleme, değiştirme veya kaldırma eylemi
Şube sıkışmasıÇalışma zamanında alınan koşulun dal hedefinin tersine çevrilmesi için bir koşulun Boole sonucunu değiştirme eylemi
3. Otomasyon
Saldırı TekniğiTanım
Otomatik istismarlarUygulamayı, değişen davranışa neden olacak şekilde otomatik olarak değiştirme eylemi
Yeniden dağıtılan veri dosyalarıSaldırgan içeriğin şifresini çözmek için neyin gerekli olduğunu anladıktan sonra içeriğin şifresini çözmek için tüm sistemi yeniden dağıtma eylemi
Dinamik kitaplık açıklarıDinamik bir kitaplıktaki güvenlik açıklarından yararlanma eylemi
Yetkisiz çağırmaLisanssız bir tarafça yazılımı başlatma veya yürütme eylemi

Saldırı Analizi

Saldırı analizi süreci, saldırganın nihai hedefi olarak görülebilecek bir varlığa karşı tanımlanmış bir tehditten geriye doğru çalışmayı ve saldırganı bu hedefe götürebilecek tüm saldırıları belirlemeyi içerir. Bu, saldırıların meydana gelebileceği ve dolayısıyla savunmaların uygulanması gereken yerlerin tam bir görünümünü oluşturmak için her varlığa yönelik her tehdit için tekrarlanır. Bu, hedeflenen sistemin sahibine, ürünlerinin mimarisine ve tasarımına yerleştirmek için bir dizi güvenlik gereksinimi verecektir.

Sinir bozucu Hackerlar

Artık bir bilgisayar korsanı gibi düşündüğünüze ve hangi saldırıların başlatılabileceğini ve nasıl ilerleyeceğini belirlediğinize göre, bilgisayar korsanının çabalarını boşa çıkarmak için sistematik olarak savunmaları dağıtmaya hazırsınız. Bir saldırganı her zaman devre dışı bırakacak mükemmel bir çözüm yoktur; bunun yerine, bilgisayar korsanı için maliyetleri artıran ve geliri azaltan çok katmanlı ve dinamik bir yaklaşım var. Suçlu bilgisayar korsanlarını canlarının yandığı yerde - onların iş modellerinde - vurarak kendinizi çok daha az çekici bir hedef haline getirirsiniz.

Bazen kullandığımız bir benzetme şudur: Bir hedefe ulaşmaya çalışıyorsanız, net görüşlü düz yolu mu yoksa sis içindeki hain yolu mu seçeceksiniz? Çoğu insan kolay yolu seçecek ve çoğu bilgisayar korsanı da öyle. Doğru savunma katmanını doğru şekilde uygulayarak, yazılımınız bir gelir hedefine ulaşmaya çalışan bilgisayar korsanları için tehlikeli bir yol haline gelir ve başka bir yere giderler.

ÖRÜMCEK Modeli

İyi bir derinlemesine savunma yaklaşımı bir ağ gibi hareket etmelidir - farklı parçalar tek bir başarısızlık noktası olmadan karşılıklı olarak güçlendirilmelidir. Bu koruma ağı görüntüsünü güçlendirmek için özel yaklaşımımızı ÖRÜMCEK modeli olarak adlandırıyoruz. SPIDER, Yazılım Koruması anlamına gelir: Bütünlük, Çeşitlilik, Dolaşma ve Yenilenebilirlik. Bu özelliklerin her birine sırasıyla bakalım:

  • Bütünlük: Bütünlük doğrulaması, yazılımınızın kurcalanmamasını sağlar. İpek gibi, yazılım koruması ağına gücünü verir. Yükleme sırasında kullanışlıdır, ancak dinamik olduğunda geliştirilir: yazılımın yürütülmesi boyunca yazılım bütünlüğünü kontrol etmek. Güvenilir ve sağlam/kurcalamaya karşı dayanıklı bir bütünlük doğrulama özelliği, özellikle donanım çapaları mevcut olmadığında, bir yazılım güven kökü oluşturmak için önemli bir unsurdur. Felsefi olarak, bütünlük doğrulaması, yazılım korumasının her bir bileşeni boyunca gerçekleşebilir; örneğin, aşağıdaki “Dolaşıklık” konusuna bakın.
  • Çeşitlilik: Uygun bir güvenlik yaşam döngüsünü desteklemek için bir güvenlik çözümünün yenilenebilir ve çeşitli olması gerektiği uzun süredir anlaşılmıştır. Yazılım korumasında, çeşitli yazılım örnekleri, bir bilgisayar korsanının neler olup bittiğini anlama çabalarını boşa çıkarabilir, özellikle rastgele bir tohuma yapılan basit bir değişiklik, örneklerin birbirinden çok iyi ayrılmasını sağlayacak şekilde algoritmik kodda ve veri gizlemede çeşitlilik yaratabilirse. . Örümcek dünyasında, ağ, tipik olarak bir saldırı, bir böceğin yakalanması veya diğer dış olaylar nedeniyle zaman içinde de değişecektir. Ayrıca, örümcek ağları çok çeşitlidir, ancak tekrarlanabilir bir algoritmik yolla oluşturulur - tıpkı iyi bir yazılım koruması gibi.
  • Dolaşıklık: Yazılım güçlendirmenin bir parçası olarak kod ve verilerin dolanması, yazılımın korumasını güçlendirmeye yardımcı olabilecek etkili bir tekniktir. Dolaşıklık algoritmik olarak uygulanabilir the source Programın kontrol akışını etkilemeden hiçbir şeyin değiştirilemeyeceği düzeyde. Bu, yazılım korumasının nasıl bir örümcek ağı gibi olduğuna dair bir başka güzel örnektir - ağ, ipek üzerine inen böceklerin rahatsızlıklarına karşı çok hassastır.
  • Yenilenebilirlik: Etkili yazılım korumasının bilgisayar korsanlarının üretkenliği üzerinde ölçülebilir bir etkisi olduğundan,
  • "hackleme zamanını" önceden tahmin edin ve bilgisayar korsanının ilerlemesini akış ortasında kasıtlı olarak engellemek için yazılım korumasının yenilenmesini kullanın. Güvenlikte bir ihlal tespit edildiğinde, etkili bir yenileme döngüsü için farklı bir dizi korumanın uygulanmasıyla birlikte yeni, çeşitli örnekler oluşturulabilir. Bu son nokta bir örümcek ağına çok benzer, çünkü bir kez kırıldığında, çoğunlukla bozulmadan kalır ve kolayca onarılır.

Yazılım Koruma: Yazılımdan Daha Fazlası

Eksiksiz bir yazılım koruma stratejisinin, yazılım tabanlı önemli bir bileşene sahip olması gerektiğine inanıyoruz. Bunun bariz bir nedeni var: Yazılımın kendisi saldırıyı zorlaştıracak şekilde değiştirilmişse, orijinal yazılıma ulaşmak için soyulabilecek hiçbir katman yoktur. Yazılım tabanlı savunmalara sahip olmanın diğer önemli nedeni yenilenebilirliktir. Yukarıda tartışıldığı gibi, yenilenebilirlik, yazılım korumasının olmazsa olmazıdır ve saf bir donanım çözümü, düzenli olarak yenilemek için çok yavaş ve çok maliyetlidir. Bu nedenle burada sayılan savunmalar yazılım tabanlıdır.

Bununla birlikte, amaç işinizi korumak olduğunda, emrinizde olan her aracı kullanabilir ve kullanmalısınız. Platformunuz güvenilir bir yürütme ortamına sahipse, onu kullanmak,

tersine mühendisliğe karşı bar. Gerçek bir rastgele sayı üretecine erişiminiz varsa, bu, rastgele verileri kurcalayan saldırılara karşı kapıyı kapatır. Kriptografik yardımcı işlemciler, kritik verilerinizin hem güvenliğini hem de performansını iyileştirebilir.

kriptografik işlemler. Donanım bağlantılı güvenli önyükleme, sürekli bütünlük doğrulaması sağlamak için kullanılabilir.

En iyi yazılım koruması, birlikte çalışan yazılım ve donanım tabanlı savunmaların birleşiminden gelir. Yine, derinlemesine savunma oyunun adıdır.

SPIDER modelinin bileşenleri

Bir Hacker'ın-Zihninin-İçerisi

ÖRÜMCEK ağımızın üç bağlantısı vardır:

  1. Kod Dönüştürme ve Gizleme, yazılımı tersine mühendislik ve işlevselliği değiştirmeden kurcalamayı zorlaştıran, kaynaktan kaynağa bir araç olan Transcoder tarafından gerçekleştirilir.
  2. Whitebox Cryptography, en kritik varlıklarınız, kriptografik anahtarlarınız ve verilerinizden birine özel koruma sağlayarak, standart şifreleme algoritmalarının beyaz kutu saldırılarına dayanıklı uygulamalarını sağlar.
  3. Bütünlük Doğrulaması ve ilgili teknolojiler, program işlevselliği ve devam eden güvenlik kontrolleri arasında bağlantılar oluşturmak için uygulama programlama arabirimlerini (API'ler) kullanır ve yazılımınızın hem statik hem de dinamik saldırılara karşı direnmesini sağlar.

Daha da önemlisi, tüm bu parçalar hem birbirini korumak hem de derinlemesine savunma sağlamak için birlikte çalışır. Ayrıca, her bir teknoloji yüksek düzeyde veriye dayalıdır ve önemli ölçüde çeşitlilik ve yenilenebilirlik sağlar ve yalnızca iki rastgele tohumla kontrol edilir.

Veri akışı, bir programdaki verileri içeren olağan hareketleri ve hesaplamaları ifade eder. Aritmetik işlemleri, Boole işlemlerini, atamaları ve daha fazlasını içerir. Veri akışı dönüşümlerinin amacı, temel işlemleri karmaşık matematiksel dönüşümlerin ve yüksek derecede ek belirsizlik veya entropinin arkasına saklayarak veri akışı boyunca verileri korumalı bir durumda tutmaktır. Değişkenler, sabitler ve işlemlerin tümü program akışına yayılır, bu da orijinal hesaplamaları ve verileri belirlemeyi son derece zor hale getirir.

Basit kodlama bile bir dereceye kadar koruma sağlar. Örneğin, orijinal bir değişken düşünün x dönüştürülmüş x' = sx + dve orijinal bir değişken y dönüştürülmüş y' = ty + d. Hesaplamayı dönüştürmek için z = x + y, dönüştürülmüş bir ekleme gerçekleştiriyoruz x'den y'yevererek z', gibi z' = vx' + wy' + b, Burada v, w hem de b temel alınan veri dönüşümlerine dayalı olarak hesaplanan sabitlerdir. Bu basit örnekte bile, hesaplama için birleşik dönüşüm alanı 100 bitin üzerindedir. Pratikte mevcut olan veri akışı dönüşümleri, yukarıdaki basit doğrusal dönüşümün çok ötesine geçer ve birden fazla matematiksel alanı birleştirebilir.

Kontrol Akışı Dönüşümleri

Demontaj, ters kontrol akışı, etkileşimli hata ayıklama, kontrol akışının değiştirilmesi ve dal sıkışmasına karşı kontrol akışı önerilir. Programlar çalışırken ve kontrolü çeşitli ifade bloklarına aktarırken izlenen yürütme yolunu ifade eder. Kontrol akışı dönüşümleri, programın orijinal kontrol akışını kurtarmayı son derece zorlaştırmayı amaçlar, bu da uygulamayı tersine mühendislik yapmaya çalışan saldırganın maliyetini büyük ölçüde artırır.

Kullanılan en temel kontrol akışı dönüşümü “kontrol akışı düzleştirme”dir. Kontrol akışı düzleştirme, bir fonksiyondaki tüm kontrol akışını (“if ” ifadeleri, döngüler, atlamalar vb.) tek bir anahtar ifadesine dönüştürür; bu, bir değişkenin veya ifadenin değerinin, arama ve harita yoluyla program yürütmesinin kontrol akışını değiştirmesine izin verir. . Bu tek başına, bir saldırganın kullanabileceği program akışı bilgilerini önemli ölçüde azaltır.

Kontrol akışının düzleştirilmesinin üzerine ek dönüşümler inşa edilir, kukla dallar eklenir (switch değişkeninin asla almayacağı değerlere dayalı yollar) ve tarihe bağlı kodlamaanahtar değişkenini uygulama kontrol akışının geçmişine bağımlı kılan ve uygulamanın düzgün yürütülmesi için koşullar arasında doğru gezinmeyi gerektiren . Bu yetenek, hem analiz hem de kurcalama saldırılarını engeller, çünkü bir dalı atlamaya yönelik herhangi bir girişim, kontrol akışının geri kalanı üzerinde öngörülemeyen bir etkiye sahip olacaktır.

Şube Koruması

Kontrol akışını ve dal sıkışmasını değiştirmeye karşı dal koruması ve koşullu ifadeler (ifs, döngüler, vb.) için hedefli bir kurcalamaya karşı savunma önerilir. Saldırganlar, güvenlik kontrolünden kaçınmak veya programın orijinal akışını değiştirmek için genellikle koddaki önemli dalları sıkıştırmaya veya atlamaya çalışır. Dal koruması, dalın sıkışması durumunda programın yanlış davranmasına neden olan kod ekleyerek dal sıkışmasını önler. Daldaki koşulu analiz ederek, koşul doğruysa geçerli olan, yanlışsa geçerli olmayan belirli özellikler türetilir. Bu özelliklere dayanarak, dal koruması, koşullar ve mevcut kod arasında matematiksel bağımlılıklar yaratır. Bu, bir saldırgan belirli bir şubeye atlarsa programın yanlış bir durumda olmasını sağlar.

Dize Dönüşümleri

Veri kaldırma ve otomatik açıklardan yararlanmalara karşı dize dönüşümleri önerilir. Bu özel veri dönüştürme türü, dize değişmezleri üzerinde çalışır. Amaçları, uygulamadaki tüm değişmez dizeleri anlamsız hale getirmektir. Bir uygulamadaki veri akışına benzer bir "dize akışı" olmadığından özel işlem gereklidir. Bu nedenle, gerektiğinde sabit değerlerin kodunu düzgün bir şekilde çözmek için fazladan kod üretilir, böylece bunlar hata mesajlarında ve benzerlerinde düzgün bir şekilde işlenebilir.

API Koruması

API Koruması, kod kaldırma ve dinamik kitaplık istismarlarına karşı önerilir.

İşlev İmza Dönüşümleri

İşlev çağrıları, bir saldırganın programınızla ilgili önemli bilgiler elde etmek için yararlanabileceği açık bir sınırı temsil eder. Özellikle bir fonksiyona iletilen parametrelere bakmak o fonksiyonun amacı hakkında bilgi verebilir. İşlev imza dönüşümleri, işlev parametrelerini yapay parametrelerle karıştırılmış bir tür maskeleme dizisine ekleyerek gizler. Sonuç, tüm işlev çağrılarının benzer şekilde belirsiz görünmesidir.

İşlev Birleştirme

İşlev birleştirme, iki veya daha fazla işlevin gövdelerini birleştirerek yeni işlevler oluşturmak için yukarıda açıklanan tek tip imzalardan yararlanır. Bu, programın farklı bölümleri arasında yanlış bir bağımlılık yaratır ve böylece bir saldırganın işlevselliği anlama girişimini engeller.

Fonksiyon Yönlendirmesi

İşlev dolaylılığı, işlev işaretçilerinin izlenmesinin işlev çağrılarından daha zor olduğu gerçeğinden yararlanır. İşlev işaretçileri oluşturarak ve standart aramaları işaretçiler aracılığıyla dolaylı aramalarla değiştirerek çalışır.

Güvenli Satır İçi

Güvenli satır içi işlevi, dönüştürmeler uygulanmadan önce bir dosya içinde kodun ayrı mantıksal bölümlerini birleştirmenize olanak tanır. Standart işlev satır içi oluşturma gibidir, ancak amacı, işlev sınırlarını kaldırmak ve program mantığını belirsizleştirmek için işlemleri birleştirmek. Güvenli satır içi kullanım, kod boyutunu artırabilir, ancak genellikle performansı artırır.

Güvenli satır içi oluşturma, işlev imza dönüşümleri, işlev birleştirme ve işlev dolaylılaştırma ile birlikte kullanıldığında en güçlüsüdür. Genel sonuç, bir programın işlev sınırlarında önemli bir manipülasyondur.

Beyaz Kutu Şifreleme

Güvenlikle ilgili hemen hemen her uygulama, kimlik doğrulama, gizlilik, bütünlük, reddedilmeme veya bunların bir kombinasyonu için kriptografi kullanır. Bir kriptografik uygulamanın gücü, kritik güvenlik parametrelerinin, özellikle de kriptografik anahtarların gizliliği ile doğrudan ilişkilidir. Bu anahtarlar depolamada ve aktarım sırasında korunabilir, ancak bir yazılım ortamında, bir saldırganın kontrolü altında, anahtarlar özellikle kullanımda savunmasızdır. Bu sözde "beyaz kutu saldırısı bağlamında", saldırganlar sistemin güvenliğini tamamen ortadan kaldırarak yürütme ve anahtarları kaldırabilir.

"Beyaz kutu şifreleme" kitaplıklarımız, özellikle beyaz kutu saldırı bağlamı için tasarlanmıştır ve anahtarları kullanımdayken bile korur. Veri kaldırma ve yetkisiz çağrılara karşı önerilir. AES şifrelemesi, RSA şifrelemesi ve imzalaması, ECC şifrelemesi ve imzalaması, SHA2 karma, HMAC mesaj doğrulama kodu ve şifreleme gücü PRNG dahil olmak üzere eksiksiz bir şifreleme ilkel seti ile bu uygulamalar OpenSSL gibi standart kitaplıklara güvenli bir alternatif olarak kullanılabilir.

2002 yılında ilk beyaz kutu saldırılarına dayanıklı AES uygulamasını ürettiğinden bu yana, Irdeto en son tehditlerin önüne geçmek için teknolojisini geliştirmeye devam etti. Bugün, beyaz kutu uygulamaları, bir milyardan fazla cihazdaki anahtarları koruyor.

Dosya Şifreleme ve Güvenli Depolama

Beyaz kutu şifrelemesi, aktarım halindeki verileri korumanın yanı sıra, hareketsiz durumdaki yerel verilerin korunması için de yararlıdır. Bu, uygulamanın bir parçasını oluşturan diğer dosyaların statik korunmasını sağlayan dosya şifreleme ile yapılabilir. Irdeto'nun Güvenli Depolama kitaplığı ile, veri dosyasının değiştirilmesine ve yetkisiz çağrılara karşı önerilir. Kütüphane basit bir

keyfi verilerin kalıcı olarak depolanması için arayüz. Her iki durumda da beyaz kutu şifrelemesi, anahtarların asla açığa çıkmamasını sağlar.

Bütünlük Doğrulaması

Kod kaldırma, veri dosyası değiştirme, program dosyası değiştirme, talimat değiştirme, yeniden konuşlandırılmış veri dosyaları ve dinamik kitaplık açıklarından yararlanma durumlarına karşı bütünlük doğrulaması önerilir. Bir uygulamanın bütünlüğünü doğrulamanın güvenli bir yöntemidir ve aynı zamanda o uygulamayla etkileşime giren harici modüllerin bütünlüğünü de sağlayabilir. Bütünlük doğrulaması, yazılımın algılama olmaksızın statik veya dinamik olarak kurcalanmamasını sağlar. Bu, kurcalamaya karşı dayanıklılık çıtasını önemli ölçüde yükseltir, çünkü bir saldırganın bir programı yalnızca tersine mühendislikle işlemesi ve ikili dosyada değişiklikler yapması gerekmez; ayrıca bütünlük kontrolünü de yenmesi gerekir. Irdeto, iki çeşit bütünlük doğrulaması sunar.

Şirketin Buildtime IV bileşeni, güvenilmeyen bir ana bilgisayara güven sağlayan daha güvenli bir kod imzalama çeşididir. Müşteri, son uygulamayla birlikte hedef modülün şifrelenmiş bir karmasını depolayarak modülleri oluşturma zamanında imzalar. Çalışma zamanında, hedef modülün çalışma zamanı karmasını,

derleme zamanından şifrelenmiş karma. Ayrıca, Buildtime IV kitaplığı uygulamaya statik olarak bağlı olduğundan ve imzalandığından, kendi bütünlüğünü sürekli olarak izler.

Irdeto'nun Runtime IV bileşeni, iOS bit kodu gibi uygulama ikili dosyasının oluşturma zamanında sonlandırılmadığı ortamlar için uygundur. Runtime IV, uygulama imzalarının çalışma zamanında hesaplanabileceği bir güven penceresi oluşturmak için derinlemesine savunma kullanır; bundan sonra, Buildtime IV'e işlevsel olarak eşdeğerdir.

Hem Buildtime IV hem de Runtime IV, geri aramalar kullanılarak uygulamaya entegre edilmiştir. Her IV çağrısı, başarı geri çağrısı adı verilen bir işlev işaretçisi alır. Kontrol başarılı olursa, başarılı geri arama başlatılır ve yürütme normal şekilde devam eder. Kontrol başarısız olursa, geri arama başlatılmaz, yani kurcalanmış programlar doğru program akışını takip etmez.

Hata Ayıklamayı Önleme

Hata ayıklayıcılar, bilgisayar korsanının cephaneliğinde, bir programı adım adım yürütmelerine ve uygulama boyunca akarken verileri izlemelerine olanak tanıyan paha biçilmez bir araçtır. Bu nedenle, anti-debug teknolojileri, tersine mühendislik saldırılarını engellemenin mükemmel bir yoludur. Etkileşimli hata ayıklamaya karşı önerilir, üç çeşidi vardır:

  1. Zamanlama tabanlı hata ayıklama önleme (TBAD), bir dizi talimatı yürütmek için geçen gerçek süreyi önceden belirlenmiş bir beklenen süre ile karşılaştırarak çalışır. Bir hata ayıklayıcı kullanarak talimatların üzerinden geçmek, onları tam hızda yürütmekten çok daha yavaş olduğundan, bu zamanlama kontrolleri bir hata ayıklayıcı ortamında başarısız olur. Saldırganın sistem saatini kurcalamasını önlemek için olumsuz zamanlama denetimleri (başarısız olması beklenenler) de kullanılabilir.
  2. Android ve gömülü Linux ortamları için kullanıcı modunda sinyal tabanlı hata ayıklama önleme özelliği mevcuttur. Uygulamadan gelen tüm sinyalleri yakalayarak ve bu sinyalleri işlemek için özel işleyicileri çağırarak çalışır. Ekli bir hata ayıklayıcı, sinyalleri farklı şekilde işleyecek ve böylece uygulama davranışını değiştirecektir.
  3. Ptrace tabanlı hata ayıklama önleme, yalnızca iOS sistemlerinde kullanılabilir. Uygulama başlar başlamaz, bir izleme süreci eklemek için ptrace sistem işlevi çağrılır. Bu, hata ayıklayıcı da dahil olmak üzere başka herhangi bir işlemin uygulamaya eklenmesini engeller, böylece hata ayıklama oturumu bile başlatılamaz.
Anti-Kanca

Yukarıda listelenen değişiklik saldırılarının çoğu, “hooking” kullanılarak kolaylaştırılmıştır. Genel olarak, kancalama, API'leri değiştirerek program akışını belirleyen ve değiştiren bir saldırı tekniğidir. Kanca takmayı hayal kırıklığına uğratmak için özel teknikler sunuyoruz. Program dosyası değiştirme, talimat değiştirme, otomatik açıklardan yararlanmalar ve dinamik kitaplık açıklarından yararlanmalara karşı önerilirler.

Jailbreak ve Kök Algılama

Uygulama analizi ve kurcalamanın öncüsü olarak mobil cihazlar üzerinde tam kontrol elde etmek isteyen saldırganlar, cihazı jailbreak yapmak (iOS) veya rootlamak (Android) için birkaç genel araçtan birinden faydalanacak. (Basit olması için, aşağıda kapsamlı bir terim olarak "köklenme"yi kullanacağız.) Her yeni işletim sistemi sürümüyle birlikte, bazı araçlar yenilir, diğerleri güncellenir ve yeni araçlar ortaya çıkar.

Bu nedenle Irdeto, bir cihazın köklendiğini tespit etmek için sürekli gelişen bir teknikler paketi kullanır. Bu, popüler rootkit'lerin parçası olan ikili dosyaları aramayı, belirli sistem işlevlerinin davranışını kontrol etmeyi ve daha fazlasını içerir. Hata ayıklamayı önleme ve bütünlük doğrulamasında olduğu gibi, bu kontrollerin doğru program akışının bir parçası olarak yapıldığından emin olmak için geri aramalar kullanılır.

Kanca Tespiti

Mobil cihazlarda çengelleme, Cydia Substrate gibi bir çengelleme çerçevesi kullanılarak gerçekleştirilir. Irdeto'nun takılma algılama teknolojisi, uygun uygulama yanıtını belirlemek için kullanılan geri aramalarla bu çerçevelerin varlığını arar.

Parmak İzi

Yeniden dağıtılan veri dosyalarına ve yetkisiz çağrılara karşı önerilen parmak izi alma, belirli bir cihazdan o cihazı benzersiz bir şekilde tanımlamak için özniteliklerin toplanması işlemidir. Nitelik değerleri, parmak izi adı verilen bir değerde birleştirilir; Amaç, başka herhangi bir cihazın farklı bir parmak izine sahip olmasıdır. Irdeto, kullanıcıların toplamak istedikleri sistem ve uygulama özniteliklerini seçmelerine olanak tanıyan bir kitaplık sağlar. Uygulamaya özel parmak izleri üretmek için bu verileri birleştirir. Ayrıca, parmak izi hesaplamasını korumak için gizli paylaşımda bir varyasyon kullanan Irdeto, sorgulanan özelliklerin bazılarının parmak izinin hesaplanmasını etkilemeden değişebildiği gelişmiş m of n şemalarını destekleyebilir.

Tek başına parmak izi, sinir bozucu otomasyon saldırılarında çok yararlı olabilecek bir kimlik özelliğidir. Diğer program verileriyle birleştirildiğinde, verilerin yalnızca verilen cihazda kullanılabilir olmasını ve başkalarıyla paylaşılamamasını sağlamak için "düğüm kilitleme" için kullanılabilir.

“Siber suç, bilgisayar korsanlarının avantajlı olduğu sıcak bir iştir. Yükselen trendle mücadele etmek için ekosisteme katılan tüm şirketlerin oyunlarının zirvesinde olması gerekiyor.”

Çeşitlilik ve Yenilenebilirlik

Savunmalarınızı bir labirent olarak hayal edin, saldırganı merkezdeki ödüle (başarılı bir saldırı) ulaşmak için yönlendiriyorsunuz. Bir labirent son derece karmaşık olabilir (detaylı savunma), ancak yeterli zaman ve çabayla saldırgan başarılı olacaktır - yani, labirent değişmeye devam etmedikçe. Bu yenilenebilirliktir - her yazılım güncellemesiyle belirli savunmaları değiştirme seçeneği, saldırganı çabalarına sıfırdan başlamaya zorlar. Dahası, bir labirentte gezinmek için harcanan tüm zaman, ikinci bir labirentte gezinmeyi kolaylaştırmaz. Bu çeşitliliktir — yazılımınızın birden çok çeşidine sahip olma seçeneği, yaygın bir saldırı başlatmak için gereken çabayı büyük ölçüde artırır. Yenilenebilirliğin yanı sıra, farklı saldırılara, gizli anlaşmalara ve otomatik açıklardan yararlanmalara karşı önerilir.

Irdeto'nun teknolojisiyle, programınızın çeşitli korumalı örneklerini oluşturmak kolaydır: sadece yazılımın kaç kopyasını istediğinize karar verin, gerisini araçlar halleder. Güncellemeler arasında yenilenebilirlik, dahili PRNG'ye farklı tohumlar sağlayarak sağlanabilir; sonuç farklı veri dönüşümleri, kontrol akışı dönüşümleri, fonksiyon dönüşümleri ve anahtar korumaları olacaktır. Gerektiğinde, geriye dönük uyumluluğu kolaylaştırmak için dönüşüm bilgileri bir sürümden diğerine taşınabilir.

Örtüşen ve Etkileşen Korumalar

Yukarıdaki tekniklerin her biri kendi başına etkili olsa da, birlikte kullanıldıklarında tam tehdit azaltma sağlanır. Bazı örnekler:

  • Irdeto'nun kitaplık kodunun tamamı Transcoder kullanılarak korunur, bu da güvenlik tekniğinin kendisinde tersine mühendislik yapılmasını zorlaştırır.
  • Buildtime ve Runtime IV, doğrulama işlemlerini korumak için beyaz kutu şifrelemesinden yararlanır.
  • Kanca algılama, hata ayıklamayı önleme sorununun üstesinden gelmenin zorluğunu artırır.
  • Hata ayıklamayı önleme, bütünlük doğrulamasını yenmek için geri aramaları değiştirmeyi zorlaştırır.
  • Bütünlük doğrulaması, ikiliyi değiştirme girişimlerini engeller ve kök algılama kontrollerini çıkarır.

Sonuç

Siber suç, bilgisayar korsanlarının avantajlı olduğu sıcak bir iştir. Yükselen trendle mücadele etmek için ekosisteme katılan tüm şirketlerin oyunlarının zirvesinde olması gerekiyor. Bağlı cihazlar veya yazılımlar geliştiriyorsanız, zamanınızı ve bütçenizi nereye harcayacağınızı akıllıca seçmeniz gerekir. “Bir bilgisayar korsanı gibi düşünmek”, odak noktanızı çevreyi savunmaya çalışmaktan (çünkü mevcut değil) ve yazılımı aşılmaz hale getirmeye çalışmaktan (mümkün değil) siber suçluları en çok yaraladıkları yerleri hedef alan bir stratejiye dönüştürmenize yardımcı olacaktır: iş modellerini kırmak.

Çok katmanlı yazılım koruması, uygulamalarınızı hacklemeyi çok zaman alıcı ve pahalı hale getirir ve bu nedenle siber güvenlik cephaneliğinizin inanılmaz derecede değerli bir parçası olabilir. SPIDER modeli ile karakterize edilen Cloakware araç takımı, yazılımınızı bilgisayar korsanları için çekici hale getirmenin güçlü, sağlam ve yenilenebilir bir yolunu sunar.

Paylar