Zielgruppe BetriebVersion: GSB10.0GSB Konfiguration
Sicherheitsaspekte bei der GSB Konfiguration
Session-Cookie
In den folgenden Unterkapiteln werden Konfigurationen beschrieben, die die SIcherheit des Session-Cookie erhöhen. Hierzu zählt die Aktivierung des Secure- und HttpOnly-Attributs im Session-Cookie.
Secure-Attribute
Das Secure-Attribute in einem Cookie veranlasst den Browser das Cookie nur über eine https-Verbindung mit zu übertragen.
Websites, die ausschließlich über https ausgeliefert werden, sollten das Secure-Attribut für das Session-Cookie setzen, damit dieses bei der Übertragung über das Internet nicht mitgelesen werden kann.
Voraussetzung für die Aktivierung des Secure-Attributs
Verwendet eine Website sowohl http als auch https um auf verschiedene Bereiche der Site zuzugreifen, dann führt der Protokollwechsel von https auf http dazu dass das SessionCookie nicht mit übertragen wird. In diesem Fall darf das Secure-Attribut des Session-Cookies nicht gesetzt werden.
Die einfachste Möglichkeit einen kompletten Mandanten auf https umzuschalten besteht darin im GSB-Editor im obersten ConfigOrdner (also <MANDANT>/_config
) ein Konfigurationsdokument HttpsLinks
(Dokumenttyp ConfigInt) anzulegen und als Wert 1 zu konfigurieren. Dieses Dokument ist in der Standardlösung bereits vorhanden.
Aktivierung des Secure-Attributs
Die Aktivierung des Secure-Attribute erfolgt nicht im Content des Mandanten, sondern wird über das Deployment des Apache-Websservers konfiguriert. Hierzu wird in den Virtual-Host Definitionen der entsprechenden Websites die Build-Property secure_session_cookies
auf den Wert true gesetzt. Die Property-Files befinden sich im Mandanten-Basisverzeichnisses (bspw. standardlsg_basis) im Ordner config/Apache/VirtualHostsLive
bzw. für die Previewsite im Ordner config/Apache/VirtualHostsPreview
. Nach Anpassung der Build-Properties muss der Apache-Webserver neu deployed werden.
secure_session_cookies=true
Hinweis: |
---|
Das Secure-Attribute sollte nur gesetzt werden wenn sichergestellt ist, dass die komplette Website über https ausgeliefert wird. |
HttpOnly-Attribute
Das HttpOnly-Attribute im Session-Cookie verhindert, dass das betreffende Cookie über Javascript ausgelesen werden kann. Für ein Session-Cookie sollte das Attribut somit gesetzt sein, da dann eine evtl. vorhandene XSS-Lücke nicht genutzt werden kann um das SessionCookie zu stehlen.Das HttpOnliy-Attribute wird standardmäßig gesetzt. Innerhalb eines GSB-Mandanten ist keine Konfiguration erforderlich
Hinweis für Hosting-Plattform-Betreiber
Die Aktivierung dieses Feature wird über die Build-Property cae_session_cookie_http_only des Tomcat-Servers konfiguriert und ist in der zentralen Property Datei des GSB-Kerns (build.properties) bereits aktiviert.
cae_session_cookie_http_only=true
Response Header Konfiguration
Durch Konfiguration geeigneter Response-Header kann das im Browser verwendete Sicherheitsmodell für die Anzeige von Inhalten beeinflusst werden. So lassen sich über den Response-Header bspw. Anweisungen übermitteln, ob eine Seite in ein Frame eingebettet werden darf oder wie Javascripte behandelt werden. Eine Liste sinnvoller HTTP Header Attribute findet sich auf der OWASP-Seite.
Der Response-Header kann innerhalb eines GSB-Mandanten durch das Konfigurationsdokument AdditionalResponseHeaders
(rekursiver ConfigReader, Dokumenttyp ConfigRichtText10) bereichsspezifisch erweitert werden. Die Standardlösung enthält ein mit dem Dokument /standardlsg/_config/AdditionalResponseHeaders
eine entsprechende Default-Konfiguration, die an die individuellen Belange mandantenspezifischer Webauftritte angepasst werden kann.
Content-Security-Policy
Der Content-Security-Policy (CSP) Response-Header wurde von der Mozilla-Foundation mit dem Ziel der Verhinderung von Cross-Site-Scripting-Attacken definiert. Details zum Einsatzzweck, Voraussetzungen an die Website sowie Konfiguration können der Spezifikation entnommen werden. Die folgende Konfiguration ist als exemplarische Konfiguration zur verstehen. Inwiefern ein Mandant von CSP profitieren kann, hängt sehr stark von den verwendeten Javascript-Bibliotheken und der Einbindung der Skripte in die Webseiten ab.
X-Content-Security-Policy: default-src 'self'; img-src 'self' data: ;
Der skizzierte Header akzeptiert Inhalte nur von der eigenen Domain. Für Bilder wird zusätzlich noch die Einbindung über Data-URIs erlaubt.
Die Definition des CSP Response-Headers erfolgt im Content eines Mandanten im bereits angesprochenen Dokument AdditionalResponseHeaders
.
X-Frame-Options
Der HTTP-Header X-Frame-Options definiert, ob eine Seite in einen Frame eingebettet werden darf und soll so einen Schutz gegen Clickjacking-Angriffe ermöglichen.
Eine Website kann durch Setzen des Headers damit unterbinden, dass unsere Seiten in einem Frame (IFrame eingeschlossen) dargestellt werden. Dazu überprüft der Browser, ob auf der eingebundenen Seite der HTTP-Header X-Frame-Options existiert. Für diesen Header gibt es drei mögliche Werte:
- DENY: Seite darf nicht in Frame angezeigt werden.
- SAMEORIGIN: Seite darf nur von Frames auf derselben Domain angezeigt werden
- ALLOW-FROM: Seite darf von spezifizierter Domäne und URL angezeigt werden
Eine Beispieldefinition des Response-Headers im bereits angesprochenen Konfigurationsdokument <MANDANT>/_config/AdditionalResponseHeaders
lautet wie folgt:
X-Frame-Options: SAMEORIGIN
oder
X-Frame-Options: DENY
oder
X-Frame-Options: ALLOW-FROM http://www.universe.com/
Falls der oben angegebene Ordner nicht vorhanden ist, muss er angelegt und durch ein Dokument _foldersettings
vom Typ Konfigurationseinstellungen (Settings)
identifiziert werden.
Technische Dokumentation findet sich unter IETF WebSec XFrame Options.
HTML-Formulare
Die folgende Unterkapitel stellt Security relevante Konfigurationsmöglichkeiten im Umfeld von HTML-Formularen vor.
Formulare automatisch ausfüllen
Die Browser merken sich Formulareingaben und bieten diese bei erneutem Aufruf der Seite/des Formulars dem Nutzer zur automatischen Übernahme in das Formular an. Dieses Feature ist eine "Servicefunktion" des Browsers und unterstützt den Nutzer bei der wiederholten Ausfüllung von Formularen.
In einigen Fällen ist eine Speicherung von Benutzer-/Formulareingaben im Browser aber nicht erwünscht (bspw. wenn es sich hiebei um sensitive Informationen handelt). Durch das HTML-Attribut autocomplete kann die Website dem Browser mitteilen, dass eine Speicherung der Formulardaten nicht durchgeführt werden soll. Informationen zum Attribut autocomplete finden sich bspw. auf der Seite [|Self-Html SELFHTML].
Das Attribut autocomplete wird im GSB auf Ebene des HTML-Formulars, d.h. in Dokumenten vom Typ HTML-Formular (HFForm). Die Property autocomplete steuert, ob das Attribut für das Formular gesetzt und somit eine Autovervollständigung durch den Browser unterdrückt weden soll.