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_Syslog
zur 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.
[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
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);