Forum: PC-Programmierung Sicherheit bei Programmierung/Konfiguration im Netzwerk


von Kevin M. (Gast)


Lesenswert?

Guten Tag,
ich habe eine netzwerktechnische Frage und hoffe diese ist hier gut 
aufgehoben.
Es geht um Folgendes: Da ich mir vor kurzem ein Raspberry Pi und 
verschiedene netzwerkfähige Mikrocontroller (TI Launchpad, etc.) gekauft 
habe, möchte ich nun natürlich das ein oder andere Projekt im Netzwerk 
umsetzen (z.B. Webserver, Git-Server, Kommunikation über TCP, vllt 
Heimautomatisierung, etc.). Das Ganze soll nur im eigenen Netzwerk 
verfügbar sein. Verbunden werden die Geräte über einen Router der am 
Internet hängt. Mit der Programmierung kenne ich mich relativ gut aus, 
jedoch nicht mit Serverkonfiguration und Netzwerksicherheit.

Daher auch meine Frage, ist es möglich z.B. durch eine falsche 
Konfiguration des Servers/falsche Verwendung des Mikrocontroller TCP-IP 
Stacks, dass eines meiner Geräte plötzlich "offen" am Internet hängt? 
Oder habe ich solange ich am Router keine Ports explizit weiterleite 
relativ große "Narrenfreiheit" bei meinen Basteleien?
Ich würde mich freuen wenn jemand meine Frage beantworten kann. Dafür 
bereits vielen Dank!

von Oliver R. (orb)


Lesenswert?

Von außen ist nur das erreichbar, was Dein Router rein läßt. Das geht 
entweder über eine Portweiterleitung oder über einen Tunnel, der von 
innen aufgebaut wird (VPN ...).
Ob der Router das 'von alleine' macht ist eine Frage der Einstellung 
(UPNP) und der Firmware (siehe aktuelle Bugs) aber die Gefahr daß Du da 
durch eine Fehler in der Programmierung eines µC irgendwas verstellst 
ist gering.

von Schaulus Tiger (Gast)


Lesenswert?

Mir scheint, der Raspberry Pi ist ein attraktives Angriffsziel:
 + 24x7 Betrieb
 + weit verbreitet
 + einheitliche Installation
 + per Browser und Desktop angreifbar wie Windows
 + Compiler vorinstalliert (?)
 + Scriptsprachen vorinstalliert
 + "genormte" Software-Pakete per Script installierbar
 - i386-Code nicht direkt ausführbar

gegen diese "normalen" Angriffe kann der Router nichts machen, die 
Verbindung wird per http(s) von innen aufgebaut. Wenn die Malware dann 
eigene Verbindungen braucht, werden die auch von innen aufgebaut. Gegen 
einen Standard-VPN-Aufbau könnte der Router etwas machen, wird er aber 
in der Regel nicht tun. Außerdem ist alles, was die Malware braucht, per 
http(s), dns usw. tunnelbar.

Mal wieder ganz aktuell ist natürlich der Angriff per USB-Stick, dafür 
muss nicht einmal der Browser gestartet werden.

Bei den anderen Micro-Computern gilt wohl wirklich noch "uninteressantes 
Ziel mangels Stückzahl". Andererseits dürfte es dort auch in den 
TCP-Stacks selbst noch Angriffspunkte geben, und wenn es nur ein 
Ping-of-Death ist.

Übrigens: das Unix-Rechtekonzept ist nett und erstmal ziemlich sicher, 
nützt aber in der Praxis garnichts, weil moderne Desktops auch aus 
Textdateien ohne x-Rechte Programme ausführen.

Ein Angriff gegen "das System" ist ja aus der Mode gekommen. Entweder 
man will die Benutzerdaten, der Rechner soll "nur" Botnetz-Mitglied 
werden oder man möchte den Benutzer ärgern. Letzteres geht mit den Files 
des Benutzers natürlich am besten und auf jeden Fall -- und 
praktischerweise auch dann, wenn diese auf einem Fileserver liegen.

von Oliver R. (orb)


Lesenswert?

Schaulus Tiger schrieb:
> Mir scheint, der Raspberry Pi ist ein attraktives Angriffsziel:

Entschuldige, aber die 'Begründung' ist unbelegtet BlaBla. Kannst Du 
bitte erklären, wie ein Programm von selbst auf den Pi kommen soll, daß 
die Verbindung von innen aufbaut?

von michi099 (Gast)


Lesenswert?

Schaulus Tiger schrieb:
> Übrigens: das Unix-Rechtekonzept ist nett und erstmal ziemlich sicher,
> nützt aber in der Praxis garnichts, weil moderne Desktops auch aus
> Textdateien ohne x-Rechte Programme ausführen.

Mich würde hier interessieren, was mit 'moderne Desktops' gemeint ist. 
Mit Textdateien Ausführen meinst du dann wahrscheinlich Skripte, wobei 
mir da schleierhaft ist, wie ich diese ohne die Rechte zum Ausführen 
eben doch zum laufen bekomme?

von Schaulus Tiger (Gast)


Lesenswert?

Oliver R. schrieb:

> Kannst Du bitte erklären, wie ein Programm von selbst auf
> den Pi kommen soll, daß die Verbindung von innen aufbaut?

genau wie unter Windows: zum Beispiel über ein präpariertes Foto das 
einen Buffer Overflow im jpeg-Dekoder provoziert. Das Foto kommt per 
EMail oder von einer Webseite. Angriffe nach dem Prinzip gab es in der 
Vergangenheit reichlich.

Das hab ich auch geschrieben, aber irgendwer hat den Absatz gefressen ;) 
Vor "gegen diese normalen Angriffe" fehlt offensichtlich etwas.

Hier gibt's was zum Lesen:
http://www.geekzone.co.nz/foobar/6229

How to write a Linux virus in 5 easy steps
1
Getting attachments to execute
2
3
We said earlier that attachments are not normally run when they are
4
stored as files. There is no standard file extension that indicates
5
that a file should be executed when clicked, as there is under Windows.
6
Instead - and this is the second big hurdle we need to overcome -
7
for the file to be executable under Linux (or any other *nix OS),
8
the execute flag would have to be set in the permissions of the file.
9
This is something that Windows doesn't have, and which is often seen
10
as one of the reasons why infecting a Windows PC can be so easy,
11
and why it should be close to impossible on *nix systems. When you
12
save an email attachment under Linux, the execute flag is normally
13
NOT set and thus, the file can't be executed just by clicking on it.
14
So, no luck?
15
16
Not so fast. Modern desktop environments, such as Gnome and KDE,
17
conveniently offer a nice "workaround" called 'launchers'. Those are
18
small files that describe how something should be started. Just a few
19
lines that specify the name, the icon that should be displayed and
20
the actual command to execute. Conveniently, the syntax of those
21
launcher files is the same for Gnome and KDE. And those launchers
22
don't have to have any execute permissions set on them!
23
24
Desktop environments treat those files as a special case, so when
25
you click on them Gnome or KDE will happily execute the command
26
that was specified within the launcher description and without
27
the need for the execute bit to be set on the launcher itself.

von tmomas (Gast)


Lesenswert?

Schaulus Tiger schrieb:
> Oliver R. schrieb:
>
>> Kannst Du bitte erklären, wie ein Programm von selbst auf
>> den Pi kommen soll, daß die Verbindung von innen aufbaut?
>
> genau wie unter Windows: zum Beispiel über ein präpariertes Foto das
> einen Buffer Overflow im jpeg-Dekoder provoziert. Das Foto kommt per
> EMail oder von einer Webseite. Angriffe nach dem Prinzip gab es in der
> Vergangenheit reichlich.

Du beantwortest eine andere Frage als die, die der TE ursprünglich 
hatte.

Die ursprüngliche Frage lautete:

Kevin M. schrieb:
> Daher auch meine Frage, ist es möglich z.B. durch eine falsche
> Konfiguration des Servers/falsche Verwendung des Mikrocontroller TCP-IP
> Stacks, dass eines meiner Geräte plötzlich "offen" am Internet hängt?

Sicher kann das "falsch" durch ungewollte äußere Einwirkung 
hervorgerufen werden. Vor diesem Hintergrund:

Kevin M. schrieb:
> Mit der Programmierung kenne ich mich relativ gut aus,
> jedoch nicht mit Serverkonfiguration und Netzwerksicherheit.

geht es dem TE aber nicht um die generellen Gefahren durch äußere 
Einwirkungen, sondern um die Gefahren, die sich durch Unkenntnis einer 
korrekten, sicheren Netzwerkonfiguration ergeben.

von michi099 (Gast)


Angehängte Dateien:

Lesenswert?

Sorry für den Off-Topic (ist der letzte - zumindest von mir), jedoch für 
alle die es interessiert, hier etwas zum Ausführen ohne x-Rechte:

Wenn ich das richtig verstanden habe, wird nun also nur ein 'launcher' 
als E-Mail-Anhang versendet, der den auszuführenden Befehl enthält?

Als Benutzer von Gnome konnte ich mich deshalb von einem Versuch nicht 
abhalten lassen! Um die Struktur des Launchers nicht selbst schreiben zu 
müssen, habe ich den integrieten Assistenten zum Erstellen von 
Autostart-Programmen verwendet.

Hier der Testlauncher:
Dateiname: mkdir.desktop

[Desktop Entry]
Type=Application
Exec=/bin/bash -c "mkdir ~/.config/autostart/test"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=testlauncher
Name=testlauncher
Comment[en_US]=
Comment=
X-GNOME-Autostart-Delay=0

Bei Ausführen dieser Datei OHNE x-Rechte erscheint bei mir ein Pop-up -> 
siehe Anhang.
Durch 'Mark as Trusted' werden die x-Rechte gesetzt und beim nächsten 
Anklicken (nun MIT x-Rechten) wird der Befehl unter 'Exec' direkt 
ausgeführt.
Desweitern ist anzumerken, dass die Datei (hier der Anhang) die 
Dateiendung '.desktop' aufweisen muss um als Launcher erkannt zu werden, 
mit Dateinamen 'mkdir' zum Beispiel tut sich nichts.

Mit genug Willenskraft lässt sich das System also wirklich infizieren. 
Im Vergleich zum Artikel(schon relativ alt - 2009) wurde die Situation 
durch das Pop-up (das zu diesem Zeitpunkt anscheinend noch nicht 
vorhanden war) jedoch etwas entschärft.

Ich danke auf jedenfalls für die Info!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.