fullshield 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +87 -0
- package/LICENSE +21 -0
- package/README.md +159 -1
- package/dist/agent.js +5759 -0
- package/dist/cli/index.js +8612 -0
- package/dist/compliance.js +126 -0
- package/dist/confirm.js +146 -0
- package/dist/dashboard.js +143 -0
- package/dist/iac.js +84 -0
- package/dist/incremental.js +13 -0
- package/dist/index.d.ts +334 -0
- package/dist/index.js +6199 -0
- package/dist/llm.js +105 -0
- package/dist/mcp.js +5869 -0
- package/dist/runtime/auto.js +1163 -0
- package/dist/runtime/express.js +242 -0
- package/dist/runtime/fastify.js +254 -0
- package/dist/runtime/index.js +229 -0
- package/dist/runtime/rasp/loader.js +14 -0
- package/dist/runtime/rasp.js +1339 -0
- package/dist/runtime/register.js +1171 -0
- package/dist/supply.js +228 -0
- package/dist/threat.js +63 -0
- package/dist/workspaces.js +23 -0
- package/package.json +93 -8
- package/rules/CONFIG-BODYLIMIT-001.md +9 -0
- package/rules/CONFIG-CORS-001.md +9 -0
- package/rules/CONFIG-DOCKER-ENV-001.md +9 -0
- package/rules/CONFIG-DOCKER-LATEST-001.md +9 -0
- package/rules/CONFIG-DOCKER-ROOT-001.md +9 -0
- package/rules/CONFIG-ERRSTACK-001.md +9 -0
- package/rules/CONFIG-HELMET-001.md +9 -0
- package/rules/CONFIG-INSTALLSCRIPT-001.md +9 -0
- package/rules/CONFIG-RATELIMIT-001.md +9 -0
- package/rules/DEPS-DEPRECATED-001.md +9 -0
- package/rules/DEPS-NOLOCK-001.md +9 -0
- package/rules/DEPS-TYPOSQUAT-001.md +9 -0
- package/rules/DEPS-VULN-001.md +9 -0
- package/rules/README.md +60 -0
- package/rules/SAST-AUTH-001.md +9 -0
- package/rules/SAST-CMDI-001.md +9 -0
- package/rules/SAST-CRYPTO-001.md +9 -0
- package/rules/SAST-EVAL-001.md +9 -0
- package/rules/SAST-JWT-001.md +9 -0
- package/rules/SAST-NOSQLI-001.md +9 -0
- package/rules/SAST-PATH-001.md +9 -0
- package/rules/SAST-PROTO-001.md +9 -0
- package/rules/SAST-REDIRECT-001.md +9 -0
- package/rules/SAST-SQLI-001.md +9 -0
- package/rules/SAST-SSRF-001.md +9 -0
- package/rules/SAST-XSS-001.md +9 -0
- package/rules/SECRET-AIKEY-001.md +9 -0
- package/rules/SECRET-AWS-001.md +9 -0
- package/rules/SECRET-DBURL-001.md +9 -0
- package/rules/SECRET-ENTROPY-001.md +9 -0
- package/rules/SECRET-ENVFILE-001.md +9 -0
- package/rules/SECRET-GITHUB-001.md +9 -0
- package/rules/SECRET-GOOGLE-001.md +9 -0
- package/rules/SECRET-JWT-001.md +9 -0
- package/rules/SECRET-PRIVKEY-001.md +9 -0
- package/rules/SECRET-SLACK-001.md +9 -0
- package/rules/SECRET-STRIPE-001.md +9 -0
- package/templates/fullshield.config.json +7 -0
- package/templates/github-watch.yml +15 -0
- package/templates/github-workflow.yml +19 -0
- package/templates/gitlab-ci.yml +11 -0
- package/templates/pre-commit.sh +11 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# SAST-SSRF-001
|
|
2
|
+
|
|
3
|
+
**Tainted URL into fetch/axios/http/needle/got/request/superagent/undici.** CWE-918.
|
|
4
|
+
|
|
5
|
+
## Remediation
|
|
6
|
+
|
|
7
|
+
Allow-list destinations; do not fetch user-supplied URLs.
|
|
8
|
+
|
|
9
|
+
See `SECURITY_SCANNER_SPEC.md` §4 and the fixtures under `test/fixtures/`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# SECRET-AWS-001
|
|
2
|
+
|
|
3
|
+
**AWS access key.** CWE-798.
|
|
4
|
+
|
|
5
|
+
## Remediation
|
|
6
|
+
|
|
7
|
+
Rotate the key. Load it from the environment. Removing it from the file is not enough — it stays in git history.
|
|
8
|
+
|
|
9
|
+
See `SECURITY_SCANNER_SPEC.md` §4 and the fixtures under `test/fixtures/`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# SECRET-DBURL-001
|
|
2
|
+
|
|
3
|
+
**Database URL with an inline password.** CWE-798.
|
|
4
|
+
|
|
5
|
+
## Remediation
|
|
6
|
+
|
|
7
|
+
Angle-bracket placeholders are ignored. Real passwords must be rotated and moved to env.
|
|
8
|
+
|
|
9
|
+
See `SECURITY_SCANNER_SPEC.md` §4 and the fixtures under `test/fixtures/`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: FullShield watch
|
|
2
|
+
on:
|
|
3
|
+
schedule:
|
|
4
|
+
- cron: '0 6 * * *'
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
jobs:
|
|
7
|
+
watch:
|
|
8
|
+
runs-on: ubuntu-24.04
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v7
|
|
11
|
+
- uses: actions/setup-node@v7
|
|
12
|
+
with:
|
|
13
|
+
node-version: '22'
|
|
14
|
+
- run: npm ci
|
|
15
|
+
- run: npx fullshield watch --fail-on high
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: FullShield
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
jobs:
|
|
7
|
+
scan:
|
|
8
|
+
runs-on: ubuntu-24.04
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v7
|
|
11
|
+
- uses: actions/setup-node@v7
|
|
12
|
+
with:
|
|
13
|
+
node-version: '22'
|
|
14
|
+
- run: npm ci
|
|
15
|
+
- run: npx fullshield scan --sarif fullshield.sarif --fail-on high
|
|
16
|
+
- uses: github/codeql-action/upload-sarif@v3
|
|
17
|
+
if: always()
|
|
18
|
+
with:
|
|
19
|
+
sarif_file: fullshield.sarif
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# FullShield pre-commit hook: block staged secrets.
|
|
3
|
+
set -e
|
|
4
|
+
ROOT=$(git rev-parse --show-toplevel)
|
|
5
|
+
cd "$ROOT"
|
|
6
|
+
if command -v npx >/dev/null 2>&1; then
|
|
7
|
+
npx fullshield scan --modules secrets --staged --fail-on high
|
|
8
|
+
else
|
|
9
|
+
echo "fullshield pre-commit: npx not found" >&2
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|