
모든 기여자분들께서는 9월 21일 유지보수 이후로 이 저장소의 *새로운 복사본*을 클론해 주시기를 부탁드립니다.
Salus(Security Automation as a Lightweight Universal Scanner)는 로마의 보호 여신의 이름을 딴, 보안 스캐너 실행을 조정하는 도구입니다. Docker 데몬을 통해 레포지토리에서 Salus를 실행하면 관련 스캐너를 결정하고 실행하여 출력을 제공합니다. 대부분의 스캐너는 컨테이너에 직접 포함된 다른 성숙한 오픈소스 프로젝트입니다.
Salus는 많은 레포지토리에서 스캐닝을 조정하는 중앙 집중식 장소가 되므로 CI/CD 파이프라인에 특히 유용합니다. 일반적으로 스캐너는 각 프로젝트의 레포지토리 수준에서 구성됩니다. 즉, 스캐너 실행 방식을 조직 전체에서 변경할 때 각 레포지토리를 업데이트해야 합니다. 대신 Salus를 업데이트하면 모든 빌드가 즉시 변경 사항을 상속받습니다.
Salus는 전역 기본값과 로컬 조정을 허용하는 강력한 구성을 지원합니다. 마지막으로 Salus는 각 레포지토리에 대해 포함된 패키지 또는 존재하는 문제점과 같은 메트릭을 보고할 수 있습니다. 이러한 보고서는 인프라에서 중앙 집중식으로 평가하여 확장 가능한 보안 추적을 가능하게 합니다.
# Navigate to the root directory of the project you want to run Salus on
cd /path/to/repo
# Run the following line while in the root directory (No edits necessary)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0 실행, AST 수준에서 코드의 의미론적 및 구문론적 패턴을 찾습니다.npm audit 6.14.8 실행, 노드 모듈 종속성의 CVE를 찾습니다.yarn audit 1.22.0 실행, 노드 모듈 종속성의 CVE를 찾습니다.sift 0.9.0 실행, 프로젝트에서 위험할 수 있거나 특정 문자열이 있어야 할 수 있는 문자열을 찾습니다.Salus는 또한 종속성 파일을 파싱하여 사용 중인 라이브러리와 버전을 보고합니다. 이는 플릿 전체의 종속성을 추적하는 데 유용할 수 있습니다.
현재 지원되는 언어는 다음과 같습니다:
Salus는 다양한 환경과 다양한 스캐너에서 작동할 수 있도록 고도로 구성 가능하게 설계되었습니다. 환경 변수 보간 및 계단식 구성을 지원하며, HTTP를 통해 구성을 읽고 보고서를 게시할 수 있습니다.
때로는 특정 CVE, 규칙, 테스트, 그룹, 디렉터리를 무시하거나 스캐너의 기본 구성을 수정해야 할 필요가 있습니다. docs/scanners 디렉터리는 Salus가 지원하는 각 스캐너에 대해 이를 수행하는 방법을 설명합니다.
사용자 정의 스캐너를 구축하거나 현재 지원되지 않는 더 많은 언어를 지원하려면 사용자 정의 Salus 이미지 구축 방법을 사용할 수 있습니다.
Salus는 공개 Orb를 사용하여 CircleCI와 통합될 수 있습니다. 모든 Salus 구성 옵션이 지원되며 기본값은 Salus 자체와 동일합니다.
예시 CircleCI config.yml:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus는 Github Actions와 함께 사용할 수도 있습니다.
예시 .github/workflows/main.yml:
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Salus Security Scan Example
steps:
- uses: actions/checkout@v1
- name: Salus Scan
id: salus_scan
uses: federacy/[email protected]
주어진 CI에 대해 구성 파일을 업데이트하여 salus를 실행합니다. Circle에서는 다음과 같습니다:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus는 도커 이미지를 가져옵니다.
이 프로젝트에 대한 기여는 매우 환영하며, 현재까지 수행된 작업이 보안/개발 커뮤니티 전체가 함께 모여 모든 사람의 인프라 보안을 개선할 수 있는 기반이 되기를 진심으로 바랍니다.
개발 환경 설정에 대한 자세한 내용은 개발 환경 설정 또는 Salus 아키텍처에서 확인할 수 있습니다.
또한 Salus에 새 스캐너를 추가하는 단계를 찾을 수 있습니다.
이 프로젝트는 Apache 2.0 라이선스 조건에 따라 오픈소스로 제공됩니다.