contentctl 5.0.0a2__py3-none-any.whl → 5.0.0a3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- contentctl/__init__.py +1 -1
- contentctl/actions/build.py +88 -55
- contentctl/actions/deploy_acs.py +29 -24
- contentctl/actions/detection_testing/DetectionTestingManager.py +66 -41
- contentctl/actions/detection_testing/GitService.py +2 -4
- contentctl/actions/detection_testing/generate_detection_coverage_badge.py +48 -30
- contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructure.py +163 -124
- contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureContainer.py +45 -32
- contentctl/actions/detection_testing/progress_bar.py +3 -0
- contentctl/actions/detection_testing/views/DetectionTestingView.py +15 -18
- contentctl/actions/detection_testing/views/DetectionTestingViewCLI.py +1 -5
- contentctl/actions/detection_testing/views/DetectionTestingViewFile.py +2 -2
- contentctl/actions/detection_testing/views/DetectionTestingViewWeb.py +1 -4
- contentctl/actions/doc_gen.py +9 -5
- contentctl/actions/initialize.py +45 -33
- contentctl/actions/inspect.py +118 -61
- contentctl/actions/new_content.py +78 -50
- contentctl/actions/release_notes.py +276 -146
- contentctl/actions/reporting.py +23 -19
- contentctl/actions/test.py +31 -25
- contentctl/actions/validate.py +54 -34
- contentctl/api.py +54 -45
- contentctl/contentctl.py +10 -10
- contentctl/enrichments/attack_enrichment.py +112 -72
- contentctl/enrichments/cve_enrichment.py +34 -28
- contentctl/enrichments/splunk_app_enrichment.py +38 -36
- contentctl/helper/link_validator.py +101 -78
- contentctl/helper/splunk_app.py +69 -41
- contentctl/helper/utils.py +58 -39
- contentctl/input/director.py +69 -37
- contentctl/input/new_content_questions.py +26 -34
- contentctl/input/yml_reader.py +22 -17
- contentctl/objects/abstract_security_content_objects/detection_abstract.py +250 -314
- contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py +58 -36
- contentctl/objects/alert_action.py +8 -8
- contentctl/objects/annotated_types.py +1 -1
- contentctl/objects/atomic.py +64 -54
- contentctl/objects/base_test.py +2 -1
- contentctl/objects/base_test_result.py +16 -8
- contentctl/objects/baseline.py +41 -30
- contentctl/objects/baseline_tags.py +29 -22
- contentctl/objects/config.py +1 -1
- contentctl/objects/constants.py +29 -58
- contentctl/objects/correlation_search.py +75 -55
- contentctl/objects/dashboard.py +55 -41
- contentctl/objects/data_source.py +13 -13
- contentctl/objects/deployment.py +44 -37
- contentctl/objects/deployment_email.py +1 -1
- contentctl/objects/deployment_notable.py +2 -1
- contentctl/objects/deployment_phantom.py +5 -5
- contentctl/objects/deployment_rba.py +1 -1
- contentctl/objects/deployment_scheduling.py +1 -1
- contentctl/objects/deployment_slack.py +1 -1
- contentctl/objects/detection.py +5 -2
- contentctl/objects/detection_metadata.py +1 -0
- contentctl/objects/detection_stanza.py +7 -2
- contentctl/objects/detection_tags.py +54 -64
- contentctl/objects/drilldown.py +66 -35
- contentctl/objects/enums.py +61 -43
- contentctl/objects/errors.py +16 -24
- contentctl/objects/integration_test.py +3 -3
- contentctl/objects/integration_test_result.py +1 -0
- contentctl/objects/investigation.py +41 -26
- contentctl/objects/investigation_tags.py +29 -17
- contentctl/objects/lookup.py +234 -113
- contentctl/objects/macro.py +55 -38
- contentctl/objects/manual_test.py +3 -3
- contentctl/objects/manual_test_result.py +1 -0
- contentctl/objects/mitre_attack_enrichment.py +17 -16
- contentctl/objects/notable_action.py +2 -1
- contentctl/objects/notable_event.py +1 -3
- contentctl/objects/playbook.py +37 -35
- contentctl/objects/playbook_tags.py +22 -16
- contentctl/objects/rba.py +14 -8
- contentctl/objects/risk_analysis_action.py +15 -11
- contentctl/objects/risk_event.py +27 -20
- contentctl/objects/risk_object.py +1 -0
- contentctl/objects/savedsearches_conf.py +9 -7
- contentctl/objects/security_content_object.py +5 -2
- contentctl/objects/story.py +45 -44
- contentctl/objects/story_tags.py +56 -44
- contentctl/objects/test_group.py +5 -2
- contentctl/objects/threat_object.py +1 -0
- contentctl/objects/throttling.py +27 -18
- contentctl/objects/unit_test.py +3 -4
- contentctl/objects/unit_test_baseline.py +4 -5
- contentctl/objects/unit_test_result.py +6 -6
- contentctl/output/api_json_output.py +22 -22
- contentctl/output/attack_nav_output.py +21 -21
- contentctl/output/attack_nav_writer.py +29 -37
- contentctl/output/conf_output.py +230 -174
- contentctl/output/data_source_writer.py +38 -25
- contentctl/output/doc_md_output.py +53 -27
- contentctl/output/jinja_writer.py +19 -15
- contentctl/output/json_writer.py +20 -8
- contentctl/output/svg_output.py +56 -38
- contentctl/output/templates/transforms.j2 +2 -2
- contentctl/output/yml_writer.py +18 -24
- {contentctl-5.0.0a2.dist-info → contentctl-5.0.0a3.dist-info}/METADATA +1 -1
- contentctl-5.0.0a3.dist-info/RECORD +168 -0
- contentctl/actions/initialize_old.py +0 -245
- contentctl/objects/observable.py +0 -39
- contentctl-5.0.0a2.dist-info/RECORD +0 -170
- {contentctl-5.0.0a2.dist-info → contentctl-5.0.0a3.dist-info}/LICENSE.md +0 -0
- {contentctl-5.0.0a2.dist-info → contentctl-5.0.0a3.dist-info}/WHEEL +0 -0
- {contentctl-5.0.0a2.dist-info → contentctl-5.0.0a3.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
contentctl/__init__.py,sha256=kUR5RAFc7HCeiqdlX36dZOHkUI5wI6V_43RpEcD8b-0,22
|
|
2
|
+
contentctl/actions/build.py,sha256=M68XubxTqI-LiW8P4eaNmb62pWNQtVE8cF3xKb6g44c,5669
|
|
3
|
+
contentctl/actions/deploy_acs.py,sha256=w3OqO8GXzB_5zHrE8lDYbadAy4Etw7F2o84Gze74RY0,3264
|
|
4
|
+
contentctl/actions/detection_testing/DetectionTestingManager.py,sha256=TWZpmDjMqWRWyzsLyiYol_jAovAr6ok9J_GzE9-kNN0,9079
|
|
5
|
+
contentctl/actions/detection_testing/GitService.py,sha256=a6y7lqCgSL1KdSVEgJDxawea8ZgEkGNfOKEf9v_BgLo,11135
|
|
6
|
+
contentctl/actions/detection_testing/generate_detection_coverage_badge.py,sha256=bGUVKjKv96lTw1GZ4Kw1JX-Yicu4aOJWm-IL524e9HI,2302
|
|
7
|
+
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructure.py,sha256=52Xsbyq4M913kXuQ8JcjYfP2BvwRJo3chK1p2hK76o0,57281
|
|
8
|
+
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureContainer.py,sha256=qYWgRW7uc-15jzwv5xSUF2xyLDmtyGyMfuXkQK9j-aM,7221
|
|
9
|
+
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureServer.py,sha256=Q1ZfCYOp54O39bgTScZMInkmZiU-bGAM9Hiwr2mq5ms,370
|
|
10
|
+
contentctl/actions/detection_testing/progress_bar.py,sha256=UrpNCqxTmQ4hfoRZgxPJ1xvDVwMrTq0UnotdryHN0gM,3232
|
|
11
|
+
contentctl/actions/detection_testing/views/DetectionTestingView.py,sha256=E07v2VK-pyLMeTA6EtNI_04kt-T90SwSM4kN9yfp-2I,7475
|
|
12
|
+
contentctl/actions/detection_testing/views/DetectionTestingViewCLI.py,sha256=-4yhxGJsafcRRAIebFZebUG_qSkASDLHajN9piAPlvM,2104
|
|
13
|
+
contentctl/actions/detection_testing/views/DetectionTestingViewFile.py,sha256=G-6YqBtj0R1A9eiPrgHP2yvUMm7H8wopTBYjxIEIl8g,1090
|
|
14
|
+
contentctl/actions/detection_testing/views/DetectionTestingViewWeb.py,sha256=CXV1fByf3J-Jc4D9U6jgWSaUhNzjcMpvEgRMuusF2vU,4740
|
|
15
|
+
contentctl/actions/doc_gen.py,sha256=P2-RYsJoW-QuhAkSpOQespDLJBC-4Cq3-XGTmadK8Ys,936
|
|
16
|
+
contentctl/actions/initialize.py,sha256=KaWSbrTaJA4vNSpKc_rwdlaaERnWw_hPlWwsPOA6Gy8,3191
|
|
17
|
+
contentctl/actions/inspect.py,sha256=rXnrhDt59-n0Jqh_UZ0tDzpKqiOvkGzlvSypXoarKjU,18322
|
|
18
|
+
contentctl/actions/new_content.py,sha256=bd8BEx0PfTVZRY3Z7QxBr0p87UdFDUvPuFrYQzQRJR0,8368
|
|
19
|
+
contentctl/actions/release_notes.py,sha256=_Rdljg0tPSAFlw34LJ7dUsHLiH8tJTQ6B95X6MvxURo,17023
|
|
20
|
+
contentctl/actions/reporting.py,sha256=GF32i7sHdc47bw-VWSW-nZ1QBaUl6Ni1JjV5_SOyiAU,1660
|
|
21
|
+
contentctl/actions/test.py,sha256=GTtvHi1yB5yDm1jPMyuc4WxczOq-O7f2N8LpTmMaWgU,6014
|
|
22
|
+
contentctl/actions/validate.py,sha256=thnxanLj6mfw5g17C1FrzWlkpyIT_AjnDxv_wyNdspA,5837
|
|
23
|
+
contentctl/api.py,sha256=6s17vNOW1E1EzQqOCXAa5uWuhwwShu-JkGSgrsOFEMs,6329
|
|
24
|
+
contentctl/contentctl.py,sha256=bO7jKOn9oSDQ4YncN9msu1cwyEXGdDTLcCHh8X9dzzY,11185
|
|
25
|
+
contentctl/enrichments/attack_enrichment.py,sha256=68C9xQ8Q3YX-luRdK2hLnwWtRFpheFA2kE4v5GOLGEo,6358
|
|
26
|
+
contentctl/enrichments/cve_enrichment.py,sha256=TsZ52ef2njt19lPf_VyclY_-5Z5iQ1boVOAxFbjGdSQ,2431
|
|
27
|
+
contentctl/enrichments/splunk_app_enrichment.py,sha256=Xynxjjkqlw0_RtQ1thGSFwy1I3HdmPAJmNKZezyqniU,3419
|
|
28
|
+
contentctl/helper/link_validator.py,sha256=kzEi2GdncPWSi-UKNerXm2jtTJfFQ5goS9pqyAz5U5c,7427
|
|
29
|
+
contentctl/helper/logger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
contentctl/helper/splunk_app.py,sha256=Zq_C9rjNVqCjBNgm-5CWdBpXyeX5jSpbE-QTGptEZlk,14571
|
|
31
|
+
contentctl/helper/utils.py,sha256=rigwZzCwWzn11sKTVWDkYEtLmRSf0yBbJ671OSRQnOM,19094
|
|
32
|
+
contentctl/input/director.py,sha256=asK4yUlSVdv0QDUzCrTEXQUm0j9hbzVu55o_-wD-eWc,11560
|
|
33
|
+
contentctl/input/new_content_questions.py,sha256=z2C4Mg7-EyxtiF2z9m4SnSbi6QO4CUPB3wg__JeMXIQ,4067
|
|
34
|
+
contentctl/input/yml_reader.py,sha256=ymmAqsWsf9Oj56waDOhCh_E4SomkSCmu4dAx7iURFt8,2050
|
|
35
|
+
contentctl/objects/abstract_security_content_objects/detection_abstract.py,sha256=mtVO2cilGiLq1wpE9oF9KGiUGi0FpAFypvZREe0zsJ4,44013
|
|
36
|
+
contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py,sha256=N7tgricbUg-kp50J0y-3kB062u4b_RXIHgOs2bmfcJY,10458
|
|
37
|
+
contentctl/objects/alert_action.py,sha256=iEvdEOT4TrTXT0z4rQ_W5v79hPJpPhFPSzo7TuHDxwA,1376
|
|
38
|
+
contentctl/objects/annotated_types.py,sha256=eAMm1Nm3_C5pwfCxhzL5ynDRsC_eK614bFuwUFxPVLw,261
|
|
39
|
+
contentctl/objects/atomic.py,sha256=5nl-JhZnymadi8B8ZEJ8l80DnpvjG-OlRxUjVKR6ffY,7341
|
|
40
|
+
contentctl/objects/base_test.py,sha256=JG6qlr7xe9P71n3CzKOro8_bsmDQGYDfTG9YooHQSIE,1105
|
|
41
|
+
contentctl/objects/base_test_result.py,sha256=TYYzTPKWqp9rHTebWoid50uxAp_iALZouril4sFwIcA,5197
|
|
42
|
+
contentctl/objects/baseline.py,sha256=c8MxIRoO-ItODDCckYujRzcYlZhx_CGm6eILbyfBJ7s,3070
|
|
43
|
+
contentctl/objects/baseline_tags.py,sha256=Eomy8y3HV-E6Lym5B5ZZTtsmQJYi6Jd4y8GZpTWGYgQ,1643
|
|
44
|
+
contentctl/objects/config.py,sha256=5nK3EkUea-6qUvSzqAxl5UyoLRlldKsh9K8glaBup3I,48603
|
|
45
|
+
contentctl/objects/constants.py,sha256=x8JCo7TBXO8qDMfqn-Px7D0nZM9UvJJ4-IysmkyeRj0,4782
|
|
46
|
+
contentctl/objects/correlation_search.py,sha256=ab6v-0nbzujhTMpwaXynQiInWpRO1zB5KR4eZLCav_M,45234
|
|
47
|
+
contentctl/objects/dashboard.py,sha256=qMSP76hkJo7PVsWr19hQW4eYoUqGTcRejaOEjlcA_DY,4198
|
|
48
|
+
contentctl/objects/data_source.py,sha256=4u4JaA-Q5xa0gS61yarJuowgy4TrAYE98O2G8o9CQzA,1454
|
|
49
|
+
contentctl/objects/deployment.py,sha256=FRsgsX2T1gvA_0A44_sFPr22rsedxXVIhtO7o9F7eZM,2902
|
|
50
|
+
contentctl/objects/deployment_email.py,sha256=_Sdr_BNjvXECiFonRHLkiOrIQp3slnUaERbptqRbD0Q,206
|
|
51
|
+
contentctl/objects/deployment_notable.py,sha256=j5AniTRDcw32El5H91qKOXDVZvUYxnIuM4Zzlhrm9cM,258
|
|
52
|
+
contentctl/objects/deployment_phantom.py,sha256=Qs9UH3pYe2M3evLLgn5FblTe28QH1QojVaBGM_Ydvjw,261
|
|
53
|
+
contentctl/objects/deployment_rba.py,sha256=n_v79NhcLYHyABceKsI_iEziWhp3uNrqxIUrC8tdjD4,184
|
|
54
|
+
contentctl/objects/deployment_scheduling.py,sha256=PbyAeIEV6ShHuwfzF4LtGrv6tNt1cwNdl-VDQLj0rE8,257
|
|
55
|
+
contentctl/objects/deployment_slack.py,sha256=pC8-BB4qOD5fUqUi7Oj2Tre7-kKVqW2xEvCF7tZENQ4,194
|
|
56
|
+
contentctl/objects/detection.py,sha256=GKjjhnwyFxm7139dOlPJ4c3vIW0675-NLCPWxEB5m-c,631
|
|
57
|
+
contentctl/objects/detection_metadata.py,sha256=JMz8rtcn5HfeEoaAx34kw2wXa35qsRIap_mXoY0Vbss,2237
|
|
58
|
+
contentctl/objects/detection_stanza.py,sha256=-BRQNib5NNhY7Z2fILS5xkpjNkGSLF7qBciTmgOgLV8,3112
|
|
59
|
+
contentctl/objects/detection_tags.py,sha256=kOb-hb83k71m3YkfJ5l-fw3sODMgmekuES7WlT5suAQ,8573
|
|
60
|
+
contentctl/objects/drilldown.py,sha256=Vinw6UYlOl0YzoRA_0oBCfHA5Gvgu5p-rEsfBIgMCdI,4186
|
|
61
|
+
contentctl/objects/enums.py,sha256=HdaSQgEQ_T38BIlVYk1xdqMm05YyhQb0720nzBorXQw,13554
|
|
62
|
+
contentctl/objects/errors.py,sha256=xX_FDUaJbJiOWgjgrzjtYW5QsD41UZ2KWqH-yGkHaCU,5554
|
|
63
|
+
contentctl/objects/integration_test.py,sha256=TYjKyH4YinUnYXOse5BQGCa4-ez_5mtoMwvh1JJcb0o,1254
|
|
64
|
+
contentctl/objects/integration_test_result.py,sha256=_uUSgqgjFhEZM8UwOJI6Q9K-ekIrbKU6OPdqHZycl-s,279
|
|
65
|
+
contentctl/objects/investigation.py,sha256=mFH83p2UKW_1mu9kxJY0EzPPBsA6dWReaUmfrofG4ek,3436
|
|
66
|
+
contentctl/objects/investigation_tags.py,sha256=qDGNusrWDvCX_GcBEzag2MydSV0LIhGxoXZGgxDXfHA,1317
|
|
67
|
+
contentctl/objects/lookup.py,sha256=mzOPhMDyoNZKLAj8zf6Wg6i9FJKMu3qHWinATtH75I8,13015
|
|
68
|
+
contentctl/objects/macro.py,sha256=usbxyOPIRIJoDmvawfP2DxtFNf71GaDwffxiZsRkP5A,3594
|
|
69
|
+
contentctl/objects/manual_test.py,sha256=cx_XAtQ8VG8Ui_F553Xnut75vFEOtRwm1dDIIWNpOaM,952
|
|
70
|
+
contentctl/objects/manual_test_result.py,sha256=FyCVVf-f1DKs-qBkM4tbKfY6mkrW25NcIEBqyaDC2rE,156
|
|
71
|
+
contentctl/objects/mitre_attack_enrichment.py,sha256=Qzm-P-gx_j-qOe6CKaUCv7AmcNy9EFwnMkw0oYsMfAY,3314
|
|
72
|
+
contentctl/objects/notable_action.py,sha256=sW5XlpGznMHqyBmGXtXrl22hWLiCoKkfGCasGtK3rGo,1607
|
|
73
|
+
contentctl/objects/notable_event.py,sha256=2aOtmfnsdInTtN_fHAGIKmBTBritjHbS_Nc-pqL-GbY,689
|
|
74
|
+
contentctl/objects/playbook.py,sha256=mgYbWsD3OW86u11MbIFKvmyFueSoMJ1WBJm_rNrFvAo,2425
|
|
75
|
+
contentctl/objects/playbook_tags.py,sha256=O5obkQyb82YdJEii8ZJEQtrHtLOSnAvAkT1qIgpCK2s,1547
|
|
76
|
+
contentctl/objects/rba.py,sha256=N1i_ggXjYmHluvYZRq6OJddlbokDnS1mkUsmehmFWOg,2880
|
|
77
|
+
contentctl/objects/risk_analysis_action.py,sha256=v-TQktXEEzbGzmTtqwEykXoSKdGnIlK_JojnqvvAE1s,4370
|
|
78
|
+
contentctl/objects/risk_event.py,sha256=JQUmXriiwi5FetqVnhM0hf5cUp6LzLSNPuoecC2JKK0,12593
|
|
79
|
+
contentctl/objects/risk_object.py,sha256=5iUKW_UwQLjjLWiD_vlE78uwH9bkaMNCHRNmKM25W1Q,905
|
|
80
|
+
contentctl/objects/savedsearches_conf.py,sha256=Dn_Pxd9i3RT6DwNh6JrgmfxjsO3q15xzMksYr3wIGwQ,8624
|
|
81
|
+
contentctl/objects/security_content_object.py,sha256=iDnhq81P7m6Qkmc_Yi-wOyFm9gZUYnPy1GJxxyCtonA,245
|
|
82
|
+
contentctl/objects/story.py,sha256=PQGDjtOkd4ROEYu1g7w631PRDWI3naLwXf-knyKqnGs,4908
|
|
83
|
+
contentctl/objects/story_tags.py,sha256=SLwgkckLxBdtgJro0LnYgj5TFHZEgMiaqDI9q6OfNE0,2364
|
|
84
|
+
contentctl/objects/test_attack_data.py,sha256=7p-kOJguTZtG9y5th5U3qfPFvpiAWLST_OBw8dwWl_4,488
|
|
85
|
+
contentctl/objects/test_group.py,sha256=r-dXyddok4yslv8SIjwOpqylbN1rdjsRi-HIijvpWD0,2602
|
|
86
|
+
contentctl/objects/threat_object.py,sha256=CB3igcmiq06lqnEh7h-btxFrBfgZbHaA9p8kFDKY6lQ,712
|
|
87
|
+
contentctl/objects/throttling.py,sha256=oupWmdtvwAXzLmD3MBJyAU18SD2L2ciEZWUcnL8MuGk,2309
|
|
88
|
+
contentctl/objects/unit_test.py,sha256=-rtSmZ8N2UZ4NkDsfzNXzXiF6dTDwt_jsQ_14xp0hjs,1005
|
|
89
|
+
contentctl/objects/unit_test_baseline.py,sha256=ezg8Ctih_3che2ln2tuVCAtRPHaf5tDMR3dGb34MqaA,287
|
|
90
|
+
contentctl/objects/unit_test_result.py,sha256=gqHqYN5XGBKdV-mdKhAdwfOw4_PpN3i9z_b6ciByDSc,2928
|
|
91
|
+
contentctl/output/api_json_output.py,sha256=QWe_KWlHHxE4Mhd3BHRfJbUJ4z2mLHZn_eMWfMVInik,8237
|
|
92
|
+
contentctl/output/attack_nav_output.py,sha256=2_JISJ3sL4dVAwrIfZ7c426CGz5gjUBVkWh0uFO2MXU,2276
|
|
93
|
+
contentctl/output/attack_nav_writer.py,sha256=FEua57vv347PjFiu1skOEGAbxIqPWMN8Iyp8nDrIvAA,2044
|
|
94
|
+
contentctl/output/conf_output.py,sha256=2_ofRqMro4xmFzf6ZmPRDd93pCG-LQhOiB_kE4owADc,10609
|
|
95
|
+
contentctl/output/conf_writer.py,sha256=9eqt2tm1xjs397pwWLz5oPJcMHbs62ejRG7KghGQQCI,15137
|
|
96
|
+
contentctl/output/data_source_writer.py,sha256=hjr0b5zfJ2UHcDLbCkmTrqma1ngu8F5vWFPJEwOZwU8,1860
|
|
97
|
+
contentctl/output/doc_md_output.py,sha256=wlgbzBD2hUbQNIW2zv5sdrq2UdAKhOZJUYSObnpWQfY,3552
|
|
98
|
+
contentctl/output/jinja_writer.py,sha256=5PbFrc8KuLWrlNIHDvMTyvJ18u_mtjd5Led6-9sn2Eo,1204
|
|
99
|
+
contentctl/output/json_writer.py,sha256=waw73wOmalSrUFcr2K1CWR-xz5oW8il10zDAn56mtMg,1041
|
|
100
|
+
contentctl/output/svg_output.py,sha256=5s9fjmKullMV6cCCGwP7_xvQwg9EZLOKRKMw_IyO6hY,2988
|
|
101
|
+
contentctl/output/templates/analyticstories_detections.j2,sha256=_xM5MMC_O5aLTBI04afgrCnYVfojmbb3J1JVq2AkaT8,964
|
|
102
|
+
contentctl/output/templates/analyticstories_investigations.j2,sha256=kqy9lR6W3avqETCM2tSZ8WWOlfiyOtFv6G5N4SZWSaQ,527
|
|
103
|
+
contentctl/output/templates/analyticstories_stories.j2,sha256=4rS-oN6JHAVKF3ToMxzHqK7asytw1R4OQmZGtzdRRBI,663
|
|
104
|
+
contentctl/output/templates/app.conf.j2,sha256=UL80Px4IUGPD-DgcAiUrS4emHBIY7DxleSNyNXCH5tQ,623
|
|
105
|
+
contentctl/output/templates/app.manifest.j2,sha256=Q1803mcfgNvUs8s4e1zD1J3_mxfPYVtLkD8fhCO6d-I,1103
|
|
106
|
+
contentctl/output/templates/collections.j2,sha256=w2hkY7Yfm7AmY1O_7DP-znLS_whgKX79VbnW7QlvrNU,151
|
|
107
|
+
contentctl/output/templates/content-version.j2,sha256=2-it0TF5BvqUcmUXVFB4DEh0I01igQGDxZNJpdtDFIA,54
|
|
108
|
+
contentctl/output/templates/detection_count.j2,sha256=9U3o-P_ECkMknsooj_L3B9GZqjnsbaEzr59s3-DOK0I,670
|
|
109
|
+
contentctl/output/templates/detection_coverage.j2,sha256=guE4fow9BqGoCCrQ3b6-EZqWJcThb58V9khuIH7nhT0,631
|
|
110
|
+
contentctl/output/templates/doc_detection_page.j2,sha256=kATedDq0Z8tzxKiD3nD0_-7YiOrjssUMYSDenRYTh6A,1012
|
|
111
|
+
contentctl/output/templates/doc_detections.j2,sha256=tjTQh6R5zMMmBm9hk-8dFG5p0PyhWSGkrYeRxe9gfPU,6500
|
|
112
|
+
contentctl/output/templates/doc_navigation.j2,sha256=h25ITC3xcAM17uZGIyyDFURmEdYtQSPvNeWN3RH7j4Q,1471
|
|
113
|
+
contentctl/output/templates/doc_navigation_pages.j2,sha256=ptfjbD4F0Ob7dze9at2q5gqOslcbL3eteUO1zsblDJo,203
|
|
114
|
+
contentctl/output/templates/doc_playbooks.j2,sha256=CWsnm8F097oYT8anW3CE7JaX1haAJTfylThP1ic0UIw,1681
|
|
115
|
+
contentctl/output/templates/doc_playbooks_page.j2,sha256=2d5UNDSOxyMtxKGxGHzJ2Ny_UrqTq267NO1h-lmNduc,679
|
|
116
|
+
contentctl/output/templates/doc_stories.j2,sha256=0J3dAbfSZz-Ma1-C9B6vYPKGwrxoZryYoudy3wUIT4s,1827
|
|
117
|
+
contentctl/output/templates/doc_story_page.j2,sha256=jrf-As8GbqLarRoiDipfM9ZUVRl_bhdNsy-XaCrBaXE,874
|
|
118
|
+
contentctl/output/templates/es_investigations_investigations.j2,sha256=M4beFAFrkdhOIda2uYOXOxm9eBTdtSrTg07ke8FcELs,1013
|
|
119
|
+
contentctl/output/templates/es_investigations_stories.j2,sha256=3_adGXuyMR6v-k3uc6_ht13UqX1AI4HagRdokwW0tqk,388
|
|
120
|
+
contentctl/output/templates/header.j2,sha256=3usV7jm1q6J-QNnQrZzII9cN0XEGQjg_eVKrEQwfOG0,201
|
|
121
|
+
contentctl/output/templates/macros.j2,sha256=SLcQQ5X7TZS8j-2qP06BTXqdIcnwoYqTAaBLX2Dge7Y,390
|
|
122
|
+
contentctl/output/templates/panel.j2,sha256=Cw_W6p-14n6UivVfpS75KKJiJ2VpdGsSBceYsUYe9gk,221
|
|
123
|
+
contentctl/output/templates/savedsearches_baselines.j2,sha256=BfpNrApucyByZHYW-Az63NO7hXBRYtlQCZcgBcLDv60,1683
|
|
124
|
+
contentctl/output/templates/savedsearches_detections.j2,sha256=FzOCszfJjAWTE4Z40JMK6umOPxz5NjcRt3-agwmvFn0,6830
|
|
125
|
+
contentctl/output/templates/savedsearches_investigations.j2,sha256=3jWg3OEwnexZxebpyP9_7lbZI407e5rlx1-epRs1Kpc,1170
|
|
126
|
+
contentctl/output/templates/server.conf.j2,sha256=sPZUkiuJNGm9R8rpjfRKyuAvmmQb0C4w9Q6hpmvmPeU,127
|
|
127
|
+
contentctl/output/templates/transforms.j2,sha256=X38npfkFDKaXHZpU0t0ZUglva7iHyeMXB_8Kc3Ssoy4,1468
|
|
128
|
+
contentctl/output/templates/workflow_actions.j2,sha256=DFoZVnCa8dMRHjW2AdpoydBC0THgiH_W-Nx7WI4-uR4,925
|
|
129
|
+
contentctl/output/yml_writer.py,sha256=gGgbamHWunHKjj47TcqB04k0xliX6w3H7iajZtUZRSU,2124
|
|
130
|
+
contentctl/templates/README.md,sha256=GoRmywUqwnjaehY_GLmGqxsFXCLP9plpDYwB6W6nVPs,428
|
|
131
|
+
contentctl/templates/app_default.yml,sha256=kDeYdJbfMADQPcho8iH1nqgTFrHNt4EXnIJjPHc2unI,6390
|
|
132
|
+
contentctl/templates/app_template/README/essoc_story_detail.txt,sha256=7hFPBfPpRH28TFl7QchKceZLewQqgFjRWDlmxZzwpmo,897
|
|
133
|
+
contentctl/templates/app_template/README/essoc_summary.txt,sha256=u6wYNYBqmmm7Kn_g_Uex8rRzMQ995MUXCavla95Y1dw,2538
|
|
134
|
+
contentctl/templates/app_template/README/essoc_usage_dashboard.txt,sha256=xYUKKVtdgzPyT3mqdTccaBZuwWnC63lbc9zyYpmHN4o,2432
|
|
135
|
+
contentctl/templates/app_template/README.md,sha256=RT-J9bgRSFsEFgNr9qV6yc2LkfUH_uiMJ2RV4NM9Ymo,366
|
|
136
|
+
contentctl/templates/app_template/default/analytic_stories.conf,sha256=zWuCOOl8SiP7Kit2s-de4KRu3HySLtBSXcp1QnJx0ec,168
|
|
137
|
+
contentctl/templates/app_template/default/commands.conf,sha256=U2ccwUeGXKKKt5jo14QY5swi-p9_TSJtaNquOkeF3Yk,319
|
|
138
|
+
contentctl/templates/app_template/default/data/ui/nav/default.xml,sha256=fKN53HZCtNJbQqq_5pP8e5-5m30DRrJittr6q5s6V_0,236
|
|
139
|
+
contentctl/templates/app_template/default/data/ui/views/escu_summary.xml,sha256=jQhkIthPgEEptCJ2wUCj2lWGHBvUl6JGsKkDfONloxI,8635
|
|
140
|
+
contentctl/templates/app_template/default/data/ui/views/feedback.xml,sha256=uM71EMK2uFz8h68nOTNKGnYxob3HhE_caSL6yA-3H-k,696
|
|
141
|
+
contentctl/templates/app_template/default/use_case_library.conf,sha256=zWuCOOl8SiP7Kit2s-de4KRu3HySLtBSXcp1QnJx0ec,168
|
|
142
|
+
contentctl/templates/app_template/lookups/mitre_enrichment.csv,sha256=tifPQjFoQHtvpb78hxSP2fKHnHeehNbZDwUjdvc0aEM,66072
|
|
143
|
+
contentctl/templates/app_template/metadata/default.meta,sha256=h66ea1l3qMzDRgDUAXsJvGKeJnp5w-s2unYMZ9dJLzM,433
|
|
144
|
+
contentctl/templates/app_template/static/appIcon.png,sha256=jcJ1PNdkBX7Kl_y9Tf0SZ55OJYA2PpwjvkVvBt9_OoE,3658
|
|
145
|
+
contentctl/templates/app_template/static/appIconAlt.png,sha256=uRXjoHQQjs0-BxcK-3KNBEdck1adDNTHMvV14xR4W0g,2656
|
|
146
|
+
contentctl/templates/app_template/static/appIconAlt_2x.png,sha256=I0m-CPRqq7ak9NJQZGGmz6Ac4pmzFV_SonOUxOEDOFs,7442
|
|
147
|
+
contentctl/templates/app_template/static/appIcon_2x.png,sha256=XEpqQzDvzuEV5StzD05XRgxwySqHHLes1hMPy2v5Vdk,3657
|
|
148
|
+
contentctl/templates/data_sources/sysmon_eventid_1.yml,sha256=7PIcLr1e9Ql-wu_Dk9D4JAZs1OWDby-tY77nDDUZ1CQ,6079
|
|
149
|
+
contentctl/templates/datamodels_cim.conf,sha256=RB_SCtpQG_KaC_0lKTCKexVOlEq_ShGwpGlg95aqOfs,9381
|
|
150
|
+
contentctl/templates/datamodels_custom.conf,sha256=6BANthXdqg3fYpYmEqiGZnv4cWheNfXz1uQ_I1JePXc,480
|
|
151
|
+
contentctl/templates/deployments/escu_default_configuration_anomaly.yml,sha256=j_H2wovWBj1EKxVwj3mMoJVQnVm-2Imt7xnB9U1Tun4,418
|
|
152
|
+
contentctl/templates/deployments/escu_default_configuration_baseline.yml,sha256=NzUvaotkk7hatx9EBjROFIwsvSOZXgfAJUvGS8JrUMg,334
|
|
153
|
+
contentctl/templates/deployments/escu_default_configuration_correlation.yml,sha256=iWLqvJnUKVhpKaLBc_w_W65d9HVZgOZfGA-RIpxsH6M,519
|
|
154
|
+
contentctl/templates/deployments/escu_default_configuration_hunting.yml,sha256=hHmM8u7zncpb-32Qv74UoNs0HKwZwCMoKAq2ygDJZbo,329
|
|
155
|
+
contentctl/templates/deployments/escu_default_configuration_ttp.yml,sha256=1D-pvzaH1v3_yCZXaY6njmdvV4S2_Ak8uzzCOsnj9XY,548
|
|
156
|
+
contentctl/templates/detections/application/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
|
+
contentctl/templates/detections/cloud/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
158
|
+
contentctl/templates/detections/endpoint/anomalous_usage_of_7zip.yml,sha256=VQ8mxkOOm7RfnBomtOXF9XGE8fV-j5j-4pFtpocQ17Y,3875
|
|
159
|
+
contentctl/templates/detections/network/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
|
+
contentctl/templates/detections/web/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
161
|
+
contentctl/templates/macros/security_content_ctime.yml,sha256=Gg1YNllHVsX_YB716H1SJLWzxXZEfuJlnsgB2fuyoHU,159
|
|
162
|
+
contentctl/templates/macros/security_content_summariesonly.yml,sha256=9BYUxAl2E4Nwh8K19F3AJS8Ka7ceO6ZDBjFiO3l3LY0,162
|
|
163
|
+
contentctl/templates/stories/cobalt_strike.yml,sha256=rlaXxMN-5k8LnKBLPafBoksyMtlmsPMHPJOjTiMiZ-M,3063
|
|
164
|
+
contentctl-5.0.0a3.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
|
|
165
|
+
contentctl-5.0.0a3.dist-info/METADATA,sha256=qoffZP-QlvTkV1yd5N_nghB-l2SGwZPeh1le57wGBOk,21541
|
|
166
|
+
contentctl-5.0.0a3.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
167
|
+
contentctl-5.0.0a3.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
|
|
168
|
+
contentctl-5.0.0a3.dist-info/RECORD,,
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
'''
|
|
2
|
-
Initializes a Splunk Content Project
|
|
3
|
-
'''
|
|
4
|
-
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
import yaml
|
|
7
|
-
import sys
|
|
8
|
-
import questionary
|
|
9
|
-
import os
|
|
10
|
-
from contentctl.objects.enums import LogLevel
|
|
11
|
-
|
|
12
|
-
import abc
|
|
13
|
-
from pydantic import BaseModel, Field
|
|
14
|
-
|
|
15
|
-
from contentctl.objects.config import Config
|
|
16
|
-
|
|
17
|
-
DEFAULT_FOLDERS = ['detections', 'stories', 'lookups', 'macros', 'baselines', 'dist']
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def create_folders(path):
|
|
21
|
-
|
|
22
|
-
for folder in DEFAULT_FOLDERS:
|
|
23
|
-
folder_path = path + "/" + folder
|
|
24
|
-
if not os.path.exists(folder_path):
|
|
25
|
-
os.makedirs(folder_path)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def NewContentPack(args, default_config):
|
|
30
|
-
"""
|
|
31
|
-
new function creates a new configuration file based on the user input on the terminal.
|
|
32
|
-
:param config: python dictionary having the configuration
|
|
33
|
-
:return: No return value
|
|
34
|
-
"""
|
|
35
|
-
contentctl_config_file = Path(args.config)
|
|
36
|
-
if contentctl_config_file.is_file():
|
|
37
|
-
questions = [
|
|
38
|
-
{
|
|
39
|
-
'type': 'confirm',
|
|
40
|
-
'message': 'File {0} already exist, are you sure you want to continue?\nTHIS WILL OVERWRITE YOUR CURRENT CONFIG!'.format(contentctl_config_file),
|
|
41
|
-
'name': 'continue',
|
|
42
|
-
'default': True,
|
|
43
|
-
},
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
answers = questionary.prompt(questions)
|
|
47
|
-
if answers['continue']:
|
|
48
|
-
print("> continuing with contentctl configuration...")
|
|
49
|
-
else:
|
|
50
|
-
print("> exiting, to create a unique configuration file in another location use the --config flag")
|
|
51
|
-
sys.exit(0)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
# configuration parameters
|
|
55
|
-
if os.path.exists(args.output):
|
|
56
|
-
config_path = args.output + "/" + str(contentctl_config_file)
|
|
57
|
-
else:
|
|
58
|
-
print("ERROR, output folder: {0} does not exist".format(args.output))
|
|
59
|
-
sys.exit(1)
|
|
60
|
-
|
|
61
|
-
# deal with skipping configuration
|
|
62
|
-
if args.skip_configuration:
|
|
63
|
-
print("initializing with default configuration: {0}".format(config_path))
|
|
64
|
-
# write config file
|
|
65
|
-
with open(config_path, 'w') as outfile:
|
|
66
|
-
yaml.dump(default_config, outfile, default_flow_style=False, sort_keys=False)
|
|
67
|
-
|
|
68
|
-
# write folder structure
|
|
69
|
-
create_folders(args.output)
|
|
70
|
-
sys.exit(0)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
questions = [
|
|
74
|
-
{
|
|
75
|
-
"type": "select",
|
|
76
|
-
"message": "Which build format should we use for this content pack? Builds will be created under the dist/ folder.",
|
|
77
|
-
"name": "product",
|
|
78
|
-
"choices": ["Splunk App", "JSON API Objects", "BA Objects", "All"],
|
|
79
|
-
"default": "Splunk App"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
'type': 'text',
|
|
83
|
-
'message': 'What should the Splunk App for this content pack be called?',
|
|
84
|
-
'name': 'product_app_name',
|
|
85
|
-
'default': 'Capybara Splunk Content Pack',
|
|
86
|
-
'when': lambda answers: answers['product'] == "Splunk App" or answers['product'] == "All",
|
|
87
|
-
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
'type': 'confirm',
|
|
91
|
-
'message': 'Should this content pack be deployed to a (Cloud) Splunk Enterprise Server?',
|
|
92
|
-
'name': 'deploy_to_splunk',
|
|
93
|
-
'default': False,
|
|
94
|
-
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
'type': 'text',
|
|
98
|
-
'message': 'What is the <host>:<port> of the (Cloud) Splunk Enterprise Server?',
|
|
99
|
-
'name': 'deploy_to_splunk_server',
|
|
100
|
-
'default': '127.0.0.1:8089',
|
|
101
|
-
'when': lambda answers: answers['deploy_to_splunk'],
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
'type': 'text',
|
|
106
|
-
'message': 'What is the username of the (Cloud) Splunk Enterprise Server?',
|
|
107
|
-
'name': 'deploy_to_splunk_username',
|
|
108
|
-
'default': 'admin',
|
|
109
|
-
'when': lambda answers: answers['deploy_to_splunk'],
|
|
110
|
-
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
'type': 'text',
|
|
114
|
-
'message': 'What is the password of the (Cloud) Splunk Enterprise Server?',
|
|
115
|
-
'name': 'deploy_to_splunk_password',
|
|
116
|
-
'default': 'xxx',
|
|
117
|
-
'when': lambda answers: answers['deploy_to_splunk'],
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
'type': 'text',
|
|
122
|
-
'message': 'How often should analytics run? The schedule is on cron format (https://crontab.guru/).',
|
|
123
|
-
'name': 'scheduling_cron_schedule',
|
|
124
|
-
'default': '0 * * * *',
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
'type': 'text',
|
|
128
|
-
'message': 'What is the earliest time for analytics? Uses Splunk time modifiers (https://docs.splunk.com/Documentation/SCS/current/Search/Timemodifiers).',
|
|
129
|
-
'name': 'scheduling_earliest_time',
|
|
130
|
-
'default': '-70m@m',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
'type': 'text',
|
|
134
|
-
'message': 'What is the latest time for analytics? Uses Splunk time modifiers (https://docs.splunk.com/Documentation/SCS/current/Search/Timemodifiers).',
|
|
135
|
-
'name': 'scheduling_latest_time',
|
|
136
|
-
'default': '-10m@m',
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
'type': 'checkbox',
|
|
140
|
-
'message': 'What should the default action be when an analytic triggers?',
|
|
141
|
-
'name': 'default_actions',
|
|
142
|
-
'choices': ["notable", "risk_event", "email"],
|
|
143
|
-
'default': 'notable',
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
'type': 'text',
|
|
147
|
-
'message': 'What email address should we send the alerts to?',
|
|
148
|
-
'name': 'to_email',
|
|
149
|
-
'default': 'geralt@monsterkiller.com',
|
|
150
|
-
'when': lambda answers: 'email' in answers['default_actions'],
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
'type': 'confirm',
|
|
154
|
-
'message': 'Should we include some example content? This will add a detection and its test with supporting components like lookups and macros.',
|
|
155
|
-
'name': 'pre_populate',
|
|
156
|
-
'default': True,
|
|
157
|
-
},
|
|
158
|
-
]
|
|
159
|
-
|
|
160
|
-
answers = questionary.prompt(questions)
|
|
161
|
-
|
|
162
|
-
# create a custom config object to store answers
|
|
163
|
-
custom_config = default_config
|
|
164
|
-
|
|
165
|
-
# remove other product settings
|
|
166
|
-
if answers['product'] == 'Splunk App':
|
|
167
|
-
# pop other configs out
|
|
168
|
-
custom_config['build'].pop('json_objects')
|
|
169
|
-
custom_config['build'].pop('ba_objects')
|
|
170
|
-
# capture configs
|
|
171
|
-
custom_config['build']['splunk_app']['name'] = answers['product_app_name']
|
|
172
|
-
custom_config['build']['splunk_app']['path'] = 'dist/' + answers['product_app_name'].lower().replace(" ", "_")
|
|
173
|
-
custom_config['build']['splunk_app']['prefix'] = answers['product_app_name'].upper()[0: 3]
|
|
174
|
-
|
|
175
|
-
elif answers['product'] == 'JSON API Objects':
|
|
176
|
-
custom_config['build'].pop('splunk_app')
|
|
177
|
-
custom_config['build'].pop('ba_objects')
|
|
178
|
-
elif answers['product'] == 'BA Objects':
|
|
179
|
-
custom_config['build'].pop('splunk_app')
|
|
180
|
-
custom_config['build'].pop('json_objects')
|
|
181
|
-
else:
|
|
182
|
-
# splunk app config
|
|
183
|
-
custom_config['build']['splunk_app']['name'] = answers['product_app_name']
|
|
184
|
-
custom_config['build']['splunk_app']['path'] = 'dist/' + answers['product_app_name'].lower().replace(" ", "_")
|
|
185
|
-
custom_config['build']['splunk_app']['prefix'] = answers['product_app_name'].upper()[0: 3]
|
|
186
|
-
|
|
187
|
-
if answers['deploy_to_splunk']:
|
|
188
|
-
custom_config['deploy']['server'] = answers['deploy_to_splunk_server']
|
|
189
|
-
custom_config['deploy']['username'] = answers['deploy_to_splunk_username']
|
|
190
|
-
custom_config['deploy']['password'] = answers['deploy_to_splunk_password']
|
|
191
|
-
else:
|
|
192
|
-
custom_config.pop('deploy')
|
|
193
|
-
|
|
194
|
-
custom_config['scheduling']['cron_schedule'] = answers['scheduling_cron_schedule']
|
|
195
|
-
custom_config['scheduling']['earliest_time'] = answers['scheduling_earliest_time']
|
|
196
|
-
custom_config['scheduling']['latest_time'] = answers['scheduling_latest_time']
|
|
197
|
-
|
|
198
|
-
if 'notable' in answers['default_actions']:
|
|
199
|
-
custom_config['alert_actions']['notable']['rule_description'] = '%description%'
|
|
200
|
-
custom_config['alert_actions']['notable']['rule_title'] = '%name%'
|
|
201
|
-
custom_config['alert_actions']['notable']['nes_fields'] = ['user','dest','src']
|
|
202
|
-
else:
|
|
203
|
-
custom_config['alert_actions'].pop('notable')
|
|
204
|
-
if 'risk_event' in answers['default_actions']:
|
|
205
|
-
rba = dict()
|
|
206
|
-
custom_config['alert_actions']['rba'] = rba
|
|
207
|
-
custom_config['alert_actions']['rba']['enabled'] = 'true'
|
|
208
|
-
|
|
209
|
-
if 'email' in answers['default_actions']:
|
|
210
|
-
email = dict()
|
|
211
|
-
custom_config['alert_actions']['email'] = email
|
|
212
|
-
custom_config['alert_actions']['email']['subject'] = 'Alert %name% triggered'
|
|
213
|
-
custom_config['alert_actions']['email']['message'] = 'The rule %name% triggered base on %description%'
|
|
214
|
-
custom_config['alert_actions']['email']['to'] = answers['to_email']
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
# write config file
|
|
218
|
-
with open(config_path, 'w') as outfile:
|
|
219
|
-
yaml.dump(custom_config, outfile, default_flow_style=False, sort_keys=False)
|
|
220
|
-
print('Content pack configuration created under: {0} .. edit to fine tune details before building'.format(config_path))
|
|
221
|
-
|
|
222
|
-
# write folder structure
|
|
223
|
-
create_folders(args.output)
|
|
224
|
-
print('The following folders were created: {0} under {1}.\nContent pack has been initialized, please run `new` to create new content.'.format(DEFAULT_FOLDERS, args.output))
|
|
225
|
-
|
|
226
|
-
print("Load the custom_config into the pydantic model we have created")
|
|
227
|
-
cfg = ContentPackConfig().parse_obj(custom_config)
|
|
228
|
-
import pprint
|
|
229
|
-
pprint.pprint(cfg.__dict__)
|
|
230
|
-
print("********************")
|
|
231
|
-
pprint.pprint(custom_config)
|
|
232
|
-
print("done")
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
contentctl/objects/observable.py
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
from pydantic import BaseModel, field_validator, ConfigDict
|
|
2
|
-
from contentctl.objects.constants import SES_OBSERVABLE_TYPE_MAPPING, RBA_OBSERVABLE_ROLE_MAPPING
|
|
3
|
-
|
|
4
|
-
# TODO (cmcginley): should this class be removed?
|
|
5
|
-
|
|
6
|
-
class Observable(BaseModel):
|
|
7
|
-
model_config = ConfigDict(extra="forbid")
|
|
8
|
-
name: str
|
|
9
|
-
type: str
|
|
10
|
-
role: list[str]
|
|
11
|
-
|
|
12
|
-
@field_validator('name')
|
|
13
|
-
def check_name(cls, v: str):
|
|
14
|
-
if v == "":
|
|
15
|
-
raise ValueError("No name provided for observable")
|
|
16
|
-
return v
|
|
17
|
-
|
|
18
|
-
@field_validator('type')
|
|
19
|
-
def check_type(cls, v: str):
|
|
20
|
-
if v not in SES_OBSERVABLE_TYPE_MAPPING.keys():
|
|
21
|
-
raise ValueError(
|
|
22
|
-
f"Invalid type '{v}' provided for observable. Valid observable types are "
|
|
23
|
-
f"{SES_OBSERVABLE_TYPE_MAPPING.keys()}"
|
|
24
|
-
)
|
|
25
|
-
return v
|
|
26
|
-
|
|
27
|
-
@field_validator('role')
|
|
28
|
-
def check_roles(cls, v: list[str]):
|
|
29
|
-
if len(v) == 0:
|
|
30
|
-
raise ValueError("Error, at least 1 role must be listed for Observable.")
|
|
31
|
-
if len(v) > 1:
|
|
32
|
-
raise ValueError("Error, each Observable can only have one role.")
|
|
33
|
-
for role in v:
|
|
34
|
-
if role not in RBA_OBSERVABLE_ROLE_MAPPING.keys():
|
|
35
|
-
raise ValueError(
|
|
36
|
-
f"Invalid role '{role}' provided for observable. Valid observable types are "
|
|
37
|
-
f"{RBA_OBSERVABLE_ROLE_MAPPING.keys()}"
|
|
38
|
-
)
|
|
39
|
-
return v
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
contentctl/__init__.py,sha256=IMjkMO3twhQzluVTo8Z6rE7Eg-9U79_LGKMcsWLKBkY,22
|
|
2
|
-
contentctl/actions/build.py,sha256=J-ALH-_IFypOZWarTCLdnTo9g5IpIwEJBON2cnhwKEw,5505
|
|
3
|
-
contentctl/actions/deploy_acs.py,sha256=4mD3wEgudi8UWpTW9mB5n65Bcs1w4g5cG2yflj-uEck,3259
|
|
4
|
-
contentctl/actions/detection_testing/DetectionTestingManager.py,sha256=YAEtyAErvDgk4eqIXWLVllZFKe_0ZKliycR9fvWeMjI,8744
|
|
5
|
-
contentctl/actions/detection_testing/GitService.py,sha256=eXrppyWPXyL3MsN5iKKUsEM1orYSDxpBraBnM17LOLs,11137
|
|
6
|
-
contentctl/actions/detection_testing/generate_detection_coverage_badge.py,sha256=N5mznaeErVak3mOBwsd0RDBFJO3bku0EZvpayCyU-uk,2259
|
|
7
|
-
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructure.py,sha256=Vy-BWRC_YqctFQOxEluf2cxtA8AHV-aIS1RJx0Fril8,57138
|
|
8
|
-
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureContainer.py,sha256=WCtyyMKTA17JzPIb10rV8C6vdG-cBzHtFC9T2CuYY2o,7047
|
|
9
|
-
contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureServer.py,sha256=Q1ZfCYOp54O39bgTScZMInkmZiU-bGAM9Hiwr2mq5ms,370
|
|
10
|
-
contentctl/actions/detection_testing/progress_bar.py,sha256=jiorPxfSAX6jCK1BSQDKNYchTshBnWshWB0XphLp91A,3229
|
|
11
|
-
contentctl/actions/detection_testing/views/DetectionTestingView.py,sha256=ENHVBQxR3Ws4NYZmCfmoKBtAaGX9QW028obMQ6o1YnU,7615
|
|
12
|
-
contentctl/actions/detection_testing/views/DetectionTestingViewCLI.py,sha256=v5F3heZ3ZD0ik_-a_zDYSEz6oc5VdVj3e5rSSZ-tK00,2149
|
|
13
|
-
contentctl/actions/detection_testing/views/DetectionTestingViewFile.py,sha256=3mBCQy3hYuX8bNqh3al0nANlMwq9sxbQjkhwA1V5LOA,1090
|
|
14
|
-
contentctl/actions/detection_testing/views/DetectionTestingViewWeb.py,sha256=Q6p7UqDOYI2VjFl21_1iue76rWVsQmJUzRewtUBF1a8,4755
|
|
15
|
-
contentctl/actions/doc_gen.py,sha256=YNc1VYA0ikL1hWDHYjfEOmUkfhy8PEIdvTyC4ZLxQRY,863
|
|
16
|
-
contentctl/actions/initialize.py,sha256=wEO3u8vJYP8Xh2OSJ_HxfMV6mqOdkPyWbUzNGEqMTNA,3055
|
|
17
|
-
contentctl/actions/initialize_old.py,sha256=0qXbW_fNDvkcnEeL6Zpte8d-hpTu1REyzHsXOCY-YB8,9333
|
|
18
|
-
contentctl/actions/inspect.py,sha256=dXV020g_GwwspSgiS6jQxW0JEVr_nublJBevwZ79mZo,17424
|
|
19
|
-
contentctl/actions/new_content.py,sha256=wefzwJ0uCduLTvkynls1IVJCmcs_3RU9YkDzx7iiWeo,8363
|
|
20
|
-
contentctl/actions/release_notes.py,sha256=0K7zHQyVHVYK_whiv4PvxOKS4_0s1Ya_RDCrrcT3FW4,13319
|
|
21
|
-
contentctl/actions/reporting.py,sha256=MJEmvmoA1WnSFZEU9QM6daL_W94oOX0WXAcX1qAM2As,1583
|
|
22
|
-
contentctl/actions/test.py,sha256=gS-BIexzzjHUR8RvQADDjyTIeJvilbuufPQq10TINJE,5953
|
|
23
|
-
contentctl/actions/validate.py,sha256=7w5444SiOs0R4c_2Yn0tRaFx9Nf-r7o9aMjSaz3N9Kw,5602
|
|
24
|
-
contentctl/api.py,sha256=O0dNE3-WkWs2zuOeAQnIicgOtBX5s2bGBhRVo3j69-8,6327
|
|
25
|
-
contentctl/contentctl.py,sha256=rVqo4MaDFWljw9_ZwgTcSjtIEC9jcVRibJ7I--YyDm0,11185
|
|
26
|
-
contentctl/enrichments/attack_enrichment.py,sha256=i0p5ud7EqA2SMB7Gc8JQdIonUTjAeDN-hxKBV4XV-Rg,6391
|
|
27
|
-
contentctl/enrichments/cve_enrichment.py,sha256=aXpv_kCS0XP6JpC_ZEOeBPgrl38t_vkKZe9Ay35lRi4,2347
|
|
28
|
-
contentctl/enrichments/splunk_app_enrichment.py,sha256=zDNHFLZTi2dJ1gdnh0sHkD6F1VtkblqFnhacFcCMBfc,3418
|
|
29
|
-
contentctl/helper/link_validator.py,sha256=-XorhxfGtjLynEL1X4hcpRMiyemogf2JEnvLwhHq80c,7139
|
|
30
|
-
contentctl/helper/logger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
contentctl/helper/splunk_app.py,sha256=5KoacltgQ2J1BdxqvZYhr6GCXFl2tsy8TEWNc2gXkqw,14187
|
|
32
|
-
contentctl/helper/utils.py,sha256=8UDQWZmPg0hRjLNSf4gowsbdVCC4YFJW-xVxyIXUA_Y,18954
|
|
33
|
-
contentctl/input/director.py,sha256=ieNzGHY7KMdwZZ7Re8-NnfdW3dRnrwh98BLFldDU1wg,10975
|
|
34
|
-
contentctl/input/new_content_questions.py,sha256=7Sfdp-HrlyDN2H88CHrByZIL26iN-gqN17tHSkBg6UA,4196
|
|
35
|
-
contentctl/input/yml_reader.py,sha256=BBO5AiLjwKTrVVMmW3p8BgFMXdTHPwPlEPlNXInmGNo,2015
|
|
36
|
-
contentctl/objects/abstract_security_content_objects/detection_abstract.py,sha256=uc7eadSrL9pDdT0U_QtoYhQeQbx9HUlrJLJaBs5lNxc,50053
|
|
37
|
-
contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py,sha256=6vFf6ZZiUFBclYLg9e_AmZYsPfIq385jgqcFGvzWdmE,10232
|
|
38
|
-
contentctl/objects/alert_action.py,sha256=vH8Yp3Ja4ane_bvOYvQhBwZiicYHJWKoecEsZzXEtKE,1393
|
|
39
|
-
contentctl/objects/annotated_types.py,sha256=jnX02BQT4dHbd_DCIjik0PNN3kgsvb7sxAz_1Jy8TOY,259
|
|
40
|
-
contentctl/objects/atomic.py,sha256=l10rrcZ2XItdnpOzSpHSbEwC12jelsPzELmeJZAGv2E,7338
|
|
41
|
-
contentctl/objects/base_test.py,sha256=V5hZK2EjBIdTFmXa8pHmqQVsgFF_yL2iknCOO1KTALo,1103
|
|
42
|
-
contentctl/objects/base_test_result.py,sha256=XxqOQHfOVTx3vvPgTz7ppE4EA_3MJx6Tf8G9bmhrWAI,5209
|
|
43
|
-
contentctl/objects/baseline.py,sha256=EtJZeKfuFRWLCgHdVNDgHaP_8CysD15GYs_hDnPPt0k,3020
|
|
44
|
-
contentctl/objects/baseline_tags.py,sha256=Z5BB0vxXpmbVeCyESs2WYaFgonBZTYY0iLZVAPabdJc,1548
|
|
45
|
-
contentctl/objects/config.py,sha256=JtctSRIXvU292ujFL9b6YX0mse04ZqliArwAEyM3oH8,48598
|
|
46
|
-
contentctl/objects/constants.py,sha256=Bn1O3FIcmLd7QYT-pZuhtaZ7k8sUvTWwh8XYXg4A_7M,5760
|
|
47
|
-
contentctl/objects/correlation_search.py,sha256=xNcURW_K8rRG8VKkQ6WGL8a4zBw4CORyr2SvY-3TCVQ,46039
|
|
48
|
-
contentctl/objects/dashboard.py,sha256=GKb_YqZMSP98Y97AlKffJrtVUufZzJag-zdmqRePLZ4,4114
|
|
49
|
-
contentctl/objects/data_source.py,sha256=gst7ut7wdpew0woEDQSRVuyYuVf0fLHc0Z6rXW9Fvbw,1489
|
|
50
|
-
contentctl/objects/deployment.py,sha256=dOPBq-0n1ETdVzhtgX81cIvkarafy4WRkVwEjwCMxaQ,2874
|
|
51
|
-
contentctl/objects/deployment_email.py,sha256=XU7jzEUYCfb71If0eLanz1rNl8PR-3RZtEh6FPqjiSY,205
|
|
52
|
-
contentctl/objects/deployment_notable.py,sha256=ALkddRQCgC2IO3AAl8M823icNvTL-V8pkIfRFj0ZvDk,256
|
|
53
|
-
contentctl/objects/deployment_phantom.py,sha256=MjTNi-B2IX6Xgxr6S20jJjo-4taX_zF-HXrFXl1x7gs,265
|
|
54
|
-
contentctl/objects/deployment_rba.py,sha256=E7z-Vus3m0gn1Zd7qrKiPztkj3C0inJIXh2SMif9bKk,183
|
|
55
|
-
contentctl/objects/deployment_scheduling.py,sha256=qqjBcawyC9oPlOIPTQuP-88wbrdxSOjdudtooWrlTwM,256
|
|
56
|
-
contentctl/objects/deployment_slack.py,sha256=Bg6hgIgc-BaWIv6CSWwE6429c9umFlBY51s-ZPTajtQ,193
|
|
57
|
-
contentctl/objects/detection.py,sha256=3W41cXf3ECjWuPqWrseqSLC3PAA7O5_nENWWM6MPK0Y,620
|
|
58
|
-
contentctl/objects/detection_metadata.py,sha256=eCsru2cymc3VINjt9MpDyGw2zXa2HyVEPv-XiGAcAeQ,2236
|
|
59
|
-
contentctl/objects/detection_stanza.py,sha256=842fHPfGDdddHF5UzgftYr8OlYblWhMWZxPQsTu2wKg,3066
|
|
60
|
-
contentctl/objects/detection_tags.py,sha256=2jGUvWSK0-b5M-guzcJQs2v5LfV_5hcfZpeS6HGx3Xo,9903
|
|
61
|
-
contentctl/objects/drilldown.py,sha256=rnhGIjm0uc7BFekzlxBeMbxpLpC1dcjkh8n0rF_SheI,3987
|
|
62
|
-
contentctl/objects/enums.py,sha256=Uy5n7diPs2q7vzhe2dTr2Mzr5ifzuKDmUhD-RujPl4E,13418
|
|
63
|
-
contentctl/objects/errors.py,sha256=WURmJCqhy2CZNXXCypXVtwnjSBx-VIcB6W9oFJmzoFk,5762
|
|
64
|
-
contentctl/objects/integration_test.py,sha256=UBBx85f517MpQXOM7-iEasACEQ0-Ia7W4rDChOHZfno,1319
|
|
65
|
-
contentctl/objects/integration_test_result.py,sha256=9oVWka57alIVPiCDbNgy-OmJcBicyYbrr6anL52Wgks,278
|
|
66
|
-
contentctl/objects/investigation.py,sha256=UOTieT033I3wU_-ydTCzT3LC1Is-WfnJKqcoVndW8LE,3244
|
|
67
|
-
contentctl/objects/investigation_tags.py,sha256=-BP9rjtOzYCXsA5f626kO70cHxHBPyxeRYhdNkQDA1Q,1255
|
|
68
|
-
contentctl/objects/lookup.py,sha256=rPMiCemlN3XORMAjuH10sgQhkjMqpSQOVSr-DdyFaN8,10529
|
|
69
|
-
contentctl/objects/macro.py,sha256=DNBecV1kGOudKY0lx7nSjUjRmMi0CNWHYcmvaRZGFPg,3430
|
|
70
|
-
contentctl/objects/manual_test.py,sha256=YNquEQ0UCzZGJ0uvHBgJ3Efho-F80ZG885ABLtqB7TI,1022
|
|
71
|
-
contentctl/objects/manual_test_result.py,sha256=C4AYW3jlMsxVzCPzCA5dpAcbKgCpmDO43JmptFm--Q4,155
|
|
72
|
-
contentctl/objects/mitre_attack_enrichment.py,sha256=0BvYdWVqFer029S3o_Wve_GQEKgvFZi_rjAb-rHid9c,3325
|
|
73
|
-
contentctl/objects/notable_action.py,sha256=ValkblBaG-60TF19y_vSnNzoNZ3eg48wIfr0qZxyKTA,1605
|
|
74
|
-
contentctl/objects/notable_event.py,sha256=YlmI5CbTeu2hrj1yhmvu6ma4RY_6RFvIuq8aEtrn4z8,703
|
|
75
|
-
contentctl/objects/observable.py,sha256=1nM2ldkCcicxCX_ibOl2_qewJ5yQDyOIuCUsdithFZk,1421
|
|
76
|
-
contentctl/objects/playbook.py,sha256=hSYYpdMhctgpp7uwaPciFqu1yuFI4M1NHy1WBBLyvzM,2469
|
|
77
|
-
contentctl/objects/playbook_tags.py,sha256=jG_zsd8yL3HvSdDwbVJOu5KVA3--YYCBbhFGykoMrf4,1560
|
|
78
|
-
contentctl/objects/rba.py,sha256=AkrbhzKeckxRn_6FEeA0geie2e71UOwpSEm9cqpnCN8,2826
|
|
79
|
-
contentctl/objects/risk_analysis_action.py,sha256=OeatdTFXa6801JZIyvfN7c0B0rTnXpdVh1PXHCmQsz0,4275
|
|
80
|
-
contentctl/objects/risk_event.py,sha256=1PNMlZaNPYKGNPyTvH5FdvQpDxl58t4gexKDSisP7AQ,12520
|
|
81
|
-
contentctl/objects/risk_object.py,sha256=yY4NmEwEKaRl4sLzCRZb1n8kdpV3HzYbQVQ1ClQWYHw,904
|
|
82
|
-
contentctl/objects/savedsearches_conf.py,sha256=tCyZHqAQ9azgwIyySViY2BdM4To5Cb_GeYEEHPwR4Zc,8604
|
|
83
|
-
contentctl/objects/security_content_object.py,sha256=j8KNDwSMfZsSIzJucC3NuZo0SlFVpqHfDc6y3-YHjHI,234
|
|
84
|
-
contentctl/objects/story.py,sha256=9q8_WosIZwq5cWIUbl_0IErV4fWc9VA18YBuJeflXn0,4823
|
|
85
|
-
contentctl/objects/story_tags.py,sha256=GEzURFnlloBrBHoTjLHKRmqAein1ylcyFr4VE4jzFPU,2214
|
|
86
|
-
contentctl/objects/test_attack_data.py,sha256=7p-kOJguTZtG9y5th5U3qfPFvpiAWLST_OBw8dwWl_4,488
|
|
87
|
-
contentctl/objects/test_group.py,sha256=DCtm4ChGYksOwZQVHsioaweOvI37CSlTZJzKvBX-jbY,2586
|
|
88
|
-
contentctl/objects/threat_object.py,sha256=S8B7RQFfLxN_g7yKPrDTuYhIy9JvQH3YwJ_T5LUZIa4,711
|
|
89
|
-
contentctl/objects/throttling.py,sha256=om0pGOMStr6sTwm5uZ7rBcSHhRLpaX6TS5x-aaPGsR0,2369
|
|
90
|
-
contentctl/objects/unit_test.py,sha256=eMFehpHhmZA5WYBqhWUNRF_LpxuLM9VooAxjXeNbrxY,1144
|
|
91
|
-
contentctl/objects/unit_test_baseline.py,sha256=x1pDW028R4xzmz_kIiIerXTHE6kFfHkf28zIVl1wX9c,284
|
|
92
|
-
contentctl/objects/unit_test_result.py,sha256=POQfvvPpSw-jQzINBz1_IszUMJ4Wbopu8HRS1Qe6P2M,2940
|
|
93
|
-
contentctl/output/api_json_output.py,sha256=67mZwYdn5gEl9u24BAopGtPxaKTkPO74S_9zS2XlVIk,8261
|
|
94
|
-
contentctl/output/attack_nav_output.py,sha256=95iKV8U9BMMgqh6cCOw1S89Ln73xmJGgJPHTYR0L7hA,2304
|
|
95
|
-
contentctl/output/attack_nav_writer.py,sha256=64ILZLmNbh2XLmbopgENkeo6t-4SRRG8xZXBmtpNd4g,2219
|
|
96
|
-
contentctl/output/conf_output.py,sha256=e19RGptVUOatj8c-SuIDd4uqYa7Yg9z9Globv23w1fE,10643
|
|
97
|
-
contentctl/output/conf_writer.py,sha256=9eqt2tm1xjs397pwWLz5oPJcMHbs62ejRG7KghGQQCI,15137
|
|
98
|
-
contentctl/output/data_source_writer.py,sha256=NIn9mVQmYtGjWANeeveRhfXTUescVuWnEEDRXaNb1qg,1579
|
|
99
|
-
contentctl/output/doc_md_output.py,sha256=gf7osH1uSrC6js3D_I72g4uDe9TaB3tsvtqCHi5znp0,3238
|
|
100
|
-
contentctl/output/jinja_writer.py,sha256=bdiqr9FaXYxth4wZ1A52zTMAS5stHNGpezTkaS5pres,1119
|
|
101
|
-
contentctl/output/json_writer.py,sha256=xQzARL0eiftVBm9yeBKw6cu2wqc9ughormi2rCFlJ1Q,861
|
|
102
|
-
contentctl/output/svg_output.py,sha256=rDAm6Y5Pc3KktjDh2hXgWFUcONrA8Op22RzSLVMsKBo,2745
|
|
103
|
-
contentctl/output/templates/analyticstories_detections.j2,sha256=_xM5MMC_O5aLTBI04afgrCnYVfojmbb3J1JVq2AkaT8,964
|
|
104
|
-
contentctl/output/templates/analyticstories_investigations.j2,sha256=kqy9lR6W3avqETCM2tSZ8WWOlfiyOtFv6G5N4SZWSaQ,527
|
|
105
|
-
contentctl/output/templates/analyticstories_stories.j2,sha256=4rS-oN6JHAVKF3ToMxzHqK7asytw1R4OQmZGtzdRRBI,663
|
|
106
|
-
contentctl/output/templates/app.conf.j2,sha256=UL80Px4IUGPD-DgcAiUrS4emHBIY7DxleSNyNXCH5tQ,623
|
|
107
|
-
contentctl/output/templates/app.manifest.j2,sha256=Q1803mcfgNvUs8s4e1zD1J3_mxfPYVtLkD8fhCO6d-I,1103
|
|
108
|
-
contentctl/output/templates/collections.j2,sha256=w2hkY7Yfm7AmY1O_7DP-znLS_whgKX79VbnW7QlvrNU,151
|
|
109
|
-
contentctl/output/templates/content-version.j2,sha256=2-it0TF5BvqUcmUXVFB4DEh0I01igQGDxZNJpdtDFIA,54
|
|
110
|
-
contentctl/output/templates/detection_count.j2,sha256=9U3o-P_ECkMknsooj_L3B9GZqjnsbaEzr59s3-DOK0I,670
|
|
111
|
-
contentctl/output/templates/detection_coverage.j2,sha256=guE4fow9BqGoCCrQ3b6-EZqWJcThb58V9khuIH7nhT0,631
|
|
112
|
-
contentctl/output/templates/doc_detection_page.j2,sha256=kATedDq0Z8tzxKiD3nD0_-7YiOrjssUMYSDenRYTh6A,1012
|
|
113
|
-
contentctl/output/templates/doc_detections.j2,sha256=tjTQh6R5zMMmBm9hk-8dFG5p0PyhWSGkrYeRxe9gfPU,6500
|
|
114
|
-
contentctl/output/templates/doc_navigation.j2,sha256=h25ITC3xcAM17uZGIyyDFURmEdYtQSPvNeWN3RH7j4Q,1471
|
|
115
|
-
contentctl/output/templates/doc_navigation_pages.j2,sha256=ptfjbD4F0Ob7dze9at2q5gqOslcbL3eteUO1zsblDJo,203
|
|
116
|
-
contentctl/output/templates/doc_playbooks.j2,sha256=CWsnm8F097oYT8anW3CE7JaX1haAJTfylThP1ic0UIw,1681
|
|
117
|
-
contentctl/output/templates/doc_playbooks_page.j2,sha256=2d5UNDSOxyMtxKGxGHzJ2Ny_UrqTq267NO1h-lmNduc,679
|
|
118
|
-
contentctl/output/templates/doc_stories.j2,sha256=0J3dAbfSZz-Ma1-C9B6vYPKGwrxoZryYoudy3wUIT4s,1827
|
|
119
|
-
contentctl/output/templates/doc_story_page.j2,sha256=jrf-As8GbqLarRoiDipfM9ZUVRl_bhdNsy-XaCrBaXE,874
|
|
120
|
-
contentctl/output/templates/es_investigations_investigations.j2,sha256=M4beFAFrkdhOIda2uYOXOxm9eBTdtSrTg07ke8FcELs,1013
|
|
121
|
-
contentctl/output/templates/es_investigations_stories.j2,sha256=3_adGXuyMR6v-k3uc6_ht13UqX1AI4HagRdokwW0tqk,388
|
|
122
|
-
contentctl/output/templates/header.j2,sha256=3usV7jm1q6J-QNnQrZzII9cN0XEGQjg_eVKrEQwfOG0,201
|
|
123
|
-
contentctl/output/templates/macros.j2,sha256=SLcQQ5X7TZS8j-2qP06BTXqdIcnwoYqTAaBLX2Dge7Y,390
|
|
124
|
-
contentctl/output/templates/panel.j2,sha256=Cw_W6p-14n6UivVfpS75KKJiJ2VpdGsSBceYsUYe9gk,221
|
|
125
|
-
contentctl/output/templates/savedsearches_baselines.j2,sha256=BfpNrApucyByZHYW-Az63NO7hXBRYtlQCZcgBcLDv60,1683
|
|
126
|
-
contentctl/output/templates/savedsearches_detections.j2,sha256=FzOCszfJjAWTE4Z40JMK6umOPxz5NjcRt3-agwmvFn0,6830
|
|
127
|
-
contentctl/output/templates/savedsearches_investigations.j2,sha256=3jWg3OEwnexZxebpyP9_7lbZI407e5rlx1-epRs1Kpc,1170
|
|
128
|
-
contentctl/output/templates/server.conf.j2,sha256=sPZUkiuJNGm9R8rpjfRKyuAvmmQb0C4w9Q6hpmvmPeU,127
|
|
129
|
-
contentctl/output/templates/transforms.j2,sha256=EySDJWorLHRSTibMIvbV7PdDb6uDC058gMUk-kiK6g0,1481
|
|
130
|
-
contentctl/output/templates/workflow_actions.j2,sha256=DFoZVnCa8dMRHjW2AdpoydBC0THgiH_W-Nx7WI4-uR4,925
|
|
131
|
-
contentctl/output/yml_writer.py,sha256=7-qcJJoF6P6p9nHVO8dtEmuekg5_buSXlE2ITrFNsX8,2137
|
|
132
|
-
contentctl/templates/README.md,sha256=GoRmywUqwnjaehY_GLmGqxsFXCLP9plpDYwB6W6nVPs,428
|
|
133
|
-
contentctl/templates/app_default.yml,sha256=kDeYdJbfMADQPcho8iH1nqgTFrHNt4EXnIJjPHc2unI,6390
|
|
134
|
-
contentctl/templates/app_template/README/essoc_story_detail.txt,sha256=7hFPBfPpRH28TFl7QchKceZLewQqgFjRWDlmxZzwpmo,897
|
|
135
|
-
contentctl/templates/app_template/README/essoc_summary.txt,sha256=u6wYNYBqmmm7Kn_g_Uex8rRzMQ995MUXCavla95Y1dw,2538
|
|
136
|
-
contentctl/templates/app_template/README/essoc_usage_dashboard.txt,sha256=xYUKKVtdgzPyT3mqdTccaBZuwWnC63lbc9zyYpmHN4o,2432
|
|
137
|
-
contentctl/templates/app_template/README.md,sha256=RT-J9bgRSFsEFgNr9qV6yc2LkfUH_uiMJ2RV4NM9Ymo,366
|
|
138
|
-
contentctl/templates/app_template/default/analytic_stories.conf,sha256=zWuCOOl8SiP7Kit2s-de4KRu3HySLtBSXcp1QnJx0ec,168
|
|
139
|
-
contentctl/templates/app_template/default/commands.conf,sha256=U2ccwUeGXKKKt5jo14QY5swi-p9_TSJtaNquOkeF3Yk,319
|
|
140
|
-
contentctl/templates/app_template/default/data/ui/nav/default.xml,sha256=fKN53HZCtNJbQqq_5pP8e5-5m30DRrJittr6q5s6V_0,236
|
|
141
|
-
contentctl/templates/app_template/default/data/ui/views/escu_summary.xml,sha256=jQhkIthPgEEptCJ2wUCj2lWGHBvUl6JGsKkDfONloxI,8635
|
|
142
|
-
contentctl/templates/app_template/default/data/ui/views/feedback.xml,sha256=uM71EMK2uFz8h68nOTNKGnYxob3HhE_caSL6yA-3H-k,696
|
|
143
|
-
contentctl/templates/app_template/default/use_case_library.conf,sha256=zWuCOOl8SiP7Kit2s-de4KRu3HySLtBSXcp1QnJx0ec,168
|
|
144
|
-
contentctl/templates/app_template/lookups/mitre_enrichment.csv,sha256=tifPQjFoQHtvpb78hxSP2fKHnHeehNbZDwUjdvc0aEM,66072
|
|
145
|
-
contentctl/templates/app_template/metadata/default.meta,sha256=h66ea1l3qMzDRgDUAXsJvGKeJnp5w-s2unYMZ9dJLzM,433
|
|
146
|
-
contentctl/templates/app_template/static/appIcon.png,sha256=jcJ1PNdkBX7Kl_y9Tf0SZ55OJYA2PpwjvkVvBt9_OoE,3658
|
|
147
|
-
contentctl/templates/app_template/static/appIconAlt.png,sha256=uRXjoHQQjs0-BxcK-3KNBEdck1adDNTHMvV14xR4W0g,2656
|
|
148
|
-
contentctl/templates/app_template/static/appIconAlt_2x.png,sha256=I0m-CPRqq7ak9NJQZGGmz6Ac4pmzFV_SonOUxOEDOFs,7442
|
|
149
|
-
contentctl/templates/app_template/static/appIcon_2x.png,sha256=XEpqQzDvzuEV5StzD05XRgxwySqHHLes1hMPy2v5Vdk,3657
|
|
150
|
-
contentctl/templates/data_sources/sysmon_eventid_1.yml,sha256=7PIcLr1e9Ql-wu_Dk9D4JAZs1OWDby-tY77nDDUZ1CQ,6079
|
|
151
|
-
contentctl/templates/datamodels_cim.conf,sha256=RB_SCtpQG_KaC_0lKTCKexVOlEq_ShGwpGlg95aqOfs,9381
|
|
152
|
-
contentctl/templates/datamodels_custom.conf,sha256=6BANthXdqg3fYpYmEqiGZnv4cWheNfXz1uQ_I1JePXc,480
|
|
153
|
-
contentctl/templates/deployments/escu_default_configuration_anomaly.yml,sha256=j_H2wovWBj1EKxVwj3mMoJVQnVm-2Imt7xnB9U1Tun4,418
|
|
154
|
-
contentctl/templates/deployments/escu_default_configuration_baseline.yml,sha256=NzUvaotkk7hatx9EBjROFIwsvSOZXgfAJUvGS8JrUMg,334
|
|
155
|
-
contentctl/templates/deployments/escu_default_configuration_correlation.yml,sha256=iWLqvJnUKVhpKaLBc_w_W65d9HVZgOZfGA-RIpxsH6M,519
|
|
156
|
-
contentctl/templates/deployments/escu_default_configuration_hunting.yml,sha256=hHmM8u7zncpb-32Qv74UoNs0HKwZwCMoKAq2ygDJZbo,329
|
|
157
|
-
contentctl/templates/deployments/escu_default_configuration_ttp.yml,sha256=1D-pvzaH1v3_yCZXaY6njmdvV4S2_Ak8uzzCOsnj9XY,548
|
|
158
|
-
contentctl/templates/detections/application/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
|
-
contentctl/templates/detections/cloud/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
|
-
contentctl/templates/detections/endpoint/anomalous_usage_of_7zip.yml,sha256=VQ8mxkOOm7RfnBomtOXF9XGE8fV-j5j-4pFtpocQ17Y,3875
|
|
161
|
-
contentctl/templates/detections/network/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
|
-
contentctl/templates/detections/web/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
|
-
contentctl/templates/macros/security_content_ctime.yml,sha256=Gg1YNllHVsX_YB716H1SJLWzxXZEfuJlnsgB2fuyoHU,159
|
|
164
|
-
contentctl/templates/macros/security_content_summariesonly.yml,sha256=9BYUxAl2E4Nwh8K19F3AJS8Ka7ceO6ZDBjFiO3l3LY0,162
|
|
165
|
-
contentctl/templates/stories/cobalt_strike.yml,sha256=rlaXxMN-5k8LnKBLPafBoksyMtlmsPMHPJOjTiMiZ-M,3063
|
|
166
|
-
contentctl-5.0.0a2.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
|
|
167
|
-
contentctl-5.0.0a2.dist-info/METADATA,sha256=trZZB3p6gbjZZ4RfG_kh9cniJaV1cbaocdwlJqOZU4w,21541
|
|
168
|
-
contentctl-5.0.0a2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
169
|
-
contentctl-5.0.0a2.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
|
|
170
|
-
contentctl-5.0.0a2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|