Java Güvenliğini Değiştirme – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Uygulama Sınıflarını Değiştirme
Bir JAR’ı mühürlemek, bu hackleme tekniği için de bir çare sağlar. Ekstra koruma için, bir sınıfın gerçekten üçüncü taraf bir JAR’dan değil, uygulama dağıtımı JAR’dan yüklendiğini belirten bir kontrol ekleyebilirsiniz. Bu basit yöntemin uygulanması, covertjava.protect.IntegrityProtector’da sağlanmaktadır. Liste, assertClassSource() için kaynak kodunu gösterir.
İlk if ifadesi, verilen sınıfın sınıf yükleyicisinin bir null ile karşılaştırarak önyükleme sınıfı yükleyicisi olmadığını garanti eder. Bu iddia, Chat sınıflarından hiçbirinin önyükleme sınıfı yoluna yerleştirilmediğini bildiğiniz için yapılabilir; bu, varsayılan uygulama başlatıcının sınıf yükleyicisi kullanılarak yüklenmeleri gerektiği anlamına gelir.
Yöntem kodunun geri kalanı, verilen sınıfı oluşturmak için kullanılan CLASS dosyasının kaynağı için bir URL alır. Bu, Class.getResource() tarafından MessageInfo sınıfı için döndürülen URL’dir.
URL, sınıfın C:/Projects/CovertJava/distrib/lib dizininde bulunan chat.jar dosyasından yüklendiğini belirtir. AssertClassSource() URL’yi aldıktan sonra, URL’nin jar: ile başlamasını ve yöntem parametresi olarak iletilen JAR dosyasının adını içermesini sağlar. Onaylama başarısız olursa yürütmeyi durdurmak için denetlenmeyen bir InternalError atılır.
Bu tamamen kusursuz bir doğrulama olmayabilir, ancak çoğu yama girişimini engellemek için yeterince iyi olmalıdır. Bu korumadan yararlanmak için Chat uygulamasının, yama için başlıca adaylar olan anahtar sınıflarda iddiaSınıfSource()’u çağırması gerekir. Chat uygulaması için alternatif bir giriş noktası olarak yeni bir sınıf olan ProtectedChatApplication ekleyeceğiz.
ProtectedChat, covertjava.chat.ChatApplication’ı genişletecek ve bu bölümde geliştirilen çeşitli koruma mekanizmalarını kullanacaktır. Liste 19.5’teki kod, LicenseManager sınıfının kaynağını belirten ProtectedChatApplication’ın main() yönteminin bir bölümünü gösterir.
main() yöntemi, LicenseManager sınıfının lib alt dizininde bulunan chat.jar dosyasından yüklenmesini sağlar. Diğer Chat sınıflarında buna benzer kontroller eklemeliyiz. Ne kadar çok kontrol kullanırsak, bir bilgisayar korsanının uygulamayı kırmak için o kadar çok çalışması gerekir.
Java Güvenliğini Değiştirme
Java güvenliğini manipüle etmek, bilgisayar korsanlarının bir sınıfın korumalı, paket ve özel üyelerine erişmesine ve normalde bir güvenlik yöneticisi tarafından zorunlu kılınan diğer güvenlik kontrollerini atlamasına olanak tanır. Bir uygulama bir güvenlik yöneticisi yüklerse veya özel bir ilke dosyası kullanırsa, güvenlik yöneticisinin kurulu olduğunu ve doğru ilke dosyasının kullanıldığını onaylayan kontroller eklemelisiniz.
Güvenlik yöneticisi, System.getSecurityManager() kullanılarak elde edilebilir ve orijinal ilke dosyasını doğrulamak için java.security.policy sistem özelliğinin değerini kontrol edebilirsiniz. İlke dosyasının kendisi, bu bölümde daha sonra açıklanan uygulama içeriği koruma tekniği kullanılarak değişikliklerden korunabilir.
Java Denetim Masası
Java güvenlik ayarları
Java Denetim Masası nasıl açılır
Java indir
Application Blocked by Java Security
Java 301 32-bit
Java 8 271 (64-bit download)
Java 1.6 0 download 64-bit
Tersine Mühendislik Uygulamaları
Kaynağın türüne bağlı olarak koruma, bayt kodu koruması veya uygulama içeriği koruması gerektirir. Menü öğesi dizileri ve hata mesajları gibi kaynaklar genellikle bayt kodunda kodlanırken, resimler ve medya dosyaları gibi kaynaklar tipik olarak ayrı bir dizinde veya bir JAR dosyasında saklanır. Bayt kodu koruması daha önce gözden geçirildi ve uygulama içerik koruması bir sonraki bölümde sunuldu.
Sınıf Yüklemesini Kontrol Etme
Özel sınıf yükleyiciler, bayt kodunu anında değiştirebildikleri için çok fazla güç sağlarlar. Uygulamaları hacklemek kesinlikle yaygın bir teknik değildir, ancak bir uygulama sınıfını çalışma zamanı bayt kodu manipülasyonlarından korumak istiyorsanız, sistem sınıfı yükleyici yerine önceden tanımlanmış bir özel sınıf yükleyici yükleyebilir ve kullanabilirsiniz. Ardından, uygulama kodunun çeşitli yerlerinde, bir sınıfın beklenen sınıf yükleyici ile yüklenip yüklenmediğini görmek için bir kontrol yapılabilir.
Bytecode’u Anlama ve İnce Ayarlama
Bayt kodu ince ayarı, ya anında ince ayar yapan özel bir sınıf yükleyici ya da uygulama CLASS dosyalarında statik değişiklikler gerektirir. Bir üçüncü taraf sınıfı yükleyicinin kullanımının nasıl önleneceğini önceki paragrafta ele aldık ve sonraki bölümde uygulama dağıtım dosyalarının nasıl korunacağı açıklanmaktadır.
Uygulama İçeriğini Hacklenmeye Karşı Koruma
Buradaki uygulama içeriği, uygulama ile birlikte dağıtılan dosyaları ifade eder. Buna JAR ve Zip dosyaları, resimler, yapılandırma dosyaları ve diğer içerikler gibi kitaplıklar dahildir. Anahtar uygulama dosyalarının değiştirilmediğinden emin olmak, uygulama bütünlüğünün korunması için kritik öneme sahiptir, çünkü çoğu bilgisayar korsanlığı tekniği bazı dosyaların değiştirilmesini gerektirir.
Bütünlük korumasına ihtiyaç duyan en önemli dosya türü JAR arşividir. Sınıfın beklenen JAR’dan yüklenmesini sağlayabilecek bir numaraya zaten baktık. Şimdi, bir uygulamanın dosyalarından hiçbirinin kurcalanmadığını iddia etmesine izin veren bir sınıf geliştireceğiz.
Uygulama içeriğinin bütünlüğünü doğrulamanın en basit yolu, dağıtım dosyalarını yinelemek ve boyut ve değişiklik zamanı gibi öznitelikleri kontrol etmektir.
Nihai koruma için uygulama, dosya içeriğinin bir sağlama toplamını üretebilir ve bunu dağıtım hazırlık zamanında alınan orijinal dosyaların sağlama toplamıyla karşılaştırabilir. Covertjava.protect paketinde IntegrityProtector adında bir sınıf geliştireceğiz ve onu kötü şöhretli Chat uygulamasını korumak için kullanacağız.
Örneği kısa ve öz tutmak için, doğrulamayı dosya uzunluklarıyla sınırlayacağız, ancak diğer dosya niteliklerini ve içerik karmasını içerecek şekilde kolaylıkla genişletilebilir. IntegrityProtector, önemli uygulama dosyalarının bir listesini yineler, dosyaların bayt cinsinden toplam boyutunu üretir ve ardından mesaj özet algoritmasını kullanarak bir sağlama toplamı hesaplar.
Ardından, uygulama dağıtımının sürümünü ve özetini saklayan Chat’e bir yapılandırma dosyası ekleyeceğiz. Dosyaların toplam uzunluğu yerine özetin saklanması bilgisayar korsanlığını çok daha zorlaştırır.
Son olarak, Chat uygulaması başlangıcında, IntegrityProtector’ı kullanarak dağıtım dosyalarının geçerli sağlama toplamının, yapılandırma dosyasında sağlanan orijinal sağlama toplamıyla eşleştiğini iddia edeceğiz.
İlk görevimiz, Chat’teki hangi dosyaların değişikliklerden korunması gerektiğine karar vermektir. Bazı dosyaların son kullanıcı tarafından değiştirilmesi amaçlandığından, tüm dosyaları basitçe dahil edemeyiz.
Örneğin, bin/setenv.bat, Chat için belirli bir giriş dizini sağlamak veya onu farklı bir bağlantı noktasında çalıştırmak için değiştirilebilir. Bir kullanıcı kayıt düzeylerini ayarlarsa, conf/log4j.properties değişebilir.
Ancak lib/chat.jar ve conf/java.policy gibi dosyalar hiçbir zaman orijinal sürümlerden farklı olmamalıdır (müşteri yamalarını göndermek istemediğimiz sürece, bu durumda yama ile birlikte yeni sağlama toplamları sağlanabilir). Bu örnekte, yalnızca Chat dağıtımının çekirdek dosyalarını koruyacağız.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)