mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-09 19:45:13 +02:00
- Introduced `patterns` module with language-specific vulnerability patterns. - Added `query_cache` utility for caching compiled queries. - Expanded `scan.rs` to support scanning multiple languages dynamically. - Updated `Cargo.toml` with additional tree-sitter dependencies. - Added severity filtering to `ScannerConfig` for better configuration.
34 lines
1.5 KiB
Rust
34 lines
1.5 KiB
Rust
use crate::patterns::{Pattern, Severity};
|
|
|
|
pub const PATTERNS: &[Pattern] = &[
|
|
Pattern {
|
|
id: "exec_command",
|
|
description: "os/exec Command construction",
|
|
query: "(call_expression function: (selector_expression field: (field_identifier) @f (#eq? @f \"Command\"))) @vuln",
|
|
severity: Severity::Medium,
|
|
},
|
|
Pattern {
|
|
id: "http_insecure_tls",
|
|
description: "&http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true}}",
|
|
query: "(composite_literal type: (selector_expression field: (field_identifier) @t (#eq? @t \"Transport\")) body: (literal_value (keyed_element key: (identifier) @k (#eq? @k \"TLSClientConfig\") value: (composite_literal body: (literal_value (keyed_element key: (identifier) @ik (#eq? @ik \"InsecureSkipVerify\") value: (true)))))) @vuln",
|
|
severity: Severity::High,
|
|
},
|
|
Pattern {
|
|
id: "unsafe_pointer",
|
|
description: "Use of unsafe.Pointer",
|
|
query: "(qualified_type type: (selector_expression field: (field_identifier) @f (#eq? @f \"Pointer\"))) @vuln",
|
|
severity: Severity::High,
|
|
},
|
|
Pattern {
|
|
id: "md5_sha1",
|
|
description: "crypto/md5 or crypto/sha1 usage",
|
|
query: "(call_expression function: (selector_expression object: (identifier) @pkg (#match? @pkg \"md5|sha1\"))) @vuln",
|
|
severity: Severity::Medium,
|
|
},
|
|
Pattern {
|
|
id: "hardcoded_secret",
|
|
description: "Hard-coded string that looks like an API key/token",
|
|
query: "(interpreted_string_literal) @s (#match? @s \"(?i)(api|secret|token|password)[=:]?[ \\t]*[A-Za-z0-9_\\-]{8,}\")",
|
|
severity: Severity::Low,
|
|
},
|
|
];
|