9.5 KiB
Zustandsmodell
Vor jeder Arbeit an Badges, Status, Filtern oder Zeilendarstellung lesen.
Der haeufigste Fehler in Security-Oberflaechen: mehrere fachlich verschiedene Zustaende werden in ein Badge oder eine Farbe gepresst. In ASSESSOR sind sie getrennt und formal unterscheidbar.
Inhaltsverzeichnis
- Die sieben Dimensionen
- Formfamilien
- Severity
- IOE
- Outcome
- Confidence
- Review State und Action State
- Data Completeness
- Bookmark, Auswahl, Fokus
- Kombination an einem Objekt
- Farbrollenmatrix
1. Die sieben Dimensionen
| Dimension | Fachliche Frage | Wertebereich |
|---|---|---|
| Severity | Wie schwer waere die Ausnutzung? | critical, high, medium, low, info, unknown |
| IOE | Wurde der problematische Zustand festgestellt? | gefunden, nicht gefunden |
| Outcome | Was meldet das Quellwerkzeug? | pass, fail, warning, not_run, not_applicable, execution_error |
| Confidence | Wie belastbar ist die Aussage? | hoch, mittel, niedrig |
| Review State | Wie wurde fachlich bewertet? | unreviewed, in review, bestaetigt, verworfen, Risiko akzeptiert |
| Action State | Welche Massnahme laeuft? | offen, in Arbeit, blockiert, erledigt |
| Data Completeness | Sind alle Pflichtfelder vorhanden? | vollstaendig, unvollstaendig |
Severity und Outcome sind nicht dasselbe. Ein Finding mit severity=critical und outcome=pass
ist eine bestandene Pruefung eines kritischen Kriteriums. Das darf nie wie ein kritischer Befund aussehen.
Entscheidend fuer die Priorisierung ist die Kombination IOE gefunden plus Severity.
Der Standardfilter in Work bildet genau das ab.
2. Formfamilien
Die Form traegt die Bedeutung. Farbe ist immer nur das zweite Signal.
| Familie | Form | Reserviert fuer |
|---|---|---|
| Severity-Badge | gefuellt, rechteckig, Versalien, 18 px hoch | ausschliesslich Severity |
| Meta-Badge | neutral gefuellt, 1-px-Rahmen, Versalien | IOE, Kategorie, Tool, MITRE, Weight, Score, Confidence |
| Workflow-Chip | Outline, 6-px-Punkt, 20 px hoch | Review State, Action State |
| Outcome-Text | Textfarbe plus Glyph, kein Hintergrund | ausschliesslich Outcome |
| Kante | 3-px-Inset links oder rechts | links Severity, rechts Bookmark |
| Rahmenstil | durchgezogen oder gestrichelt | gestrichelt = unvollstaendig oder Risiko akzeptiert |
Wer eine gefuellte Farbflaeche fuer etwas anderes als Severity verwendet, bricht das System.
3. Severity
Darstellung: .sev[data-sev="..."] plus .sev-edge[data-sev="..."] am umgebenden Objekt.
- Das Badge zeigt immer den Textwert in Versalien. Nie nur ein Farbpunkt.
- Die linke Kante wiederholt die Information ohne Farbabhaengigkeit fuer die Zeilenposition.
- In Tabellen steht Severity in einer eigenen Spalte als Badge, nicht als Klartext.
unknownwird als eigenes Badge dargestellt, nie weggelassen und nie zuinfoumgedeutet.- Sortierreihenfolge immer: critical, high, medium, low, info, unknown.
Der bestehende sechseckige Severity-Glyph darf als Signaturelement erhalten bleiben. Er ist 12 px gross, uebernimmt die Severity-Farbe und ersetzt weder Badge noch Kante.
4. IOE
IOE FOUND ist ein neutrales Meta-Badge, kein Severity-Badge. Es bekommt keine Signalfarbe,
weil die Signalfarbe bereits von der Severity belegt ist.
Ist kein IOE gefunden, erscheint kein Badge. Ein Badge IOE NOT FOUND erzeugt visuelles Rauschen
in einer Liste, die zu 73 Prozent aus Nichtbefunden besteht. Die Information kommt ueber den Filter
und ueber Outcome.
5. Outcome
Darstellung ausschliesslich .outcome[data-outcome="..."]: Glyph plus Textfarbe, nie gefuellt.
| Wert | Glyph | Farbrolle |
|---|---|---|
| fail | ● | --outcome-fail |
| pass | ○ | --outcome-pass |
| warning | ◐ | --outcome-warning |
| execution_error | ✕ | --outcome-error |
| not_run | – | --outcome-idle |
| not_applicable | – | --outcome-idle |
pass ist bewusst neutral eingefaerbt, nicht gruen. Gruen ist der Severity-Stufe low und dem
Action State erledigt vorbehalten. Ein bestandener Test ist der Normalfall und braucht keine
Erfolgsfarbe. Das entfernt die haeufigste Farbkollision in Scannerdaten.
not_run und not_applicable teilen sich Glyph und Farbe, unterscheiden sich aber im Text.
6. Confidence
Meta-Badge mit Text: CONF: HOCH, CONF: MITTEL, CONF: NIEDRIG.
Bei niedrig erhaelt das Objekt zusaetzlich einen gestrichelten Rahmen. Ein Finding mit niedriger
Confidence darf nie so aussehen wie ein belastbarer Befund derselben Severity. Das ist eine
Audit-Anforderung, keine Stilfrage.
7. Review State und Action State
Beide als .chip[data-state="..."]. Sie stehen nebeneinander und tragen jeweils ein Praefix,
damit die Dimension eindeutig ist.
| Chip | data-state | Punktfarbe |
|---|---|---|
REVIEW: OFFEN |
(Standard) | --state-open |
REVIEW: IN PRUEFUNG |
progress | --state-progress |
REVIEW: BESTAETIGT |
done | --state-done |
REVIEW: VERWORFEN |
accepted | --state-accepted, gestrichelt |
RISIKO AKZEPTIERT |
accepted | --state-accepted, gestrichelt |
AKTION: OFFEN |
(Standard) | --state-open |
AKTION: IN ARBEIT |
progress | --state-progress |
AKTION: BLOCKIERT |
blocked | --state-blocked |
AKTION: ERLEDIGT |
done | --state-done |
erledigt darf die Severity nicht optisch entwerten. Das Severity-Badge bleibt unveraendert,
das Objekt wird nicht ausgegraut. Ein erledigtes kritisches Finding bleibt kritisch.
8. Data Completeness
Unvollstaendige Datensaetze erhalten .is-incomplete (gestrichelter Rahmen) plus im Inspector
eine Liste der fehlenden Pflichtfelder. Keine Ausblendung, keine stille Vorbelegung.
Fuer Auditierbarkeit muss sichtbar sein, dass Daten fehlen.
9. Bookmark, Auswahl, Fokus
Drei verschiedene Mechanismen mit drei verschiedenen Farbrollen und drei verschiedenen Formen. Sie treten gleichzeitig auf und duerfen sich nie gegenseitig verdecken.
| Zustand | Traeger | Farbrolle | Form |
|---|---|---|---|
| Bookmark | Nutzermarkierung, persistent | --state-bookmark |
gefuelltes Icon plus rechte 3-px-Kante |
| Auswahl | aktuelles Arbeitsobjekt | --selection-border |
2-px-Rahmen plus --surface-selected |
| Fokus | Tastaturposition | --focus-ring |
2-px-Outline mit Offset |
Die Fokusfarbe ist bewusst ein eigenstaendiges Cyan beziehungsweise Blau und mit keiner Severity-, Akzent- oder Bandfarbe verwechselbar.
10. Kombination an einem Objekt
Ein kritisches, mit Bookmark markiertes, ausgewaehltes und fokussiertes Finding zeigt gleichzeitig:
┌ 3 px Severity-Kante links (critical)
│ ┌ 2 px Auswahlrahmen, Flaeche --surface-selected
│ │ ┌ 2 px Fokus-Outline aussen
│ │ │
│ │ │ ⬢ Permission changes on AdminSDHolder object ⚑│
│ │ │ [CRITICAL] [IOE FOUND] [AD DELEGATION] [WEIGHT: 10] │
│ │ │ ● fail REVIEW: OFFEN AKTION: OFFEN │
│ │ │ 3 px Bookmark-Kante┘
Reihenfolge der Badges ist fest und ansichtsuebergreifend identisch:
- Severity
- IOE
- Kategorie
- Tool beziehungsweise Quelle
- Weight
- Score
- MITRE-Zuordnungen
- Confidence
Passt die Reihe nicht in die verfuegbare Breite, wird von hinten abgeschnitten und mit +n
zusammengefasst. Nie umbrechen, nie neu sortieren, nie Severity abschneiden.
11. Farbrollenmatrix
Eine Farbe hat genau eine Zustaendigkeit.
| Rolle | Token | Ausschliesslich fuer |
|---|---|---|
| Akzent Violett | --accent |
Primaeraktion, aktive Ansicht, Auswahl |
| Band Bernstein | --band-surface |
Controls im Command Band |
| Severity | --sev-* |
gefuellte Severity-Badges und -Kanten |
| Outcome | --outcome-* |
Outcome-Text und -Glyph |
| Workflow | --state-open/progress/done/blocked/accepted |
Punkte in Workflow-Chips |
| Bookmark Teal | --state-bookmark |
Bookmark-Icon und -Kante |
| Fokus | --focus-ring |
Tastaturfokus |
| Systemstatus | --state-online, --state-offline |
Verbindungsanzeige in der Status Bar |
| Datenvisualisierung | --viz-1 bis --viz-6 |
kategoriale Diagrammserien |
| Struktur | --surface-*, --border-*, --text-* |
Chrome und Flaechen |
Eine Farbe darf niemals gleichzeitig Auswahl, Severity, Erfolg und Markenakzent ausdruecken. Genau dieser Fehler erzeugt den Eindruck einer uneinheitlichen Applikation.