Agent SYMBOLS_p39 - grisuno/LazyOwn GitHub Wiki
Symbols (page 39 of 41)
Previous: SYMBOLS_p38.md
| Symbol | Kind | File:Line | Signature |
|---|---|---|---|
test_invalid_body_report_json |
method | tests/test_report_banners_endpoints.py:281 |
def test_invalid_body_report_json(self, tmp_path) |
test_invalid_json |
method | tests/test_report_banners_endpoints.py:157 |
def test_invalid_json(self, tmp_path) |
test_invalid_json |
method | tests/test_report_banners_endpoints.py:357 |
def test_invalid_json(self, tmp_path) |
test_invalid_json_session |
method | tests/test_report_banners_endpoints.py:249 |
def test_invalid_json_session(self, tmp_path) |
test_invalid_tool_file_does_not_crash |
method | tests/test_report_banners_endpoints.py:326 |
def test_invalid_tool_file_does_not_crash(self, tmp_path) |
test_list_json |
method | tests/test_report_banners_endpoints.py:362 |
def test_list_json(self, tmp_path) |
test_missing_body_report |
method | tests/test_report_banners_endpoints.py:271 |
def test_missing_body_report(self, tmp_path) |
test_missing_keys_does_not_crash |
method | tests/test_report_banners_endpoints.py:191 |
def test_missing_keys_does_not_crash(self) |
test_missing_session_file |
method | tests/test_report_banners_endpoints.py:261 |
def test_missing_session_file(self, tmp_path) |
test_missing_tools_dir |
method | tests/test_report_banners_endpoints.py:316 |
def test_missing_tools_dir(self, tmp_path) |
test_session_data_as_list |
method | tests/test_report_banners_endpoints.py:293 |
def test_session_data_as_list(self, tmp_path) |
test_valid_data |
method | tests/test_report_banners_endpoints.py:204 |
def test_valid_data(self) |
test_valid_files |
method | tests/test_report_banners_endpoints.py:220 |
def test_valid_files(self, tmp_path) |
test_valid_json |
method | tests/test_report_banners_endpoints.py:344 |
def test_valid_json(self, tmp_path) |
TestRequireGuards |
class | tests/test_require_guards.py:21 |
class TestRequireGuards |
test_equivalent_to_checkers_on_present_values |
method | tests/test_require_guards.py:41 |
def test_equivalent_to_checkers_on_present_values(self, capsys) |
test_invalid_values_rejected |
method | tests/test_require_guards.py:35 |
def test_invalid_values_rejected(self, capsys) |
test_missing_keys_fail_closed_without_keyerror |
method | tests/test_require_guards.py:29 |
def test_missing_keys_fail_closed_without_keyerror(self, capsys) |
test_present_valid_values_pass |
method | tests/test_require_guards.py:22 |
def test_present_valid_values_pass(self, capsys) |
TestResourceScript |
class | tests/test_resource_script.py:10 |
class TestResourceScript |
_execute |
method | tests/test_resource_script.py:14 |
def _execute(script) |
test_break |
method | tests/test_resource_script.py:197 |
def test_break(self) |
test_builtin_timestamp |
method | tests/test_resource_script.py:53 |
def test_builtin_timestamp(self) |
test_comment |
method | tests/test_resource_script.py:219 |
def test_comment(self) |
test_continue |
method | tests/test_resource_script.py:208 |
def test_continue(self) |
test_dry_run_mode |
method | tests/test_resource_script.py:116 |
def test_dry_run_mode(self) |
test_eval_condition_contains |
method | tests/test_resource_script.py:91 |
def test_eval_condition_contains(self) |
test_eval_condition_defined |
method | tests/test_resource_script.py:97 |
def test_eval_condition_defined(self) |
test_eval_condition_equals |
method | tests/test_resource_script.py:66 |
def test_eval_condition_equals(self) |
test_eval_condition_fallback_falsy |
method | tests/test_resource_script.py:104 |
def test_eval_condition_fallback_falsy(self) |
test_eval_condition_fallback_truthy |
method | tests/test_resource_script.py:110 |
def test_eval_condition_fallback_truthy(self) |
test_eval_condition_not_equals |
method | tests/test_resource_script.py:72 |
def test_eval_condition_not_equals(self) |
test_eval_condition_numeric |
method | tests/test_resource_script.py:83 |
def test_eval_condition_numeric(self) |
test_eval_condition_regex |
method | tests/test_resource_script.py:77 |
def test_eval_condition_regex(self) |
test_for_loop |
method | tests/test_resource_script.py:170 |
def test_for_loop(self) |
test_for_loop_empty |
method | tests/test_resource_script.py:178 |
def test_for_loop_empty(self) |
test_if_else_endif_false |
method | tests/test_resource_script.py:153 |
def test_if_else_endif_false(self) |
test_if_else_endif_true |
method | tests/test_resource_script.py:143 |
def test_if_else_endif_true(self) |
test_macro_and_call |
method | tests/test_resource_script.py:228 |
def test_macro_and_call(self) |
test_nested_if |
method | tests/test_resource_script.py:267 |
def test_nested_if(self) |
test_resolve_unresolved |
method | tests/test_resource_script.py:60 |
def test_resolve_unresolved(self) |
test_set_and_echo |
method | tests/test_resource_script.py:163 |
def test_set_and_echo(self) |
test_set_and_get |
method | tests/test_resource_script.py:25 |
def test_set_and_get(self) |
test_setg_and_get |
method | tests/test_resource_script.py:31 |
def test_setg_and_get(self) |
test_skip_depth |
method | tests/test_resource_script.py:125 |
def test_skip_depth(self) |
test_spool |
method | tests/test_resource_script.py:238 |
def test_spool(self, tmp_path) |
test_undefined_macro_raises |
method | tests/test_resource_script.py:253 |
def test_undefined_macro_raises(self) |
test_unset_removes_var |
method | tests/test_resource_script.py:37 |
def test_unset_removes_var(self) |
test_unset_variable |
method | tests/test_resource_script.py:258 |
def test_unset_variable(self) |
test_var_substitution |
method | tests/test_resource_script.py:46 |
def test_var_substitution(self) |
test_while_loop |
method | tests/test_resource_script.py:187 |
def test_while_loop(self) |
test_console_never_forces_color |
function | tests/test_safe_console.py:41 |
def test_console_never_forces_color() |
test_glyphs_degrade_to_ascii |
function | tests/test_safe_console.py:20 |
def test_glyphs_degrade_to_ascii(monkeypatch) |
test_glyphs_unicode_on_utf8 |
function | tests/test_safe_console.py:32 |
def test_glyphs_unicode_on_utf8(monkeypatch, capsys) |
test_panel_box_ascii_fallback |
function | tests/test_safe_console.py:52 |
def test_panel_box_ascii_fallback(monkeypatch) |
TestRunArgv |
class | tests/test_safe_subprocess.py:35 |
class TestRunArgv |
TestRunShellAllowed |
class | tests/test_safe_subprocess.py:71 |
class TestRunShellAllowed |
TestRunShellDefaultDeny |
class | tests/test_safe_subprocess.py:53 |
class TestRunShellDefaultDeny |
test_allowed_executes |
method | tests/test_safe_subprocess.py:74 |
def test_allowed_executes(self) |
test_allowed_is_audited |
method | tests/test_safe_subprocess.py:84 |
def test_allowed_is_audited(self, tmp_path) |
test_default_deny_raises |
method | tests/test_safe_subprocess.py:56 |
def test_default_deny_raises(self) |
test_deny_audit_logged |
method | tests/test_safe_subprocess.py:61 |
def test_deny_audit_logged(self, tmp_path) |
test_empty_reason_rejected |
method | tests/test_safe_subprocess.py:94 |
def test_empty_reason_rejected(self) |
test_failed_command_returns_nonzero |
method | tests/test_safe_subprocess.py:99 |
def test_failed_command_returns_nonzero(self) |
test_run_does_not_audit |
method | tests/test_safe_subprocess.py:46 |
def test_run_does_not_audit(self, tmp_path) |
test_run_returns_completed_result |
method | tests/test_safe_subprocess.py:38 |
def test_run_returns_completed_result(self) |
test_given_argv_when_run_then_executes_without_audit |
function | tests/test_safe_subprocess_behavior.py:12 |
def test_given_argv_when_run_then_executes_without_audit(tmp_path) |
test_given_shell_with_allow_and_reason_when_called_then_executes |
function | tests/test_safe_subprocess_behavior.py:36 |
def test_given_shell_with_allow_and_reason_when_called_then_executes(tmp_path) |
test_given_shell_without_allow_when_called_then_denied |
function | tests/test_safe_subprocess_behavior.py:22 |
def test_given_shell_without_allow_when_called_then_denied(tmp_path) |
test_c01_allow_passthrough_and_audit |
function | tests/test_safety_gates.py:19 |
def test_c01_allow_passthrough_and_audit() |
test_c01_builtin_rules_block_destructive |
function | tests/test_safety_gates.py:10 |
def test_c01_builtin_rules_block_destructive() |
test_c01_daemon_gate_blocks_denied_command |
function | tests/test_safety_gates.py:44 |
def test_c01_daemon_gate_blocks_denied_command() |
test_c01_deny_rule_and_expiry |
function | tests/test_safety_gates.py:29 |
def test_c01_deny_rule_and_expiry() |
test_c02_path_traversal_blocked |
function | tests/test_safety_gates.py:67 |
def test_c02_path_traversal_blocked(tmp_path) |
test_c02_record_query_roundtrip |
function | tests/test_safety_gates.py:54 |
def test_c02_record_query_roundtrip(tmp_path) |
test_c03_put_get_and_gc |
function | tests/test_safety_gates.py:78 |
def test_c03_put_get_and_gc(tmp_path) |
test_c03_tamper_detected |
function | tests/test_safety_gates.py:100 |
def test_c03_tamper_detected(tmp_path) |
TestAutoEngageWiring |
class | tests/test_scope_bound_auto_gate.py:183 |
class TestAutoEngageWiring |
TestDefaultScopePredicate |
class | tests/test_scope_bound_auto_gate.py:148 |
class TestDefaultScopePredicate |
TestFailClosedAutonomy |
class | tests/test_scope_bound_auto_gate.py:252 |
class TestFailClosedAutonomy |
TestScopeBoundAutoGate |
class | tests/test_scope_bound_auto_gate.py:49 |
class TestScopeBoundAutoGate |
_CountingRunner |
class | tests/test_scope_bound_auto_gate.py:237 |
class _CountingRunner |
_SpyOrchestrator |
class | tests/test_scope_bound_auto_gate.py:192 |
class _SpyOrchestrator |
_SpyOrchestrator |
class | tests/test_scope_bound_auto_gate.py:211 |
class _SpyOrchestrator |
__init__ |
method | tests/test_scope_bound_auto_gate.py:193 |
def __init__(self, target, max_switches_per_step, approval_gate) |
__init__ |
method | tests/test_scope_bound_auto_gate.py:212 |
def __init__(self, target, max_switches_per_step, approval_gate) |
__init__ |
method | tests/test_scope_bound_auto_gate.py:240 |
def __init__(self) |
_boom |
function | tests/test_scope_bound_auto_gate.py:172 |
def _boom(target, entries) |
_explode |
function | tests/test_scope_bound_auto_gate.py:227 |
def _explode() |
_gate |
function | tests/test_scope_bound_auto_gate.py:39 |
def _gate(tmp_path, data, in_scope_fn) |
_write_payload |
function | tests/test_scope_bound_auto_gate.py:32 |
def _write_payload(tmp_path, data) |
name |
method | tests/test_scope_bound_auto_gate.py:248 |
def name(self) |
run |
method | tests/test_scope_bound_auto_gate.py:197 |
def run(self) |
run |
method | tests/test_scope_bound_auto_gate.py:216 |
def run(self) |
run |
method | tests/test_scope_bound_auto_gate.py:243 |
def run(self, command, timeout) |
temp_engagement |
method | tests/test_scope_bound_auto_gate.py:256 |
def temp_engagement(self, tmp_path) |
test_approves_in_scope_under_enforce |
method | tests/test_scope_bound_auto_gate.py:69 |
def test_approves_in_scope_under_enforce(self, tmp_path) |
test_auto_wires_scope_bound_gate_and_chains_report |
method | tests/test_scope_bound_auto_gate.py:186 |
def test_auto_wires_scope_bound_gate_and_chains_report(self, monkeypatch) |
test_default_enforcement_is_warn |
method | tests/test_scope_bound_auto_gate.py:103 |
def test_default_enforcement_is_warn(self, tmp_path) |
test_default_predicate_matches_cidr |
method | tests/test_scope_bound_auto_gate.py:151 |
def test_default_predicate_matches_cidr(self, tmp_path) |
test_denies_out_of_scope_under_enforce |
method | tests/test_scope_bound_auto_gate.py:79 |
def test_denies_out_of_scope_under_enforce(self, tmp_path) |
test_dormant_when_enforcement_off |
method | tests/test_scope_bound_auto_gate.py:61 |
def test_dormant_when_enforcement_off(self, tmp_path) |
test_dormant_when_scope_empty |
method | tests/test_scope_bound_auto_gate.py:52 |
def test_dormant_when_scope_empty(self, tmp_path) |
test_honours_approval_gate_interface |
method | tests/test_scope_bound_auto_gate.py:140 |
def test_honours_approval_gate_interface(self, tmp_path) |
test_in_scope_fails_closed_on_predicate_error |
method | tests/test_scope_bound_auto_gate.py:169 |
def test_in_scope_fails_closed_on_predicate_error(self, tmp_path) |
test_in_scope_target_executes_steps |
method | tests/test_scope_bound_auto_gate.py:289 |
def test_in_scope_target_executes_steps(self, temp_engagement) |
test_maybe_generate_report_is_best_effort |
method | tests/test_scope_bound_auto_gate.py:224 |
def test_maybe_generate_report_is_best_effort(self, monkeypatch) |
test_missing_payload_is_dormant |
method | tests/test_scope_bound_auto_gate.py:123 |
def test_missing_payload_is_dormant(self, tmp_path) |
test_never_blocks_returns_synchronously |
method | tests/test_scope_bound_auto_gate.py:129 |
def test_never_blocks_returns_synchronously(self, tmp_path) |
test_non_auto_uses_default_gate_and_no_report |
method | tests/test_scope_bound_auto_gate.py:206 |
def test_non_auto_uses_default_gate_and_no_report(self, monkeypatch) |
test_normalize_scope_drops_blanks |
method | tests/test_scope_bound_auto_gate.py:160 |
def test_normalize_scope_drops_blanks(self) |
test_out_of_scope_denies_all_steps_runner_never_called |
method | tests/test_scope_bound_auto_gate.py:274 |
def test_out_of_scope_denies_all_steps_runner_never_called(self, temp_engagement) |
test_reads_payload_at_request_time |
method | tests/test_scope_bound_auto_gate.py:111 |
def test_reads_payload_at_request_time(self, tmp_path) |
test_warns_but_approves_out_of_scope |
method | tests/test_scope_bound_auto_gate.py:92 |
def test_warns_but_approves_out_of_scope(self, tmp_path) |
TestBuildOffensiveCommands |
class | tests/test_scope_guard.py:119 |
class TestBuildOffensiveCommands |
TestNormalizeScope |
class | tests/test_scope_guard.py:53 |
class TestNormalizeScope |
TestOffensiveCategoryDrift |
class | tests/test_scope_guard.py:210 |
class TestOffensiveCategoryDrift |
TestScopeExemptions |
class | tests/test_scope_guard.py:194 |
class TestScopeExemptions |
TestScopeGuardEvaluate |
class | tests/test_scope_guard.py:140 |
class TestScopeGuardEvaluate |
TestScopeMode |
class | tests/test_scope_guard.py:33 |
class TestScopeMode |
TestTargetInScope |
class | tests/test_scope_guard.py:80 |
class TestTargetInScope |
_guard |
function | tests/test_scope_guard.py:135 |
def _guard(scope, mode, offensive_names) |
boom |
function | tests/test_scope_guard.py:180 |
def boom(_name) |
test_bare_ip_match |
method | tests/test_scope_guard.py:90 |
def test_bare_ip_match(self) |
test_bare_ip_mismatch |
method | tests/test_scope_guard.py:93 |
def test_bare_ip_mismatch(self) |
test_benign_command_allowed |
method | tests/test_scope_guard.py:151 |
def test_benign_command_allowed(self) |
test_blank_entries_ignored |
method | tests/test_scope_guard.py:115 |
def test_blank_entries_ignored(self) |
test_categories_exist_in_utils |
method | tests/test_scope_guard.py:213 |
def test_categories_exist_in_utils(self) |
test_classifier_exception_fails_open |
method | tests/test_scope_guard.py:179 |
def test_classifier_exception_fails_open(self) |
test_comma_separated_string |
method | tests/test_scope_guard.py:67 |
def test_comma_separated_string(self) |
test_decision_is_value_object |
method | tests/test_scope_guard.py:187 |
def test_decision_is_value_object(self) |
test_empty |
method | tests/test_scope_guard.py:131 |
def test_empty(self) |
test_empty_string |
method | tests/test_scope_guard.py:73 |
def test_empty_string(self) |
test_empty_target |
method | tests/test_scope_guard.py:81 |
def test_empty_target(self) |
test_empty_target_allowed |
method | tests/test_scope_guard.py:156 |
def test_empty_target_allowed(self) |
test_exact_hostname |
method | tests/test_scope_guard.py:96 |
def test_exact_hostname(self) |
test_exempt_command_allowed_out_of_scope |
method | tests/test_scope_guard.py:197 |
def test_exempt_command_allowed_out_of_scope(self) |
test_exempt_set_covers_offensive_operational_surfaces |
method | tests/test_scope_guard.py:203 |
def test_exempt_set_covers_offensive_operational_surfaces(self) |
test_from_value_passthrough |
method | tests/test_scope_guard.py:34 |
def test_from_value_passthrough(self) |
test_from_value_strings |
method | tests/test_scope_guard.py:45 |
def test_from_value_strings(self, raw, expected) |
test_hostname_not_in_cidr |
method | tests/test_scope_guard.py:106 |
def test_hostname_not_in_cidr(self) |
test_in_scope_allowed |
method | tests/test_scope_guard.py:160 |
def test_in_scope_allowed(self) |
test_ip_in_cidr |
method | tests/test_scope_guard.py:84 |
def test_ip_in_cidr(self) |
test_ip_not_matched_by_hostname_entry |
method | tests/test_scope_guard.py:109 |
def test_ip_not_matched_by_hostname_entry(self) |
test_ip_outside_cidr |
method | tests/test_scope_guard.py:87 |
def test_ip_outside_cidr(self) |
test_ipv6_in_cidr |
method | tests/test_scope_guard.py:112 |
def test_ipv6_in_cidr(self) |
test_json_array_string |
method | tests/test_scope_guard.py:64 |
def test_json_array_string(self) |
test_list |
method | tests/test_scope_guard.py:57 |
def test_list(self) |
test_mode_off_is_noop |
method | tests/test_scope_guard.py:141 |
def test_mode_off_is_noop(self) |
test_no_scope_allows |
method | tests/test_scope_guard.py:146 |
def test_no_scope_allows(self) |
test_none |
method | tests/test_scope_guard.py:54 |
def test_none(self) |
test_out_of_scope_enforce_blocks |
method | tests/test_scope_guard.py:172 |
def test_out_of_scope_enforce_blocks(self) |
test_out_of_scope_warn_allows_with_reason |
method | tests/test_scope_guard.py:165 |
def test_out_of_scope_warn_allows_with_reason(self) |
test_selects_offensive_only |
method | tests/test_scope_guard.py:120 |
def test_selects_offensive_only(self) |
test_space_separated_string |
method | tests/test_scope_guard.py:70 |
def test_space_separated_string(self) |
test_subdomain_match |
method | tests/test_scope_guard.py:99 |
def test_subdomain_match(self) |
test_tuple_and_set |
method | tests/test_scope_guard.py:60 |
def test_tuple_and_set(self) |
test_unknown_defaults_to_warn |
method | tests/test_scope_guard.py:49 |
def test_unknown_defaults_to_warn(self, raw) |
test_unsupported_type |
method | tests/test_scope_guard.py:76 |
def test_unsupported_type(self) |
test_wildcard_match |
method | tests/test_scope_guard.py:102 |
def test_wildcard_match(self) |
TestOffensiveClassificationIsBuilt |
class | tests/test_scope_guard_integration.py:138 |
class TestOffensiveClassificationIsBuilt |
TestResolveOffensive |
class | tests/test_scope_guard_integration.py:41 |
class TestResolveOffensive |
TestScopeCheck |
class | tests/test_scope_guard_integration.py:59 |
class TestScopeCheck |
TestScopeConfirmNonInteractive |
class | tests/test_scope_guard_integration.py:120 |
class TestScopeConfirmNonInteractive |
TestScopeEntries |
class | tests/test_scope_guard_integration.py:128 |
class TestScopeEntries |
_do_benign |
function | tests/test_scope_guard_integration.py:147 |
def _do_benign() |
_do_offensive |
function | tests/test_scope_guard_integration.py:144 |
def _do_offensive() |
_make_stub |
function | tests/test_scope_guard_integration.py:28 |
def _make_stub(params, offensive, aliases, confirm) |
test_alias_to_benign |
method | tests/test_scope_guard_integration.py:54 |
def test_alias_to_benign(self) |
test_alias_to_offensive |
method | tests/test_scope_guard_integration.py:50 |
def test_alias_to_offensive(self) |
test_benign |
method | tests/test_scope_guard_integration.py:46 |
def test_benign(self) |
test_benign_command_allows |
method | tests/test_scope_guard_integration.py:74 |
def test_benign_command_allows(self) |
test_build_offensive_from_categories |
method | tests/test_scope_guard_integration.py:139 |
def test_build_offensive_from_categories(self) |
test_direct_offensive |
method | tests/test_scope_guard_integration.py:42 |
def test_direct_offensive(self) |
test_enforce_mode_blocks_out_of_scope |
method | tests/test_scope_guard_integration.py:88 |
def test_enforce_mode_blocks_out_of_scope(self) |
test_enforce_mode_confirmation_allows |
method | tests/test_scope_guard_integration.py:96 |
def test_enforce_mode_confirmation_allows(self) |
test_in_scope_allows |
method | tests/test_scope_guard_integration.py:67 |
def test_in_scope_allows(self) |
test_malformed_params_fail_open |
method | tests/test_scope_guard_integration.py:111 |
def test_malformed_params_fail_open(self) |
test_no_scope_allows |
method | tests/test_scope_guard_integration.py:60 |
def test_no_scope_allows(self) |
test_non_tty_refuses |
method | tests/test_scope_guard_integration.py:121 |
def test_non_tty_refuses(self, monkeypatch) |
test_normalizes_list |
method | tests/test_scope_guard_integration.py:129 |
def test_normalizes_list(self) |
test_normalizes_string |
method | tests/test_scope_guard_integration.py:133 |
def test_normalizes_string(self) |
test_off_mode_allows |
method | tests/test_scope_guard_integration.py:104 |
def test_off_mode_allows(self) |
test_warn_mode_allows_out_of_scope |
method | tests/test_scope_guard_integration.py:81 |
def test_warn_mode_allows_out_of_scope(self, capsys) |
FakeSock |
class | tests/test_security_alerts_fix.py:82 |
class FakeSock |
_response_calls_with_raw_exception |
function | tests/test_security_alerts_fix.py:277 |
def _response_calls_with_raw_exception(tree) |
close |
method | tests/test_security_alerts_fix.py:83 |
def close(self) |
fake_create_connection |
function | tests/test_security_alerts_fix.py:86 |
def fake_create_connection(address, timeout) |
test_activity_and_trace_scrubbed |
function | tests/test_security_alerts_fix.py:158 |
def test_activity_and_trace_scrubbed(tmp_path) |
test_c2_responses_never_carry_raw_exceptions |
function | tests/test_security_alerts_fix.py:305 |
def test_c2_responses_never_carry_raw_exceptions() |
test_emoji_detector_without_broad_ranges |
function | tests/test_security_alerts_fix.py:242 |
def test_emoji_detector_without_broad_ranges() |
test_get_output_logs_type_only |
function | tests/test_security_alerts_fix.py:338 |
def test_get_output_logs_type_only() |
test_goal_edit_scrubs_text |
function | tests/test_security_alerts_fix.py:382 |
def test_goal_edit_scrubs_text(tmp_path) |
test_graph_nodes_scrubbed_before_persist |
function | tests/test_security_alerts_fix.py:360 |
def test_graph_nodes_scrubbed_before_persist(tmp_path) |
test_loot_secret_sealed_roundtrip |
function | tests/test_security_alerts_fix.py:147 |
def test_loot_secret_sealed_roundtrip() |
test_path_helpers_block_traversal |
function | tests/test_security_alerts_fix.py:195 |
def test_path_helpers_block_traversal(tmp_path) |
test_path_validators_linear_time |
function | tests/test_security_alerts_fix.py:229 |
def test_path_validators_linear_time() |
test_reverse_shell_password_sealed_roundtrip |
function | tests/test_security_alerts_fix.py:120 |
def test_reverse_shell_password_sealed_roundtrip(tmp_path) |
test_safe_open_under_rejects_symlink |
function | tests/test_security_alerts_fix.py:255 |
def test_safe_open_under_rejects_symlink(tmp_path) |
test_secret_store_owner_only |
function | tests/test_security_alerts_fix.py:404 |
def test_secret_store_owner_only(tmp_path) |
test_ssrf_dns_rebinding_to_metadata_denied |
function | tests/test_security_alerts_fix.py:39 |
def test_ssrf_dns_rebinding_to_metadata_denied(monkeypatch) |
test_ssrf_metadata_hosts_denied |
function | tests/test_security_alerts_fix.py:26 |
def test_ssrf_metadata_hosts_denied() |
test_ssrf_pinned_connection_dials_validated_ip |
function | tests/test_security_alerts_fix.py:72 |
def test_ssrf_pinned_connection_dials_validated_ip(monkeypatch) |
test_ssrf_private_policy_flag |
function | tests/test_security_alerts_fix.py:51 |
def test_ssrf_private_policy_flag(monkeypatch) |
test_ssrf_upstream_path_rejected |
function | tests/test_security_alerts_fix.py:64 |
def test_ssrf_upstream_path_rejected() |
test_tls_default_context_verifies |
function | tests/test_security_alerts_fix.py:96 |
def test_tls_default_context_verifies() |
test_tls_lab_fallback_needs_opt_in |
function | tests/test_security_alerts_fix.py:108 |
def test_tls_lab_fallback_needs_opt_in(monkeypatch) |
test_trace_redaction_helper |
function | tests/test_security_alerts_fix.py:185 |
def test_trace_redaction_helper() |
TestChannelSecrets |
class | tests/test_security_codeql_batch.py:149 |
class TestChannelSecrets |
TestEmojiPattern |
class | tests/test_security_codeql_batch.py:359 |
class TestEmojiPattern |
TestGenericErrorResponses |
class | tests/test_security_codeql_batch.py:269 |
class TestGenericErrorResponses |
TestProxySsrfGuard |
class | tests/test_security_codeql_batch.py:45 |
class TestProxySsrfGuard |
TestProxyTlsDefaults |
class | tests/test_security_codeql_batch.py:92 |
class TestProxyTlsDefaults |
TestReverseShellFallback |
class | tests/test_security_codeql_batch.py:186 |
class TestReverseShellFallback |
TestViewYamlTraversal |
class | tests/test_security_codeql_batch.py:209 |
class TestViewYamlTraversal |
TestWebhookSsrfGuard |
class | tests/test_security_codeql_batch.py:116 |
class TestWebhookSsrfGuard |
_boom |
function | tests/test_security_codeql_batch.py:317 |
def _boom() |
_boom |
function | tests/test_security_codeql_batch.py:347 |
def _boom() |
_client |
method | tests/test_security_codeql_batch.py:213 |
def _client(monkeypatch, tmp_path) |
_login_and_call |
function | tests/test_security_codeql_batch.py:253 |
def _login_and_call(monkeypatch, tmp_path, view, path) |
_server |
function | tests/test_security_codeql_batch.py:27 |
def _server() |
test_allows_lab_targets_by_default |
method | tests/test_security_codeql_batch.py:48 |
def test_allows_lab_targets_by_default(self) |
test_allows_public_webhook |
method | tests/test_security_codeql_batch.py:142 |
def test_allows_public_webhook(self) |
test_api_defaults_hide_exception |
method | tests/test_security_codeql_batch.py:342 |
def test_api_defaults_hide_exception(self, monkeypatch) |
test_blocks_cloud_metadata |
method | tests/test_security_codeql_batch.py:55 |
def test_blocks_cloud_metadata(self) |
test_blocks_common_emoji_and_clean_text_passes |
method | tests/test_security_codeql_batch.py:362 |
def test_blocks_common_emoji_and_clean_text_passes(self) |
test_blocks_malformed_targets |
method | tests/test_security_codeql_batch.py:65 |
def test_blocks_malformed_targets(self) |
test_blocks_metadata_and_userinfo_and_ftp |
method | tests/test_security_codeql_batch.py:119 |
def test_blocks_metadata_and_userinfo_and_ftp(self) |
test_blocks_private_when_operator_opts_out |
method | tests/test_security_codeql_batch.py:81 |
def test_blocks_private_when_operator_opts_out(self, monkeypatch) |
test_blocks_traversal_inputs |
method | tests/test_security_codeql_batch.py:223 |
def test_blocks_traversal_inputs(self, tmp_path, monkeypatch) |
test_broadcast_hides_exception |
method | tests/test_security_codeql_batch.py:272 |
def test_broadcast_hides_exception(self, tmp_path, monkeypatch) |
test_channel_store_is_owner_only |
method | tests/test_security_codeql_batch.py:175 |
def test_channel_store_is_owner_only(self, tmp_path, monkeypatch) |
test_guard_lookup_hides_exception |
method | tests/test_security_codeql_batch.py:297 |
def test_guard_lookup_hides_exception(self, tmp_path, monkeypatch) |
test_insecure_only_with_explicit_opt_in |
method | tests/test_security_codeql_batch.py:106 |
def test_insecure_only_with_explicit_opt_in(self, monkeypatch) |
test_loop_graph_hides_exception |
method | tests/test_security_codeql_batch.py:285 |
def test_loop_graph_hides_exception(self, tmp_path, monkeypatch) |
test_loopback_needs_explicit_opt_in |
method | tests/test_security_codeql_batch.py:132 |
def test_loopback_needs_explicit_opt_in(self, monkeypatch) |
test_mentions_hide_exception |
method | tests/test_security_codeql_batch.py:312 |
def test_mentions_hide_exception(self, tmp_path, monkeypatch) |
test_no_mega_range_in_source |
method | tests/test_security_codeql_batch.py:368 |
def test_no_mega_range_in_source(self) |
test_password_roundtrip_with_key |
method | tests/test_security_codeql_batch.py:160 |
def test_password_roundtrip_with_key(self, monkeypatch) |
test_password_roundtrip_without_key |
method | tests/test_security_codeql_batch.py:168 |
def test_password_roundtrip_without_key(self, tmp_path, monkeypatch) |
test_scrub_masks_passwords_and_tokens |
method | tests/test_security_codeql_batch.py:152 |
def test_scrub_masks_passwords_and_tokens(self) |
test_secret_not_logged_and_file_restricted |
method | tests/test_security_codeql_batch.py:189 |
def test_secret_not_logged_and_file_restricted(self, tmp_path, monkeypatch, caplog) |
test_serves_valid_subdir_and_ignores_symlink_escape |
method | tests/test_security_codeql_batch.py:230 |
def test_serves_valid_subdir_and_ignores_symlink_escape(self, tmp_path, monkeypatch) |
test_sse_stream_hides_exception |
method | tests/test_security_codeql_batch.py:325 |
def test_sse_stream_hides_exception(self, tmp_path, monkeypatch) |
test_verified_context_by_default |
method | tests/test_security_codeql_batch.py:95 |
def test_verified_context_by_default(self, monkeypatch) |
TestAuthTimingIntegration |
class | tests/test_security_hardening.py:377 |
class TestAuthTimingIntegration |
TestCalderaConfigSecrets |
class | tests/test_security_hardening.py:250 |
class TestCalderaConfigSecrets |
TestConfigConstantsConsolidation |
class | tests/test_security_hardening.py:279 |
class TestConfigConstantsConsolidation |
TestCredentialEncryptionWarning |
class | tests/test_security_hardening.py:325 |
class TestCredentialEncryptionWarning |
TestLIKEEscapePrevention |
class | tests/test_security_hardening.py:84 |
class TestLIKEEscapePrevention |
TestOpenSSLConf |
class | tests/test_security_hardening.py:357 |
class TestOpenSSLConf |
TestPickleRemoved |
class | tests/test_security_hardening.py:229 |
class TestPickleRemoved |
TestSQLInjectionPrevention |
class | tests/test_security_hardening.py:34 |
class TestSQLInjectionPrevention |
TestSafeRunnerShellFalse |
class | tests/test_security_hardening.py:176 |
class TestSafeRunnerShellFalse |
TestTimingAttackPrevention |
class | tests/test_security_hardening.py:132 |
class TestTimingAttackPrevention |
db_with_hosts |
method | tests/test_security_hardening.py:89 |
def db_with_hosts(self) |
fresh_db |
method | tests/test_security_hardening.py:72 |
def fresh_db(self) |
test_ai_fallback_imports_from_llm_factory |
method | tests/test_security_hardening.py:291 |
def test_ai_fallback_imports_from_llm_factory(self) |
test_caldera_config_uses_secrets_module |
method | tests/test_security_hardening.py:263 |
def test_caldera_config_uses_secrets_module(self) |
test_check_auth_returns_false_for_wrong_credentials |
method | tests/test_security_hardening.py:380 |
def test_check_auth_returns_false_for_wrong_credentials(self) |
test_check_auth_uses_hmac_compare_digest |
method | tests/test_security_hardening.py:136 |
def test_check_auth_uses_hmac_compare_digest(self) |
test_cli_ai_imports_from_llm_factory |
method | tests/test_security_hardening.py:306 |
def test_cli_ai_imports_from_llm_factory(self) |
test_db_maybe_decrypt_logs_failure |
method | tests/test_security_hardening.py:344 |
def test_db_maybe_decrypt_logs_failure(self) |
test_db_maybe_encrypt_has_warning_log |
method | tests/test_security_hardening.py:336 |
def test_db_maybe_encrypt_has_warning_log(self) |
test_db_module_has_logging_import |
method | tests/test_security_hardening.py:329 |
def test_db_module_has_logging_import(self) |
test_export_csv_accepts_all_valid_tables |
method | tests/test_security_hardening.py:57 |
def test_export_csv_accepts_all_valid_tables(self, fresh_db) |
test_export_csv_rejects_malicious_table_name |
method | tests/test_security_hardening.py:45 |
def test_export_csv_rejects_malicious_table_name(self, fresh_db) |
test_export_csv_rejects_union_select |
method | tests/test_security_hardening.py:51 |
def test_export_csv_rejects_union_select(self, fresh_db) |
test_hmac_compare_digest_rejects_timing_difference |
method | tests/test_security_hardening.py:161 |
def test_hmac_compare_digest_rejects_timing_difference(self) |
test_hmac_module_imported_in_lazyc2 |
method | tests/test_security_hardening.py:390 |
def test_hmac_module_imported_in_lazyc2(self) |
test_llm_factory_defines_constants |
method | tests/test_security_hardening.py:283 |
def test_llm_factory_defines_constants(self) |
test_no_hardcoded_api_keys_in_caldera_config |
method | tests/test_security_hardening.py:254 |
def test_no_hardcoded_api_keys_in_caldera_config(self) |
test_normal_query_still_works |
method | tests/test_security_hardening.py:116 |
def test_normal_query_still_works(self, db_with_hosts) |
test_openssl_conf_uses_setdefault |
method | tests/test_security_hardening.py:361 |
def test_openssl_conf_uses_setdefault(self) |
test_percent_literal_not_wildcard |
method | tests/test_security_hardening.py:98 |
def test_percent_literal_not_wildcard(self, db_with_hosts) |
test_pickle_not_imported_in_utils |
method | tests/test_security_hardening.py:233 |
def test_pickle_not_imported_in_utils(self) |
test_run_shell_does_not_use_shell_true |
method | tests/test_security_hardening.py:181 |
def test_run_shell_does_not_use_shell_true(self) |
test_run_shell_with_pipe_character |
method | tests/test_security_hardening.py:200 |
def test_run_shell_with_pipe_character(self) |
test_run_shell_with_semicolon_is_treated_as_argument |
method | tests/test_security_hardening.py:212 |
def test_run_shell_with_semicolon_is_treated_as_argument(self) |
test_underscore_literal_not_wildcard |
method | tests/test_security_hardening.py:107 |
def test_underscore_literal_not_wildcard(self, db_with_hosts) |
test_valid_tables_constant_is_complete |
method | tests/test_security_hardening.py:39 |
def test_valid_tables_constant_is_complete(self) |
TestAICommandInjectionPrevention |
class | tests/test_security_hardening_v2.py:34 |
class TestAICommandInjectionPrevention |
TestCredentialEncryptionAtRest |
class | tests/test_security_hardening_v2.py:288 |
class TestCredentialEncryptionAtRest |
TestDNSCommandAllowlist |
class | tests/test_security_hardening_v2.py:157 |
class TestDNSCommandAllowlist |
TestNoOsSystemInCriticalPaths |
class | tests/test_security_hardening_v2.py:349 |
class TestNoOsSystemInCriticalPaths |
TestSSHCredentialInjectionPrevention |
class | tests/test_security_hardening_v2.py:92 |
class TestSSHCredentialInjectionPrevention |
TestSafeShellExecution |
class | tests/test_security_hardening_v2.py:220 |
class TestSafeShellExecution |
_read |
function | tests/test_security_hardening_v2.py:25 |
def _read(relpath) |
test_ai_module_no_os_system |
method | tests/test_security_hardening_v2.py:354 |
def test_ai_module_no_os_system(self) |
test_allowlist_exists_as_frozenset |
method | tests/test_security_hardening_v2.py:163 |
def test_allowlist_exists_as_frozenset(self) |
test_allowlist_is_finite_and_reasonable |
method | tests/test_security_hardening_v2.py:175 |
def test_allowlist_is_finite_and_reasonable(self) |
test_answers_through_canonical_backend |
method | tests/test_security_hardening_v2.py:70 |
def test_answers_through_canonical_backend(self) |
test_api_key_never_leaves_factory_path |
method | tests/test_security_hardening_v2.py:63 |
def test_api_key_never_leaves_factory_path(self) |
test_credential_key_derivation |
method | tests/test_security_hardening_v2.py:337 |
def test_credential_key_derivation(self) |
test_dangerous_command_not_in_allowlist |
method | tests/test_security_hardening_v2.py:200 |
def test_dangerous_command_not_in_allowlist(self) |
test_decrypt_function_exists |
method | tests/test_security_hardening_v2.py:301 |
def test_decrypt_function_exists(self) |
test_dns_handler_checks_allowlist |
method | tests/test_security_hardening_v2.py:188 |
def test_dns_handler_checks_allowlist(self) |
test_dns_handler_checks_length |
method | tests/test_security_hardening_v2.py:194 |
def test_dns_handler_checks_length(self) |
test_dns_resolver_has_allowlist_guard |
method | tests/test_security_hardening_v2.py:379 |
def test_dns_resolver_has_allowlist_guard(self) |
test_do_sys_captures_output |
method | tests/test_security_hardening_v2.py:246 |
def test_do_sys_captures_output(self) |
test_do_sys_uses_safe_runner |
method | tests/test_security_hardening_v2.py:227 |
def test_do_sys_uses_safe_runner(self) |
test_encrypt_function_exists |
method | tests/test_security_hardening_v2.py:295 |
def test_encrypt_function_exists(self) |
test_hash_function_exists |
method | tests/test_security_hardening_v2.py:307 |
def test_hash_function_exists(self) |
test_imports_base64_for_encoding |
method | tests/test_security_hardening_v2.py:331 |
def test_imports_base64_for_encoding(self) |
test_log_uses_hash_not_plaintext |
method | tests/test_security_hardening_v2.py:319 |
def test_log_uses_hash_not_plaintext(self) |
test_max_length_constant_exists |
method | tests/test_security_hardening_v2.py:169 |
def test_max_length_constant_exists(self) |
test_misc_sys_no_os_system |
method | tests/test_security_hardening_v2.py:386 |
def test_misc_sys_no_os_system(self) |
test_no_fstring_with_api_key_in_command |
method | tests/test_security_hardening_v2.py:77 |
def test_no_fstring_with_api_key_in_command(self) |
test_no_os_system_in_ai_module |
method | tests/test_security_hardening_v2.py:43 |
def test_no_os_system_in_ai_module(self) |
test_no_os_system_in_misc_module_code |
method | tests/test_security_hardening_v2.py:264 |
def test_no_os_system_in_misc_module_code(self) |
test_no_shell_true_in_ai_module |
method | tests/test_security_hardening_v2.py:57 |
def test_no_shell_true_in_ai_module(self) |
test_no_sshpass_minus_p_in_code |
method | tests/test_security_hardening_v2.py:99 |
def test_no_sshpass_minus_p_in_code(self) |
test_no_subprocess_in_ai_module |
method | tests/test_security_hardening_v2.py:49 |
def test_no_subprocess_in_ai_module(self) |
test_password_not_in_fstring_command |
method | tests/test_security_hardening_v2.py:134 |
def test_password_not_in_fstring_command(self) |
test_postexp_no_sshpass_in_fstring_code |
method | tests/test_security_hardening_v2.py:361 |
def test_postexp_no_sshpass_in_fstring_code(self) |
test_record_credentials_encrypts_password |
method | tests/test_security_hardening_v2.py:313 |
def test_record_credentials_encrypts_password(self) |
test_sshpass_in_list_form |
method | tests/test_security_hardening_v2.py:128 |
def test_sshpass_in_list_form(self) |
test_sshpass_uses_e_flag |
method | tests/test_security_hardening_v2.py:116 |
def test_sshpass_uses_e_flag(self) |
test_ssppass_env_var_used |
method | tests/test_security_hardening_v2.py:122 |
def test_ssppass_env_var_used(self) |
test_uses_aes_encryption |
method | tests/test_security_hardening_v2.py:325 |
def test_uses_aes_encryption(self) |
TestAntiForensicsCommands |
class | tests/test_security_hardening_v3.py:439 |
class TestAntiForensicsCommands |
TestBuildSshpassCommand |
class | tests/test_security_hardening_v3.py:134 |
class TestBuildSshpassCommand |
TestEscapeHtmlContent |
class | tests/test_security_hardening_v3.py:182 |
class TestEscapeHtmlContent |
TestIcmpServerCommandExecution |
class | tests/test_security_hardening_v3.py:379 |
class TestIcmpServerCommandExecution |
TestPhishingOrchestratorKey |
class | tests/test_security_hardening_v3.py:356 |
class TestPhishingOrchestratorKey |
TestPivotingCommands |
class | tests/test_security_hardening_v3.py:420 |
class TestPivotingCommands |
TestRequireEncryptionKey |
class | tests/test_security_hardening_v3.py:305 |
class TestRequireEncryptionKey |
TestResourceScriptEngine |
class | tests/test_security_hardening_v3.py:405 |
class TestResourceScriptEngine |
TestSafeClipboardCopy |
class | tests/test_security_hardening_v3.py:116 |
class TestSafeClipboardCopy |
TestSafePathJoin |
class | tests/test_security_hardening_v3.py:213 |
class TestSafePathJoin |
TestSafeSubprocessRun |
class | tests/test_security_hardening_v3.py:21 |
class TestSafeSubprocessRun |
TestSanitizeFilename |
class | tests/test_security_hardening_v3.py:332 |
class TestSanitizeFilename |
TestSetSshpassEnv |
class | tests/test_security_hardening_v3.py:159 |
class TestSetSshpassEnv |
TestValidateHost |
class | tests/test_security_hardening_v3.py:284 |
class TestValidateHost |
TestValidateNetworkCidr |
class | tests/test_security_hardening_v3.py:244 |
class TestValidateNetworkCidr |
TestValidatePortSpec |
class | tests/test_security_hardening_v3.py:266 |
class TestValidatePortSpec |
test_accepts_valid_cidr |
method | tests/test_security_hardening_v3.py:248 |
def test_accepts_valid_cidr(self) |
test_accepts_valid_hostname |
method | tests/test_security_hardening_v3.py:293 |
def test_accepts_valid_hostname(self) |
test_accepts_valid_ip |
method | tests/test_security_hardening_v3.py:288 |
def test_accepts_valid_ip(self) |
test_accepts_valid_ports |
method | tests/test_security_hardening_v3.py:270 |
def test_accepts_valid_ports(self) |
test_allows_safe_paths |
method | tests/test_security_hardening_v3.py:217 |
def test_allows_safe_paths(self, tmp_path) |
test_anti_forensics_has_no_shell_true |
method | tests/test_security_hardening_v3.py:443 |
def test_anti_forensics_has_no_shell_true(self) |
test_blocks_symlink_escape |
method | tests/test_security_hardening_v3.py:229 |
def test_blocks_symlink_escape(self, tmp_path) |
test_blocks_traversal |
method | tests/test_security_hardening_v3.py:223 |
def test_blocks_traversal(self, tmp_path) |
test_capture_output_default_true |
method | tests/test_security_hardening_v3.py:82 |
def test_capture_output_default_true(self) |
test_captures_stderr |
method | tests/test_security_hardening_v3.py:44 |
def test_captures_stderr(self) |
test_check_false |
method | tests/test_security_hardening_v3.py:93 |
def test_check_false(self) |
test_escapes_quotes |
method | tests/test_security_hardening_v3.py:193 |
def test_escapes_quotes(self) |
test_escapes_script_tags |
method | tests/test_security_hardening_v3.py:186 |
def test_escapes_script_tags(self) |
test_execute_command_uses_list_form |
method | tests/test_security_hardening_v3.py:383 |
def test_execute_command_uses_list_form(self) |
test_handles_empty |
method | tests/test_security_hardening_v3.py:343 |
def test_handles_empty(self) |
test_handles_empty_command |
method | tests/test_security_hardening_v3.py:392 |
def test_handles_empty_command(self) |
test_handles_empty_string |
method | tests/test_security_hardening_v3.py:206 |
def test_handles_empty_string(self) |
test_handles_invalid_command |
method | tests/test_security_hardening_v3.py:398 |
def test_handles_invalid_command(self) |
test_pivoting_module_has_no_shell_true |
method | tests/test_security_hardening_v3.py:424 |
def test_pivoting_module_has_no_shell_true(self) |
test_preserves_existing_env |
method | tests/test_security_hardening_v3.py:169 |
def test_preserves_existing_env(self) |
test_preserves_safe_content |
method | tests/test_security_hardening_v3.py:200 |
def test_preserves_safe_content(self) |
test_raises_without_key |
method | tests/test_security_hardening_v3.py:309 |
def test_raises_without_key(self) |
test_raises_without_key |
method | tests/test_security_hardening_v3.py:360 |
def test_raises_without_key(self) |
test_reads_from_env |
method | tests/test_security_hardening_v3.py:316 |
def test_reads_from_env(self) |
test_reads_from_file |
method | tests/test_security_hardening_v3.py:323 |
def test_reads_from_file(self, tmp_path) |
test_rejects_empty |
method | tests/test_security_hardening_v3.py:260 |
def test_rejects_empty(self) |
test_rejects_empty_argv |
method | tests/test_security_hardening_v3.py:25 |
def test_rejects_empty_argv(self) |
test_rejects_empty_path |
method | tests/test_security_hardening_v3.py:237 |
def test_rejects_empty_path(self, tmp_path) |
test_rejects_invalid |
method | tests/test_security_hardening_v3.py:298 |
def test_rejects_invalid(self) |
test_rejects_invalid_cidr |
method | tests/test_security_hardening_v3.py:254 |
def test_rejects_invalid_cidr(self) |
test_rejects_invalid_ports |
method | tests/test_security_hardening_v3.py:277 |
def test_rejects_invalid_ports(self) |
test_rejects_null_bytes |
method | tests/test_security_hardening_v3.py:31 |
def test_rejects_null_bytes(self) |
test_rejects_null_bytes |
method | tests/test_security_hardening_v3.py:175 |
def test_rejects_null_bytes(self) |
test_rejects_null_bytes_in_password |
method | tests/test_security_hardening_v3.py:152 |
def test_rejects_null_bytes_in_password(self) |
test_rejects_oversized_content |
method | tests/test_security_hardening_v3.py:120 |
def test_rejects_oversized_content(self) |
test_rejects_oversized_password |
method | tests/test_security_hardening_v3.py:146 |
def test_rejects_oversized_password(self) |
test_removes_dangerous_chars |
method | tests/test_security_hardening_v3.py:336 |
def test_removes_dangerous_chars(self) |
test_returns_completed_process_fields |
method | tests/test_security_hardening_v3.py:62 |
def test_returns_completed_process_fields(self) |
test_returns_false_without_clipboard_tool |
method | tests/test_security_hardening_v3.py:126 |
def test_returns_false_without_clipboard_tool(self) |
test_run_command_uses_list_form |
method | tests/test_security_hardening_v3.py:409 |
def test_run_command_uses_list_form(self) |
test_runs_command_without_shell |
method | tests/test_security_hardening_v3.py:37 |
def test_runs_command_without_shell(self) |
test_sets_ssplash_env |
method | tests/test_security_hardening_v3.py:163 |
def test_sets_ssplash_env(self) |
test_shell_false_enforced |
method | tests/test_security_hardening_v3.py:51 |
def test_shell_false_enforced(self) |
test_text_mode_enabled |
method | tests/test_security_hardening_v3.py:104 |
def test_text_mode_enabled(self) |
test_timeout_passed_through |
method | tests/test_security_hardening_v3.py:71 |
def test_timeout_passed_through(self) |
test_truncates_long_names |
method | tests/test_security_hardening_v3.py:349 |
def test_truncates_long_names(self) |
test_uses_e_flag_not_p |
method | tests/test_security_hardening_v3.py:138 |
def test_uses_e_flag_not_p(self) |
test_works_with_env_key |
method | tests/test_security_hardening_v3.py:371 |
def test_works_with_env_key(self) |
TestC2BuilderNoOsSystem |
class | tests/test_security_hardening_v4.py:359 |
class TestC2BuilderNoOsSystem |
TestConditionalHooksInjectionPrevention |
class | tests/test_security_hardening_v4.py:512 |
class TestConditionalHooksInjectionPrevention |
TestExecuteCommandShellFalse |
class | tests/test_security_hardening_v4.py:391 |
class TestExecuteCommandShellFalse |
TestMiscMigratedIpDisplay |
class | tests/test_security_hardening_v4.py:415 |
class TestMiscMigratedIpDisplay |
TestMorseNoOsSystem |
class | tests/test_security_hardening_v4.py:336 |
class TestMorseNoOsSystem |
TestNoHardcodedPaths |
class | tests/test_security_hardening_v4.py:439 |
class TestNoHardcodedPaths |
TestPluginLoaderUrlInjection |
class | tests/test_security_hardening_v4.py:266 |
class TestPluginLoaderUrlInjection |
TestReconMigratedNoOsSystem |
class | tests/test_security_hardening_v4.py:559 |
class TestReconMigratedNoOsSystem |
TestSafeClearScreen |
class | tests/test_security_hardening_v4.py:529 |
class TestSafeClearScreen |
TestSafeFileRead |
class | tests/test_security_hardening_v4.py:576 |
class TestSafeFileRead |
TestSafeFindTool |
class | tests/test_security_hardening_v4.py:624 |
class TestSafeFindTool |
TestSafeGitClone |
class | tests/test_security_hardening_v4.py:201 |
class TestSafeGitClone |
TestSafeIpShow |
class | tests/test_security_hardening_v4.py:231 |
class TestSafeIpShow |
TestSafeRunArgv |
class | tests/test_security_hardening_v4.py:100 |
class TestSafeRunArgv |
TestSafeSystem |
class | tests/test_security_hardening_v4.py:34 |
class TestSafeSystem |
TestValidateUrl |
class | tests/test_security_hardening_v4.py:135 |
class TestValidateUrl |
_get_validate_fn |
method | tests/test_security_hardening_v4.py:270 |
def _get_validate_fn(self) |
test_allows_simple_command |
method | tests/test_security_hardening_v4.py:86 |
def test_allows_simple_command(self) |
test_allows_valid_http_url |
method | tests/test_security_hardening_v4.py:187 |
def test_allows_valid_http_url(self) |
test_allows_valid_https_url |
method | tests/test_security_hardening_v4.py:179 |
def test_allows_valid_https_url(self) |
test_executes_without_shell |
method | tests/test_security_hardening_v4.py:120 |
def test_executes_without_shell(self) |
test_finds_existing_tool |
method | tests/test_security_hardening_v4.py:628 |
def test_finds_existing_tool(self) |
test_handles_missing_command |
method | tests/test_security_hardening_v4.py:251 |
def test_handles_missing_command(self) |
test_ip_uses_subprocess_list_form |
method | tests/test_security_hardening_v4.py:419 |
def test_ip_uses_subprocess_list_form(self) |
test_no_home_grisun0_in_configs_and_docs |
method | tests/test_security_hardening_v4.py:467 |
def test_no_home_grisun0_in_configs_and_docs(self) |
test_no_home_grisun0_in_production |
method | tests/test_security_hardening_v4.py:443 |
def test_no_home_grisun0_in_production(self) |
test_no_os_system |
method | tests/test_security_hardening_v4.py:533 |
def test_no_os_system(self) |
test_no_os_system_for_encryption |
method | tests/test_security_hardening_v4.py:363 |
def test_no_os_system_for_encryption(self) |
test_no_os_system_for_path_setup |
method | tests/test_security_hardening_v4.py:563 |
def test_no_os_system_for_path_setup(self) |
test_no_os_system_for_tunnel |
method | tests/test_security_hardening_v4.py:370 |
def test_no_os_system_for_tunnel(self) |
test_no_os_system_in_morse |
method | tests/test_security_hardening_v4.py:339 |
def test_no_os_system_in_morse(self) |
test_no_root_home_in_anti_forensics |
method | tests/test_security_hardening_v4.py:491 |
def test_no_root_home_in_anti_forensics(self) |
test_no_xclip_shell_true |
method | tests/test_security_hardening_v4.py:426 |
def test_no_xclip_shell_true(self) |
test_reads_valid_file |
method | tests/test_security_hardening_v4.py:595 |
def test_reads_valid_file(self) |
test_rejects_backtick |
method | tests/test_security_hardening_v4.py:54 |
def test_rejects_backtick(self) |
test_rejects_backtick_in_url |
method | tests/test_security_hardening_v4.py:147 |
def test_rejects_backtick_in_url(self) |
test_rejects_dollar_paren |
method | tests/test_security_hardening_v4.py:62 |
def test_rejects_dollar_paren(self) |
test_rejects_empty_argv |
method | tests/test_security_hardening_v4.py:112 |
def test_rejects_empty_argv(self) |
test_rejects_empty_command |
method | tests/test_security_hardening_v4.py:70 |
def test_rejects_empty_command(self) |
test_rejects_empty_url |
method | tests/test_security_hardening_v4.py:163 |
def test_rejects_empty_url(self) |
test_rejects_ftp_scheme |
method | tests/test_security_hardening_v4.py:155 |
def test_rejects_ftp_scheme(self) |
test_rejects_injection_in_url |
method | tests/test_security_hardening_v4.py:205 |
def test_rejects_injection_in_url(self) |
test_rejects_missing_file |
method | tests/test_security_hardening_v4.py:610 |
def test_rejects_missing_file(self) |
test_rejects_missing_netloc |
method | tests/test_security_hardening_v4.py:171 |
def test_rejects_missing_netloc(self) |
test_rejects_null_byte |
method | tests/test_security_hardening_v4.py:104 |
def test_rejects_null_byte(self) |
test_rejects_oversized_file |
method | tests/test_security_hardening_v4.py:580 |
def test_rejects_oversized_file(self) |
test_rejects_pipe |
method | tests/test_security_hardening_v4.py:46 |
def test_rejects_pipe(self) |
test_rejects_semicolon |
method | tests/test_security_hardening_v4.py:38 |
def test_rejects_semicolon(self) |
test_rejects_semicolon_in_url |
method | tests/test_security_hardening_v4.py:139 |
def test_rejects_semicolon_in_url(self) |
test_rejects_whitespace_only |
method | tests/test_security_hardening_v4.py:78 |
def test_rejects_whitespace_only(self) |
test_returns_list_of_dicts |
method | tests/test_security_hardening_v4.py:235 |
def test_returns_list_of_dicts(self) |
test_returns_none_for_missing_tool |
method | tests/test_security_hardening_v4.py:637 |
def test_returns_none_for_missing_tool(self) |
test_telegram_hermes_uses_env_shebang |
method | tests/test_security_hardening_v4.py:499 |
def test_telegram_hermes_uses_env_shebang(self) |
test_uses_python_native_for_encryption |
method | tests/test_security_hardening_v4.py:377 |
def test_uses_python_native_for_encryption(self) |
test_uses_shell_false |
method | tests/test_security_hardening_v4.py:395 |
def test_uses_shell_false(self) |
test_uses_shlex_quote |
method | tests/test_security_hardening_v4.py:516 |
def test_uses_shlex_quote(self) |
test_uses_shlex_split |
method | tests/test_security_hardening_v4.py:402 |
def test_uses_shlex_split(self) |
test_uses_subprocess |
method | tests/test_security_hardening_v4.py:543 |
def test_uses_subprocess(self) |
test_uses_subprocess_instead |
method | tests/test_security_hardening_v4.py:346 |
def test_uses_subprocess_instead(self) |
test_uses_subprocess_list_form |
method | tests/test_security_hardening_v4.py:214 |
def test_uses_subprocess_list_form(self, mock_run) |
test_validate_clone_url_allows_valid_url |
method | tests/test_security_hardening_v4.py:323 |
def test_validate_clone_url_allows_valid_url(self) |
test_validate_clone_url_rejects_backtick |
method | tests/test_security_hardening_v4.py:302 |
def test_validate_clone_url_rejects_backtick(self) |
test_validate_clone_url_rejects_dollar |
method | tests/test_security_hardening_v4.py:295 |
def test_validate_clone_url_rejects_dollar(self) |
test_validate_clone_url_rejects_empty |
method | tests/test_security_hardening_v4.py:309 |
def test_validate_clone_url_rejects_empty(self) |
test_validate_clone_url_rejects_non_http |
method | tests/test_security_hardening_v4.py:316 |
def test_validate_clone_url_rejects_non_http(self) |
test_validate_clone_url_rejects_pipe |
method | tests/test_security_hardening_v4.py:288 |
def test_validate_clone_url_rejects_pipe(self) |
test_validate_clone_url_rejects_semicolon |
method | tests/test_security_hardening_v4.py:281 |
def test_validate_clone_url_rejects_semicolon(self) |
BrokenDB |
class | tests/test_security_hardening_v5.py:280 |
class BrokenDB |
TestBootstrapPasswordNotPrinted |
class | tests/test_security_hardening_v5.py:196 |
class TestBootstrapPasswordNotPrinted |
TestCalderaConfigNoHardcodedSecrets |
class | tests/test_security_hardening_v5.py:119 |
class TestCalderaConfigNoHardcodedSecrets |
TestCredentialLogHashing |
class | tests/test_security_hardening_v5.py:93 |
class TestCredentialLogHashing |
TestCsrfCookieInjection |
class | tests/test_security_hardening_v5.py:235 |
class TestCsrfCookieInjection |
TestHealthEndpointNoExceptionLeak |
class | tests/test_security_hardening_v5.py:259 |
class TestHealthEndpointNoExceptionLeak |
TestIcmpAuthenticatedCrypto |
class | tests/test_security_hardening_v5.py:43 |
class TestIcmpAuthenticatedCrypto |
TestNetworkOpsecTlsVersion |
class | tests/test_security_hardening_v5.py:222 |
class TestNetworkOpsecTlsVersion |
TestPhishingWizardEncryptsCredentials |
class | tests/test_security_hardening_v5.py:173 |
class TestPhishingWizardEncryptsCredentials |
TestSprayNoClearTextPassword |
class | tests/test_security_hardening_v5.py:155 |
class TestSprayNoClearTextPassword |
_read |
function | tests/test_security_hardening_v5.py:33 |
def _read(rel) |
test_client_has_no_ecb |
method | tests/test_security_hardening_v5.py:50 |
def test_client_has_no_ecb(self) |
test_client_sudo_is_guarded |
method | tests/test_security_hardening_v5.py:82 |
def test_client_sudo_is_guarded(self) |
test_client_uses_gcm |
method | tests/test_security_hardening_v5.py:56 |
def test_client_uses_gcm(self) |
test_database_error_is_generic |
method | tests/test_security_hardening_v5.py:267 |
def test_database_error_is_generic(self) |
test_does_not_log_password |
method | tests/test_security_hardening_v5.py:158 |
def test_does_not_log_password(self) |
test_encrypt_decrypt_roundtrip |
method | tests/test_security_hardening_v5.py:59 |
def test_encrypt_decrypt_roundtrip(self) |
test_encrypts_password_before_storage |
method | tests/test_security_hardening_v5.py:177 |
def test_encrypts_password_before_storage(self) |
test_fingerprint_is_hmac_of_proper_key |
method | tests/test_security_hardening_v5.py:105 |
def test_fingerprint_is_hmac_of_proper_key(self) |
test_functional_generates_no_static_passwords |
method | tests/test_security_hardening_v5.py:138 |
def test_functional_generates_no_static_passwords(self) |
test_generated_user_passwords |
method | tests/test_security_hardening_v5.py:128 |
def test_generated_user_passwords(self) |
test_hashes_password_before_log |
method | tests/test_security_hardening_v5.py:181 |
def test_hashes_password_before_log(self) |
test_imports_encryption_contract |
method | tests/test_security_hardening_v5.py:185 |
def test_imports_encryption_contract(self) |
test_listener_error_is_generic |
method | tests/test_security_hardening_v5.py:271 |
def test_listener_error_is_generic(self) |
test_loads_only_generic_error |
method | tests/test_security_hardening_v5.py:275 |
def test_loads_only_generic_error(self) |
test_logs_success_without_secret |
method | tests/test_security_hardening_v5.py:163 |
def test_logs_success_without_secret(self) |
test_no_exception_interpolation |
method | tests/test_security_hardening_v5.py:263 |
def test_no_exception_interpolation(self) |
test_no_hardcoded_user_passwords |
method | tests/test_security_hardening_v5.py:123 |
def test_no_hardcoded_user_passwords(self) |
test_no_password_print |
method | tests/test_security_hardening_v5.py:200 |
def test_no_password_print(self) |
test_no_salted_sha256_fingerprint |
method | tests/test_security_hardening_v5.py:101 |
def test_no_salted_sha256_fingerprint(self) |
test_persist_helper_exists |
method | tests/test_security_hardening_v5.py:204 |
def test_persist_helper_exists(self) |
test_persist_uses_owner_only_permissions |
method | tests/test_security_hardening_v5.py:208 |
def test_persist_uses_owner_only_permissions(self) |
test_persist_writes_to_file |
method | tests/test_security_hardening_v5.py:212 |
def test_persist_writes_to_file(self) |
test_pins_minimum_version |
method | tests/test_security_hardening_v5.py:225 |
def test_pins_minimum_version(self) |
test_server_has_no_ecb |
method | tests/test_security_hardening_v5.py:47 |
def test_server_has_no_ecb(self) |
test_server_uses_gcm |
method | tests/test_security_hardening_v5.py:53 |
def test_server_uses_gcm(self) |
test_short_payload_rejected |
method | tests/test_security_hardening_v5.py:76 |
def test_short_payload_rejected(self) |
test_tampered_payload_rejected |
method | tests/test_security_hardening_v5.py:67 |
def test_tampered_payload_rejected(self) |
test_uses_hmac_not_plain_sha256 |
method | tests/test_security_hardening_v5.py:97 |
def test_uses_hmac_not_plain_sha256(self) |
test_validates_client_id |
method | tests/test_security_hardening_v5.py:239 |
def test_validates_client_id(self) |
test_validator_accepts_only_urlsafe_token |
method | tests/test_security_hardening_v5.py:243 |
def test_validator_accepts_only_urlsafe_token(self) |
test_writes_with_owner_permissions |
method | tests/test_security_hardening_v5.py:134 |
def test_writes_with_owner_permissions(self) |
Next: SYMBOLS_p40.md