Schlagwort: Sicherheit

systemd-resolved

Ich habe bei Net­cup seit Jah­ren einen Root-Ser­ver (Ubun­tu 18.04), der ein­fach funk­tio­niert, und bei dem ich mir nie Gedan­ken über Namens­auf­lö­sung gemacht habe.

Weil die näm­lich auch funk­tio­niert.

Bis auf eben, da woll­te ich ein Open­VAS in einem Docker mit neu­en Signa­tu­ren beglü­cken.

Aller­dings:

root@9b12cf26b36e:/# greenbone-nvt-sync

rsync: getaddrinfo: feed.openvas.org 873: Temporary failure in name resolution
rsync error: error in socket IO (code 10) at clientserver.c(128) [Receiver=3.1.1]
root@9b12cf26b36e:/# openvasmd --rebuild --progress
Rebuilding NVT cache... done.
root@9b12cf26b36e:/# greenbone-certdata-sync
rsync: getaddrinfo: feed.openvas.org 873: Temporary failure in name resolution
rsync error: error in socket IO (code 10) at clientserver.c(128) [Receiver=3.1.1]
root@9b12cf26b36e:/# greenbone-scapdata-sync
rsync: getaddrinfo: feed.openvas.org 873: Temporary failure in name resolution
rsync error: error in socket IO (code 10) at clientserver.c(128) [Receiver=3.1.1]

Da sah ich dann doch mal nach, wel­che Name­ser­ver ich ver­wen­de, aber resolv.conf sag­te mir: Nada!

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

Nun denn:

Global
         DNS Servers: 46.38.225.230
                      46.38.252.230
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Ich habe kei­ne Ahnung, woher die bei­den Name­ser­ver kom­men — ihr? Irgend­wo müs­sen die ja fest­ge­tackert sein?¹
Die DNS­SEC-NTAs sehen auch ziem­lich will­kür­lich aus — wo sind die denn defi­niert?

Wahr­schein­lich will man den gan­zen Quatsch sowie­so raus­wer­fen und einen klas­si­schen loka­len Resol­ver ver­wen­den.


¹ Ich sehe gera­de, daß ich DHCP ver­wen­de. Das erklärt es wohl.

0

EdgeOS, Stolperfalle

Ich hab’ im Kel­ler ja einen ER‑X, der mir außer­or­dent­lich gut gefällt (man hät­te ihm aller­dings mehr Sto­rage geben sol­len, 256 MB sind arg weni­g¹)
Auf dem ist port for­war­ding ein­ge­rich­tet für

ssh soll natür­lich von über­all funk­tio­nie­ren, Home Assi­stant aller­dings nur von einer bestimm­ten IP²
Doch egal was ich mache: Es funk­tio­niert von über­all. WTF?
Weil es außer­mensch­li­che Intel­li­genz gibt, und die in die­sem Fal­le hieß:

port-forward {
    auto-firewall enable
    hairpin-nat enable

Oder in bunt grau:

Das sieht man erst, wenn man “Show advan­ced opti­ons” ange­tickt hat 🙁
Jeden­falls: Sobald die “auto-fire­wall” akti­viert ist, kann man zwar in den Fire­wall-Regeln erlaub­te Source-Adres­sen kon­fi­gu­rie­ren, aber das wird nicht berück­sich­tigt. auto-fire­wall heißt: “source: any”.

Also habe ich den Quatsch aus­ge­schal­tet, die gewünsch­te Source-Adres­se bei den Fire­wall-Regeln ein­ge­tra­gen, und bämm!, nur noch die eine IP darf 🙂
Mer­ke: Bes­ser die con­fig lesen als der GUI ver­trau­en.


¹ eigent­lich  ist es genug, nur wird bei einem Update das alte Sys­tem behal­ten, so daß sich der ver­füg­ba­re Platz fak­tisch halbiert.Auch das reicht, solan­ge man nicht zusätz­li­che Soft­ware instal­liert hat. Ich habe zum Bei­spiel noch tcp­dump, screen und rsync nach­in­stal­liert.

² Ist ne län­ge­re Geschich­te, und die geht so: Wir haben iPho­nes. HA kann IOS push noti­fi­ca­ti­ons, das ist schon ziem­lich geil (ich nut­ze es zum Bei­spiel für den Staub­sauger). Nur braucht dann HA ein von Apple akzep­tier­tes Zer­ti­fi­kat, also kein selbst­si­gnier­tes. Da bie­tet sich mein LE-Wild­card an für *.sokoll.com — aber wie bekom­me ich das auf den Pi, auf dem HA läuft? Da es ein Wild­card ist, muß man ja zwin­gend die DNS-Chal­len­ge neh­men. Klar könn­te man wil­de Skrip­te klöp­peln — ich habe mich für eine ein­fa­che­re Vari­an­te ent­schie­den: Auf mei­nem Root-Ser­ver läuft ein Apa­che mit mod_proxy:

SSLEngine on
SSLCertificateFile /etc/dehydrated/certs/wildcard_sokoll.com/fullchain.pem
SSLCertificateKeyFile /etc/dehydrated/certs/wildcard_sokoll.com/privkey.pem
ProxyRequests off
ProxyPreserveHost On
ProxyPass /api/websocket wss://91.66.58.188/api/websocket
ProxyPassReverse /api/websocket wss://91.66.58.188/api/websocket
ProxyPass / https://91.66.58.188/
ProxyPassReverse / https://91.66.58.188/
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
SSLProxyCheckPeerName off

SSLProxyCheckPeerExpire off hät­te ich mir spa­ren kön­nen 🙂

~$ openssl s_client -showcerts -servername hass.sokoll.com -connect raspberrypi.local:443 < /dev/null 2>/dev/null | openssl x509 -noout -dates
notBefore=May 17 17:17:07 2019 GMT
notAfter=Apr 12 17:17:07 4757 GMT
~$

Im April des Jah­res 4757 ist viel­leicht der Raspi nicht tot, aber wahr­schein­lich ich.

Jeden­falls auf die­ses Wei­se habe ich kei­nen Streß mit Zer­ti­fi­ka­ten.

 

0

Ubuntu, docker

Habe gera­de neben­bei mit­be­kom­men, daß das mit Ubun­tu (in mei­nem Fal­le 18.04 LTS) mit­ge­lie­fer­te docker stein­alt ist,

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

regelt das:

root@big:~# docker --version
Docker version 19.03.0, build aeac949
root@big:~#

Eine Stun­de alt 🙂

Was mich kir­re macht: Ich habe kein Pro­blem damit, daß Cano­ni­cal nicht jede vola­ti­le Soft­ware mit­lie­fert. Aber dann sol­len sie es bit­te ganz blei­ben las­sen und nicht schimm­li­ges Zeug per default aus­lie­fern!

0

Open Source wird überbewertet

Die Aus­sa­ge, bei OSS kön­ne jeder den Code ein­se­hen, über­prü­fen und nach Belie­ben ändern, stimmt natür­lich. Nur macht es kaum jemand.
Bei­spiel opens­sl bei Debi­an:¹ 2 Jah­re lang flog jedes Debi­an fak­tisch ohne Zufalls­zah­len durch die Welt, und kei­ner hats mit­be­kom­men. Bis auf viel­leicht ein paar Geheim­diens­te, die das aber nicht ver­ra­ten haben…
Oder Chro­mi­um: Das ist kom­plett OSS — und auch kom­plett Goog­le. Selbst­ver­ständ­lich bestimmt Goog­le, was wie gemacht wird. Apa­che, Docker, Libre­Of­fice — über­all ste­hen Gate­kee­per, die dar­auf ach­ten, daß eben nicht jeder den Code ändert.
Vor­tei­le gibt es allen­falls für wirk­lich gro­ße Fir­men, die es sich leis­ten kön­nen, intern ent­wi­ckel­te Code­än­de­run­gen auch über Jah­re wei­ter­zu­pfle­gen. Face­book und PHP ist so ein Bei­spiel, booking.com auch. Das sind aber auch Schwer­ge­wich­te, 99,9% aller OSS-Anwen­der wer­den wohl nie einen Blick in den Code wer­fen oder gar ihn anpas­sen, son­dern ein­fach die Bina­ries instal­lie­ren und star­ten. Da gibt es gar kei­nen Unter­schied zu Clo­sed Source.

Ein ande­rer Hand­lungs­strang: Wir sind kaum noch an Ursa­chen­for­schung inter­es­siert, also an einer Ant­wort auf die Fra­ge, war­um irgend­ein Ereig­nis ein­ge­tre­ten ist. Das ist was für Aka­de­mi­ker, aber nicht für den All­tag. Im All­tag geht es nur noch um Wahr­schein­lich­kei­ten, mit denen ein Ereig­nis ein­tref­fen wird. Der Spam­fil­ter soll den meis­ten Spam aus­fil­tern, das auto­no­me Auto auf den meis­ten Stra­ßen fah­ren kön­nen, pre­dic­tive poli­cing soll die meis­ten Ver­bre­chen ver­hin­dern (zum Preis von Kol­la­te­ral­schä­den), Schufa-Sco­ring das Ban­ken-Risi­ko min­dern usw. usf. Und die KI rech­net dann. Die KI ist dabei ein gro­ßer schwar­zer Raum, den nie­mand mehr ver­steht — und auch nicht ver­ste­hen muß.
Wer aber die­se Berech­nun­gen mit mög­lichst gro­ßer Genau­ig­keit machen kann, der braucht Daten. Rie­si­ge Men­gen an Daten. Denn je mehr Daten, des­to genau­er wer­den die Berech­nun­gen, des­to bes­ser las­sen sich die­se Rechen­er­geb­nis­se mone­ta­ri­sie­ren. Und die Daten sol­len wir lie­fern, frei­wil­lig. Und der Daten­ha­fen wird unse­re Daten nicht wie­der her­aus­ge­ben, jeden­falls nicht ohne sie vor­her kopiert und ver­ar­bei­tet zu haben. Und an die Kon­kur­renz gehen die Daten natür­lich gleich gar nicht. DAS ist der Grund für die gan­zen wal­led gar­dens: Face­book, gmail, Info­tain­ment-Sys­te­me in Autos, Rabatt­mar­ken-Sys­te­me… Man will an unse­re Daten.
Und ob wir die mit open oder clo­sed source frei­wil­lig her­ge­ben, ist dabei völ­lig egal.

Des­we­gen: Daten sind das Öl der Zukunft, nicht Soft­ware. Wir brau­chen Open Data. Ja, auch die Daten, die wir an Face­book & Co. ver­schen­ken, sol­len open sein, natür­lich ohne sie auf ein­zel­ne Per­so­nen zurück­füh­ren zu kön­nen. Und wis­sen­schaft­li­che Daten sowie­so.


¹ Ja, das ist ein altes Bei­spiel. Aber pro­mi­nent und typisch. Es gibt genü­gend wei­te­re Bei­spie­le.

0

ceterum censeo

coo­kie dis­c­lai­mer sunt delen­dam.

Mein Ober­chef brach­te heu­te einen inter­es­san­ten Gedan­ken: Die­se gan­zen blöd­sin­ni­gen Coo­kie-Popus kon­di­tio­ne­ren Eike Mus­terX nur dazu, alles, was sich in den Vor­der­grund schiebt, abzu­ni­cken. Eben auch: “SIE! MÜSSEN!! MAKROS!!! ERLAUBEN!!!!”

0

Emotet

Hei­se hat ja die vol­le Breit­sei­te abge­fan­gen. In dem Arti­kel ist etwas vage von TCP/449 die Rede:

Ein schnel­ler Check zeig­te, dass bereits eine gan­ze Rei­he von Rech­nern über selt­sa­me Ver­bin­dun­gen etwa auf TCP-Port 449 nach drau­ßen kom­mu­ni­zier­te.

Die­ses etwa ver­ste­he ich als: Das haben wir gese­hen, aber da kann noch viel mehr sein… (als anstän­di­ger Hacker wür­de ich ja 443 neh­men).
449 ist schein­bar nicht Emo­tet, son­dern ein nach­ge­la­de­nes trick­bot — was auch immer die­ses tut.

Nun, da dach­te ich mir: Schaus­te mal auf der Fire­wall nach, was da so pas­siert auf 449/TCP. Lus­ti­ges Zeug:

22:01:31.797731 IP scratch-01.sfj.corp.censys.io.16071 > x.x.x.x.as-servermap: S 176477258:176477258(0) win 1024
22:01:31.798031 IP x.x.x.x.as-servermap > scratch-01.sfj.corp.censys.io.16071: R 0:0(0) ack 176477259 win 0

as-ser­ver­map ist 449. Von die­sen Ein­trä­gen mit src censys.io habe ich nicht vie­le, aber eini­ge, seit ca. 6 Stun­den ein hal­bes Dut­zend ca.

censys.io bie­tet schein­bar Port­scans für jeder­mann an. Jeden­falls für jeder­mann aus den Amish. Mei­ne IP (2001:470:6d:c40:1419:897f:ed71:b17a) will er nicht 🙂
Dazu kom­men noch ein paar rus­si­sche Ser­ver, den Rest habe ich nicht kon­trol­liert. Ist aber alles über­schau­bar, und ich bin mir zu in etwa 183,73% sicher, daß ich TCP/449 nicht frei­ge­ge­ben habe…

0