From 9177a6e6244d732036a030f17191fa09cdd5e4fa Mon Sep 17 00:00:00 2001 From: 2211275 <2211275@stud.hs-mannheim.de> Date: Tue, 9 Jun 2026 14:27:54 +0200 Subject: [PATCH] application and os security --- DMS_paper15_gitlab.tex | 10 +++++++--- literatur/dms.bib | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/DMS_paper15_gitlab.tex b/DMS_paper15_gitlab.tex index 42f2261..74c921b 100644 --- a/DMS_paper15_gitlab.tex +++ b/DMS_paper15_gitlab.tex @@ -412,9 +412,10 @@ stages: \item Konfigurationseinstellungen \item Betriebssystemeinstellungen \end{itemize} - Innerhalb der Anwendungseinstellungen können Push-Regeln festgelegt werden, sodass unverifizierte Nutzer keinen Code hochladen können. Es kann sichergestellt werden, dass geheime Dateien nicht versehentlich gepusht werden. Ebenso sollen projektspezifische Keys/Schlüssel für Deployment-Prozesse eingerichtet werden. Die Sichtbarkeit von Gruppen, Snippets und Projekten soll als \textit{privat} gesetzt werden. Benutzer können gezwungen werden komplexere Passwörter für ihren GitLab Account zu wählen. Eine 2-Faktor Authentifizierung kann eingerichtet werden. Die Kommunikation mit aussenstehenden Systemen kann konkret festgelegt werden, indem externe Systeme zuerst anhand ihrer IP-Adresse für ausgehende anfragen in GitLab eingetragen werden müssen. Für die GitLab-Instanz kann ein Rate-Limit, mit Ausnahmen für bestimmte Nutzer, eingestellt werden \cite{gitlab_gitlab_nodate}.\\\\ - Für \acs{CI}/\acs{CD}-Pipelines besteht die Möglichkeit sensitive Daten wie bspw. Passwörter oder Tokens in Form von \textit{Secrets} zu speichern. \textit{Secrets} werden durch externe Dienstleister gespeichert. Neben \textit{Secrets} besteht die weniger empfohlene Variante Daten in Form von \textit{CI/CD Variablen} zu speichern. Eine solche Variable kann maskiert werden und wird damit in Logs durch einen definierten Platzhalter ersetzt. Zusätzlich zu einer Maskierung erlaubt GitLab \textit{CI/CD Variablen} verstecken. Die Variable wird nicht mehr auf der Einstellungsseite für \acs{CI}/\acs{CD} angezeigt. Ebenso kann eine Variable geschützt werden, sodass nur auf geschützten Branches Zugriff besteht \cite{gitlab_gitlab_nodate}.\\\\ - + Innerhalb der Anwendungseinstellungen können Push-Regeln festgelegt werden, sodass unverifizierte Nutzer keinen Code hochladen können. Es kann sichergestellt werden, dass geheime Dateien nicht versehentlich gepusht werden. Ebenso sollen projektspezifische Keys/Schlüssel für Deployment-Prozesse eingerichtet werden. Die Sichtbarkeit von Gruppen, Snippets und Projekten soll als \textit{privat} gesetzt werden. Benutzer können gezwungen werden komplexere Passwörter für ihren GitLab Account zu wählen. Eine 2-Faktor Authentifizierung kann eingerichtet werden. Die Kommunikation mit aussenstehenden Systemen kann konkret festgelegt werden, indem externe Systeme zuerst anhand ihrer IP-Adresse für ausgehende anfragen in GitLab eingetragen werden müssen. Für die GitLab-Instanz kann ein Rate-Limit, mit Ausnahmen für bestimmte Nutzer, eingestellt werden \cite{gitlab_gitlab_nodate}.\\ + Für \acs{CI}/\acs{CD}-Pipelines besteht die Möglichkeit sensitive Daten wie bspw. Passwörter oder Tokens in Form von \textit{Secrets} zu speichern. \textit{Secrets} werden durch externe Dienstleister gespeichert. Neben \textit{Secrets} besteht die weniger empfohlene Variante Daten in Form von \textit{CI/CD Variablen} zu speichern. Eine solche Variable kann maskiert werden und wird damit in Logs durch einen definierten Platzhalter ersetzt. Zusätzlich zu einer Maskierung erlaubt GitLab \textit{CI/CD Variablen} verstecken. Die Variable wird nicht mehr auf der Einstellungsseite für \acs{CI}/\acs{CD} angezeigt. Ebenso kann eine Variable geschützt werden, sodass nur auf geschützten Branches Zugriff besteht \cite{gitlab_gitlab_nodate}.\\ + Eine GitLab-Instanz kann konfiguriert werden, sodass Nutzer per \ac{SSH} oder über \ac{HTTPS} zugreifen können \cite{gitlab_gitlab_nodate}. Ein Zugang kann auf eine der beiden Protokolle beschränkt werden. \ac{HTTPS} ist meist zugänglicher für Nutzer, da wenig Konfiguration vorgenommen werden muss. Allerdings wird die Authentifizierung per Nutzername und \textit{Access Token} oder Passwort vorgenommen, welche häufig erneut abgefragt werden. \ac{SSH} bietet eine höhere Sicherheit. Es ist sichergestellt, dass keine Daten während der Übertragung unbemerkt verändert werden. Die Konfiguration ist komplexer. \ac{SSH} basiert auf einer \textit{Public-Key}-Infrastruktur, wobei der öffentliche Schlüssel auf GitLab zuvor hinterlegt werden muss \cite{marijanSSHVsHTTPS2025}. GitLab kann ebenso E-Mails versenden und empfangen. Versendete E-mails können mit \ac{S/MIME} versendet signiert werden, um deren Legitimität zu sichern \cite{gitlab_gitlab_nodate}. \ac{S/MIME} ist ein Verschlüsselungsstandard für E-Mails.\\ + Die GitLab-Dokumentation bietet zusätzlich Konfigurationen für das unterliegende Betriebssystem, wie \ac{SSH}-Konfiguration, Firewall Einstellungen und Änderungen am Kernel \cite{gitlab_gitlab_nodate}. \subsection{Kompatibilität} @@ -538,6 +539,9 @@ stages: \acro{NIST}{National Institute of Standards and Technology} \acro{ISO}{Internationale Organisation für Normung} \acro{IEC}{International Electrotechnical Commission} + \acro{HTTPS}{Hypertext Transfer Protocol Secure} + \acro{SSH}{Secure Shell} + \acro{S/MIME}{Secure/Multipurpose Internet Mail Extensions} \end{acronym} \printbibliography diff --git a/literatur/dms.bib b/literatur/dms.bib index 496eb95..4ee4bf4 100644 --- a/literatur/dms.bib +++ b/literatur/dms.bib @@ -6,6 +6,16 @@ file = {C:\Users\Roman\Zotero\storage\29SDLBQ5\2025.html} } +@misc{AdvantagesSSHGit, + title = {Advantages of {{SSH}} for {{Git}} Operations}, + journal = {GitLab, Inc.}, + urldate = {2026-06-09}, + abstract = {Advantages of SSH for Git operationsOverviewGitLab supports performing Git operations using both HTTPS and SSH. There are many advantages of using SSH instead of HTTPS, particularly in relation to ...}, + howpublished = {https://support.gitlab.com/hc/en-us/articles/21476152234524-Advantages-of-SSH-for-Git-operations}, + langid = {american}, + file = {C:\Users\Roman\Zotero\storage\8YRVJ3L5\21476152234524-Advantages-of-SSH-for-Git-operations.html} +} + @article{arefeen_continuous_2019, title = {Continuous {{Integration Using Gitlab}}}, author = {Arefeen, Mohammed Shamsul and Schiller, Michael}, @@ -253,6 +263,19 @@ isbn = {978-3-96009-199-8} } +@misc{marijanSSHVsHTTPS2025, + title = {{{SSH}} vs. {{HTTPS}} for {{Git}}: {{Which One Should You Use}}?}, + shorttitle = {{{SSH}} vs. {{HTTPS}} for {{Git}}}, + author = {Marijan, Bosko}, + year = 2025, + month = dec, + journal = {Knowledge Base by phoenixNAP}, + urldate = {2026-06-09}, + abstract = {SSH and HTTPS are network protocols that secure the connection to a remote Git repository. Learn the difference and choose the one for you.}, + langid = {american}, + file = {C:\Users\Roman\Zotero\storage\7U225IS9\git-ssh-vs-https.html} +} + @book{newman_building_2021, title = {Building Microservices: {{Designing}} Fine-Grained Systems}, shorttitle = {Building Microservices},