fivosense 0.1.5 → 0.2.0
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/.kilo/skill/fivosense/skill.json +5 -5
- package/COMPLETE_SUMMARY.md +412 -0
- package/DEPLOYMENT_GUIDE.md +2 -2
- package/FINAL_VERIFICATION.md +316 -0
- package/GITHUB_PUSH.md +4 -4
- package/LICENSE +1 -1
- package/README.md +290 -208
- package/RELEASE_READY.md +3 -3
- package/bin/fivosense.mjs +6 -0
- package/dist/ai/client.d.ts +33 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +170 -0
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/judge.d.ts +9 -3
- package/dist/ai/judge.d.ts.map +1 -1
- package/dist/ai/judge.js +49 -14
- package/dist/ai/judge.js.map +1 -1
- package/dist/cli/index.d.ts +3 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +6 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/orchestrator.d.ts +34 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +211 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/scope.d.ts +32 -0
- package/dist/core/scope.d.ts.map +1 -0
- package/dist/core/scope.js +149 -0
- package/dist/core/scope.js.map +1 -0
- package/dist/editors/vscode.d.ts +4 -2
- package/dist/editors/vscode.d.ts.map +1 -1
- package/dist/editors/vscode.js +6 -0
- package/dist/editors/vscode.js.map +1 -1
- package/dist/engine/adversary.d.ts +9 -2
- package/dist/engine/adversary.d.ts.map +1 -1
- package/dist/engine/adversary.js +47 -13
- package/dist/engine/adversary.js.map +1 -1
- package/dist/engine/graph.d.ts +4 -1
- package/dist/engine/graph.d.ts.map +1 -1
- package/dist/engine/graph.js +6 -0
- package/dist/engine/graph.js.map +1 -1
- package/dist/engine/poc.d.ts +26 -0
- package/dist/engine/poc.d.ts.map +1 -0
- package/dist/engine/poc.js +179 -0
- package/dist/engine/poc.js.map +1 -0
- package/dist/engine/reach.d.ts +4 -2
- package/dist/engine/reach.d.ts.map +1 -1
- package/dist/engine/reach.js +6 -0
- package/dist/engine/reach.js.map +1 -1
- package/dist/engine/sinks.d.ts +22 -32
- package/dist/engine/sinks.d.ts.map +1 -1
- package/dist/engine/sinks.js +338 -44
- package/dist/engine/sinks.js.map +1 -1
- package/dist/engine/sources.d.ts +11 -19
- package/dist/engine/sources.d.ts.map +1 -1
- package/dist/engine/sources.js +100 -24
- package/dist/engine/sources.js.map +1 -1
- package/dist/engine/taint.d.ts +6 -0
- package/dist/engine/taint.d.ts.map +1 -1
- package/dist/engine/taint.js +6 -0
- package/dist/engine/taint.js.map +1 -1
- package/dist/engine/verify.d.ts +4 -1
- package/dist/engine/verify.d.ts.map +1 -1
- package/dist/engine/verify.js +6 -0
- package/dist/engine/verify.js.map +1 -1
- package/dist/features/badge.d.ts +6 -0
- package/dist/features/badge.d.ts.map +1 -1
- package/dist/features/badge.js +4 -1
- package/dist/features/badge.js.map +1 -1
- package/dist/features/fix.d.ts +6 -0
- package/dist/features/fix.d.ts.map +1 -1
- package/dist/features/fix.js +4 -1
- package/dist/features/fix.js.map +1 -1
- package/dist/features/index.d.ts +6 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +6 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/roast.d.ts +6 -0
- package/dist/features/roast.d.ts.map +1 -1
- package/dist/features/roast.js +4 -1
- package/dist/features/roast.js.map +1 -1
- package/dist/hooks/agent.d.ts +4 -1
- package/dist/hooks/agent.d.ts.map +1 -1
- package/dist/hooks/agent.js +6 -0
- package/dist/hooks/agent.js.map +1 -1
- package/dist/hooks/git.d.ts +34 -0
- package/dist/hooks/git.d.ts.map +1 -0
- package/dist/hooks/git.js +161 -0
- package/dist/hooks/git.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/rules/destructive.d.ts +12 -21
- package/dist/rules/destructive.d.ts.map +1 -1
- package/dist/rules/destructive.js +306 -24
- package/dist/rules/destructive.js.map +1 -1
- package/dist/rules/secrets.d.ts +8 -10
- package/dist/rules/secrets.d.ts.map +1 -1
- package/dist/rules/secrets.js +294 -17
- package/dist/rules/secrets.js.map +1 -1
- package/mcp/index.js +55 -20
- package/mcp/package-lock.json +382 -0
- package/mcp/package.json +21 -4
- package/package.json +5 -5
- package/src/ai/client.ts +226 -0
- package/src/ai/judge.ts +58 -14
- package/src/cli/index.ts +7 -1
- package/src/core/orchestrator.ts +266 -0
- package/src/core/scope.ts +175 -0
- package/src/editors/vscode.ts +7 -0
- package/src/engine/adversary.ts +55 -12
- package/src/engine/graph.ts +7 -0
- package/src/engine/poc.ts +219 -0
- package/src/engine/reach.ts +7 -0
- package/src/engine/sinks.ts +358 -45
- package/src/engine/sources.ts +109 -24
- package/src/engine/taint.ts +7 -0
- package/src/engine/verify.ts +7 -0
- package/src/features/badge.ts +7 -0
- package/src/features/fix.ts +7 -0
- package/src/features/index.ts +7 -0
- package/src/features/roast.ts +7 -0
- package/src/hooks/agent.ts +7 -0
- package/src/hooks/git.ts +194 -0
- package/src/index.ts +7 -0
- package/src/rules/destructive.ts +316 -26
- package/src/rules/secrets.ts +306 -17
- package/vscode-extension/CHANGELOG.md +14 -2
- package/vscode-extension/LICENSE +1 -1
- package/vscode-extension/README.md +28 -23
- package/vscode-extension/fivosense-vscode-0.1.0.vsix +0 -0
- package/vscode-extension/fivosense-vscode-0.1.1.vsix +0 -0
- package/vscode-extension/package-lock.json +6 -6
- package/vscode-extension/package.json +7 -5
- package/vscode-extension/src/extension.ts +65 -11
package/README.md
CHANGED
|
@@ -1,325 +1,407 @@
|
|
|
1
1
|
# 🛡️ FivoSense
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Your code has security holes. You just haven't found them yet.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Every codebase has vulnerabilities hiding in plain sight. SQL injections in your API routes. Hardcoded API keys in your config files. Command injections nobody caught. You feel safe because your app "works."
|
|
6
|
+
|
|
7
|
+
So did Equifax. So did Capital One. So did every company that lost millions to a breach they could have prevented with one scan.
|
|
8
|
+
|
|
9
|
+
**FivoSense finds every vulnerability in your code — and proves it exists.**
|
|
10
|
+
|
|
11
|
+
Not "might be vulnerable." Not "we recommend reviewing."
|
|
12
|
+
|
|
13
|
+
**IS vulnerable. Line 13. Here's the attack path. Here's the exploit. Here's the fix.**
|
|
6
14
|
|
|
7
15
|
[](https://www.npmjs.com/package/fivosense)
|
|
8
16
|
[](https://opensource.org/licenses/MIT)
|
|
9
17
|
|
|
10
18
|
---
|
|
11
19
|
|
|
12
|
-
##
|
|
20
|
+
## The Problem: How Developers Handle Security Today
|
|
13
21
|
|
|
14
|
-
###
|
|
15
|
-
```bash
|
|
16
|
-
npm install -g fivosense
|
|
17
|
-
```
|
|
22
|
+
### You paste code in ChatGPT and hope for the best
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
fivosense your-file.js
|
|
22
|
-
```
|
|
24
|
+
ChatGPT looks at your code and says: *"This might be vulnerable to SQL injection."*
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
🛡️ FivoSense Security Audit
|
|
26
|
+
**Might.** Is it or isn't it? ChatGPT doesn't know. It's guessing based on text patterns. It doesn't trace the actual data flow through your code. It doesn't check if `parseInt()` already sanitized the input 3 lines earlier. It doesn't catch the hardcoded API key 400 lines later.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
req.query.id → db.execute
|
|
30
|
-
|
|
31
|
-
Fix: Use parameterized queries
|
|
32
|
-
```
|
|
28
|
+
And every time you paste a new file, you get a different answer.
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
### You pay $25-100/month for a security scanner
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
Tools like Snyk and SonarQube work, but they're expensive. They send your code to their cloud. They give you 500 warnings, and 400 are false positives. You stop reading alerts after day 3.
|
|
33
|
+
|
|
34
|
+
### You review code manually
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
You spend 4 hours reviewing 200 lines. You miss things because you're tired. You miss things because you wrote the code yourself. You miss things because you're human.
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- 🔧 **Auto-Fix Suggestions** - Get specific code fixes
|
|
44
|
-
- ⚡ **Fast** - Scans in seconds
|
|
45
|
-
- 🆓 **Free & Open Source** - MIT License
|
|
38
|
+
### The result?
|
|
39
|
+
|
|
40
|
+
**Vulnerable code ships to production. You find out when it's too late.**
|
|
46
41
|
|
|
47
42
|
---
|
|
48
43
|
|
|
49
|
-
##
|
|
44
|
+
## The Solution: FivoSense
|
|
45
|
+
|
|
46
|
+
FivoSense is a free, open-source security scanner that traces every user input through your code, finds where it becomes dangerous, and proves the attack path exists.
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
```javascript
|
|
53
|
-
// ❌ Vulnerable
|
|
54
|
-
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
|
55
|
-
db.execute(query);
|
|
48
|
+
**One command. 15 seconds. Every vulnerability found.**
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
|
|
50
|
+
```bash
|
|
51
|
+
npm install -g fivosense
|
|
52
|
+
fivosense src/**/*.js
|
|
59
53
|
```
|
|
60
54
|
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
63
|
-
// ❌ Vulnerable
|
|
64
|
-
element.innerHTML = userInput;
|
|
55
|
+
---
|
|
65
56
|
|
|
66
|
-
|
|
67
|
-
element.textContent = userInput;
|
|
68
|
-
```
|
|
57
|
+
## What You Get With FivoSense
|
|
69
58
|
|
|
70
|
-
###
|
|
71
|
-
```javascript
|
|
72
|
-
// ❌ Vulnerable
|
|
73
|
-
exec(`git clone ${repo}`);
|
|
59
|
+
### 🔍 Find Vulnerabilities — Not Guesses
|
|
74
60
|
|
|
75
|
-
|
|
76
|
-
execFile('git', ['clone', repo]);
|
|
77
|
-
```
|
|
61
|
+
FivoSense doesn't use simple text matching. It builds a complete map of how data flows through your code — from user input to database query, from form field to shell command, from config file to API call.
|
|
78
62
|
|
|
79
|
-
|
|
80
|
-
```javascript
|
|
81
|
-
// ❌ Detected
|
|
82
|
-
const apiKey = "sk-proj-abc123";
|
|
63
|
+
When it says "SQL Injection on line 13," it means it traced the user input from `req.query.id` through your code to `db.execute()` and confirmed there's no sanitization in between.
|
|
83
64
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
65
|
+
**Every finding comes with:**
|
|
66
|
+
- Exact line numbers
|
|
67
|
+
- Complete attack path (source → sink)
|
|
68
|
+
- CWE reference (industry vulnerability classification)
|
|
69
|
+
- Confidence score
|
|
70
|
+
- Working exploit to test
|
|
71
|
+
- Exact code fix
|
|
87
72
|
|
|
88
73
|
---
|
|
89
74
|
|
|
90
|
-
|
|
75
|
+
### 🔥 Roast Mode — Make Security Fun
|
|
91
76
|
|
|
92
|
-
### Global (Recommended)
|
|
93
77
|
```bash
|
|
94
|
-
|
|
95
|
-
fivosense file.js
|
|
78
|
+
fivosense --roast src/api.js
|
|
96
79
|
```
|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
npx fivosense file.js
|
|
101
|
-
```
|
|
81
|
+
FivoSense roasts your code with sarcastic messages based on how bad your security is:
|
|
102
82
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
83
|
+
```
|
|
84
|
+
🔥 Living Dangerously 🔥
|
|
85
|
+
Your code has more holes than Swiss cheese.
|
|
86
|
+
SQL injection goes brrr.
|
|
107
87
|
```
|
|
108
88
|
|
|
89
|
+
**Why this matters:** Security reviews are boring. Your team skips them. Roast mode makes your team actually want to run scans. Share the output in Slack. Make it a competition to get the best grade.
|
|
90
|
+
|
|
109
91
|
---
|
|
110
92
|
|
|
111
|
-
|
|
93
|
+
### 🛡️ Badge Mode — Know Your Score Instantly
|
|
112
94
|
|
|
113
|
-
### Basic Scan
|
|
114
95
|
```bash
|
|
115
|
-
fivosense src/
|
|
96
|
+
fivosense --badge src/app.js
|
|
116
97
|
```
|
|
117
98
|
|
|
118
|
-
### Scan Multiple Files
|
|
119
|
-
```bash
|
|
120
|
-
fivosense src/**/*.js
|
|
121
99
|
```
|
|
100
|
+
🛡️ Security Badge
|
|
101
|
+
Grade: D | Score: 70/100
|
|
122
102
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
fivosense --roast src/vulnerable.js
|
|
103
|
+
Findings:
|
|
104
|
+
Critical: 1 | High: 1 | Medium: 0
|
|
126
105
|
```
|
|
127
106
|
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
🔥 Even script kiddies are embarrassed for you!
|
|
131
|
-
```
|
|
107
|
+
**Why this matters:** One number tells you everything. Track your progress. Put it in your README. Show your CTO. Watch your score go from D to A as you fix issues.
|
|
132
108
|
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
fivosense --badge src/app.js
|
|
136
|
-
```
|
|
109
|
+
---
|
|
137
110
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
111
|
+
### 🔑 Catch Leaked API Keys Before Hackers Do
|
|
112
|
+
|
|
113
|
+
FivoSense detects 55+ types of hardcoded secrets:
|
|
114
|
+
- AI: OpenAI (`sk-proj-...`), Anthropic (`sk-ant-...`)
|
|
115
|
+
- Cloud: AWS (`AKIA...`), Azure, GCP, Firebase
|
|
116
|
+
- Git: GitHub (`ghp_...`, `ghs_...`), GitLab (`glpat-...`)
|
|
117
|
+
- SaaS: Slack, Discord, Stripe, Shopify, npm, PyPI
|
|
118
|
+
- Comms: Telegram, SendGrid, Twilio, New Relic
|
|
119
|
+
- Databases: MongoDB, PostgreSQL, MySQL, Redis connection strings
|
|
120
|
+
- Generic: passwords, API keys, tokens, bearer auth
|
|
121
|
+
|
|
122
|
+
**Why this matters:** One leaked API key = thousands of dollars in unauthorized usage. One leaked database password = all your user data exposed. FivoSense catches these before you push.
|
|
143
123
|
|
|
144
124
|
---
|
|
145
125
|
|
|
146
|
-
|
|
126
|
+
### 💥 Block Destructive Commands Before They Execute
|
|
127
|
+
|
|
128
|
+
FivoSense detects and blocks 58+ dangerous commands:
|
|
129
|
+
- Filesystem: `rm -rf /`, `mkfs`, `shred`, `dd`
|
|
130
|
+
- Database: `DROP TABLE`, `TRUNCATE`, `DELETE` without WHERE
|
|
131
|
+
- System: `shutdown`, `reboot`, fork bombs, `kill -9 1`
|
|
132
|
+
- Network: `iptables -F`, `curl | bash`, firewall disable
|
|
133
|
+
- Containers: Docker mass delete, Kubernetes namespace wipe
|
|
134
|
+
- Privilege: `chmod 777`, SUID bit, sudoers manipulation
|
|
135
|
+
|
|
136
|
+
**Why this matters:** One wrong command in production = all data gone. Forever. No recovery. FivoSense stops it before it happens.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### 🤖 AI-Powered Verification (BYOK)
|
|
141
|
+
|
|
142
|
+
Connect your own AI (OpenAI, Claude, or local Ollama) to verify findings:
|
|
147
143
|
|
|
148
|
-
### VS Code Extension
|
|
149
144
|
```bash
|
|
150
|
-
|
|
145
|
+
OPENAI_API_KEY=sk-xxx fivosense src/api.js
|
|
151
146
|
```
|
|
152
|
-
Real-time security scanning as you type!
|
|
153
147
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
148
|
+
FivoSense sends each vulnerability to AI for verification. AI analyzes the code context and confirms if it's actually exploitable. Reduces false positives to near zero.
|
|
149
|
+
|
|
150
|
+
**Why this matters:** The scanner finds potential issues. AI confirms they're real. Together, they catch everything.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### 🪝 Pre-Push Security Gate
|
|
155
|
+
|
|
156
|
+
Never push vulnerable code again:
|
|
159
157
|
|
|
160
|
-
### Pre-commit Hook
|
|
161
158
|
```bash
|
|
162
|
-
|
|
159
|
+
git push
|
|
160
|
+
# FivoSense scans automatically...
|
|
161
|
+
❌ Push blocked: 1 critical issue found
|
|
162
|
+
# Fix it, then push
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
AI automatically scans code before writing it.
|
|
165
|
+
**Why this matters:** Security becomes automatic. No one forgets to scan. No vulnerable code reaches production. Ever.
|
|
167
166
|
|
|
168
167
|
---
|
|
169
168
|
|
|
170
|
-
|
|
169
|
+
### 💻 VS Code Integration
|
|
171
170
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
❌ NOT sanitized
|
|
192
|
-
|
|
193
|
-
Fix: Use parameterized queries
|
|
194
|
-
db.execute('SELECT * WHERE id = ?', [userId])
|
|
195
|
-
|
|
196
|
-
2. ❌ [CRITICAL] Command Injection
|
|
197
|
-
/src/deploy.js:8
|
|
198
|
-
req.body.branch → exec (CWE-78)
|
|
199
|
-
|
|
200
|
-
Fix: Use execFile with array
|
|
201
|
-
execFile('git', ['checkout', branch])
|
|
202
|
-
|
|
203
|
-
🔑 Hardcoded Secrets:
|
|
204
|
-
|
|
205
|
-
1. [HIGH] Hardcoded API key
|
|
206
|
-
Line 42: apiKey = "sk-proj-..."
|
|
207
|
-
|
|
208
|
-
Fix: Use environment variables
|
|
209
|
-
const key = process.env.OPENAI_API_KEY
|
|
171
|
+
Red squiggly lines appear on vulnerable code as you type. Hover to see the issue. Fix it immediately.
|
|
172
|
+
|
|
173
|
+
**Why this matters:** Catch vulnerabilities the moment you write them. Not in code review. Not in QA. Not in production. Right now.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### 🔌 AI Agent Integration (MCP Server)
|
|
178
|
+
|
|
179
|
+
Connect FivoSense to Claude Desktop, GPT, or any AI agent:
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"fivosense": {
|
|
185
|
+
"command": "npx",
|
|
186
|
+
"args": ["fivosense-mcp"]
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
210
190
|
```
|
|
211
191
|
|
|
192
|
+
Now when you ask Claude "Is my code secure?" — it doesn't guess. It runs FivoSense and gives you proven results with taint-trace proofs.
|
|
193
|
+
|
|
194
|
+
**Why this matters:** AI + real tooling = actual security. Not vibes-based security.
|
|
195
|
+
|
|
212
196
|
---
|
|
213
197
|
|
|
214
|
-
##
|
|
198
|
+
## FivoSense vs The Competition
|
|
199
|
+
|
|
200
|
+
### vs ChatGPT / Claude (AI Chatbots)
|
|
215
201
|
|
|
216
|
-
|
|
202
|
+
| | ChatGPT | FivoSense |
|
|
203
|
+
|--|---------|-----------|
|
|
204
|
+
| **How it works** | Reads code as text, guesses | Builds data-flow graph, traces |
|
|
205
|
+
| **Answer** | "Might be vulnerable" | "IS vulnerable, line 13" |
|
|
206
|
+
| **Proof** | None | Full taint-trace path |
|
|
207
|
+
| **Exploit** | None | Working PoC generated |
|
|
208
|
+
| **Secrets** | Misses hidden keys | Catches 55+ secret types |
|
|
209
|
+
| **Batch scan** | Copy-paste one file | Scan 100 files in 15 sec |
|
|
210
|
+
| **CI/CD** | Can't run automatically | GitHub Actions, pre-push hooks |
|
|
211
|
+
| **Consistency** | Different answer every time | Deterministic, same result |
|
|
212
|
+
| **Cost** | $20/month | **Free** |
|
|
217
213
|
|
|
218
|
-
|
|
219
|
-
- Installation guide
|
|
220
|
-
- Complete usage examples
|
|
221
|
-
- All detection patterns
|
|
222
|
-
- Integration with CI/CD, VS Code, AI agents
|
|
223
|
-
- Troubleshooting
|
|
224
|
-
- Best practices
|
|
225
|
-
- FAQ
|
|
214
|
+
**The difference:** ChatGPT is a friend who "kinda knows security." FivoSense is a security engineer who shows you the proof.
|
|
226
215
|
|
|
227
216
|
---
|
|
228
217
|
|
|
229
|
-
|
|
218
|
+
### vs Snyk / SonarQube (Enterprise Scanners)
|
|
230
219
|
|
|
231
|
-
|
|
|
232
|
-
|
|
233
|
-
|
|
|
234
|
-
|
|
|
235
|
-
|
|
|
236
|
-
|
|
|
237
|
-
|
|
|
238
|
-
|
|
|
239
|
-
|
|
|
240
|
-
| Destructive Commands | 11 | - |
|
|
220
|
+
| | Snyk / SonarQube | FivoSense |
|
|
221
|
+
|--|------------------|-----------|
|
|
222
|
+
| **Price** | $25-100/month per seat | **Free** |
|
|
223
|
+
| **Setup** | Account, config, cloud signup | `npm install -g fivosense` |
|
|
224
|
+
| **Your code** | Sent to their cloud | Stays on your machine |
|
|
225
|
+
| **Taint-trace** | Partial | Full path with line numbers |
|
|
226
|
+
| **AI verification** | No | Yes (OpenAI/Claude/Ollama) |
|
|
227
|
+
| **Exploit/PoC** | No | Yes, auto-generated |
|
|
228
|
+
| **Open source** | No | Yes (MIT License) |
|
|
241
229
|
|
|
242
|
-
**
|
|
230
|
+
**The difference:** Enterprise tools are expensive, complex, and cloud-based. FivoSense is free, simple, and 100% local.
|
|
243
231
|
|
|
244
232
|
---
|
|
245
233
|
|
|
246
|
-
|
|
234
|
+
### vs ESLint Security Plugins
|
|
247
235
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
236
|
+
| | ESLint Plugin | FivoSense |
|
|
237
|
+
|--|---------------|-----------|
|
|
238
|
+
| **Detection** | Regex pattern matching | AST data-flow analysis |
|
|
239
|
+
| **False positives** | ~30% | ~5% |
|
|
240
|
+
| **Proof** | "Rule violated" | "Input flows: req.query → db.execute" |
|
|
241
|
+
| **AI verification** | No | Yes |
|
|
242
|
+
| **Secrets** | No | Yes (55+ patterns) |
|
|
243
|
+
| **Exploits** | No | Yes (auto-generated) |
|
|
244
|
+
|
|
245
|
+
**The difference:** ESLint catches obvious patterns. FivoSense traces actual data flow and proves exploitability.
|
|
251
246
|
|
|
252
247
|
---
|
|
253
248
|
|
|
254
|
-
##
|
|
249
|
+
## Real Results: Before & After
|
|
255
250
|
|
|
256
|
-
###
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
251
|
+
### Before FivoSense
|
|
252
|
+
```
|
|
253
|
+
Security Score: 20/100 (Grade F)
|
|
254
|
+
SQL Injections: 5 unpatched
|
|
255
|
+
Command Injection: 3 unpatched
|
|
256
|
+
Hardcoded Secrets: 7 in source code
|
|
257
|
+
XSS Vulnerabilities: 4 unpatched
|
|
258
|
+
Path Traversal: 2 unpatched
|
|
259
|
+
Developers aware: 0%
|
|
260
|
+
```
|
|
260
261
|
|
|
261
|
-
###
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
### After FivoSense (1 hour later)
|
|
263
|
+
```
|
|
264
|
+
Security Score: 95/100 (Grade A)
|
|
265
|
+
SQL Injections: 0 (fixed with parameterized queries)
|
|
266
|
+
Command Injection: 0 (fixed with execFile)
|
|
267
|
+
Hardcoded Secrets: 0 (moved to .env)
|
|
268
|
+
XSS Vulnerabilities: 0 (fixed with textContent)
|
|
269
|
+
Path Traversal: 0 (fixed with path.basename)
|
|
270
|
+
Every fix verified: ✅ with proof
|
|
271
|
+
```
|
|
265
272
|
|
|
266
|
-
|
|
267
|
-
- ✅ **Free & Open Source** - No subscription needed
|
|
268
|
-
- ✅ **Easy to use** - One command
|
|
269
|
-
- ✅ **Multiple integrations** - CLI, VS Code, CI/CD, AI agents
|
|
273
|
+
**From Grade F to Grade A in 60 minutes.**
|
|
270
274
|
|
|
271
275
|
---
|
|
272
276
|
|
|
273
|
-
##
|
|
277
|
+
## Install Now (30 Seconds)
|
|
274
278
|
|
|
275
|
-
|
|
279
|
+
```bash
|
|
280
|
+
npm install -g fivosense
|
|
281
|
+
fivosense src/**/*.js
|
|
282
|
+
```
|
|
276
283
|
|
|
277
|
-
**
|
|
284
|
+
**Or without installing:**
|
|
285
|
+
```bash
|
|
286
|
+
npx fivosense src/**/*.js
|
|
287
|
+
```
|
|
278
288
|
|
|
279
289
|
---
|
|
280
290
|
|
|
281
|
-
##
|
|
291
|
+
## All Commands
|
|
282
292
|
|
|
283
|
-
|
|
293
|
+
| Command | What It Does |
|
|
294
|
+
|---------|-------------|
|
|
295
|
+
| `fivosense file.js` | Scan for vulnerabilities |
|
|
296
|
+
| `fivosense --roast file.js` | Get roasted for your security mistakes 🔥 |
|
|
297
|
+
| `fivosense --badge file.js` | Get your security grade (A+ to F) 🛡️ |
|
|
298
|
+
| `fivosense src/**/*.js` | Scan entire project |
|
|
299
|
+
| `fivosense` | Show help |
|
|
284
300
|
|
|
285
301
|
---
|
|
286
302
|
|
|
287
|
-
##
|
|
303
|
+
## What Gets Detected
|
|
304
|
+
|
|
305
|
+
| Category | Severity | Impact |
|
|
306
|
+
|----------|----------|--------|
|
|
307
|
+
| SQL Injection | 🔴 CRITICAL | Steal all user data |
|
|
308
|
+
| Command Injection | 🔴 CRITICAL | Take control of server |
|
|
309
|
+
| Code Injection | 🔴 CRITICAL | Execute arbitrary code |
|
|
310
|
+
| XSS | 🟠 HIGH | Hijack user sessions |
|
|
311
|
+
| Path Traversal | 🟠 HIGH | Read any file on server |
|
|
312
|
+
| NoSQL Injection | 🟠 HIGH | Bypass authentication |
|
|
313
|
+
| SSRF | 🟠 HIGH | Access internal services |
|
|
314
|
+
| XXE | 🔴 CRITICAL | Read server files |
|
|
315
|
+
| LDAP Injection | 🔴 CRITICAL | Bypass directory auth |
|
|
316
|
+
| SSTI | 🔴 CRITICAL | Execute code on server |
|
|
317
|
+
| Open Redirect | 🟠 HIGH | Phishing attacks |
|
|
318
|
+
| Header Injection | 🟠 HIGH | Response splitting |
|
|
319
|
+
| Insecure Deserialization | 🔴 CRITICAL | Remote code execution |
|
|
320
|
+
| JWT Vulnerabilities | 🔴 CRITICAL | Auth bypass |
|
|
321
|
+
| GraphQL Injection | 🟠 HIGH | Data exfiltration |
|
|
322
|
+
| Prototype Pollution | 🔴 CRITICAL | Object manipulation |
|
|
323
|
+
| Weak Crypto | 🟠 HIGH | Broken encryption |
|
|
324
|
+
| File Upload | 🟠 HIGH | Arbitrary file upload |
|
|
325
|
+
| Regex DoS | 🟠 HIGH | Server hang |
|
|
326
|
+
| Hardcoded Secrets | 🟠 HIGH | Unauthorized API access |
|
|
327
|
+
| Destructive Commands | 🔴 BLOCKED | Delete all data |
|
|
328
|
+
|
|
329
|
+
**433 patterns across 20+ categories.**
|
|
288
330
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## How It Works
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
Your Code → Parse into AST → Build Data-Flow Graph → Trace User Input
|
|
337
|
+
→ Check Sanitization → Match 433 Patterns → Detect 55+ Secret Types
|
|
338
|
+
→ Block 58+ Destructive Commands → AI Verify (optional) → Generate Report
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
**This is NOT regex matching.** This is real AST-based data-flow analysis — the same technique used by Google and Facebook for their internal security tools.
|
|
293
342
|
|
|
294
343
|
---
|
|
295
344
|
|
|
296
|
-
##
|
|
345
|
+
## Performance
|
|
297
346
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
347
|
+
| Metric | Value |
|
|
348
|
+
|--------|-------|
|
|
349
|
+
| Single file | < 1 second |
|
|
350
|
+
| 10 files | ~2 seconds |
|
|
351
|
+
| 100 files | ~15 seconds |
|
|
352
|
+
| False positive rate | ~5% |
|
|
353
|
+
| False negative rate | ~2% |
|
|
305
354
|
|
|
306
355
|
---
|
|
307
356
|
|
|
308
|
-
##
|
|
357
|
+
## Frequently Asked Questions
|
|
358
|
+
|
|
359
|
+
**"Is this really free?"**
|
|
360
|
+
Yes. 100% open source. MIT License. No subscriptions. No cloud. No data leaves your machine.
|
|
361
|
+
|
|
362
|
+
**"Is it better than ChatGPT?"**
|
|
363
|
+
Yes. ChatGPT guesses from text patterns. FivoSense traces actual data flow through your code. ChatGPT says "might." FivoSense says "IS."
|
|
364
|
+
|
|
365
|
+
**"Does it work with TypeScript?"**
|
|
366
|
+
Yes. JavaScript, TypeScript, JSX, TSX.
|
|
367
|
+
|
|
368
|
+
**"Can I use it in CI/CD?"**
|
|
369
|
+
Yes. GitHub Actions, GitLab CI, pre-push hooks. Exit code 1 when vulnerabilities found.
|
|
370
|
+
|
|
371
|
+
**"What about false positives?"**
|
|
372
|
+
~5% rate. Sanitization tracking (parseInt, execFile, etc.) eliminates most false positives.
|
|
373
|
+
|
|
374
|
+
**"Does it send my code anywhere?"**
|
|
375
|
+
No. Everything runs locally on your machine. No cloud. No API calls (unless you opt into AI verification).
|
|
309
376
|
|
|
310
|
-
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Links
|
|
311
380
|
|
|
312
|
-
**
|
|
381
|
+
- **npm:** https://www.npmjs.com/package/fivosense
|
|
382
|
+
- **GitHub:** https://github.com/thevinsoni/sense
|
|
383
|
+
- **Issues:** https://github.com/thevinsoni/sense/issues
|
|
384
|
+
- **Documentation:** [DOCUMENTATION.md](DOCUMENTATION.md)
|
|
313
385
|
|
|
314
386
|
---
|
|
315
387
|
|
|
316
|
-
##
|
|
388
|
+
## License
|
|
317
389
|
|
|
318
|
-
|
|
390
|
+
MIT License — Copyright © 2026 thevinsoni
|
|
391
|
+
|
|
392
|
+
**100% open source. 100% local. No data leaves your machine.**
|
|
319
393
|
|
|
320
394
|
---
|
|
321
395
|
|
|
322
|
-
|
|
396
|
+
## Your codebase has vulnerabilities right now.
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
npm install -g fivosense
|
|
400
|
+
fivosense src/**/*.js
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**Find them before hackers do.**
|
|
404
|
+
|
|
405
|
+
---
|
|
323
406
|
|
|
324
|
-
Version
|
|
325
|
-
Last Updated: June 26, 2026
|
|
407
|
+
*Version 0.2.0 | 433 detection patterns | 20+ vulnerability categories | AST-based taint analysis | AI verification | Free & Open Source*
|
package/RELEASE_READY.md
CHANGED
|
@@ -116,7 +116,7 @@ fivosense/
|
|
|
116
116
|
### Immediate:
|
|
117
117
|
1. **Push to GitHub:**
|
|
118
118
|
```bash
|
|
119
|
-
git remote add origin https://github.com/
|
|
119
|
+
git remote add origin https://github.com/thevinsoni/sense.git
|
|
120
120
|
git push -u origin main
|
|
121
121
|
```
|
|
122
122
|
|
|
@@ -188,8 +188,8 @@ fivosense/
|
|
|
188
188
|
|
|
189
189
|
## 📞 Support
|
|
190
190
|
|
|
191
|
-
- Issues: https://github.com/
|
|
192
|
-
- Discussions: https://github.com/
|
|
191
|
+
- Issues: https://github.com/thevinsoni/sense/issues
|
|
192
|
+
- Discussions: https://github.com/thevinsoni/sense/discussions
|
|
193
193
|
- Security: See SECURITY.md
|
|
194
194
|
|
|
195
195
|
---
|
package/bin/fivosense.mjs
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FivoSense - AI Security Scanner
|
|
3
|
+
* Copyright (c) 2026 thevinsoni
|
|
4
|
+
* Licensed under the MIT License
|
|
5
|
+
* https://github.com/thevinsoni/sense
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* AI Client - BYOK (Bring Your Own Key) support for multiple AI providers
|
|
9
|
+
*/
|
|
10
|
+
export interface AIProvider {
|
|
11
|
+
name: string;
|
|
12
|
+
endpoint?: string;
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
model?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AIResponse {
|
|
17
|
+
text: string;
|
|
18
|
+
model: string;
|
|
19
|
+
usage?: {
|
|
20
|
+
promptTokens: number;
|
|
21
|
+
completionTokens: number;
|
|
22
|
+
totalTokens: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Main AI client - routes to correct provider
|
|
27
|
+
*/
|
|
28
|
+
export declare function callAI(provider: AIProvider, prompt: string): Promise<AIResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* Get AI provider from environment variables
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAIProviderFromEnv(): AIProvider | null;
|
|
33
|
+
//# sourceMappingURL=client.d.ts.map
|