RCE Lücke in smartem Stromzähler

Das ein Gericht das BSI gerade daran gehindert hat, einfach die Anforderungen an die Zulassung von smarten Stromzählern zu senken, war eine mehr als positive Entscheidung. Wie sich zeigt ist die Sicherheit von smarten Stromzählern essentiell.

RCE Lücke in smartem Stromzähler

ThreadPost berichtet in einem Artikel vom 12.3. von einer ungepatchten Sicherheitslücke in einem „Schneider Electronic PowerLogic ION/PM Smart Meter“:

„Critical security vulnerabilities in Schneider Electric smart meters could allow an attacker a path to remote code execution (RCE), or to reboot the meter causing a denial-of-service (DoS) condition on the device.“

Dies Modell wird zwar nicht in Deutschland eingesetzt AFAIK, zeigt aber wie wichtig die Sicherheitsfrage bei diesen Geräten ist. Die fraglichen Geräte hängen wohl am Internet und sind so Angriffen ausgeliefert. Wieso man da bitte nicht mal eine Firewall vorsetzt, die Verbindungen nur vom zuständigen Datacenter zulässt, wird wohl niemand von der Firma beantworten wollen.

Dieses spezielle Smartmeter kann komplett übernommen werden, oder alternativ geDOSt werden, also an der Arbeit gehindert werden. Wenn ich so eine Lücke hätte, wüßte ich was das Smartmeter messen lassen würde: Das ich im Urlaub bin und nur der Kühlschrank läuft 😉  „Ist halt gehackt worden“, falls jemand die Frage stellt, wieso die Leitungen rot leuchten 😉

Das Schlimme an der Sache ist, daß solche Geräte mal wieder in Rechenzentren und Medizinischen Einrichtungen stehen. Damit sind diese Geräte, denen man den Hack nicht ansieht, dann Einfallstore für weitere Attacken. Wie man dem Bericht weiter entnehmen kann, ist wohl der ganze interne Softwarestapel schlampig zusammen gebaut worden:

“We found that the advance_buffer function always returns true, regardless of other inner functions failing and returning false. „

Das meint, daß egal ob eine Unterroutine die Rote Leuchte rausstellt und den Aufrufer darauf hinweist, daß es nicht geklappt hat, macht die aufrufende Routine einfach weiter. Das nennt man im Fachjargon „Fire & Forget Code“. Dieser geht immer davon aus, daß das was er tut funktioniert. Eine Fehlerbehandlung ist nicht vorgesehen. Und genau das fällt diesem Smartmeterhersteller jetzt auf die Füße. Aus Programmierersicht habe ich da jetzt kein Mitleid, weil das ist einfach nur schlampig zusammen gebastelt worden.

 

Pinephone: automatische Screenrotation einschalten

Liebe Linuxphone Fans,

einige Distributionen verteilen die Rohfassung von Phosh. Bei Fedora kann diese keine automatische Screenrotation.

Pinephone: automatische Screenrotation einschalten

Ich habe da mal kurz Abhilfe geschaffen. Ihr braucht zwei Files:

/usr/local/sbin/autorotate:

#!/bin/bash

COUNT=$(ps auxf | grep -v grep| grep -c autorotate)

if [ $COUNT -gt 2 ]; then 
	killall -9 autorotate
	exit
fi

OLD=""

while :
do
	X=$(cat /sys/bus/iio/devices/iio:device2/in_accel_x_raw)
	Y=$(cat /sys/bus/iio/devices/iio:device2/in_accel_y_raw)
	Z=$(cat /sys/bus/iio/devices/iio:device2/in_accel_z_raw)

	if [ $X -gt 15000 ] && [ "$OLD" != "N" ]; then
		# portray mode
		wlr-randr --output DSI-1 --transform normal
		OLD="N"
	fi
	if [ $Y -gt 15000 ] && [ "$OLD" != "90" ]; then
		#Landscape 90
		wlr-randr --output DSI-1 --transform 90
		OLD="90"
	fi
        if [ $Y -lt -15000 ] && [ "$OLD" != "270" ]; then
                #Landscape 270
		wlr-randr --output DSI-1 --transform 270
		$OLD="270"
        fi
	sleep 0.5
done

Dann ausführbar machen : chmod 755 /usr/local/sbin/autorotate

Nun noch ein Desktopfile angelegt : /usr/share/application/screenrotate.desktop

[Desktop Entry]
Name=Screenrotate
Exec=autorotate
Type=Application
StartupNotify=false
Icon=/home/pine/Bilder/screenrotate.png
Name[de_DE]=Bildschirmdrehen

und lesbar machen: chmod 644 /usr/share/application/screenrotate.desktop

Wer das jetzt im Autostart haben will, muß das Desktopfile noch nach ~/.config/autostart/ kopieren.

Ein Icon könnt Ihr Euch dann selbst als „/home/pine/Bilder/screenrotate.png“ ablegen. Selbstverständlich könnt Ihr auch ein andere Icon/Verzeichnis dafür benutzen, da seid Ihr völlig frei.

Das Script terminiert sich beim Aufruf selbst, wenn es schon gestartet wurde. So kann man es ein und ausschalten.Wer das für einen anderen Kernel/Distro als Fedora 5.11.2 benutzen möchte, müßte ggf. die Pfade für /sys/bus/ anpassen.

 

Pinephone: MPV im Landscape starten

Liebe Linuxphone Fans,

heute drehen wir mal am Bildschirm rum und kommen zu einem besseren Videoerlebnis.

Pinephone: MPV im Landscape starten

Es hat mich schon lange genervt, daß die Apps dem Desktop nicht sagen, in welcher Lage er sich befinden soll, also senkrecht oder waagerecht / Portray- oder Landscapemode. Wenn man MPV in Portraymodus gestartet hat, kam der Film, aber als Briefmarke. Heute ändern wir das. Ihr braucht: wlr-randr und libva-request für die Hardwarebeschleunigung, also installieren wir das: „dnf install wlr-randr libva-request -y„.

Jetzt legen wir ein Script mit „touch /usr/local/sbin/rmpv“ an und geben dem als Rechte 755 mit: „chmod 755 /usr/local/sbin/rmpv„. Nun füllen wir dies noch mit Inhalt:

#!/bin/bash

export PATH=/home/pine/.local/bin:/home/pine/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

wlr-randr –output DSI-1 –transform 270

export LIBVA_DRIVER_NAME=v4l2_request
export LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video0
export LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0

mpv –osd-duration=10000 –fs –hwdec=vaapi-copy –vo=gpu,drm –player-operation-mode=pseudo-gui „$1“

wlr-randr –output DSI-1 –transform normal

Natürlich gehe ich davon aus, das Ihr schon MPV drauf habt. Sollte das nicht der Fall sein, dann installiert kurz die RPMFusion Repos und installiert es mit „dnf install mpv -y“ nach.

Im nächsten Schritt müßt Ihr root werden oder sudo benutzen und /usr/share/applications/mpv.desktop so ändern:

Exec=/usr/local/sbin/rmpv %U

Glückwünsche, das war es schon.