Konfiguration der Sicherheitsereignisprotokollierung

Um eine kontinuierliche Überwachung Ihrer WinCC OA Umgebung mit externen Tools (z.B. What is a SIEM Tool?) zu ermöglichen, kann innerhalb von WinCC OAeine spezifische Protokollierung von sicherheitsrelevanten Ereignissen aktiviert werden.

Aktivieren der Externen Fehlerbehandlung

externErrHdl

Mit Hilfe des Config-Eintrags [general] externErrHdl kann das Plug-in zur externen Fehlerbehandlung konfiguriert werden. Für die spezifische Handhabung von Sicherheitszeugnissen stehen die Plug-ins SE_File sowie SE_Syslogzur Verfügung. Diese Plug-ins schreiben die Meldungen der Sicherheitsereignisse wahlweise in eine Datei oder in den Fehlerlog des Betriebssystems.

Dieser Config-Eintrag muss gesetzt werden um die externe Behandlung von Sicherheitszeugnissen zu ermöglichen.

Tipp: Mittels des API Manager können auch eigene Plugins erstellt werden, mittels welcher eine anlagenspezifische Lösung implementiert werden kann.
[general]
externErrHdl = "SE_Syslog"            

Panel für Sicherheitsereignisse

Das Konfigurationspanel für Sicherheitsereignisse, mit dem der Benutzer festlegen kann, welche Sicherheitsereignisse in das Systemprotokoll geschrieben werden sollen.

Die Sicherheitsereignisse befindet sich innerhalb von Systemmanagement > Diagnostik > Security Events

Sec. Events

In der Sec. Events Registerkarte kann der Benutzer festlegen, welche Ereignisse an das Systemprotokoll gesendet werden sollen. Standardmäßig werden alle verfügbaren Ereignisse in das Systemprotokoll geschrieben, aber wenn Sie die entsprechende Checkbox deaktivieren, können Sie die spezifische Protokollmeldung nicht einbeziehen. Diese werden dann nur in das WinCC OA log geschrieben.

In diesem Bereich werden sowohl die IDs als auch die Namen der Ereignisse angezeigt. Weitere Details zu jedem Ereignis finden Sie in der Security Events in WinCC OA Liste.

Log Handler

Durch Aktivieren des externen Error Handlers können nicht nur die speziellen Sicherheitsereignisse, sondern alle WinCC OA Logmeldungen in das externe Log geschrieben werden, siehe Konfiguration der Sicherheitsereignisprotokollierung

SecurityEvents_initList.json

Die Datei SecurityEvents_initList.json ist eine JSON-Datei, die sicherheitsbezogene Ereignismeldungen enthält, die von WinCC OA generiert wurden und derzeit zur Beobachtung aktiviert sind.

Die Datei befindet sich im Verzeichnis . \data\ContinuousMonitoring Unterordner der WinCC OA Installation. Eine abgeleitete Version dieser Datei kann sich im Projektordner befinden und die projektspezifische Konfiguration von Sicherheitsereignissen enthalten.

Diese Dateien sind eine Ressource für die Konfiguration einer Schnittstelle zu einem SIEM-Tool zur effektiven Überwachung von WinCC OA-bezogenen Meldungen. Das SIEM-Tool muss so konfiguriert werden, dass es Sicherheitsereignisse entsprechend den projektspezifischen Anforderungen überwacht und darauf reagiert.

SecurityEvents_initList.json

{
  "GlobalSettings":{"Severity": "None"},
  "SecurityEvents":[
  {
    "Name": "Start Manager",
    "ID": "SE_MANAGER_START",
    "EventID": "1",
    "SiemensID": "401",
    "SecurityLog": "TRUE"
  },
  {
    "Name": "Stop Manager",
    "ID": "SE_MANAGER_STOP",
    "EventID": "2",
    "SiemensID": "402",
    "SecurityLog": "TRUE"
  },
...
}]

Benutzerdefinierte Sicherheitsereignisse

Um projektspezifische neue Sicherheitsereignisse hinzuzufügen, kann die SecurityEvents_initList.json mit projektspezifischen Ereignissen erweitert werden. Hierfür muss eine neue SecurityEvents_initList.json innerhalb des \data\ContinuousMonitoring-Verzeichnisses des Projektes erstellt werden, in dem, ähnlich wie in der Datei im Versionsverzeichnis, die benutzerdefinierten Ereignisse hinzugefügt werden können.

Benutzerdefiniertes Sicherheitsereignis

{
  "GlobalSettings":{"Severity": "None"},
  "SecurityEvents":[
  {
   "Name": "My Custom Security Event",
   "ID": "SE_CUSTOM_EVENT",
   "EventID": "99",
   "SiemensID": "5000",
   "SecurityLog": "TRUE"
  }]

Sicherheitsereignisse innerhalb des Codes

Die folgenden Beispiele zeigen, wie man ein Sicherheitsereignis aus dem Code heraus richtig auslöst.

Die notwendigen Funktionen sind sowohl für Control als auch für die C++-API verfügbar.

Control

errClass err = makeError("pmon" , PRIO_INFO, ERR_SYSTEM, 35);
                
securityEvent(err);

C++-API

const ErrClass err(ErrClass::PRIO_INFO, ErrClass::ERR_SYSTEM; ErrClass::MANAGER_STOP);
                
ErrHdl::securityEvent(err, true);