2019-12-20 21:53:22 +00:00
.PHONY : test test -rules test -sigmac test -sigma 2attack
2018-10-02 20:17:03 +00:00
TMPOUT = $( shell tempfile|| mktemp)
2019-12-20 21:53:22 +00:00
COVSCOPE = tools/sigma/*.py,tools/sigma/backends/*.py,tools/sigmac,tools/merge_sigma,tools/sigma2attack
2019-10-23 13:34:40 +00:00
export COVERAGE = coverage
2020-05-29 22:56:06 +00:00
test : clearcov test -rules test -sigmac test -merge test -sigma 2attack build finish
2017-11-14 21:17:18 +00:00
clearcov :
rm -f .coverage
finish :
2020-10-23 18:17:06 +00:00
$( COVERAGE) report --fail-under= 80
2017-11-14 21:17:18 +00:00
rm -f $( TMPOUT)
2017-08-07 12:05:55 +00:00
2019-01-23 22:31:36 +00:00
test-rules :
2017-10-19 15:42:56 +00:00
yamllint rules
2019-01-23 22:31:36 +00:00
tests/test_rules.py
2020-03-31 14:29:58 +00:00
tools/sigma_uuid -Ver rules/
2017-08-07 12:05:55 +00:00
test-sigmac :
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -h
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -l
2020-06-05 22:49:57 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac --backend-help es-qs
2019-10-23 13:34:40 +00:00
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvd -t es-qs rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-qs rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-qs --shoot-yourself-in-the-foot rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c winlogbeat tests/test-modifiers.yml > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -O rulecomment -rvdI -c tools/config/winlogbeat.yml -t es-qs rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t kibana -c tools/config/winlogbeat.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t graylog rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t xpack-watcher -O email,index,webhook -c tools/config/winlogbeat.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t elastalert -c tools/config/winlogbeat.yml -O alert_methods = http_post,email -O emails = test@test.invalid -O http_post_url = http://test.invalid rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t elastalert-dsl -c tools/config/winlogbeat.yml -O alert_methods = http_post,email -O emails = test@test.invalid -O http_post_url = http://test.invalid rules/ > /dev/null
2020-05-08 15:51:35 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t ee-outliers -c tools/config/winlogbeat.yml rules/ > /dev/null
2020-06-12 23:11:08 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-qs -c sysmon -c winlogbeat -O case_insensitive_whitelist = * rules/windows/process_creation > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-qs -c tools/config/ecs-cloudtrail.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-rule -c tools/config/ecs-cloudtrail.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t kibana -c tools/config/ecs-cloudtrail.yml rules/ > /dev/null
2020-05-14 13:03:23 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t xpack-watcher -c tools/config/ecs-cloudtrail.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t elastalert -c tools/config/ecs-cloudtrail.yml rules/ > /dev/null
2020-11-02 00:28:26 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-qs -c tools/config/ecs-suricata.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-rule -c tools/config/ecs-suricata.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t kibana -c tools/config/ecs-suricata.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t xpack-watcher -c tools/config/ecs-suricata.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t elastalert -c tools/config/ecs-suricata.yml rules/ > /dev/null
2019-10-23 13:34:40 +00:00
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunkxml -c tools/config/splunk-windows.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t logpoint -c tools/config/logpoint-windows.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t mdatp rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t ala rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t ala-rule rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t ala --backend-config tests/backend_config.yml rules/windows/process_creation/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-dsl -c tools/config/winlogbeat.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t es-rule -c tools/config/winlogbeat.yml rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t powershell -c tools/config/powershell.yml -Ocsv rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t arcsight -c tools/config/arcsight.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t arcsight-esm -c tools/config/arcsight.yml rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t qradar -c tools/config/qradar.yml rules/ > /dev/null
2021-02-08 10:23:57 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t stix -c tools/config/stix-custom.yml -c tools/config/stix-shifter.yml -c tools/config/stix2.0.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t limacharlie -c tools/config/limacharlie.yml rules/ > /dev/null
2021-03-12 10:21:44 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t chronicle -c tools/config/chronicle.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t carbonblack -c tools/config/carbon-black.yml rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t qualys -c tools/config/qualys.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t netwitness -c tools/config/netwitness.yml rules/ > /dev/null
2020-09-15 07:06:02 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t netwitness-epl -c netwitness-epl rules/ > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t sumologic -O rulecomment -c tools/config/sumologic.yml rules/ > /dev/null
2020-10-23 17:30:59 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t sumologic-cse -O rulecomment -c tools/config/sumologic-cse.yml rules/ > /dev/null
2020-05-24 19:46:55 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t humio -O rulecomment -c tools/config/humio.yml rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t crowdstrike -O rulecomment -c tools/config/crowdstrike.yml rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t sql -c sysmon rules/ > /dev/null
2020-05-25 08:54:16 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t sqlite -c sysmon rules/ > /dev/null
2020-07-07 21:46:49 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t csharp -c sysmon rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t logiq -c sysmon rules/ > /dev/null
2020-10-27 18:02:00 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t fireeye-helix -c tools/config/fireeye-helix.yml rules/ > /dev/null
2020-09-15 10:20:46 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t sysmon -c sysmon -rvd rules/windows/driver_load rules/windows/file_event rules/windows/image_load rules/windows/network_connection rules/windows/process_access rules/windows/process_creation rules/windows/registry_event rules/windows/sysmon > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'level>=high,level<=critical,status=stable,logsource=windows,tag=attack.execution' rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'level>=high,level<=critical,status=xstable,logsource=windows' rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'level>=high,level<=xcritical,status=stable,logsource=windows' rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'level=critical' rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'level=xcritical' rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t splunk -c tools/config/splunk-windows-index.yml -f 'foo=bar' rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-windows.yml -t es-qs rules/ > /dev/null
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c ecs-proxy -t es-qs rules/proxy > /dev/null
2019-10-23 13:34:40 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c sysmon -c logstash-windows -t es-qs rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c sysmon -c logstash-windows -t splunk rules/ > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-windows.yml -c tools/config/generic/sysmon.yml -t es-qs rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-linux.yml -t es-qs rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-windows.yml -t kibana rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-windows.yml -Ooutput= curl -t kibana rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-linux.yml -t kibana rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-linux.yml -Ooutput= curl -t kibana rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-windows.yml -t xpack-watcher rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/logstash-linux.yml -t xpack-watcher rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/filebeat-defaultindex.yml -t xpack-watcher rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/splunk-windows.yml -t splunk rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -c tools/config/generic/sysmon.yml -c tools/config/splunk-windows.yml -t splunk rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t grep rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -rvdI -t fieldlist rules/ > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t xpack-watcher -c tools/config/winlogbeat.yml -O output = plain -O es = es -O foobar rules/windows/builtin/win_susp_failed_logons_single_source.yml > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t kibana -c tests/config-multiple_mapping.yml -c tests/config-multiple_mapping-2.yml tests/mapping-conditional-multi.yml > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t xpack-watcher -c tools/config/winlogbeat.yml -O output = json -O es = es -O foobar rules/windows/builtin/win_susp_failed_logons_single_source.yml > /dev/null
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml -o $( TMPOUT) - < tests/collection_repeat.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t xpack-watcher -c tools/config/winlogbeat.yml -O output = foobar -O es = es -O foobar rules/windows/builtin/win_susp_failed_logons_single_source.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/not_existing.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_yaml.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_sigma-no_identifiers.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_sigma-no_condition.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_sigma-invalid_identifier_reference.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_sigma-invalid_aggregation.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml tests/invalid_sigma-wrong_identifier_definition.yml > /dev/null
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml rules/windows/builtin/win_susp_failed_logons_single_source.yml
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tools/config/winlogbeat.yml -o /not_possible rules/windows/sysmon/sysmon_mimikatz_detection_lsass.yml
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c not_existing rules/windows/sysmon/sysmon_mimikatz_detection_lsass.yml
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tests/invalid_yaml.yml rules/windows/sysmon/sysmon_mimikatz_detection_lsass.yml
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/sigmac -t es-qs -c tests/invalid_config.yml rules/windows/sysmon/sysmon_mimikatz_detection_lsass.yml
2017-11-14 21:17:18 +00:00
test-merge :
tests/test-merge.sh
2019-10-23 13:34:40 +00:00
! $( COVERAGE) run -a --include= $( COVSCOPE) tools/merge_sigma tests/not_existing.yml > /dev/null
2017-12-07 23:44:15 +00:00
2018-04-03 21:02:40 +00:00
test-backend-es-qs :
2018-04-11 21:25:50 +00:00
tests/test-backend-es-qs.py
2018-04-03 21:02:40 +00:00
2020-05-29 21:56:05 +00:00
test-backend-sql :
2020-05-29 22:56:06 +00:00
cd tools && python3 setup.py install
2020-05-29 23:57:06 +00:00
cd tools && $( COVERAGE) run -m pytest tests/test_backend_sql.py tests/test_backend_sqlite.py
2020-05-29 21:56:05 +00:00
2019-12-20 21:53:22 +00:00
test-sigma2attack :
2020-05-02 12:22:03 +00:00
$( COVERAGE) run -a --include= $( COVSCOPE) tools/sigma2attack
2019-12-20 21:53:22 +00:00
2020-03-31 21:46:58 +00:00
build : tools /sigma /*.py tools /setup .py tools /setup .cfg
2019-12-06 14:45:28 +00:00
cd tools && python3 setup.py bdist_wheel sdist
2017-12-08 21:54:40 +00:00
2017-12-08 22:50:08 +00:00
upload-test : build
twine upload --repository-url https://test.pypi.org/legacy/ tools/dist/*
upload : build
twine upload tools/dist/*
2017-12-08 21:54:40 +00:00
clean :
cd tools; rm -fr build dist Sigma.egg-info
find tools/ -type d -name __pycache__ -exec rm -fr { } \;