
조직의 자산 및 취약점 관리 도구로, Jira와 통합되어 애플리케이션 보안 보고서 생성을 위해 설계되었습니다.
조직의 자산 및 취약점 관리 도구로, Jira 통합 기능을 갖추고 있으며 애플리케이션 보안 보고서 생성을 위해 설계되었습니다.
이 프로젝트는 초기 개발 단계에 있음을 양해 부탁드립니다.


.env 파일을 만들고 다음 속성을 입력하세요:MYSQL_DATABASE="bulwark"
MYSQL_PASSWORD="bulwark"
MYSQL_ROOT_PASSWORD="bulwark"
MYSQL_USER="root"
MYSQL_DB_CHECK="mysql"
DB_PASSWORD="bulwark"
DB_URL="172.16.16.3"
DB_ROOT="root"
DB_USERNAME="bulwark"
DB_PORT=3306
DB_NAME="bulwark"
DB_TYPE="mysql"
NODE_ENV="production"
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY="changeme"
JWT_REFRESH_KEY="changeme"
CRYPTO_SECRET="changeme"
CRYPTO_SALT="changeme"
Bulwark 컨테이너 빌드 및 시작:
docker-compose up
Bulwark 컨테이너 시작/중지:
docker-compose start
docker-compose stop
Bulwark 컨테이너 제거:
docker-compose down
Bulwark는 localhost:4500에서 사용할 수 있습니다.
$ git clone (url)
$ cd bulwark
$ npm install
npm install을 실행하면 서버 측 및 클라이언트 측 모듈이 모두 설치됩니다. 또한 npm run config 스크립트가 실행되어 환경 변수를 동적으로 설정하고 Angular 환경을 업데이트합니다.
NODE_ENV="development" 설정
$ npm run config
$ npm run start:dev
NODE_ENV="production" 설정
참고: npm install은 자동으로 프로덕션 모드로 빌드됩니다.
$ npm run config
$ npm run build:prod
$ npm start
루트 디렉터리에 .env 파일을 만듭니다. 이 파일은 애플리케이션에서 dotenv를 통해 파싱됩니다.
DB_PASSWORDDB_PASSWORD="somePassword"
이 변수를 데이터베이스 비밀번호로 설정하세요.
DB_USERNAMEDB_USERNAME="foobar"
이 변수를 데이터베이스 사용자 이름으로 설정하세요.
DB_URLDB_URL=something-foo-bar.dbnet
이 변수를 데이터베이스 URL로 설정하세요.
DB_PORTDB_PORT=3306
이 변수를 데이터베이스 포트로 설정하세요.
DB_NAMEDB_NAME="foobar"
이 변수를 데이터베이스 연결 이름으로 설정하세요.
DB_TYPEDB_TYPE="mysql"
이 애플리케이션은 MySQL 데이터베이스를 사용하여 개발되었습니다. 더 많은 데이터베이스 옵션은 typeorm 문서를 참조하세요.
NODE_ENVNODE_ENV=production
이 변수를 설정하여 Node 환경을 결정하세요.
DEV_URL="http://localhost:4200"Angular가 애플리케이션을 빌드하고 제공하는 데 사용합니다.
SERVER_ADDRESS="http://localhost"다른 서버 주소가 필요한 경우 업데이트하세요.
PORT=4500다른 서버 포트가 필요한 경우 업데이트하세요.
JWT_KEYJWT_KEY="changeMe"
이 변수를 JWT 시크릿으로 설정하세요.
JWT_REFRESH_KEYJWT_REFRESH_KEY="changeMe"
이 변수를 리프레시 JWT 시크릿으로 설정하세요.
CRYPTO_SECRETCRYPTO_SECRET="randomValue"
이 변수를 Scrypt 비밀번호로 설정하세요.
CRYPTO_SALTCRYPTO_SECRET="randomValue"
이 변수를 Scrypt 솔트로 설정하세요.
.env 파일 템플릿DB_PASSWORD=""
DB_URL=""
DB_USERNAME=""
DB_PORT=3306
DB_NAME=""
DB_TYPE=""
NODE_ENV=""
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY=""
JWT_REFRESH_KEY=""
CRYPTO_SECRET=""
CRYPTO_SALT=""
Install sqlite3:
brew install sqlite3
Export compiler related env variables:
export LDFLAGS="-L/opt/homebrew/opt/sqlite/lib"
export CPPFLAGS="-I/opt/homebrew/opt/sqlite/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/sqlite/lib/pkgconfig"
export NODE_OPTIONS=--openssl-legacy-provider
Prepare for a fresh install:
rm -rf node_modules
npm cache verify
npm i --force
$ npm run migration:init
$ npm run migration:run
초기 시작 시 다음 자격 증명으로 사용자 계정이 생성됩니다:
[email protected]changeMe첫 로그인 시 프로필 섹션에서 기본 사용자 비밀번호를 업데이트하세요.
이 애플리케이션은 팀 기반 권한 부여를 통해 최소 권한 액세스를 활용합니다. 팀에는 해당 팀에서 사용할 수 있는 기능을 결정하는 역할이 할당됩니다. 사용자는 팀 멤버십에서 역할을 상속받습니다. 관리자는 팀 관리 액세스 권한이 있으며 사용자를 팀에 할당해야 합니다. 처음에는 사용자가 팀 연결 없이 생성되며 애플리케이션의 어떤 기능에도 액세스할 수 없습니다.
세 가지 역할은 다음과 같습니다:
팀은 하나의 조직에만 연결될 수 있습니다. 그러나 팀은 동일한 조직 내의 여러 자산에 연결될 수 있습니다. 사용자는 여러 팀의 구성원이 될 수 있습니다. 사용자가 동일한 조직의 여러 팀에 할당된 경우 시스템은 가장 높은 권한을 가진 팀을 선택합니다.
참고: 기본 사용자는 초기 시작 시 자동으로 Administrators 팀에 할당됩니다
사용자는 인증 토큰 대신 사용할 수 있는 단일 API 키를 생성할 수 있습니다. 이 API 키는 사용자가 권한이 있는 모든 애플리케이션 작업을 허용합니다.
사용자 프로필 섹션으로 이동API 키 생성 선택이 작업은 키 쌍을 생성합니다:
Bulwark-Api-Key
Bulwark-Secret-Key
생성된 키를 안전한 곳에 기록하세요. 나중에 키를 검색할 수 없습니다.
API 키 쌍 값은 일치해야 하며 다음 HTTP 요청 헤더에 추가되어야 합니다:
Bulwark-Api-KeyBulwark-Secret-Key예시:
GET /api/assessment/1 HTTP/1.1
Host: localhost:4500
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Bulwark-Api-Key: {{changeMe}}
Bulwark-Secret-Key: {{changeMe}}
Origin: http://localhost:4200
Connection: close
Referer: http://localhost:4200/
Pragma: no-cache
Cache-Control: no-cache
풀 리퀘스트를 환영합니다. 주요 변경 사항이 있는 경우 먼저 이슈를 열어 변경하려는 내용을 논의해 주세요. 자세한 내용은 기여 가이드라인을 읽어보세요.
| 관리자 | 테스터 | 읽기 전용 | |
|---|---|---|---|
| 사용자 프로필 관리 | x | x | x |
| 팀 관리 | x | ||
| 사용자 관리 | x | ||
| 사용자 초대 | x | ||
| 사용자 생성 | x | ||
| 이메일 설정 관리 | x | ||
| Jira 통합 | x | ||
| 조직: 읽기 | x | x | x |
| 조직: 전체 쓰기 | x | ||
| 자산: 읽기 | x | x | x |
| 자산: 전체 쓰기 | x | ||
| 평가: 읽기 | x | x | x |
| 평가: 전체 쓰기 | x | x | |
| 취약점: 읽기 | x | x | x |
| 취약점: 전체 쓰기 | x | x | |
| 취약점을 Jira로 내보내기 | x | x | |
| 보고서 생성 | x | x | x |