8
8
| Data Needed | Fully supported |
9
9
| Enrichments | Fully supported |
10
10
| Response Actions | Fully supported |
11
- | Response Playbooks | ** NOT ** supported |
11
+ | Response Playbooks | Fully supported |
12
12
| Detection Rules | Fully supported |
13
13
14
14
@@ -355,8 +355,6 @@ There are three types of filters - `exact match`, `contains` and `isnull`. Here
355
355
356
356
# ## JSON structure
357
357
358
- > There are many fields defined which API will accept but in the backend, they are not considered in any way. Use `raw_rule` only!
359
-
360
358
` ` ` json
361
359
{
362
360
"references": ["https://www.lifewire.com/save-an-email-as-an-eml-file-in-gmail-1171956","https://eml.tooutlook.com/"],
@@ -402,9 +400,9 @@ workflow: |
402
400
` ` ` python
403
401
path_to_ra = "RA0001.yml"
404
402
405
- with open(path_to_en , "r") as stream:
403
+ with open(path_to_ra , "r") as stream:
406
404
ra = [x for x in yaml.safe_load_all(stream)]
407
- data = {"raw_rule": ra}
405
+ data = ra
408
406
409
407
r = requests.post(
410
408
"http://127.0.0.1:8000/api/v1/atc/responseaction/",
@@ -431,6 +429,134 @@ There are two types of filters - `exact match` and `contains`. Here is the list
431
429
* `author_exact`
432
430
* `linked_ra_exact`
433
431
432
+ # Response Playbook
433
+
434
+ # ## JSON structure
435
+
436
+
437
+ ` ` ` json
438
+ {
439
+ "author": "@atc_project",
440
+ "containment": ["RA_0006_containment_block_domain_on_email",
441
+ "RA_0028_containment_block_threat_on_network_level"],
442
+ "creation_date": "31.01.2019",
443
+ "description": "Response playbook for Phishing Email case. \n ",
444
+ "eradication": ["RA_0010_eradication_delete_malicious_emails",
445
+ "RA_0011_eradication_revoke_compromised_credentials",
446
+ "RA_0012_eradication_report_phishing_attack_to_external_companies"],
447
+ "identification": ["RA_0001_identification_get_original_email",
448
+ "RA_0002_identification_extract_observables_from_email",
449
+ "RA_0003_identification_make_sure_email_is_a_phising",
450
+ "RA_0004_identification_analyse_obtained_indicators_of_compromise",
451
+ "RA_0005_identification_find_all_phising_attack_victims",
452
+ "RA_0040_identification_put_on_monitoring_compromised_accounts"],
453
+ "lessons_learned": ["RA_0013_lessons_learned_develop_incident_report",
454
+ "RA_0014_lessons_learned_conduct_lessons_learned_exercise"],
455
+ "linked_rp": ["RP_0002_generic_post_exploitation"],
456
+ "pap": "WHITE",
457
+ "severity": "M",
458
+ "tags": ["attack.initial_access", "attack.t1193", "attack.t1192", "phishing"],
459
+ "title": "RP_0001_phishing_email",
460
+ "tlp": "AMBER",
461
+ "workflow": "1. Execute Response Actions step by step. Some of them directly connected, which means you will not be able to move forward not finishing previous step\n 2. Start executing containment and eradication stages concurrently with next identification steps, as soon as you will receive infomration about malicious hosts\n 3. If phishing led to code execution or remote access to victim host, immediately start executing Generic Post Exploitation Incident Response Playbook\n 4. Save all timestamps of implemented actions in Incident Report draft on the fly, it will save a lot of time\n "
462
+ }
463
+ ` ` `
464
+
465
+ # ## ATC Detection Rule yaml file
466
+
467
+ ` ` ` yaml
468
+ title: RP_0001_phishing_email
469
+ description: >
470
+ Response playbook for Phishing Email case.
471
+ tags:
472
+ - attack.initial_access
473
+ - attack.t1193
474
+ - attack.t1192
475
+ - phishing
476
+ severity: M
477
+ tlp: AMBER
478
+ pap: WHITE
479
+ author: '@atc_project'
480
+ creation_date: 31.01.2019
481
+ linked_rp:
482
+ - RP_0002_generic_post_exploitation
483
+ identification:
484
+ - RA_0001_identification_get_original_email
485
+ - RA_0002_identification_extract_observables_from_email
486
+ - RA_0003_identification_make_sure_email_is_a_phising
487
+ - RA_0004_identification_analyse_obtained_indicators_of_compromise
488
+ - RA_0005_identification_find_all_phising_attack_victims
489
+ - RA_0040_identification_put_on_monitoring_compromised_accounts
490
+ containment:
491
+ - RA_0006_containment_block_domain_on_email
492
+ - RA_0028_containment_block_threat_on_network_level
493
+ eradication:
494
+ - RA_0010_eradication_delete_malicious_emails
495
+ - RA_0011_eradication_revoke_compromised_credentials
496
+ - RA_0012_eradication_report_phishing_attack_to_external_companies
497
+ lessons_learned:
498
+ - RA_0013_lessons_learned_develop_incident_report
499
+ - RA_0014_lessons_learned_conduct_lessons_learned_exercise
500
+ workflow: |
501
+ 1. Execute Response Actions step by step. Some of them directly connected, which means you will not be able to move forward not finishing previous step
502
+ 2. Start executing containment and eradication stages concurrently with next identification steps, as soon as you will receive infomration about malicious hosts
503
+ 3. If phishing led to code execution or remote access to victim host, immediately start executing Generic Post Exploitation Incident Response Playbook
504
+ 4. Save all timestamps of implemented actions in Incident Report draft on the fly, it will save a lot of time
505
+
506
+ ` ` `
507
+
508
+ # ## Python snippet for inserting data
509
+
510
+ > Remember that you have to put detection rule as `raw_rule`!
511
+
512
+ ` ` ` python
513
+ path_to_rp = "RP_0001.yml"
514
+
515
+ with open(path_to_rp, "r") as stream:
516
+ rp = [x for x in yaml.safe_load_all(stream)]
517
+ data = rp
518
+
519
+ r = requests.post(
520
+ "http://127.0.0.1:8000/api/v1/atc/responseplaybook/",
521
+ json=data
522
+ )
523
+ ` ` `
524
+
525
+ # ## Filters
526
+
527
+ There are two types of filters - `exact match` and `contains`. Here is the list of valid filters :
528
+
529
+ # ### Contains
530
+
531
+ * `title_contains`
532
+ * `description_contains`
533
+ * `severity_contains`
534
+ * `tags_contains`
535
+ * `author_contains`
536
+ * `linked_rp_contains`
537
+ * `identification_contains`
538
+ * `containment_contains`
539
+ * `eradication_contains`
540
+ * `recovery_contains`
541
+ * `lessons_learned_contains`
542
+
543
+ # ### Exact
544
+
545
+ * `tlp_exact`
546
+ * `pap_exact`
547
+ * `title_exact`
548
+ * `description_exact`
549
+ * `severity_exact`
550
+ * `tags_exact`
551
+ * `author_exact`
552
+ * `linked_rp_exact`
553
+ * `identification_exact`
554
+ * `containment_exact`
555
+ * `eradication_exact`
556
+ * `recovery_exact`
557
+ * `lessons_learned_exact`
558
+
559
+
434
560
---
435
561
436
562
# Docker
0 commit comments