Apache Guvenlik Yöneticisi
Posted on : 10-12-2008 | By : admin | In : Java, Yazılım
1
Java Güvenlik yöneticisi appleti web browserının kendi içinde çalışmasını ve güvenilir olmayan kodların sistem kaynaklarına erişimini engelleyen mekanizmadır. örnek olarak : Herhangi bir JSP içerisinde system.exit(1); komutunun çağrılması Tomcatin kapanmasına neden olur. Aynı zamanda
güvenlik Yöneticisi kullanmak sunucuda truva Servletleri JSPler ve Beanler kullanılmasını engeller.
Yetkiler
• Yetki sınıfları Tomcat tarafndan yüklenen bir sınıfın haklarını tanımlamak için kullanılır.
• JDK da standart gelir. http://java.sun.com/security/
• Kendi yetki sınıflarınızı oluşturabiliriz.
Standart yetki sınıfları :
– java.util.PropertyPermission – JVM özelliklerine okuma yazma hakkı
– java.lang.RuntimePermission – Sistem fonksiyonlarına erişim hakkı
– java.io.FilePermission – Dosyalar için okuma/yazma hakkı
– java.net.SocketPermission – soket kullanım hakkı
– java.net.NetPermission – Ağ bağlantısı kurma hakkı
– java.lang.reflect.ReflectPermission – Yansıtma yoluyla sınıfları kullanma
hakkı
– java.security.SecurityPermission – Güvenlik metotları erişim hakkı
– java.security.AllPermission – Tüm yetkiler
• Tomcat’e özel bir yetki sınıfı olan JndiPermission sınıfı JNDI ile eriÅŸilen kaynakları okuma hakkını kontrol eder.
– permission org.apache.naming.JndiPermission “jndi://localhost/examples/*”;
• Yetkilendirmeler $CATALINA_HOME/conf/catalina.policy dosyasında tanımlanır. Bu dosyanin ilk bölümde bulunan kurallar java derleyicisinin tüm sistem kaynaklarına erişimine olanak sağlar. Bu dizinlerin tüm sisteme erişme yetkisi olduğu için işletim sistemi dosya koruma yetenekleri ile de korunmaları gerekir.
// These permissions apply to javac grant codeBase “file:${java.home}/lib/-” { permission java.security.AllPermission; };
// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre grant codeBase “file:${java.home}/../lib/-” {
permission java.security.AllPermission;
};
Ikinci bölümde catalina.policy Catalina Sunucusunun ve API kütüphanelerinin erişimi sağlar.
// These permissions apply to the launcher code
grant codeBase “file:${catalina.home}/bin/commons-launcher.jar” {
permission java.security.AllPermission;
};
// These permissions apply to the daemon code
grant codeBase “file:${catalina.home}/bin/commons-daemon.jar” {
permission java.security.AllPermission;
};
Bu dizinlerin de bir önceki bölümdeki dizinler gibi saldırılara karşı korunması gereklidir.
// These permissions apply to the commons-logging API
grant codeBase “file:${catalina.home}/bin/commons-logging-api.jar” {
permission java.security.AllPermission;
};
// These permissions apply to the server startup code
grant codeBase “file:${catalina.home}/bin/bootstrap.jar” {
permission java.security.AllPermission;
};
Catalina.policy dosyasının son bölümlerinde web uygulamalarının erişimlerini
sağlar. Daha önceki yetki tanımlarına göre daha kısıtlayıcıdır.
• java.security.AllPermisions gibi üst bir yetki ile yetkilendirilme yapılamaz
• JDNI ve JBDC eriÅŸimleri, iÅŸletim sistemi bilgilerine eriÅŸim, JVM özelliklerine eriÅŸim, javaBean’lerin getAttribute() metotlarına eriÅŸim gibi haklar burada tanımlanır.


[...] internet ile ilgili geliÅŸmeleri takip edebilirsiniz. « Apache Tomcat Uygulama Sunucusu Apache Guvenlik Yöneticisi [...]