Return to search

Clean Code : Investigating Data Integrity and Non-Repudiation in the DevOps Platform GitLab / Oförvanskad kod : En undersökning av informations- och användarintegritet i DevOps-plattformen GitLab

Recent supply chain attacks on a larger scale in combination with a growing adoption of the set of automated software development and deployment practices commonly referred to as ’DevOps’, made us interested in the security of the underlying infrastructure supporting these practices. If a malicious commit in a piece of software can expose internal systems and networks of all users of said software to vulnerabilities, questions regarding trust and repudiation becomes central, in the platforms themselves as much as in each digitally signed software update version. GitLab is a DevOps platform that offer an open-source (Community Edition, (CE)) of their application, for anyone to use and even modify to better suit their own needs. Anyone who chooses to use GitLab will as a result thereof also choose to put the trust others put in them in the hands of the open-source community around GitLab. Since any vulnerability in GitLab could affect users or organizations that use software developed and shipped with the help of GitLab, we wanted to try finding one for ourselves. We employed well-known techniques from the ethical hacker playbook (threat modeling, risk assessment) in order to identify candidates for attack vectors, and found GitLab’s GraphQL Application Programming Interface (API) to be a great starting point since it not only was but still is under development, but that the body of previous work seemed to suggest inconsistencies in the business logic layer underneath. Our main findings are: at least two instances where we were able to gain unauthorized access to data within our self-hosted GitLab instance. We also found that a new feature could be used for privilege escalation under certain conditions. We were then able to conclude that open source software and a prolific bug bounty program does not guarantee the security of GitLab, in and of themselves. All findings have been reported to GitLab through their bug bounty program. / Under det senaste decenniet har mjukvaruutvecklande organisationer visat ett tilltagande intresse för de metoder för automatiserade utvecklings- och distributionstekniker som vanligen brukar samlas under termen DevOps. Den trenden taget i kombination med det senaste årets större försörjningskedjeattacker (SolarWinds, Microsoft Exchange Server) gjorde att vi började intressera oss för säkerheten kring den infrastruktur som möjliggör dessa metoder. Om en utvecklare med ont uppsåt lyckas få in en ändring i en mjukvara innan den digitalt signeras och distribueras till mjukvarans användare, kan denne lyckas utnyttja svagheten för att få tillgång till eller modifiera de system och nätverk mjukvaran körs på. Frågor om tillit och avsändarintegritet kring vem som står bakom ett kodavsnitt blir i förlängningen därav oerhört viktiga. GitLab är en DevOps-plattform som erbjuds i en version med öppen källkod, vilken alla kan använda och rent av anpassa för sina egna behov. Att använda GitLab innebär dock att man lämpar över den tillit och säkerhet ens användare lagt i ens händer på de som utvecklar plattformen. Eftersom en enskild sårbarhet i GitLab potentiellt kan påverka ett stort antal aktörer som aldrig själva använt GitLab gjorde att vi ville se efter om även vi kunde hitta en sådan sårbarhet. Vi använde oss av välbekanta metoderi etisk hackning-kretsar (hotmodellering) genom vilka vi identifierade GitLabs GraphQL-Application Programming Interface (API) som en potentiellt gynnsam attackvektor. Detta både eftersom API:t fortsatt är under utveckling och att tidigare forskning antytt logiska brister i applikations-lagret. Arbetet ledde fram till ett par fynd. Vi fick åtkomst till otillåten data vid två tillfällen. Med hjälp av en ny funktionalitet kunde vi under vissa omständigheter utöka en användares behörighet. Vi kunde därmed dra slutsatsen att öppen källkod och ett väletablerat bug bounty-program inte i sig är några garantier för säker mjukvara. Samtliga fynd har rapporterats till GitLab via deras bug bounty-program på plattformen HackerOne.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-304382
Date January 2021
CreatorsAugustsson, John, Carlsson, Johan
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2021:421

Page generated in 0.0031 seconds