log-analysis (not complete)
Rust library designed for extracting relevant information from zeek logs.
Installation
cargo add log-analysis
Usage
Return an overview of that day:
// Data format returned:
//struct Data
//{
// ip_address: String,
// frequency: usize,
// connection_uids: Vec<UID>,
// protocols: Vec<String>,
// time_ranges: HashMap<String, u32>,
// file_info: Vec<HashMap<String,String>>,
// conn_state: Vec::<String>,
// history: Vec::<String>,
// dports: Vec<u16>,
// country: Option<String>, //ip2loc
// city: Option<String>, // ip2loc
// isp: Option<String>, // ip2loc
// malicious: bool, // virustotal?
// bytes_transferred: u64,
// related_ips: Vec<String>,
//}
let params = default
.path_prefix
.start_date
.build
.unwrap;
let mut log = new;
let res = log.search; // Ok(())
assert_eq!);
assert_eq!
let serialized = to_string;
assert!;
Return specific data(fails tests, issue exists):
let params = default
.path_prefix
.start_date
.src_ip
.proto_type
.build
.unwrap;
let mut log = new;
let res = log.search; // Ok(())
assert_eq!);
assert_eq!
let serialized = to_string;
assert!;
Testing
Testing is straightforward. Tests located in tests/. Test-case addtions welcomed in PRs.
Performance
# Requires flamegraph and perf
# Repo: https://github.com/flamegraph-rs/flamegraph
Contributing
Contributions are welcome! Please submit pull requests or open issues to improve the library.
License
This project is licensed under the MIT License. See the LICENSE file for details.