Lösung des Patching-Paradoxons: Wie wichtig ist es, eine Patchingrichtlinie in einer SAP-Umgebung durchzusetzen?
Eine SAP-Umgebung kann ohne gepatchte und aktualisierte SAP-Systeme nicht sicher betrieben werden. Schwachstellen stellen ein erhebliches Risiko für den Betrieb eines Unternehmens dar, und Patches sind entscheidend, um die Systemsicherheit und -stabilität aufrechtzuerhalten, daher hat das Patchen und Aktualisieren von Software immer oberste Priorität. Die Realität beim Patchen komplexer Systeme wie SAP unterscheidet sich jedoch von der beim Patchen weniger komplexer Software, die nicht geschäftskritisch ist. Das Patchen der SAP-Systeme ist ein umfangreicher und aufwändiger Vorgang und kann zu Serviceausfällen führen, die sich direkt auf das Geschäft eines Unternehmens auswirken, was zu einem Paradoxon führt.
Nachdem wir das Paradoxon definiert und verstanden haben, warum es in der SAP-Plattform auftritt, sehen wir uns an, wie automatics mit dem Modul „SAP PATCHMANAGEMENT“ dazu beitragen kann, diese Herausforderung zu meistern, indem Sie kontinuierliche Systemaktualisierungen in Form von Patchzyklen definieren, implementieren und somit Unterbrechungen minimieren und einen effizienteren Ansatz zur Wartung der SAP-Umgebung ermöglichen.
Das Paradoxon des Patchens: Je kritischer und vernetzter ein System ist, desto unwahrscheinlicher ist es, dass es gepatcht wird.
Dieses Dilemma des Patchens stellt eine der größten Sicherheitsherausforderungen für SAP-Umgebungen dar. Die Auswirkungen spiegeln sich in diversen Cybersecurity-Berichten wider, in denen die Mehrheit der SAP-Kunden ungepachte Systeme als eine große Sicherheitsbedrohung betrachtet und das "auf dem neuesten Stand bleiben" als einer der größten Herausforderung in der Cybersicherheit angesehen wird. Dies liegt an der Komplexität des Patchens und Aktualisierens von komplexen Anwendungen, insbesondere für geschäftskritische Systeme wie SAP S/4HANA, bei denen ein einfacher Neustart einer großen SAP HANA-Datenbank Stunden dauern kann. Wenn etwas schief geht, kann dies zu erheblichen Ausfallzeiten führen. Selbst wenn der Patch wie geplant verläuft, erschwert die Koordination eines Wartungsfensters mit mehreren Teams und Abteilungen den Prozess weiter.
Auf der anderen Seite ist es keine Option, Systeme über einen längeren Zeitraum ungepatcht zu lassen. Ein ungepachtes System ist anfällig für Cyberangriffe und kann Fehler aufweisen, die zu Systeminstabilität und Datenverlust führen können.
Das Paradoxon des Patchens verdeutlicht die Notwendigkeit einer Patching-Richtlinie mit einem einfacheren Patching-Prozess, der keinen Service-Ausfall oder nur ein sehr kurzes Wartungsfenster erfordert.
Die Notwendigkeit der Durchsetzung von Sicherheits-Patching-Richtlinien
Unternehmen sollten eine Patching-Richtlinie definieren und umsetzen, die festlegt, wann Patches angewendet werden sollen, welche Faktoren zu berücksichtigen sind und welche Zeitrahmen für das Patching gelten, sobald eine Schwachstelle entdeckt wird. Diese Richtlinie sollte sowohl kritische Schwachstellen-Patches als auch regelmäßig geplante Updates abdecken. Kritische Patches werden angewendet, wenn eine kritische Schwachstelle oder ein Systemfehler entdeckt wird und ein sofortiger Patch erforderlich ist, anstatt auf ein Wartungsfenster zu warten.
Dies erfordert einen klaren Arbeitsablauf und eine Synchronisation aller Teams im Unternehmen, wodurch die Durchsetzung dieser Richtlinien in einer SAP-Umgebung nicht allein in der Verantwortung der SAP-Basis liegt. Im Falle eines Wartungsfensters bzw. Serviceausfalls ist es notwendig, dass alle Abteilungen eng zusammenarbeiten, von den Endbenutzern, über die SAP-Basis bis hin zu den Infrastrukturteams. Jedes Team hat seine eigenen Prioritäten, sodass das Patchen eines Systems kein einfacher oder schneller Prozess ist, der möglicherweise mehrere Systemneustarts erfordert, sowie übergreifende Aufgaben wie das Testen und das Staging von Patches umfasst.
Hier kommt die Automatisierung ins Spiel. Das automatisierte Patch Management ermöglicht es Kunden, kritische Schwachstellen und größere Fehler in ihren SAP-Anwendungen ohne bzw. mit nur geringer Ausfallzeiten zu patchen. Dabei werden im Folgenden drei unterschiedliche SAP Komponenten betrachtet:
SAP Kernel
Host Agent
Diagnostic Agent inkl. JVM
Wie läuft so ein automatisierter Patch-Prozess im Detail ab?
Zuerst wird von SAP Basis Admin oder vom Security-Team im SAP Support Portal geprüft, ob es neue Patches zur Behebung von Schwachstellen und größere Fehler and den SAP-Komponenten gibt.
Diese neuen Patch Files (Beispiele: dw_, dw_utils, sapftp, sapwebgui, sapcpe, sapexe, …) werden einmalig zentral heruntergeladen und über ein Fileshare für die Verteilung bereitgestellt.
Nun können Sie mit der Automatisierungslösung das Kernelpatchen über beliebige viele Systeme in der gleichen Systemausprägung (DB, OS, …) durchführen.
Dabei werden folgende Schritte berücksichtigt und umgesetzt:
Prüfung, ob die ausgewählten Systeme für den Patch-Prozess erreichbar sind
Prüfung, ob das Fileshare im Zugriff ist
Extrahieren der bereitgestellten .SAR Files und auslesen der Informationen aus den Manifestfiles (*.mf)
Abgleich der bereitgestellten Files mit der aktuellen Systemkonfiguration zum Ausschluss von möglichen Fehlkonfigurationen, wie z.B. falsches OS, Compilat, Version:
Task SAP Kernel Validation for system RD1 started on aut-rd1-app1
Using the mounted share /mnt/sapinst/kernel_patch_753_1200_lnx for SAP kernel patches
Validating SAP kernel change for SID RD1 as rd1adm
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/SAPEXE_1200-80002573.SAR (version 2.01)
SAPCAR: 5 file(s) extracted
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/dw_1213-80002573.sar (version 2.01)
SAPCAR: 1 file(s) extracted
Validate kernel directories: /usr/sap/RD1/SYS/exe/uc/linuxx86_64
Validate manifests: /tmp/sap_kernel_change-TS0u164MRz/extract/patches.mf /tmp/sap_kernel_change-TS0u164MRz/extract/sapcrypto.mf /tmp/sap_kernel_change-TS0u164MRz/extract/sapmanifestj2ee.mf /tmp/sap_kernel_change-TS0u164MRz/extract/sapmanifest.mf /tmp/sap_kernel_change-TS0u164MRz/extract/webdispatchermanifest.mf
Kernel validation (RD1): (/extract/patches.mf)
[Permission] check successful: write permissions for user rd1adm in /usr/sap/RD1/SYS/exe/uc/linuxx86_64/patches.mf
[Production OS] check successful:
Current Production OS: linuxx86_64
Provided Production OS: linuxx86_64
[Compiled for] check successful:
Current 'compiled for': 64BIT
Provided 'compiled for': 64BIT
[Compilation mode] check successful:
Current 'compilation mode': UNICODE
Provided 'compilation mode': UNICODE
Current SAP kernel version: 753.1127
Provided SAP kernel version: 753.1200
Kernel validation (RD1): (/extract/sapcrypto.mf)
[Permission] check successful: write permissions for user rd1adm in /usr/sap/RD1/SYS/exe/uc/linuxx86_64/sapcrypto.mf
[Compiled for] check successful:
Current 'compiled for': 64BIT
Provided 'compiled for': 64BIT
Current version: 8.5.49
Provided version: 8.5.51
Kernel validation (RD1): (/extract/sapmanifestj2ee.mf)
[Permission] check successful: write permissions for user rd1adm in /usr/sap/RD1/SYS/exe/uc/linuxx86_64/sapmanifestj2ee.mf
[Production OS] check successful:
Current Production OS: linuxx86_64
Provided Production OS: linuxx86_64
[Compiled for] check successful:
Current 'compiled for': 64BIT
Provided 'compiled for': 64BIT
[Compilation mode] check successful:
Current 'compilation mode': UNICODE
Provided 'compilation mode': UNICODE
Warning: provided SAP kernel is equal or older than the currently installed one but downgrade is allowed
Current SAP kernel version: 753.1200
Provided SAP kernel version: 753.1200
Kernel validation (RD1): (/extract/webdispatchermanifest.mf)
[Permission] check successful: write permissions for user rd1adm in /usr/sap/RD1/SYS/exe/uc/linuxx86_64/webdispatchermanifest.mf
[Compiled for] check successful:
Current 'compiled for': 64BIT
Provided 'compiled for': 64BIT
[Compilation mode] check successful:
Current 'compilation mode': UNICODE
Provided 'compilation mode': UNICODE
Kernel validation successful
Task SAP Kernel Validation for system RD1 finished
Prüfung des verfügbaren Speicherplatzes
Durchführung eines Backups der ursprünglichen Kernel-Files vor dem Kernel-Change
Extrahieren der SAR-Files in die korrekten Kernel-Verzeichnisse, abhängig von den betroffenen SAP-Komponenten (Webdispatcher, AS, ASCS, Host Agent, …)
Durchführung des icmbnd und des root.sh
Bereinigung von alten Backups
Performing SAP kernel change for SID RD1 as rd1adm
Creating SAP kernel backup for SID RD1
Creating backup /usr/sap/RD1/SYS/exe/uc/linuxx86_64_6007916_backup.tar.gz of SAP kernel for SAP system RD1: /usr/sap/RD1/SYS/exe/uc/linuxx86_64
Backup created successfully: /usr/sap/RD1/SYS/exe/uc/linuxx86_64_6007916_backup.tar.gz
Extracting /mnt/sapinst/kernel_patch_753_1200_lnx/SAPEXE_1200-80002573.SAR into /usr/sap/RD1/SYS/exe/uc/linuxx86_64 as rd1adm
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/SAPEXE_1200-80002573.SAR (version 2.01)
SAPCAR: 743 file(s) extracted
Extracting /mnt/sapinst/kernel_patch_753_1200_lnx/dw_1213-80002573.sar into /usr/sap/RD1/SYS/exe/uc/linuxx86_64 as rd1adm
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/dw_1213-80002573.sar (version 2.01)
SAPCAR: 616 file(s) extracted
Extracting /mnt/sapinst/kernel_patch_753_1200_lnx/R3trans_1210-80002573.SAR into /usr/sap/RD1/SYS/exe/uc/linuxx86_64 as rd1adm
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/R3trans_1210-80002573.SAR (version 2.01)
SAPCAR: 2 file(s) extracted
Extracting /mnt/sapinst/kernel_patch_753_1200_lnx/tp_1127-80002573.sar into /usr/sap/RD1/SYS/exe/uc/linuxx86_64 as rd1adm
SAPCAR: processing archive /mnt/sapinst/kernel_patch_753_1200_lnx/tp_1127-80002573.sar (version 2.01)
SAPCAR: 2 file(s) extracted
Replacing icmbnd in /usr/sap/RD1/SYS/exe/uc/linuxx86_64
Fixing kernel permissions for /usr/sap/RD1/SYS/exe/uc/linuxx86_64
Preparing icmbnd ...
Set user ID bit on /usr/sap/RD1/D00/exe/sapuxuserchk
Set user ID bit on /usr/sap/RD1/ASCS01/exe/sapuxuserchk
done
Remove old backup /usr/sap/RD1/SYS/exe/uc/linuxx86_64_5739655_backup.tar.gz
Remove old marker-file /usr/sap/RD1/SYS/exe/uc/linuxx86_64/automatics_5739655.kernelpatch
Stoppen und Starten der SAP Anwendungs-Komponenten, für die Aktivierung der neuen Kernel-Files
Der Prozess des Kernel Patchen kann selbstverständlich auch in Form einer Zero-Downtime Wartung erfolgen, dem sogenannten Rolling Kernel Patch: https://help.sap.com/docs/SAP_NETWEAVER_AS_ABAP_FOR_SOH_740/1ba3197c1aa7489882770103e3a610dc/cf27b86ddc314f2c9ab6ee225c063a80.html?version=7.40.18&locale=en-US
Im Falle des Diagnostic Agent JVM Updates erfolgt weiters noch eine Neu-Registrierung der Diagnostic Agents im Solution Manager
Wir möchten anhand dieser Beispiele zeigen, dass das Patch-Management von SAP-Anwendungskomponenten sehr gut standardisiert und somit automatisiert werden kann. Nutzen sie die Automatisierung, um ihre Betriebsprozesse zu vereinfachen und gleichzeitig die System-Sicherheit deutlich zu verbessen.
Comments