GitLab.com에서의 암호화폐 채굴 어뷰징을 막는 방법

올해 굉장히 바쁜 시간을 보내다 보니, 정말 오랜만에 블로그 포스팅을 하게 되었습니다. 이번 블로그 주제는 SaaS 버전 GitLab.com에서 2021년 5월 중순부터 시행된 CI 파이프라인 정책입니다. 이 정책은 가상화폐와 관련된 내용입니다. 어떠한 일이 있었고, GitLab은 이를 어떻게 해결했으며, GitLab 사용자에게 어떤 변화가 있는지 알아봅시다.

발단
요 몇 년간 가상화폐는 식지 않는 뜨거운 감자입니다. GitLab과 CI/CD 파이프라인을 무료로 제공하는 다른 업체에서도 가상화폐에 대한 영향을 피해갈 수 없었습니다. 파이프라인을 통해서 가상화폐를 채굴하는 어뷰징 때문인데요, 이렇게 파이프라인을 어뷰징하는 사례가 많아지면서, GitLab의 리소스 및 비용에 대한 피해뿐만 아니라 성능 이슈까지도 만들었습니다. 24시간 Shared Runner를 제공하는 GitLab에게는 중요한 문제였기 때문에 SaaS 이용 고객들을 위한 새로운 정책을 만들 수 밖에 없었습니다.
계정에 신용 카드 정보 입력
우선 가장 먼저 추가된 정책으로는, 파이프라인을 사용하기 위해서는 사용자 계정에 신용카드 정보를 입력해야 합니다. 저도 최근 교육에서 새로운 계정으로 SaaS 버전에서 파이프라인 실습을 진행하려고 하는데, 신용카드 인증 전에는 파이프라인을 사용할 수 없다는 것을 알아서 참 많이 당황했었습니다.
이 정책에 대해서 간단하게 요약 하면 다음과 같습니다.
- 2021년 5월 16일 이후에 생성된 신규 무료 사용자는 신용카드 혹은 직불 카드 정보를 추가해야 합니다.
- 기존 사용자들 중에서도 악용사례가 있을 경우도 추가 정보를 입력해야 합니다.
다음 사용자에게는 영향을 미치지 않습니다.
카드를 제공하면 1달러가 결제되지만 실제로는 청구되지 않습니다.
CI minute quotas
카드 정보 입력 이외에 2021년 7월 17일 이후에 추가된 새로운 네임스페이스에 public 프로젝트는 CI 분 단위 사용 제한 정책이 추가되었습니다. 무료 사용자가 400분이 넘게 파이프라인을 돌린다면 추가 라이센스를 구입해야 사용이 가능합니다.
바뀐 점
다음으로는 위 두 정책으로 인해 SaaS 버전 Gitlab.com을 사용하면서 바뀐 점에 대해서 알아보도록 하겠습니다.
- 파이프라인 시간 할당량을 초과하면 Job 생성이 실패합니다.
- 사용자가 파이프라인 할당량을 초과하면 파이프라인이 실패합니다.
- API를 통한 네임스페이스 생성이 제한됩니다.
- 사용자가 차단되면 파이프라인이 종료됩니다.
- 차단된 사용자가 파이프라인을 소유한 경우 파이프라인이 실행되지 않습니다.
- 삭제된 계정이 실행하는 Job간의 격차를 줄입니다.
- 인증, 페이로드 및 엑세스 제한과 관련된 외부 파이프라인 검증 서비스를 활용합니다.
- 차단된 사용자가 예약된 파이프라인을 실행하지 않도록 합니다.
- 무료 사용자를 위한 파이프라인 시간 할당량에 public 프로젝트를 포함합니다.
사용자 옵션
그렇다면 GitLab 사용자가 선택할 수 있는 선택지는 뭐가 있을까요?
- 신용 카드 정보를 입력하고 shared runner를 무료로 사용
- 개인 러너를 생성하고 shared runner를 비활성화
- 신용 카드 정보를 입력하지 않고 CI/CD 파이프라인과 관련된 기능을 사용 안함
- self-managed GitLab 사용
이
맺음말
이렇게 올해 GitLab SaaS 버전의 파이프라인과 관련된 이슈를 알아봤습니다. 아무래도 GitLab은 대부분 공짜로 제공하는 것들이 많아 이를 어뷰징하는 경우가 많은 것 같습니다. 앞으로는 이러한 어뷰징하는 것들이 줄어들어, 선량한 사용자가 피해를 받지 않고, 좀 더 나은 방향으로 기술이 발전되었으면 하는 바람입니다.
참고 문서
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.
DevOps 도입이 필요하신가요?
인포그랩 전문가가 맞춤 을 도와드립니다.
관련 글

돌아온 GitLab vs GitHub, GitLab과 GitHub을 비교해보자(decision Kit)
오랜만에 돌아온 GitLab과 GitHub 비교하기 시리즈입니다. 이번에 소개할 내용은 GitLab과 GitHub을 선택하는 기준이 될 Descision Kit입니다.
2021년 12월 22일

COVID-19(코로나) 시대에서 원격 근무로 살아남기
COVID-19(코로나)라는 국제적인 이슈가 발생한 지 오랜 시간이 지났습니다. 그로 인해 우리 주위에 근무환경도 많이 변했는데요, 특히 원격 근무에 대한 선호도가 눈에 띄게 증가했습니다. 이전에 원격 근무를 반대했던 기업들도 원격 근무를 도입하는 것에 대한 고민을 시작했습니다. 그렇다면 원격 근무를 잘하는 방법은 무엇이 있고, 어떠한 요건들이 충족되어야 하는지 알아봅시다.
2021년 9월 23일

GitLab CI/CD vs GitHub Action 비교하기
지난 블로그에서 GitLab과 GitHub에 대해서 비교해 봤습니다. 결론적으로는 GitHub의 Git에 대한 노하우는 무시할 수 없지만, 서비스 혹은 전체 라이프사이클에 대한 여러 가지 비용적인 요소에서 GitLab이 우수하다는 것을 확인할 수 있었습니다. 이번 블로그에서는 DevOps 측면에서 GitLab CI/CD와 GitHub Action을 좀 더 면밀하게 살펴보겠습니다.
2021년 5월 31일