Kann ein Kommando sicherheitsrelevante Paramter über das NW beziehen?

Post Reply
Message
Author
someone

Kann ein Kommando sicherheitsrelevante Paramter über das NW beziehen?

#1 Post by someone »

Hi,

Ich möchte auf einem entfernten Server ein Command ausführen, welches als Parameter ein key-file sowie eine account nummer verlangt, also z.B:

[user@localhost ~]$ command -k key-file -a account_number

Das key-file sollte jedoch idealerweise auf einen anderen lokalen Server liegen bzw. im Bedarfsfall bereitgestellt werden.
Auch die account_number sollte auf diesen anderen Server liegen und über das Netzwerk bereitgestellt werden.

Sprich ich will keine sicherheitsrelevanten Daten auf dem entfernten Server liegen haben, der das command ausführt.

Ich denke da an nc jedoch weiß ich nicht wie ich das ganze auch noch per SSL oder SSH übertragen kann.

Hat jemand von euch eine Idee?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Sofern das Kommando nicht selbst etwas per Netzwerk nachladen kann, ist das reichlich kompliziert. Dann müsste man zuvor durch einen verschlüsselten Tunnel hindurch mounten. Geht alles, ist aber Quatsch, weil der Sicherheitsgewinn in keinem Verhältnis zum Aufwand steht. Das achso gefährdete File kann schließlich in dem Moment mitgelesen werden, in dem es übertragen wird. Wenn ich root auf dem Server wäre, würde ich dazu einfach ein Skript schreiben, dass "command" ersetzt und alles mitschreibt.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

someone

Geht es eventuell mit einem Wrapper?

#3 Post by someone »

Danke für Deine rasche Antwort!

Mein Problem betrifft konkret eine AWS EC2 Instance.

Einerseits wird empfohlen keinerlei sicherheitsrelevanten Informationen innerhalb eine Amazon EC2 Instance zu speichern, andererseits wird
damit Automation nahezu unmöglich.

Ich wäre schon mit einem Wrapper zufrieden, der das File bzw. den Key und noch so manch anderes ähnlich gelagertes über das Netz holen könnte,
lokal zwischspeichern und nach Durchführung des Commands (egal ob erfolgreich oder nicht) wieder löschen würde.

Primär geht es mir darum dass ich die relevanten Daten auf meinen lokalen Server nur dann bereitstelle wenn ich sie auch am entfernten Server benötige.
Als Nebeneffekt kann ich natürlich den Abruf der Parameter protokolieren.

Sollte jemand den secretKey welcher im keyfile abgelegt ist und die accountumber erlangen, könnte er damit alle meine Instanzen (virtuellen Server) kompromittieren.

L.G.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Wie gesagt, wenn der Angreifer einen der virtuellen Server kapert, kann er ein Skript auf diesen aufspielen, das er als das "command" ausgibt, so dass er auf diese Weise auf jeden Fall an das Keyfile kommt. Er muss nur warten können. Was du vorhast, erzeugt nur einen sehr minimalen Sicherheitsgewinn bei gleichzeitig hohem Aufwand. Bevor man so etwas tut, sollte man die Zeit lieber in alle anderen Sicherheitsmaßnahmen stecken.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

someone

#5 Post by someone »

Ich gebe Dir absolut Recht!!!

Aber, so einfach ist die Sache nicht gelagert.

Es handelt sich bei diesem virtuellen Server um eine "Meta appliance" welche konstruktionsbedingt nur innerhalb der Cloud lauffähig ist, also leider nicht lokal.

Diese "Meta appliance" ist dazu gedacht neue Instanzen (virtuelle Server) inklusive virtueller Hardware, Software und Config zu generieren.

Im Normalfall starte ich diese Instanz auch nur zu diesem Zweck (Build einer neuen Instanz) und stoppe (shutdown) diese dann auch wieder.
Während des Builds bin ich derzeit noch online und sehe zu.
Ich habe also derzeit nicht die Befürchtung, dass dieser Server, auch nicht durch Geduld, geknackt werden könnte.
In Zukunft würde ich das ganze jedoch gerne automatisieren und nicht nicht mehr zusehen müssen.

So ein Fremder meine leider auf dieser Instanz abgelegten Account Daten nicht eh schon vorher hat,
kann er diese auch nicht starten oder sonstigen Unsinn z.B. mit anderen Instanzen anstellen.

Ich fühle mich trotzdem nicht wohl bei dem Gedanken daran wenn einmal bei Amazon etwas schief läuft. Was leider schon passiert ist.
z.B. ein Fremder kann warum auch immer meine Instanz starten oder noch schlimmer eine Kopie dieser Instanz machen und dadurch eventuell Zugriff auf meine Zugangsdaten erlangen.

So eine Kopie könnte er dann, ohne diese zu starten in Ruhe innerhalb seines eigenen Accounts analysieren ohne diese zu starten.

Ich meine das Ganze ist in etwa so als ob ich meinen Pin mit Filzstift auf meine Bankomatkarte schreiben würde und diese dann jemand anderen (Amazon) der behauptet,
dass er vertrauenswürdig ist (weil ihm ja sowieso Gott und die Welt vertraut) zum Aufbewahren gebe.

*******************************************************************************************************************************************************************************************
Auszugsweise:

siehe: http://www.heise.de/newsticker/meldung/ ... 65713.html

Bis vor kurzem ließ sich eine Schwachstelle unter anderem bei Amazons Cloud-Dienst EC2 für unberechtigte administrative Tätigkeiten ausnutzen.
So konnten Angreifer in einer EC2-Instanz virtuelle Maschinen starten und stoppen sowie neue Images und Gateways erzeugen.
Das berichteten Forscher der Ruhr-Uni Bochum um Professor Jörg Schwenk auf einem ACM-Workshop zur Cloud-Sicherheit.

*******************************************************************************************************************************************************************************************

Eventuell könnte ich zumindest den Teil der den Pfad zum key_file angeht über ein geeignetes gemountetes Netzwerk Filesystem lösen.
Wobei ich die Sicherheitsrelevanten Daten dort eben erst dann ablege, wenn ich einen Build Lauf starte und danach wieder lösche.

Wie ich aber den Inhalt eines Files in den Parameter "-a account_number" bekomme ist mir noch nicht ganz klar.

Vielleicht wäre auch eine Ram-Disk, die ich mit den Scripts und den diversen sicherheitsrelevanten Daten aus der Ferne befülle eine Lösung.
Wie gesagt zur Laufzeit der Instanz habe ich wenig Befürchtung genackt zu werden.
Es ist eher die eventuell monatelang herumliegende gestoppte Instanz das Problem

Irgend wie stehe ich an.

Vielen Dank jedoch für Deine Gedanken

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#6 Post by komsomolze »

Da Du schon bei amazon bist,
mit s3ql (python, fuse) könntest Du das keyfile dort ablegen,
vor Zugriff wird der cloudspace (bucket) händisch gemountet wie ein lokales Laufwerk.
http://www.linux-magazin.de/Heft-Abo/Au ... nfuehrung2
mfg komsomolze

someone

#7 Post by someone »

Danke,

ich schau mir das gleich einmal an.

L.G.

Post Reply