plattform-eva / revision-politische-rechte-2021

Diskussion zu einer gemeinsamen Antwort zur eidgenössischen Vernehmlassung 2021/61: Änderung der Verordnung über die politischen Rechte (VPR) und der Verordnung der BK über die elektronische Stimmabgabe (VEleS)
Creative Commons Zero v1.0 Universal
13 stars 1 forks source link

Anhang VEleS Ziff. 24. Entwicklung und Wartung von Informationssystemen #59

Open dune73 opened 3 years ago

dune73 commented 3 years ago

Wortlaut der Vorlage

  1. Entwicklung und Wartung von Informationssystemen

24.1 Entwicklung

24.1.1 Es wird ein Lebenszyklusmodell definiert. Das Lebenszyklusmodell:

24.1.2 Es wird eine Liste der eingesetzten Entwicklungswerkzeuge sowie der Konfigurationsoptionen, die für den Einsatz der einzelnen Entwicklungswerkzeuge gewählt wurden, erstellt.

24.1.3 Die Dokumentation der Entwicklungswerkzeuge umfasst:

24.1.4 Es wird festgelegt, welche Implementierungsstandards angewendet werden.

24.1.5 Die Software wird so spezifiziert und implementiert, dass die Sicherheitsfunktionen nicht umgangen werden können.

24.1.6 Die Sicherheitsfunktionen werden so spezifiziert und implementiert, dass sie vor Manipulation geschützt sind.

24.1.7 Die Sicherheitsarchitektur der Software wird dokumentiert. Die Dokumentation:

24.1.8 Die funktionalen Spezifikationen werden dokumentiert. Die Dokumentation:

24.1.9 Die Nachvollziehbarkeit zwischen funktionalen Spezifikationen und Sicherheitsanforderungen wird bis auf die Ebene der Schnittstellen sichergestellt.

24.1.10 Alle Sicherheitsfunktionen sind im Quellcode implementiert.

24.1.11 Die Nachvollziehbarkeit zwischen dem gesamten Quellcode und den Spezifikationen der Sicherheitsfunktionen ist sichergestellt und deren Übereinstimmung ist erwiesen.

24.1.12 Die Sicherheitsfunktionen werden so konzipiert und implementiert, dass sie gut strukturiert sind. Die interne Struktur wird beschrieben und enthält eine Begründung, die:

24.1.13 Die Spezifikationen umfassen folgende Aspekte:

24.1.14 Die Software wird mit einer eindeutigen Kennzeichnung versehen.

24.1.15 Die Dokumentation des Konfigurationsmanagements enthält:

24.1.16 Das Konfigurationsmanagementsystem:

24.1.17 Alle Konfigurationselemente werden im Konfigurationsmanagementsystem inventarisiert.

24.1.18 Das Konfigurationsmanagementsystem wird in Übereinstimmung mit dem Konfigurationsmanagementplan verwendet.

24.1.19 Es wird eine Konfigurationsliste erstellt, die die folgenden Elemente enthält:

24.1.20 Die Dokumentation zur Sicherheit der Softwareentwicklung umfasst:

24.2 Betrieb

24.2.1 Es wird ein Betriebshandbuch erstellt, das für jede Benutzerrolle folgende Aspekte enthält:

24.2.2 Das Betriebshandbuch muss alle möglichen Betriebsarten der Software aufzeigen, dies einschliesslich der Wiederaufnahme des Betriebs nach der Entdeckung von Fehlern sowie der Beschrieb der Folgen und Auswirkungen von Fehlern auf die Aufrechterhaltung des sicheren Betriebs.

24.2.3 Das Betriebshandbuch muss präzise und zweckmässig sein.

24.3 Zuverlässige und nachvollziehbare Kompilierung und Deployment

24.3.1 Der Vorbereitungsprozess beschreibt alle Schritte, die notwendig sind für:

24.3.2 Die Bereitstellung des Software oder von Teilen des Systems wird dokumentiert und umfasst alle Prozesse, die zur Aufrechterhaltung der Sicherheit bei der Bereitstellung der Software erforderlich sind.

24.3.3 Es ist eine zuverlässige und überprüfbare Kompilierung mit angemessenen Sicherheitsmassnahmen durchzuführen. Damit ist sichergestellt, dass der ausführbare Code eine überprüfbare und getreue Darstellung des Quellcodes ist, der einer öffentlichen Kontrolle und unabhängigen Prüfungen unterzogen wurde. Die Kompilierung erlaubt es, eine Beweiskette für die Überprüfung der Software anzulegen, und umfasst insbesondere:

24.3.4 Es ist ein zuverlässiges und überprüfbares Deployment mit angemessenen Sicherheitsmassnahmen durchzuführen. Damit ist sicherzustellen, dass:

  1. der produktiv eingesetzte Code eine überprüfbare und getreue Darstellung des Quellcodes ist, der einer öffentlichen Kontrolle und unabhängigen Prüfungen unterzogen wurde; und
  2. dass die Produktionsumgebung mit derjenigen übereinstimmt, die der öffentlichen Kontrolle und unabhängigen Prüfungen unterzogen wurde. Das Deployment erlaubt es, eine Beweiskette für die Überprüfung der Software anzulegen, und umfasst insbesondere:
    • den Nachweis, dass die Produktionsumgebung mit derjenigen übereinstimmt, die der öffentlichen Kontrolle und unabhängigen Überprüfungen unterzogen wurde; allfällige Abweichungen (Firmware-Version, Konfigurationsdateien usw.) sind zu dokumentieren und zu begründen;
    • den Nachweis, dass die in der Produktionsumgebung eingesetzte Software tatsächlich diejenige ist, die im zuverlässigen und überprüfbaren Kompilierungsverfahren erstellt wurde;
    • den Nachweis, dass die allenfalls eingeführten Parameter das System nicht angreifbar machen.

24.3.5 Die Qualität der Nachweise der zuverlässigen und überprüfbaren Kompilierung und des zuverlässigen und überprüfbaren Deployments wird durch die Anwesenheit von mindestens zwei Zeuginnen oder Zeugen verschiedener Institutionen oder durch technische Verfahren zur Feststellung des Wahrheitsgehalts nach dem Stand der wissenschaftlichen Erkenntnisse und Erfahrungen bestätigt.

24.3.6 Die Nachweiskette der zuverlässigen und überprüfbaren Kompilierung und des zuverlässigen und überprüfbaren Deployments wird öffentlich zugänglich gemacht.

24.4 Systematische Behebung von Mängeln

24.4.1 Es werden Prozesse zur Behebung von Mängeln definiert. Die Prozesse umfassen:

24.4.2 Es wird ein Prozess für die Behandlung der gemeldeten Mängel definiert. Dieser Prozess stellt sicher, dass alle gemeldeten und bestätigten Mängel behoben werden und dass die Prozesse zur Behebung den Systembenutzerinnen und -benutzern mitgeteilt werden. Er sieht Vorkehrungen vor, die sicherstellen, dass eine Behebung von Sicherheitsmängeln keine neuen Sicherheitsmängel nach sich zieht.

24.4.3 Es werden Richtlinien für die Einreichung und die Behebung von Mängeln definiert. Diese umfassen:

24.5 Qualitätssicherung

Es wird regelmässig und objektiv geprüft, ob die durchgeführten Abläufe sowie die dazugehörenden Arbeitsprodukte mit der Beschreibung der umzusetzenden Abläufe, Normen und Prozesse übereinstimmen. Abweichungen werden bis zu ihrer Behebung weiterverfolgt.

Referenzen

Ziff. 24 Entwicklung und Wartung von Informationssystemen Die Qualität von E-Voting-Systemen muss während des gesamten Entwicklungsprozesses sichergestellt werden. Um die Qualitätssicherung zu stärken, wurden die Anforderungen mit folgenden Zielen präzisiert:

Ziff. 24.1: Die hier berücksichtigten Entwicklungswerkzeuge sind die Werkzeuge, die für die Sicherheit der Softwareentwicklung wichtig sind. Dazu gehören IDEs, Build-Tools und Konfigurationsmanagement-Tools. Ebenso handelt es sich um Konfigurationsoptionen, die einen Einfluss auf die Sicherheit der Entwicklung haben können.

Wie in Ziffer 17.2 werden unter «Schnittstellen» die Elemente verstanden, die es der Software ermögli-chen, Informationen mit der Umgebung auszutauschen. Dies können grafische Oberflächen, Befehlszeilen oder technische Schnittstellen (API) sein.

Eine Konfigurationsliste ist eine einheitliche Zusammenstellung von Konfigurationselementen, die den Zustand der Software und ihrer Dokumentation zu einem bestimmten Zeitpunkt darstellt. Idealerweise ermöglicht sie, eine vergangene Version der Software zu rekonstruieren.

Ziff. 24.3: Es muss eine korrekte Bereitstellung des Systems aus dem Quellcode bis zu seiner Installation in der Produktion (Build- und Deployment) sichergestellt werden. Dazu ist vom Systemanbieter eine be-währte und nachvollziehbare Build- und Deployment-Methode einzusetzen, mit der die folgenden Ziele erreicht werden:

Dazu wurden neue Anforderungen eingeführt. Sie basieren auf den Richtlinien des US-Bundesstaates Colorado für die Verwendung elektronischer Wahlsysteme,10 der von GitHub herausgegebenen Trusted-Build-Dokumentation11 und der Reproducible-Builds-Dokumentation12 des gleichnamigen Projekts.

Ziff. 24.4: Als Benutzende werden alle Personen verstanden, die mit der Software in irgendeiner Weise in Berührung kommen. Dazu können Mitarbeitende des Kantons, Stimmberechtigte, Testerinnen und Tester und letztlich alle gehören, die am System interessiert sind. Damit der Entwickler Mängelberichte angemessen behandeln und in diesem Bereich effektiv kommunizieren kann, ist es wichtig, dass die Benutzenden wissen, wie sie Mängelberichte an den Entwickler über-mitteln können und wie sie sich beim Entwickler registrieren können, um entsprechende Informationen zu erhalten.

Eine möglichst umfangreiche Sammlung von vermuteten Schwachstellen und deren systematische Be-handlung soll zur Verbesserung der Systemsicherheit beitragen. Diese Anforderungen sind komplementär zur Offenlegung des Quellcodes (Art. 11-12 E-VEleS) und zum Bug-Bounty-Programm (Art. 13 E-VEleS).

melchl commented 3 years ago

24.1.19: Hier fehlt die Commit-History. Ausserdem ist mir nicht klar, was der letzte Abschnitt bedeutet, wenn mehrere Entwickler kollaborieren.