
CIS GitLab Benchmark에 대해 읽기 전용 API 검사를 통해 GitLab 프로젝트를 감사하고, 규정 준수 및 보안 강화 권장 사항에 대한 JSON 보고서를 생성합니다.
2024년 4월 17일, GitLab™은 자사의 Center for Internet Security® (CIS) GitLab Benchmark를 소개하는 블로그 게시물을 게시했습니다. 이는 제품의 보안을 개선하고 GitLab 고객에게 강화(hardening) 권장 사항을 제공하기 위한 목적입니다. Center for Internet Security® 웹사이트에 게시된 벤치마크 사본을 다운로드할 수 있습니다.
"CIS GitLab Benchmark는 CIS와 GitLab의 Field Security 및 Product Management 팀 간의 협업에서 비롯되었습니다. 고객과의 수많은 대화 끝에, 우리는 고객의 강화(hardening) 노력을 안내할 특정 벤치마크의 필요성을 이해하게 되었습니다. GitLab의 제품과 문서를 심층 검토하여 우리의 제품이 CIS의 Software Supply Chain Security Benchmark에 어떻게 매핑되는지 이해했습니다. 초기 초안이 준비된 후, CIS 합의 프로세스에 들어갔고, 더 넓은 CIS Benchmark 커뮤니티가 게시 전에 이를 검토하고 수정을 제안할 수 있었습니다."
gitlabcis는 Center for Internet Security® (CIS) GitLab Benchmark을 기준으로 GitLab 프로젝트를 감사하는 Python® 패키지입니다. 여기에는 YAML™로 형식화된 recommendations-as-code가 포함되어 있습니다.
Compliance Adherence Report에 규정 준수 표준으로 CIS Benchmark를 추가하려는 더 큰 노력이 있습니다.
이 도구를 개발하는 과정에서 저자들은 GitLab 제품에 2가지 기능을 기여했습니다(#39):
[[TOC]]
| 고지 사항 | 비고 |
|---|---|
| 이 도구는 GitLab을 모든 것에 사용하고 있다고 가정합니다. |
|
| 이 도구는 모든 권장 사항을 감사할 수 없습니다. |
|
| 이 도구는 GitLab 인스턴스, 그룹 또는 프로젝트에서 어떠한 쓰기 작업도 수행하지 않습니다. 쓰기 작업은 수행되지 않습니다. |
|
| 이것은 공식 GitLab 제품이 아닙니다. |
|
gitlabcis는 다음 토큰 중 하나를 요구합니다:
토큰을 옵션으로 전달하거나 환경 변수로 저장할 수 있습니다:
GITLAB_TOKEN - (선택 사항) 환경 변수--token / -t - (선택 사항) gitlabcis 토큰 옵션토큰을 옵션으로 전달하거나 환경 변수로 저장할 수 있습니다:
GITLAB_OAUTH_TOKEN - (선택 사항) 환경 변수--oauth-token / -ot - (선택 사항) gitlabcis 토큰 옵션read_api 범위가 있어야 합니다.스캐너를 다운로드하는 방법은 여러 가지가 있습니다. 아래를 참조하십시오:
gitlabcis를 pypi.org에서 설치합니다:
pip install gitlabcis
gitlabcis를 패키지 레지스트리에서 설치합니다:
pip install gitlabcis --index-url https://gitlab.com/api/v4/projects/57279821/packages/pypi/simple
아직 하지 않았다면 아래 내용을 .pypirc 파일에 추가해야 합니다.
[gitlab]
repository = https://gitlab.com/api/v4/projects/57279821/packages/pypi
username = __token__
password = <your personal access token>
gitlabcis를 클론을 통해 소스에서 설치하거나 릴리스 페이지에서 설치합니다.
# make a clone (or create a local fork) of the repo
git clone [email protected]:gitlab-security-oss/cis/gitlabcis.git
cd gitlabcis
make install
다음 구문이 사용됩니다:
gitlabcis URL OPTIONS

셸에서 보고서를 생성하려면:
gitlabcis https://gitlab.example.com/path/to/project --token $TOKEN
json 보고서 생성: ($GITLAB_TOKEN 변수를 사용하면 --token 옵션을 지정할 필요가 없습니다)
gitlabcis \
https://gitlab.example.com/path/to/project \
-o results.json \
-f json
단일 통제 항목을 실행하려면:
gitlabcis \
https://gitlab.example.com/path/to/project \
-ids 1.2.3 # or multiple: 2.3.4 3.4.5 etc
인스턴스 또는 그룹 아래의 모든 하위 그룹과 프로젝트를 스캔합니다(기본적으로 1단계 깊이):
gitlabcis https://gitlab.example.com/path-to-group --nest
최대 2단계 깊이까지 모든 하위 그룹과 프로젝트를 스캔하고 엔터티별 JSON 파일을 ./results/에 작성합니다:
gitlabcis \
https://gitlab.example.com/path-to-group \
--nest \
--depth 2 \
--output-dir results \
-f json
무제한 깊이와 파일 이름 접두사를 사용하여 스캔합니다:
gitlabcis \
https://gitlab.example.com/path-to-group \
--nest \
--depth 0 \
--prefix "audit_" \
--output-dir results \
-f json
gitlabcis 문서(./docs) 디렉토리를 검토하십시오 - 누락된 것이 있나요? 새 이슈로 기여해 주세요.
gitlabcis는 MIT 라이선스로 게시되었으며, ./LICENSE 파일에서 확인할 수 있습니다.
자세한 내용은 ./CHANGELOG.md를 참조하십시오.
행동 강령은 기여 문서(CONTRIBUTING.md)의 헤딩 섹션을 검토하십시오.
취약점 공개 방법을 설명하는 보안 정책(docs/SECURITY.md) 문서를 검토하십시오.
기여하고 싶으신가요? - 좋습니다! 자세한 내용은 기여 문서(CONTRIBUTING.md)를 확인하십시오.