staging.inyokaproject.org

AppArmor fuer eine Java Application (Elasticsearch)?

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

iGEL

Avatar von iGEL

Anmeldungsdatum:
26. Oktober 2004

Beiträge: 58

Moin!

Nachdem jemand mein Elasticsearch-Prozess gekapert hat, wuerde ich ihn gerne absichern. Da klingt doch AppArmor nicht falsch. Allerdings startet das Debian Paket von der offiziellen Seite den Prozess mit java:

1
2
ps aux | grep elastic
elastic+  7168  1.0  1.3 5619328 214792 ?      Sl   10:53   0:29 /usr/lib/jvm/java-7-openjdk-amd64//bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.pidfile=/var/run/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/elasticsearch/lib/elasticsearch-1.0.1.jar:/usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/sigar/* -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch

Es faengt also ganz grundlegend an fuer mich: Wie kann ich das AppArmor-Profil nur auf Elasticsearch beschraenken, andere Java-Programme aber unbeeinflusst lassen?

iGEL

krcorax

Anmeldungsdatum:
28. Dezember 2010

Beiträge: 2

iGEL schrieb:

Nachdem jemand mein Elasticsearch-Prozess gekapert hat, wuerde ich ihn gerne absichern. Da klingt doch AppArmor nicht falsch. Allerdings startet das Debian Paket von der offiziellen Seite den Prozess mit java: Es faengt also ganz grundlegend an fuer mich: Wie kann ich das AppArmor-Profil nur auf Elasticsearch beschraenken, andere Java-Programme aber unbeeinflusst lassen?

Also ich habe AppArmor-Profile für zwei Anwendungen: I2P und MediathekView. Ein, zwei Java Anwendungen muss ich noch machen. Für die erstelle ich jeweils ein eigenes AppArmor Profil. Zum Beispiel MediathekView: Das starte ich über das Startskript /opt/bin/mediathek:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/sh

mvdir="/usr/local/mediathekview"

cd $mvdir

java -Xms128M -Xmx256M -jar "$mvdir"/MediathekView.jar $HOME/.mediathek3

cd $OLDPWD

exit 0

Für das habe ich ein AppArmor Profil (siehe Anhang) angelegt, in dem quasi das Skript selbst, Java und die Java Anwendung reguliert werden. Ich denke mal, wenn man ein generelles Java AppArmor Profil für alle möglichen Java Anwendungen nehmen würde, müsste man ja alle speziellen Regeln für jede Anwendung bzw. alle Anwendungen darin regeln, was vielleicht unübersichtlich wird. Oder es ist Geschmackssache(?) 😉

Aber wegen des Kappern des Prozesses: Da weiß ich nicht, ob das helfen würde, denn da müsste man doch alle möglichen Prozesse mit AppArmor isolieren, die Zugriff auf den Elasticsearch Prozess nehmen könnten. Vielleicht kann man den mit den deny ptrace / signal / dbus Regeln mehr schützen? Keine Ahnung.

opt.bin.mediathek (2.1 KiB)
MediathekView AppArmor Profil
Download opt.bin.mediathek
Antworten |