1use serde::{Deserialize, Serialize};
9use std::collections::HashMap;
10
11#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
13pub struct IocDatabase {
14 pub version: String,
15 pub last_updated: String,
16 pub c2_ips: Vec<String>,
17 pub malicious_domains: Vec<String>,
18 pub malicious_skill_hashes: HashMap<String, String>,
20 pub typosquat_patterns: Vec<String>,
21 pub dangerous_prerequisite_patterns: Vec<String>,
22 pub infostealer_artifacts: InfostealerArtifacts,
23}
24
25#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
26pub struct InfostealerArtifacts {
27 pub macos: Vec<String>,
28 pub linux: Vec<String>,
29}
30
31#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
33pub struct HashBaseline {
34 pub timestamp: String,
35 pub files: HashMap<String, String>,
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
41pub struct BaselineComparison {
42 pub added: Vec<String>,
43 pub modified: Vec<String>,
44 pub removed: Vec<String>,
45}