Code Review auf Sicherheit

Zusammenfassung:

1.

Ein externer Prüfer sieht, welche firmware auf einem Router installiert ist, dabei sieht er im Moment nur in der internen config files in /lib/gluon/gluon-version, release und site.json. In den ersten beiden steht z.b.

  gluon-version:v2016.1.6
  release:2016.1.6

Die gluon-version anthält die commit ID nur, wenn man nicht genau auf einem annotated tag gebaut hat, dann steht dort sehr genau z.b.

2016.2~exp1611131432 / gluon-v2016.2.1-3-g0f9a1a9

also commit-id 0f9a1a9 genau 3 commits nach dem tag gluon-v2016.2.1

Außerdem enthält die site.json die exact benutzte site config, anhand der könnte ein Prüfer die Firmware genau so nachbauen.

2.

Hier kommt die Docker Diskussion ins spiel: Wenn man mit einem vorgegebenen Docker image gebaut hätte, dann könnte der Prüfer jetzt das selbe Docker Image nehmen und anhand der site.json und dem gluon-commit die Firmware selbst auch bauen und dann die resultierenden images binär vergleichen.

Damit sieht der Prüfer, dass die Firmware wirklich mit diesem Docker image gebaut worden ist.

3.

Das verschiebt aber natürlich den Angriffsvektor auf das Docker-Image, das jetzt überprüft werden müsste auf Hintertüren:

Dazu könnte man eine Anleitung, wie man das Docker Image aus Standard-Paketen erstellt hat veröffentlichen, nachbauen und dann die Docker-Images überprüfen.

Ich hab das wichtigste hier ergänzt: https://wiki.freifunk.net/Sicherheit