application and os security

pull/25/head
Roman Schöne 2026-06-09 14:27:54 +02:00
parent 61a2727495
commit 9177a6e624
2 changed files with 30 additions and 3 deletions

View File

@ -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

View File

@ -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},