mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 11:36:05 +00:00
add dummy fixture
This commit is contained in:
@@ -0,0 +1,342 @@
|
||||
-- Development fixtures for the Delphi trace-rule editor and scanner.
|
||||
-- This file is idempotent and only replaces rows using the fixture namespace.
|
||||
|
||||
BEGIN;
|
||||
|
||||
DELETE FROM delphi_rule_effects
|
||||
WHERE rule_id IN (
|
||||
SELECT id
|
||||
FROM delphi_rules
|
||||
WHERE name LIKE '[DEV trace-rule fixture]%'
|
||||
);
|
||||
|
||||
DELETE FROM delphi_reports
|
||||
WHERE artifact_url = 'https://example.invalid/fixtures/delphi-trace-rules.json';
|
||||
|
||||
DELETE FROM delphi_rules
|
||||
WHERE name LIKE '[DEV trace-rule fixture]%';
|
||||
|
||||
WITH fixture_report AS (
|
||||
INSERT INTO delphi_reports (
|
||||
file_id,
|
||||
delphi_version,
|
||||
artifact_url,
|
||||
severity
|
||||
)
|
||||
VALUES (
|
||||
NULL,
|
||||
18,
|
||||
'https://example.invalid/fixtures/delphi-trace-rules.json',
|
||||
'malware'
|
||||
)
|
||||
RETURNING id
|
||||
), fixture_issues AS (
|
||||
INSERT INTO delphi_report_issues (report_id, issue_type)
|
||||
SELECT fixture_report.id, fixture_issue.issue_type
|
||||
FROM fixture_report
|
||||
CROSS JOIN (
|
||||
VALUES
|
||||
('OBFUSCATED_NAMES'),
|
||||
('SUSPICIOUS_NETWORK_ACCESS'),
|
||||
('RUNTIME_EXEC_USAGE'),
|
||||
('BUNDLED_LIBRARY'),
|
||||
('HARDCODED_URL'),
|
||||
('CRYPTO_MINING_SIGNATURE'),
|
||||
('CLASSLOADER_USAGE'),
|
||||
('NATIVE_LIBRARY_LOAD')
|
||||
) AS fixture_issue(issue_type)
|
||||
RETURNING id, issue_type
|
||||
)
|
||||
INSERT INTO delphi_report_issue_details (
|
||||
issue_id,
|
||||
key,
|
||||
jar,
|
||||
file_path,
|
||||
decompiled_source,
|
||||
data,
|
||||
severity
|
||||
)
|
||||
SELECT
|
||||
fixture_issues.id,
|
||||
fixture_detail.key,
|
||||
fixture_detail.jar,
|
||||
fixture_detail.file_path,
|
||||
fixture_detail.decompiled_source,
|
||||
fixture_detail.data,
|
||||
fixture_detail.severity::delphi_severity
|
||||
FROM fixture_issues
|
||||
INNER JOIN (
|
||||
VALUES
|
||||
(
|
||||
'OBFUSCATED_NAMES',
|
||||
'dev-trace-rules/obfuscation/known-bootstrap',
|
||||
'META-INF/jars/bootstrap.jar',
|
||||
'com/example/bootstrap/Bootstrap.class',
|
||||
'class Bootstrap { /* generated fixture */ }',
|
||||
'{"confidence": 0.99, "symbol_count": 58}'::jsonb,
|
||||
'high'
|
||||
),
|
||||
(
|
||||
'OBFUSCATED_NAMES',
|
||||
'dev-trace-rules/obfuscation/unknown-library',
|
||||
NULL,
|
||||
'com/example/internal/A.class',
|
||||
'class A { /* generated fixture */ }',
|
||||
'{"confidence": 0.71, "symbol_count": 240}'::jsonb,
|
||||
'high'
|
||||
),
|
||||
(
|
||||
'SUSPICIOUS_NETWORK_ACCESS',
|
||||
'dev-trace-rules/network/malware-host',
|
||||
NULL,
|
||||
'com/example/network/Backdoor.class',
|
||||
'class Backdoor { /* generated fixture */ }',
|
||||
'{"host": "evil.example", "port": 4444, "protocol": "tcp"}'::jsonb,
|
||||
'medium'
|
||||
),
|
||||
(
|
||||
'SUSPICIOUS_NETWORK_ACCESS',
|
||||
'dev-trace-rules/network/telemetry-host',
|
||||
NULL,
|
||||
'com/example/telemetry/TelemetryClient.class',
|
||||
'class TelemetryClient { /* generated fixture */ }',
|
||||
'{"host": "telemetry.example.com", "port": 443, "protocol": "https"}'::jsonb,
|
||||
'medium'
|
||||
),
|
||||
(
|
||||
'SUSPICIOUS_NETWORK_ACCESS',
|
||||
'dev-trace-rules/network/unmatched-host',
|
||||
NULL,
|
||||
'com/example/update/UpdateChecker.class',
|
||||
'class UpdateChecker { /* generated fixture */ }',
|
||||
'{"host": "api.github.com", "port": 443, "protocol": "https"}'::jsonb,
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'RUNTIME_EXEC_USAGE',
|
||||
'dev-trace-rules/runtime/powershell',
|
||||
NULL,
|
||||
'com/example/platform/WindowsHelper.class',
|
||||
'class WindowsHelper { /* generated fixture */ }',
|
||||
'{"command": "powershell.exe", "arguments": ["-EncodedCommand", "fixture"]}'::jsonb,
|
||||
'high'
|
||||
),
|
||||
(
|
||||
'RUNTIME_EXEC_USAGE',
|
||||
'dev-trace-rules/runtime/desktop-opener',
|
||||
NULL,
|
||||
'com/example/platform/DesktopBrowser.class',
|
||||
'class DesktopBrowser { /* generated fixture */ }',
|
||||
'{"command": "xdg-open", "arguments": ["https://example.com/docs"]}'::jsonb,
|
||||
'medium'
|
||||
),
|
||||
(
|
||||
'RUNTIME_EXEC_USAGE',
|
||||
'dev-trace-rules/runtime/unmatched-java',
|
||||
NULL,
|
||||
'com/example/launcher/JavaLauncher.class',
|
||||
'class JavaLauncher { /* generated fixture */ }',
|
||||
'{"command": "java", "arguments": ["-version"]}'::jsonb,
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'BUNDLED_LIBRARY',
|
||||
'dev-trace-rules/library/example-helper',
|
||||
'META-INF/jars/example-helper.jar',
|
||||
'com/example/helper/Helper.class',
|
||||
NULL,
|
||||
'{"library": "example-helper", "version": "1.0.0"}'::jsonb,
|
||||
'high'
|
||||
),
|
||||
(
|
||||
'BUNDLED_LIBRARY',
|
||||
'dev-trace-rules/library/kotlin-runtime',
|
||||
'META-INF/jars/kotlin-stdlib.jar',
|
||||
'kotlin/collections/CollectionsKt.class',
|
||||
NULL,
|
||||
'{"library": "kotlin-stdlib", "version": "2.1.0"}'::jsonb,
|
||||
'medium'
|
||||
),
|
||||
(
|
||||
'HARDCODED_URL',
|
||||
'dev-trace-rules/url/known-documentation',
|
||||
NULL,
|
||||
'com/example/help/DocumentationLink.class',
|
||||
'class DocumentationLink { /* generated fixture */ }',
|
||||
'{"url": "https://docs.example.com/help"}'::jsonb,
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'HARDCODED_URL',
|
||||
'dev-trace-rules/url/unmatched-webhook',
|
||||
NULL,
|
||||
'com/example/integration/WebhookClient.class',
|
||||
'class WebhookClient { /* generated fixture */ }',
|
||||
'{"url": "https://hooks.example.net/incoming"}'::jsonb,
|
||||
'medium'
|
||||
),
|
||||
(
|
||||
'CRYPTO_MINING_SIGNATURE',
|
||||
'dev-trace-rules/crypto/randomx-miner',
|
||||
NULL,
|
||||
'com/example/worker/NativeWorker.class',
|
||||
'class NativeWorker { /* generated fixture */ }',
|
||||
'{"algorithm": "randomx", "pool": "pool.example"}'::jsonb,
|
||||
'severe'
|
||||
),
|
||||
(
|
||||
'CLASSLOADER_USAGE',
|
||||
'dev-trace-rules/classloader/plugin-loader',
|
||||
'META-INF/jars/plugin-api.jar',
|
||||
'com/example/plugin/PluginLoader.class',
|
||||
'class PluginLoader { /* generated fixture */ }',
|
||||
'{"purpose": "plugin-discovery", "parent_first": true}'::jsonb,
|
||||
'high'
|
||||
),
|
||||
(
|
||||
'NATIVE_LIBRARY_LOAD',
|
||||
'dev-trace-rules/native/unmatched-jna',
|
||||
'META-INF/jars/jna.jar',
|
||||
'com/sun/jna/Native.class',
|
||||
NULL,
|
||||
'{"library": "jnidispatch", "platform": "linux-x86_64"}'::jsonb,
|
||||
'high'
|
||||
)
|
||||
) AS fixture_detail(
|
||||
issue_type,
|
||||
key,
|
||||
jar,
|
||||
file_path,
|
||||
decompiled_source,
|
||||
data,
|
||||
severity
|
||||
) USING (issue_type);
|
||||
|
||||
INSERT INTO delphi_rules (name, rule, priority, revision)
|
||||
VALUES
|
||||
(
|
||||
'[DEV trace-rule fixture] Escalate known malware host',
|
||||
'trace.issue_type == "SUSPICIOUS_NETWORK_ACCESS" && trace.data.host == "evil.example" ? {"severity": "malware"} : null',
|
||||
1000,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Escalate crypto-mining signatures',
|
||||
'trace.issue_type == "CRYPTO_MINING_SIGNATURE" && trace.data.algorithm == "randomx" ? {"severity": "malware"} : null',
|
||||
900,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Escalate encoded PowerShell',
|
||||
'trace.issue_type == "RUNTIME_EXEC_USAGE" && trace.data.command == "powershell.exe" ? {"severity": "severe"} : null',
|
||||
800,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Hide known-safe obfuscation',
|
||||
'trace.issue_type == "OBFUSCATED_NAMES" && trace.data.confidence >= 0.95 ? {"severity": "hidden"} : null',
|
||||
700,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Downgrade known telemetry',
|
||||
'trace.issue_type == "SUSPICIOUS_NETWORK_ACCESS" && trace.data.host == "telemetry.example.com" ? {"severity": "low"} : null',
|
||||
600,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Downgrade desktop URL openers',
|
||||
'trace.issue_type == "RUNTIME_EXEC_USAGE" && trace.data.command == "xdg-open" ? {"severity": "low"} : null',
|
||||
500,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Downgrade bundled libraries',
|
||||
'trace.issue_type == "BUNDLED_LIBRARY" ? {"severity": "low"} : null',
|
||||
400,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Hide documentation URLs',
|
||||
'trace.issue_type == "HARDCODED_URL" && trace.data.url == "https://docs.example.com/help" ? {"severity": "hidden"} : null',
|
||||
300,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Downgrade plugin classloaders',
|
||||
'trace.issue_type == "CLASSLOADER_USAGE" && trace.data.purpose == "plugin-discovery" ? {"severity": "low"} : null',
|
||||
200,
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1)
|
||||
),
|
||||
(
|
||||
'[DEV trace-rule fixture] Pending native-library exception',
|
||||
'trace.issue_type == "NATIVE_LIBRARY_LOAD" && trace.data.library == "jnidispatch" ? {"severity": "low"} : null',
|
||||
100,
|
||||
(SELECT revision + 1 FROM delphi_rule_revisions LIMIT 1)
|
||||
);
|
||||
|
||||
INSERT INTO delphi_rule_effects (revision, detail_id, rule_id, severity)
|
||||
SELECT
|
||||
(SELECT revision FROM delphi_rule_revisions LIMIT 1),
|
||||
detail.id,
|
||||
rule.id,
|
||||
fixture_effect.severity::delphi_severity
|
||||
FROM (
|
||||
VALUES
|
||||
(
|
||||
'dev-trace-rules/network/malware-host',
|
||||
'[DEV trace-rule fixture] Escalate known malware host',
|
||||
'malware'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/crypto/randomx-miner',
|
||||
'[DEV trace-rule fixture] Escalate crypto-mining signatures',
|
||||
'malware'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/runtime/powershell',
|
||||
'[DEV trace-rule fixture] Escalate encoded PowerShell',
|
||||
'severe'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/obfuscation/known-bootstrap',
|
||||
'[DEV trace-rule fixture] Hide known-safe obfuscation',
|
||||
'hidden'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/network/telemetry-host',
|
||||
'[DEV trace-rule fixture] Downgrade known telemetry',
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/runtime/desktop-opener',
|
||||
'[DEV trace-rule fixture] Downgrade desktop URL openers',
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/library/example-helper',
|
||||
'[DEV trace-rule fixture] Downgrade bundled libraries',
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/library/kotlin-runtime',
|
||||
'[DEV trace-rule fixture] Downgrade bundled libraries',
|
||||
'low'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/url/known-documentation',
|
||||
'[DEV trace-rule fixture] Hide documentation URLs',
|
||||
'hidden'
|
||||
),
|
||||
(
|
||||
'dev-trace-rules/classloader/plugin-loader',
|
||||
'[DEV trace-rule fixture] Downgrade plugin classloaders',
|
||||
'low'
|
||||
)
|
||||
) AS fixture_effect(detail_key, rule_name, severity)
|
||||
INNER JOIN delphi_report_issue_details detail
|
||||
ON detail.key = fixture_effect.detail_key
|
||||
INNER JOIN delphi_rules rule
|
||||
ON rule.name = fixture_effect.rule_name;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user