
소프트웨어 공급망 보안 플랫폼

Minder는 개발 팀과 오픈 소스 커뮤니티가 더 안전한 소프트웨어를 구축하고, 구축한 것이 안전하다는 것을 입증할 수 있도록 도와주는 오픈 소스 플랫폼입니다. Minder는 프로젝트 소유자가 소프트웨어 공급망의 위험을 최소화하기 위한 검사 및 정책 세트를 제공하여 보안 상태를 사전에 관리하고, 다운스트림 소비자에게 자신의 보안 관행을 증명할 수 있도록 지원합니다.
Minder는 사용자가 저장소를 등록하고, 저장소와 아티팩트가 일관되고 안전하게 구성되도록 정책을 정의할 수 있게 합니다. 정책은 알림 전용으로 설정하거나 자동 수정으로 설정할 수 있습니다. Minder는 사전 정의된 규칙 세트를 제공하며, 사용자 정의 규칙을 적용하도록 구성할 수도 있습니다.
Minder는 Helm 차트로 배포할 수 있으며, CLI 도구 minder를 제공합니다. Custcodian은 또한 무료로 사용할 수 있는 호스팅 버전의 Minder를 제공합니다. Minder는 확장 가능하도록 설계되어 사용자가 기존 도구 및 프로세스와 통합할 수 있습니다.
Custcodian은 api.custcodian.dev에서 Minder의 무료 퍼블릭 인스턴스를 제공합니다. 이는 0.0.89 릴리스부터 minder CLI를 사용할 때 기본 인스턴스입니다. 이 인스턴스는 공개 저장소에 무료로 사용할 수 있으며, 비공개 저장소의 경우 이 클라우드 호스팅 인스턴스를 사용할 때 추가 요금이 발생할 수 있습니다.
Minder를 시작하고 실행하는 데는 1분 미만이 소요되며 다음과 같이 간단합니다:
minder quickstart를 실행하여 첫 번째 프로필을 생성합니다.몇 초 만에 저장소를 등록하고 모든 저장소에 대해 비밀 스캐닝 보호를 활성화할 수 있습니다! 🤯
minder를 설치하는 선호하는 방법을 선택하세요:
Homebrew가 설치되어 있는지 확인하세요.
brew install minder
Winget이 설치되어 있는지 확인하세요.
winget install mindersec.minder
minder/releases에서 최신 릴리스를 다운로드하세요.
소스에서 빌드 가이드를 따라 소스에서 minder와 minder-server를 빌드하세요.
Minder의 퍼블릭 인스턴스(api.custcodian.dev)와 함께 minder를 사용하려면 다음을 실행하여 로그인하세요:
minder auth login --grpc-host api.custcodian.dev
(이 API 호스트는 0.0.89 릴리스부터 기본값입니다.) 완료되면 Minder 서버가 api.custcodian.dev로 설정된 것을 확인할 수 있습니다.
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에 대한 자세한 내용은 다음을 참조하세요:
minder CLI 명령어 - 문서.minder REST API 문서 - 문서.minder 규칙 및 프로필 - GitHub.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
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가 사용할 수 있도록 현재 디렉토리에 config.yaml 파일이 있는지 확인하세요.
로컬 Minder 인스턴스(localhost:8090)에 대해 minder를 실행합니다:
minder auth login
완료되면 Minder 서버가 localhost:8090으로 설정된 것을 확인할 수 있습니다.
기본적으로 minder CLI는 구성 파일이 없으면 Custcodian 클라우드 환경을 가리키지만, 서버 실행을 위한 config.yaml 생성은 CLI를 로컬 개발 환경으로 가리키게 합니다. 명시적으로 다른 인스턴스를 사용하려면 MINDER_CONFIG 환경 변수를 설정하여 특정 구성을 가리킬 수 있습니다. 로컬 개발 및 Custcodian 클라우드 환경에 대한 구성이 config 디렉토리에 체크인되어 있습니다.
개발 프로세스에 대한 자세한 내용은 개발자 가이드에서 확인할 수 있습니다.
Minder에 기여해 주시면 환영합니다. 자세한 내용은 기여 가이드를 참조하세요.
Minder 프로젝트는 소프트웨어 공급망 보안 및 투명성을 위한 모범 사례를 따릅니다.
모든 릴리스된 자산:
Minder는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.