pub struct ItControlsGenerator { /* private fields */ }Expand description
Generates AccessLog and ChangeManagementRecord entries for ITGC testing.
Implementations§
Source§impl ItControlsGenerator
impl ItControlsGenerator
Sourcepub fn generate_access_logs(
&mut self,
employee_ids: &[(String, String)],
systems: &[String],
start_date: NaiveDate,
period_months: u32,
) -> Vec<AccessLog>
pub fn generate_access_logs( &mut self, employee_ids: &[(String, String)], systems: &[String], start_date: NaiveDate, period_months: u32, ) -> Vec<AccessLog>
Generate IT access logs for the given employees and systems.
Produces 10-30 log entries per employee per month with realistic distributions:
- Actions: login (60%), logout (25%), failed_login (5%), privilege_change (5%), data_export (5%)
- 80% of events during business hours (8am-6pm)
- Failed logins clustered in brute-force patterns (3-5 consecutive)
- IP addresses from internal 10.0.0.0/8 range
Sourcepub fn generate_change_records(
&mut self,
employee_ids: &[(String, String)],
systems: &[String],
start_date: NaiveDate,
period_months: u32,
) -> Vec<ChangeManagementRecord>
pub fn generate_change_records( &mut self, employee_ids: &[(String, String)], systems: &[String], start_date: NaiveDate, period_months: u32, ) -> Vec<ChangeManagementRecord>
Generate change management records for the given systems and period.
Produces 5-15 changes per month with realistic distributions:
- Types: config_change (30%), code_deployment (25%), patch (20%), access_change (15%), emergency_fix (10%)
- 90% have approval (10% gap = ITGC finding)
- 85% tested before deployment
- 95% have rollback plans
- Emergency fixes: lower approval/testing rates (realistic weakness)
Auto Trait Implementations§
impl !Freeze for ItControlsGenerator
impl RefUnwindSafe for ItControlsGenerator
impl Send for ItControlsGenerator
impl Sync for ItControlsGenerator
impl Unpin for ItControlsGenerator
impl UnsafeUnpin for ItControlsGenerator
impl UnwindSafe for ItControlsGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more