Juli 2010
M D M D F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031  

New Update: „Gesunder Menschenverstand“

Das größte Sicherheitsrisiko des Computer sitzt bekanntlich immer vor demselbigen (und trinkt billigen Kaffee). Netzwerksicherheit ist eine hochkomplexe Angelegenheit. Daran soll das folgende Beispiel noch einmal erinnern: Firewall und Virenscanner helfen nur wenig, wenn das Hochsicherheitsrisiko homo sapiens dem Bösewicht höchstpersönlich die Pforten öffnet und aus freien Stücken die vergiftete Suppe in sich hineinlöffelt. Immer [...]

„skipfish“ in Ubuntu installieren

Kürzlich hat Google den Security-Scanner für Webanwendungen „skipfish“ als Open Source freigegeben.  Das Tool (beta, Lizenz: Apache 2.0) kann mit heuristischen Methoden Schwachstellen auf Webservern aufspüren. Es folgt eine Kurzanleitung, wie man „skipfish“ unter Ubuntu (getestet für Jaunty) zum Laufen bringt. Sollte so aber auch für Koala funktionieren. „skipfish“ in Aktion Vorbemerkung: Nach dem Download [...]

Skriptmonster gesucht! Welche Seite hat die meisten Skripten?

Es ist schon erstaunlich, wieviele Skripten (Java, Flash, Javascript …) manche Webseiten glauben, ausführen zu müssen. Während manche Skripten nur funktionaler Natur sind („Toll! Ein buntes Video!“), sammeln andere fleißig Nutzerdaten oder können gar eine Gefahr für das System darstellen. Um die Flut an Skripten einzudämmen, habe ich schon vor geraumer Zeit das Firefox Addon [...]

WLAN (WPA2 mit PSK) manuell konfigurieren

Eine kabellose WLAN-Netzwerkverbindung  kann leichter ausspioniert werden als eine verkabelte. Umso wichtiger ist es, die WLAN-Verbindung sicher zu konfigurieren. Dieser Beitrag beschreibt die manuelle Netzwerkkonfiguration eines debianoiden Client-Systems (Debian, Ubuntu …) mit WPA2  (Interface wlan0), PSK  und DHCP-Unterstützung. Getestet auf Debian „Lenny“. Das folgende Beispiel geht davon aus, dass die Konfiguration nicht von einem grafischen [...]

Rootkit Alarm! Mit „unhide“ versteckte Prozesse entlarven

Nach einem Einbruch auf ein System platzieren Rootkits gerne Software und Dateien, die den Einbruch verschleiern und künftige diskrete Zugriffe des Angreifers ermöglichen sollen. Damit solche tiefgreifenden Eingriffe im Wirtssystem verborgen bleiben, arbeiten Rootkits gerne mit versteckten Prozessen, die dem durchschnittlichen User/Administrator nur schwer ins Auge springen dürften. Solche versteckten Prozesse zu entlarven, hat sich [...]

FreeBSD: Zero-Day-Exploit unter FreeBSD 6 und 7


Wie nun bekannt wurde gibt es unter FreeBSD 6.0 bis FreeBSD 6.4 und auch FreeBSD 7.2 einen 0-day-root-exploit welcher bis dato noch nicht behoben wurde. Auch ist eine offizielle Stellungnahme seites des FreeBSD Projects bis jetzt nicht bekannt.

Wie der Entdecker der Schwachstelle, Frasunek, mitteilte, hat er das FreeBSD Project bereits am 29. August 2009 darüber in Kenntnis gesetzt. Robert Watson, einer der FreeBSD Core Team member, teilte mit, dass die E-Mail "lost in a slew" ist und er davon ausgeht, dass es in Kürze ein offizielles advisory geben wird.

Bei der Schwachstelle handelt es sich um einen lokalen zero-day-exploit. Das heisst, ein Anwender muss Zugriff auf das System haben um root-Rechte zu erlangen.

Laut The Register ist Version 7.1 und später nicht betroffen, allerdings zeigt dieses Video, dass auch FreeBSD 7.2 betroffen ist.

Laut dem Entdecker der Schwachstelle ist es sehr einfach die Schwachstelle auszunutzen, welche anscheinend mit kqueue zusammenhängt.

Videos:
FreeBSD 6.x Exploit
FreeBSD 7.2 Exploit

Weitere Informationen:
The Register

UPDATE:
Wie ich eben in der Mailingliste gelesen habe, ist das FreeBSD Security Team dabei einen Patch zu testen.

Xin Li schreibt dazu:
Currently we (secteam@) are testing the correction patch and do
peer-review on the security advisory draft, the bug was found and fixed
on -HEAD and 7-STABLE before 7.1-RELEASE during some stress test but was
not recognized as a security vulnerability at that time. The exploit
code has to be executed locally, i.e. either by an untrusted local user,
or be exploited in conjunction with some remote vulnerability on
applications that allow the attacker to inject their own code.

We can not release further details about the problem at this time,
though, but I think we will likely to publish the advisory and
correction patch this patch Wednesday.


Es wird also in Kürze mit einem Patch gerechnet.

Inaktive Konsolensitzung automatisch beenden

Eine versehentlich nicht geschlossene Konsolensitzung kann sich als  schwerwiegendes Sicherheitsproblem entpuppen. Systemadministratoren können jedoch ohne großen Aufwand dafür sorgen, dass sich eine Sitzung automatisch schließt. Dies gilt gerade für Server, auf die mehrere Nutzer Zugang haben oder auch für Einzelrechner, zu denen andere gelegentlich physischen Zugang haben. Im Folgenden wird beschrieben, wie der Systemadministrator ein [...]

Festplattenanalyse mit smartmontools

Jede Festplatte segnet irgendwann das Zeitliche. Mit smartmontools gibt es für Linux eine Software zur Zustandsanalyse von Festplatten, die einen bevorstehenden Crash einer Festplatte erkennen kann.

Festplatte ok?

Lizenz: GNU Free Documentation License

EINSTIEG: Oft kündigt sich so ein Absturz z.B. durch ungewöhnliche Geräusche an. Mit smartmontools kann man überprüfen, ob sich die Festplatte in einem kritischen Zustand befindet und ob die Platte bald das Ende ihrer Lebensdauer erreicht haben könnte. Der Software zu Grunde liegt SMART (Self Monitoring, Analysis and Reporting Technology). SMART ist eine systemübergreifende Analysesoftware, die fest in der Firmware fast aller moderner Festplatten integriert ist. Hier belegt SMART einen kleinen Bereich, der nicht überschrieben werden kann.

INSTALLATION: Auf den meisten Linuxsystemen sind smartmontools nicht standardmäßig installiert. Unter Ubuntu installiert man das Paket per Synaptic oder mit:

sudo apt-get install smartmontools

Das Paket smartmontools besteht aus dem Befehl smartctl und dem Daemon smartd. Im Folgenden soll ein typisches Nutzerszenario für den manuellen Check mit smartctl (auf Ubuntu) dargestellt werden (für die Platte: /dev/sda).  Nicht näher eingegangen wird auf smartd, ein Daemon, der die Festplatte regelmäßig checkt, die Ergebnisse loggt und bei kritischem Zustand per email den Admin alarmieren kann.

AKTIVIERUNG: Obwohl SMART auf den meisten modernen Platten integriert sein sollte, muss es nicht zwangsläufig aktiviert sein – so könnte z.B. eine entsprechende Einstellung im BIOS dies verhindern. Nach der Installation von smartmontools wollen wir also zunächst herausfinden, ob SMART überhaupt aktiviert ist (benötigt root-Rechte):

harry@FRED:$ sudo smartctl -i /dev/sda
(…)
=== START OF INFORMATION SECTION ===
Model Family:     Hitachi Travelstar 80GN family
Device Model:     IC25N060ATMR04-0
Serial Number:    xxxxxxxxxxxxxxxxx
Firmware Version: MO3OAD4A
User Capacity:    60.011.642.880 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 3a
Local Time is:    Thu Apr 23 10:55:56 2009 CEST
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

Sollte SMART auf /dev/sda zwar verfügbar (“available”), aber nicht aktiviert (“disabled”) sein, können wir dies manuell nachholen:

smartctl -s on /dev/sda

BASISCHECK:
Hier gibt es mehrere Variationen. Um einen schnellen Check der Platte durchzuführen, verwendet man:

harry@fred:$ sudo smartctl -H /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

ERWEITERTER CHECK: Nun wollen wir aber doch eine detaillierte Auflistung der Fähigkeiten dieses Festplattenanalysetools. Welche Attribute kann smartmontools erfassen? Welche aktuellen Werte hat unsere Festplatte? Ab welchem Wert wird es kritisch? Die Antwort auf diese Fragen liefert:

smartctl -A /dev/sda

ATTRIBUTE_NAME beschreibt die untersuchte Eigenschaft
VALUE beschreibt den gemessenen Wert
WORST beschreibt den schlechtesten jemals gemessenen Wert
THRESH  beschreibt den Wert, ab dem Besorgnis gelten sollte

Beispiel:

harry@fred$ sudo smartctl -A /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0×000b   100   100   062    Pre-fail  Always       -       0
2 Throughput_Performance  0×0005   100   100   040    Pre-fail  Offline      -       0
3 Spin_Up_Time            0×0007   147   147   033    Pre-fail  Always       -       1
4 Start_Stop_Count        0×0012   099   099   000    Old_age   Always       -       1868
5 Reallocated_Sector_Ct   0×0033   100   100   005    Pre-fail  Always       -       0
7 Seek_Error_Rate         0×000b   091   072   067 Pre-fail  Always       -       0
8 Seek_Time_Performance   0×0005   100   100   040    Pre-fail  Offline      -       0
9 Power_On_Hours          0×0012   098   098   000    Old_age   Always       -       970
10 Spin_Retry_Count        0×0013   100   100   060    Pre-fail  Always       -       0
12 Power_Cycle_Count       0×0032   099   099   000    Old_age   Always       -       1865
191 G-Sense_Error_Rate      0×000a   093   093   000    Old_age   Always       -       1441802
192 Power-Off_Retract_Count 0×0032   100   100   000    Old_age   Always       -       59
193 Load_Cycle_Count        0×0012   096   096   000    Old_age   Always       -       48006
194 Temperature_Celsius     0×0002   196   196   000    Old_age   Always       -       28 (Lifetime Min/Max 7/48)
196 Reallocated_Event_Count 0×0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0×0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0×0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0×000a   200   200   000    Old_age   Always       -       0

Bedenklich in diesem Beispiel ist das Attribut Seek_Error_Rate. Gemessen wurde ein Wert unter 100, in der Vergangenheit wurden sogar einmal nur 72 gemessen. Ab 67 kann ein Ausfall der Festplatte drohen.


GRÜNDLICHER CHECK:
Nun wollen wir unsere Platte einem ausführlicheren Test unterziehen, wobei auch die Mechanik und der Datendurchsatz getestet werden. Zur Verfügung stehen uns ein Selbsttest in der Kurzform oder in der ausführlichen Form. Um mehr (auch über die die erwartete Dauer der Tests) herauszufinden geben wir ein:

sudo smartctl -c /dev/sda
harry@FRED:$ sudo smartctl -c /dev/sda
( … Ausgabe verkürzt … )
Short self-test routine
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  53) minutes.

Der Kurztest würde also 2 Minuten dauern, der lange self-test ca 53 Minuten. Um den Kurztest zu starten, verwenden wir:

sudo smartctl -t short /dev/sda
harry@FRED:$ sudo smartctl -t short /dev/sda
(…)
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: “Execute SMART Short self-test routine immediately in off-line mode”.
Drive command “Execute SMART Short self-test routine immediately in off-line mode” successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Apr 23 11:49:02 2009
Use smartctl -X to abort test.

Analog dazu würden wir den ausführlichen Check durchführen mit:

harry@FRED:$ sudo smartctl -t long /dev/sda


TESTERGEBNISSE ABRUFEN: Während des Test schreibt die Software die Ergebnisse in eine Logdatei. Um das Testergebnis aufzurufen, verwendet man:

smartctl -l selftest /dev/sda

Beispiel:

harry@FRED:$ sudo smartctl -l selftest /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error 00%       970         -
# 2  Short offline       Completed without error 00%       970         -

smartmontools funktioniert nicht auf externen USB-Platten. Es wird auch nicht jeden Festplattenabsturz zuverlässig voraussagen können. Um eine gewiefte Backupstrategie wird man also trotz smartmontools nicht herumkommen.

LINKS:
http://smartmontools.sourceforge.net/
http://wiki.ubuntuusers.de/Festplattenstatus
http://de.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology


Openmoko und Secure Shell (openssh)

Mit dem Zugriff über openssh lässt sich das Openmoko auch bequem vom Desktop-PC konfigurieren und mit externen Daten füttern.

http://commons.wikimedia.org/wiki/File:Gnome-fs-ssh.png

Quelle: Wikimedia - Lizenz: GPL

Das Openmoko Freerunner ist nicht nur ein Telefon. Es ist im Grunde ein (nahezu) vollwertiges Betriebssstem. Ein Vorteil ist dabei auch ein Nachteil: Weil der Freerunner so handlich ist, wird die Konfiguration auf der Kommandozeile zur filigranen Geschicklichkeitsübung. Um das Getippe auf dem kleinen Display zu umgehen (und auch, um bequem Daten aufzuspielen), greift man am Besten auf openssh (in diesem Artikel: per USB-Kabel) zurück.

Vorbereitung: Zunächst schließt man das Openmoko mit dem USB-Kabel an den (Linux-)PC an. Der PC hat nun ein weiteres Interface z.B. usb0. Dies kann mit dem Befehl ifconfig überprüft werden. Die Schnittstelle auf dem Freerunner (i.d.R. ebenfalls usb0) hat in der Grundeinstellung die IP-Adresse 192.168.0.202 zugewiesen. Auch dies kann mit dem Befehl ifconfig (auszuführen auf dem Freerunner) geprüft werden.

root@phone# ifconfig usb0
usb0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.0.202 Bcast:192.168.0.255  Mask:255.255.255.0
(…)

1. Zunächst muss dafür gesorgt werden, dass auch die USB-Schnittstelle auf dem PC eine IP zugewiesen bekommt, die im selben Netzwerksegment liegt wie das Openmoko. Beispiel (auf dem PC auszuführen):

ifconfig usb0 192.168.0.200

2. Nun wird die ssh-Verbindung hergestellt. Das Passwort für root ist in der Grundeinstellung leer und wird einfach mit ENTER bestätigt:

# ssh root@192.168.0.202
The authenticity of host ‘192.168.0.202 (192.168.0.202)’ can’t be established.
RSA key fingerprint is xxx:xx:xx.xx:xx:xx:xx:xx
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.202′ (RSA) to the list of known hosts.
root@192.168.0.202’s password:
root@phone#

3. Nun sollte man das Rootpasswort mit dem Befehl passwd root ändern.Fertig!

4. Nun kann man mit Vergnügen auf der Kommandozeile im System des Freerunner herumwursteln. Aber auch grafische Anwendungen sind möglich. Dazu beendet man die Verbindung (oder startet gleich so ) und nutzt folgende Befehle:

# xhost +; ssh -X -v root@192.168.0.202
access control disabled, clients can connect from any host
root@192.168.0.202’s password:

5. Um nun z.B den Webbrowser Dillo zu starten verwendet man…

root@phone# dillo

…und es öffnet sich Dillo, den man nun auch bequem im Vollbildmodus nutzen könnte.

dillo per ssh (Freerunner)

dillo per ssh (Freerunner)

Diese Anleitung beschränkt sich nur auf das grundsätzliche Setup. Nicht eingegangen wird auf Key-Authentifizierung, Datentransfer per ssh (scp) usw. Wenn die ssh-Verbindung ein “Can`t find route to host” anzeigt, kann dies daran liegen, dass das Openmoko z.B. per WLAN angebunden ist. Hier kann es helfen, die WLAN-Verbindung zu unterbrechen und den Netzwerkdienst neu zu starten. (/etc/init.d/network restart). Ein weiteres Hindernis sind mangelnde Superuserrechte. Alsom immer schön “Ich bin root – ich darf das!” spielen. Ach ja, und zumindest auf dem getesteten SUSE-System schien die Netzwerkschnittstelle usb0 manchmal einfach so ihre IP-Adresse freizugeben….

Siehe auch: http://wiki.openmoko.org/wiki/USB_Networking#SSH_Extras


Firefox Add-on: NoScript

Mit NoScript kann man in Firefox gezielt steuern, auf welchen Webseiten JavaScript, Java , Flash und andere Scripts erlaubt sind.

Scripten gezielt steuern: NoScript

Scripten gezielt steuern: NoScript

Ach ja, es ist ein beinahe unlösbares Problem: Eigentlich hat man in den Firefox-Einstellungen Java-Script aus Sicherheitsgründen deaktiviert. Doch es gibt immer ein paar Seiten, auf die man partout nicht verzichten will und die – na klar – nur funktionieren, wenn JavaScript aktiviert ist. Entnervt gibt man dann JavaScript schließlich wieder frei, denn das andauernde Geklicke in den Firefox-Einstellungen kann auf den Senkel gehen…

In der Grundeinstellung unterbindet das Addon NoScript eine ganze Reihe von Scripts, die entweder mit Reklame nerven, im Hintergrund fleißig Daten sammeln, oder schlichtweg eine Gefährdung für das System darstellen können.


Hier setzt das Firefox Addon NoScript an. Zunächst kann man konfigurieren, welche Scripts grundsätzlich verboten sein sollen. Trifft man nun auf eine vertrauenswürdige Seite, der man mehr Rechte zugestehen will, so kann man diese Seite entweder grundsätzlich freischalten oder einzelne Komponenten freischalten (entweder vorübergehend oder generell). Genauso verhält es sich mit potenziell unerwünschten Inhalten wie Scripts von fastclick.net oder ivwbox.de . Hat man solche Dienste einmal generell verboten, führen sie seitdem nie wieder ihre Scripts im Hintergrund aus.

Firefox

Firefox

Zugegeben, kurz nach der Installation ist man erst mal damit beschäftigt, beim Browsen ständig Entscheidungen zun treffen. Diese Phase ist jedoch schnell vorüber und man hat eine ngroßen Schritt in Richtung Sicherheit und informeller Selbstbestimmung getan. Am unteren Rand von Firefox kann man die momentanen Einstellungen von NoScript überprüfen und anpassen.

Installation: Wer das Addon haben will, kann dies hier tun:

NoScript für Firefox installieren.