
2024年4月17日、GitLab™は、セキュリティ向上とGitLab顧客への堅牢化(ハードニング)推奨事項の提供を目的とした、Center for Internet Security®(CIS)GitLab Benchmarkの導入を発表するブログ記事を公開しました。ベンチマークのコピーは、Center for Internet Security®のウェブサイトで公開されており、ダウンロードできます。
"CIS GitLab Benchmarkは、CISとGitLabのField SecurityおよびProduct Managementチームとの協力から生まれました。顧客との数多くの会話を通じて、ハードニング作業を導くための特定のベンチマークの必要性を理解しました。GitLabの製品とドキュメントを詳細にレビューし、当社の提供内容がCIS Software Supply Chain Security Benchmarkにどのように対応するかを把握しました。初期ドラフトが完成した後、CISコンセンサスプロセスに入り、より広範なCIS Benchmark Communityが公開前にレビューし、編集を提案できるようになりました。"
gitlabcis は、Center for Internet Security®(CIS)GitLab Benchmarkに照らしてGitLabプロジェクトを監査するPython®パッケージです。YAML™でフォーマットされたrecommendations-as-codeが含まれています。
CIS Benchmarkをコンプライアンス標準としてCompliance Adherence Reportに追加するという大規模な取り組みがあります。
このツールの開発を通じて、著者らはGitLab製品に2つの機能を貢献しました(#39):
[[TOC]]
gitlabcis は、以下のトークンのいずれか1つを必要とします:
トークンはオプションとして渡すか、環境変数として保存できます:
GITLAB_TOKEN - (任意)環境変数--token / -t - (任意)gitlabcis トークンオプショントークンはオプションとして渡すか、環境変数として保存できます:
GITLAB_OAUTH_TOKEN - (任意)環境変数--oauth-token / -ot - (任意)gitlabcis トークンオプションread_api スコープが必要です。スキャナーをダウンロードする方法はいくつかあります。以下をご覧ください:
gitlabcis をpypi.orgからインストール:
pip install gitlabcis
gitlabcis をpackage registryからインストール:
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 をインストールします。
# リポジトリのクローンを作成(またはローカルフォークを作成)
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 # または複数: 2.3.4 3.4.5 など
インスタンスまたはグループ配下のすべてのサブグループとプロジェクトをスキャン(デフォルトで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)ディレクトリを確認してください - 何か不足していますか? お気軽に新しいissueで貢献を作成してください。
gitlabcis はMITライセンスで公開されており、./LICENSEファイルで確認できます。
詳細については、./CHANGELOG.mdを参照してください。
行動規範については、contributing doc (CONTRIBUTING.md)の見出しセクションを確認してください。
脆弱性の開示方法を概説したセキュリティポリシー(docs/SECURITY.md)ドキュメントを確認してください。
貢献したいですか? - 素晴らしい!詳細については、contributing doc (CONTRIBUTING.md)をチェックしてください。
| 免責事項 | コメント |
|---|
| このツールは、すべてにGitLabを使用していることを前提としています。 |
|
| このツールはすべての推奨事項を監査できるわけではありません。 |
|
| このツールは、GitLabインスタンス、グループ、またはプロジェクトに対して書き込み操作を一切実行しません。書き込みアクションは実行されません。 |
|
| これは公式のGitLab製品ではありません。 |
|