
minder v0.3.1
소프트웨어 공급망 보안 플랫폼

|
|
|
| | 
설치 | 문서 | 릴리스
Minder란 무엇인가?
Minder는 개발 팀과 오픈 소스 커뮤니티가 더 안전한 소프트웨어를 구축하고, 구축한 것이 안전하다는 것을 입증할 수 있도록 도와주는 오픈 소스 플랫폼입니다. Minder는 프로젝트 소유자가 소프트웨어 공급망의 위험을 최소화하기 위한 검사 및 정책 세트를 제공하여 보안 상태를 사전에 관리하고, 다운스트림 소비자에게 자신의 보안 관행을 증명할 수 있도록 지원합니다.
Minder는 사용자가 저장소를 등록하고, 저장소와 아티팩트가 일관되고 안전하게 구성되도록 정책을 정의할 수 있게 합니다. 정책은 알림 전용으로 설정하거나 자동 수정으로 설정할 수 있습니다. Minder는 사전 정의된 규칙 세트를 제공하며, 사용자 정의 규칙을 적용하도록 구성할 수도 있습니다.
Minder는 Helm 차트로 배포할 수 있으며, CLI 도구 minder를 제공합니다. Custcodian은 또한 무료로 사용할 수 있는 호스팅 버전의 Minder를 제공합니다. Minder는 확장 가능하도록 설계되어 사용자가 기존 도구 및 프로세스와 통합할 수 있습니다.
기능
- 저장소 구성 및 보안: 여러 저장소에 걸친 보안 설정 및 정책의 구성과 관리를 간소화합니다.
- 사전 예방적 보안 강화: 세분화된 정책을 설정하여 알림 전용 또는 자동 수정을 통해 모범 사례 보안 구성을 지속적으로 적용합니다.
- 아티팩트 증명: 오픈 소스 프로젝트 Sigstore를 사용하여 패키지가 서명되었는지 지속적으로 확인하여 변조를 방지합니다.
- 종속성 관리: 개발자가 더 나은 선택을 하고 통제를 강화하도록 도와 종속성 보안 상태를 관리합니다. Minder는 OSV와 통합되어 있으며(다른 SCA API와도 통합 가능), 종속성의 위험 수준에 따라 정책 기반 종속성 관리를 가능하게 합니다.
퍼블릭 인스턴스
Custcodian은 api.custcodian.dev에서 Minder의 무료 퍼블릭 인스턴스를 제공합니다. 이는 0.0.89 릴리스부터 minder CLI를 사용할 때 기본 인스턴스입니다. 이 인스턴스는 공개 저장소에 무료로 사용할 수 있으며, 비공개 저장소의 경우 이 클라우드 호스팅 인스턴스를 사용할 때 추가 요금이 발생할 수 있습니다.
시작하기 (< 1분)
Minder를 시작하고 실행하는 데는 1분 미만이 소요되며 다음과 같이 간단합니다:
- Minder 설치
- Minder에 로그인
minder quickstart를 실행하여 첫 번째 프로필을 생성합니다.
몇 초 만에 저장소를 등록하고 모든 저장소에 대해 비밀 스캐닝 보호를 활성화할 수 있습니다! 🤯
설치
minder를 설치하는 선호하는 방법을 선택하세요:
MacOS (Homebrew)
Homebrew가 설치되어 있는지 확인하세요.
brew install minder
Windows (Winget)
Winget이 설치되어 있는지 확인하세요.
winget install mindersec.minder
릴리스 다운로드
minder/releases에서 최신 릴리스를 다운로드하세요.
소스에서 빌드
소스에서 빌드 가이드를 따라 소스에서 minder와 minder-server를 빌드하세요.
Minder에 로그인
Minder의 퍼블릭 인스턴스(api.custcodian.dev)와 함께 minder를 사용하려면 다음을 실행하여 로그인하세요:
minder auth login --grpc-host api.custcodian.dev
(이 API 호스트는 0.0.89 릴리스부터 기본값입니다.) 완료되면 Minder 서버가 api.custcodian.dev로 설정된 것을 확인할 수 있습니다.
Minder quickstart 실행
quickstart 명령은 Minder에서 첫 번째 프로필을 생성하고, 저장소를 등록하며, 몇 초 안에 저장소에 대한 비밀 스캐닝 보호를 활성화하는 과정을 안내합니다.
이를 실행하려면:
minder quickstart
그러면 공급자를 등록하고, 원하는 저장소를 선택하며, secret_scanning 규칙 유형을 생성하고 선택한 저장소에 대해 비밀 스캐닝을 활성화하는 프로필을 만들도록 안내합니다.
프로필 상태를 확인하려면 다음을 실행하세요:
minder profile status list --profile quickstart-profile --detailed
전체 프로필 상태와 등록된 각 저장소에 대한 규칙 평가 상태의 세부 보기가 표시됩니다.
Minder는 계속해서 저장소를 추적하고 remediate 기능을 사용하여 원하는 상태와의 차이를 해결하거나, 필요한 경우 alert 기능을 사용하여 경고합니다.
축하합니다! 🎉 첫 번째 프로필을 성공적으로 생성했습니다!
다음 단계는?
이제 저장소를 추가하거나 제거하고, 다양한 규칙으로 더 많은 프로필을 생성하는 등 Minder의 기능을 계속 탐색할 수 있습니다. Minder는 비밀 스캐닝 외에도 훨씬 더 많은 기능을 제공합니다.
secret_scanning 규칙은 Minder가 지원하는 많은 규칙 유형 중 하나일 뿐입니다.
Minder 팀이 유지 관리하는 바로 사용 가능한 규칙 및 프로필의 전체 목록은 여기에서 확인할 수 있습니다 - mindersec/minder-rules-and-profiles.
아직 찾지 못한 것이 있다면, Minder는 확장 가능하도록 설계되었습니다. 이를 통해 사용자는 자신만의 사용자 정의 규칙 유형과 프로필을 생성하고 보안 상태의 세부 사항을 증명할 수 있습니다.
이제 모든 것이 설정되었으므로 Minder의 퍼블릭 인스턴스에 대해 minder 명령을 계속 실행하여 등록된 저장소를 관리하고, 프로필, 규칙 등을 생성하여 저장소가 일관되고 안전하게 구성되도록 할 수 있습니다.
minder에 대한 자세한 내용은 다음을 참조하세요:
minderCLI 명령어 - 문서.minderREST API 문서 - 문서.- Minder 팀이 유지 관리하는
minder규칙 및 프로필 - GitHub. - Minder 문서 - 문서.
로드맵
Minder 커뮤니티는 Minder의 새로운 기능과 개선 사항을 적극적으로 개발하고 있습니다.
로드맵은 여기에서 확인할 수 있습니다.
기능이나 개선 사항을 요청하거나 기여하고 싶다면 다음 이슈 템플릿을 사용해 주세요.
개발
이 섹션에서는 Minder를 소스에서 빌드하고 실행하는 방법을 설명합니다.
소스에서 빌드
사전 요구 사항
다음 도구가 필요합니다 - Go, Docker 및 Docker Compose.
minder-server를 빌드하고 실행하려면 ko도 필요합니다.
make test를 통해 테스트 스위트를 실행하려면 gotestfmt와 helm이 필요합니다.
run-docker make 대상을 호출하려면 yq가 필요합니다.
저장소 클론
git clone [email protected]:mindersec/minder.git
빌드
다음을 실행하여 minder와 minder-server를 빌드합니다 (바이너리는 ./bin/에 생성됩니다):
make build
Minder의 퍼블릭 인스턴스(api.custcodian.dev)와 함께 minder를 사용하려면 다음을 실행하세요:
minder auth login --grpc-host api.custcodian.dev
완료되면 Minder 서버가 api.custcodian.dev로 설정된 것을 확인할 수 있습니다.
로컬 minder-server 인스턴스에 대해 minder를 실행하려면 --grpc-host=localhost 및 --grpc-port=8090 플래그를 사용하거나 아래 단계에 따라 구성 파일을 사용할 수 있습니다.
초기 구성
minder의 초기 구성 파일을 만듭니다. 다음과 같이 할 수 있습니다:
cp config/config.yaml.example config.yaml
minder-server의 초기 구성 파일을 만듭니다. 다음과 같이 할 수 있습니다:
cp config/server-config.yaml.example server-config.yaml
또한 minder-server가 사용할 OAuth2 애플리케이션을 설정해야 합니다. 완료되면 적절한 값으로 구성 파일을 업데이트하세요. 이 작업을 수행하는 방법에 대한 설명은 문서를 참조하세요.
minder-server 실행
다음을 실행하여 종속 서비스(keycloak 및 postgres)와 함께 minder-server를 시작합니다:
make run-docker
소셜 로그인 구성 (GitHub)
minder-server는 IAM으로 Keycloak을 사용합니다. 로그인하려면 GitHub OAuth2 애플리케이션을 설정하고 Keycloak이 이를 사용하도록 구성해야 합니다.
GitHub용 OAuth2 애플리케이션을 여기에서 만듭니다. New OAuth App을 선택하고 세부 정보를 입력합니다. 콜백 URL은 http://localhost:8081/realms/stacklok/broker/github/endpoint여야 합니다. OAuth2 클라이언트에 대한 새 클라이언트 시크릿을 만듭니다.
위에서 만든 client_id와 client_secret을 사용하여 다음 명령을 실행하여 Keycloak에서 GitHub 로그인을 활성화합니다:
make KC_GITHUB_CLIENT_ID=<client_id> KC_GITHUB_CLIENT_SECRET=<client_secret> github-login
minder 실행
minder가 사용할 수 있도록 현재 디렉토리에 config.yaml 파일이 있는지 확인하세요.
로컬 Minder 인스턴스(localhost:8090)에 대해 minder를 실행합니다:
minder auth login
완료되면 Minder 서버가 localhost:8090으로 설정된 것을 확인할 수 있습니다.
기본적으로 minder CLI는 구성 파일이 없으면 Custcodian 클라우드 환경을 가리키지만, 서버 실행을 위한 config.yaml 생성은 CLI를 로컬 개발 환경으로 가리키게 합니다. 명시적으로 다른 인스턴스를 사용하려면 MINDER_CONFIG 환경 변수를 설정하여 특정 구성을 가리킬 수 있습니다. 로컬 개발 및 Custcodian 클라우드 환경에 대한 구성이 config 디렉토리에 체크인되어 있습니다.
개발 지침
개발 프로세스에 대한 자세한 내용은 개발자 가이드에서 확인할 수 있습니다.
Minder API
기여
Minder에 기여해 주시면 환영합니다. 자세한 내용은 기여 가이드를 참조하세요.
- Minder 커뮤니티는 정기적으로 모임을 갖습니다. 모임 일정은 OpenSSF 커뮤니티 캘린더에서 확인할 수 있습니다.
- 프로젝트 헌장 및 거버넌스 문서는 mindersec/community 저장소에서 관리됩니다.
출처
Minder 프로젝트는 소프트웨어 공급망 보안 및 투명성을 위한 모범 사례를 따릅니다.
모든 릴리스된 자산:
- 생성 및 검증 가능한 SLSA 빌드 레벨 3 출처를 가지고 있습니다. 자세한 내용은 SLSA 웹사이트를 참조하세요.
- 릴리스 중에 Sigstore 프로젝트를 사용하여 서명 및 검증되었습니다. 이는 자산이 변조되지 않았으며 누구나 검증할 수 있음을 보장합니다.
- SBOM 아카이브가 생성되어 릴리스와 함께 게시됩니다. 이를 통해 사용자는 프로젝트의 종속성과 보안 상태를 이해할 수 있습니다.
라이선스
Minder는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.