Skip to content

Commit 156c242

Browse files
author
wuerror
committed
update docs
1 parent e1d541a commit 156c242

1 file changed

Lines changed: 31 additions & 3 deletions

File tree

ARCHITECTURE.md

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,28 @@ graph TD
1616
User[User/Auditor] --> Launcher["Launcher (CLI)"]
1717
Launcher --> ConfigMgr[Config Manager]
1818
Launcher --> DiscoveryEngine["A. Asset Discovery Engine (Lightweight)"]
19-
Launcher --> TaintEngine["B. Taint Analysis Engine (Heavyweight)"]
19+
Launcher --> SecretScanner["B. Secret Scanner (Tactical)"]
20+
Launcher --> TaintEngine["C. Taint Analysis Engine (Heavyweight)"]
2021
2122
ConfigMgr --> |Load/Gen| Rules["Rules (yaml)"]
2223
2324
DiscoveryEngine --> |"Soot (Structure)"| JARs[Target JARs]
2425
DiscoveryEngine --> |Extract| APIDict["api.txt (Route Dict)"]
2526
DiscoveryEngine --> |Extract| ComponentDict["components.txt (SCA)"]
27+
28+
SecretScanner --> |"ASM/Regex"| JARs
29+
SecretScanner --> |"Scan Configs"| JARs
30+
SecretScanner --> |Export| Secrets["secrets.txt"]
2631
2732
TaintEngine --> |Input| APIDict
2833
TaintEngine --> |Input| ComponentDict
2934
TaintEngine --> |"Soot (SPARK/Jimple)"| JARs
3035
TaintEngine --> |Analyze| Vulnerabilities[Vulnerabilities]
3136
32-
Vulnerabilities --> ReportGen[Report Generator]
37+
Vulnerabilities --> Scorer[Vulnerability Scorer]
38+
Scorer --> |"R-S-A-C Model"| ScoredVulns[Scored Vulnerabilities]
39+
40+
ScoredVulns --> ReportGen[Report Generator]
3341
ReportGen --> |Export| SARIF["result.sarif"]
3442
```
3543

@@ -55,11 +63,31 @@ graph TD
5563
4. **Taint Engine (Heavyweight)**
5664
* **Technology**: Builds Pointer Analysis and Call Graph using Soot's `SPARK` or `CHA`.
5765
* **Strategy**: Uses **"Demand-Driven Analysis"**. Instead of analyzing the entire universe, it uses entry points from `api.txt` to build relevant call subgraphs, significantly reducing memory usage.
58-
* **Optimization**: Will utilize `components.txt` to skip analysis for safe library versions (e.g., skip Fastjson rules if version >= 1.2.83).
66+
* **Engine Update**: Now uses a **Worklist-based Engine** (Phase 7) to replace recursive analysis, preventing StackOverflow on deep chains.
67+
* **Optimization**:
68+
* **Leaf Summaries**: Caches summaries for leaf methods to avoid redundant analysis.
69+
* Utilizes `components.txt` to skip analysis for safe library versions.
5970

6071
5. **Report Generator**
6172
* **Goal**: Address Pain Point 5.
6273
* **Format**: Supports SARIF (Standard Static Analysis Results Interchange Format) v2.1.0, enabling direct integration with VSCode, GitHub Security, etc.
74+
* **Enhancement**: Includes risk levels (CRITICAL, HIGH, etc.) and numerical scores derived from the Vulnerability Scorer.
75+
76+
6. **Secret Scanner (Tactical)**
77+
* **Goal**: Provide immediate value by identifying hardcoded credentials (Phase 8.1).
78+
* **Technology**: Uses ASM for bytecode string extraction and Regex/Entropy analysis. Does not require heavy Soot analysis.
79+
* **Capabilities**:
80+
* **Config Scan**: Parses `application.properties/yml` inside JARs.
81+
* **String Scan**: Detects keys (AWS, JDBC) in constant pools.
82+
* **Entropy**: Identifies high-entropy strings (potential secrets).
83+
* **Base64**: Decodes and recursively scans Base64 strings.
84+
* **Context-Aware**: Detects hash usage (e.g., `token.equals("md5")`).
85+
86+
7. **Vulnerability Scorer**
87+
* **Goal**: Prioritize findings for security auditors (Phase 8.2).
88+
* **Model**: **R-S-A-C** (Reachability * Severity * Auth * Confidence).
89+
* **Auth Detection**: Heuristically identifies `@PreAuthorize`, `@Secured`, etc., to determine if a vulnerability is behind an authentication barrier.
90+
6391

6492
## 3. Technology Stack & Principles
6593

0 commit comments

Comments
 (0)