Clean Code : Investigating Data Integrity and Non-Repudiation in the DevOps Platform GitLab

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: 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.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)