2023-02-24 02:29:28 +00:00
|
|
|
ARCH ?= $(shell uname -m)
|
|
|
|
COLLECT_DIR ?= "./out/$(shell hostname -s)-$(shell date +%Y-%m-%-d-%H-%M-%S)"
|
2023-02-24 02:45:34 +00:00
|
|
|
SUDO ?= "sudo"
|
2024-10-16 14:24:16 +00:00
|
|
|
OSQTOOL_VERSION=v1.4.2
|
2023-02-24 02:29:28 +00:00
|
|
|
|
2023-12-15 22:29:26 +00:00
|
|
|
out/osqtool-$(ARCH)-$(OSQTOOL_VERSION):
|
2022-10-13 13:11:17 +00:00
|
|
|
mkdir -p out
|
2023-12-15 22:29:26 +00:00
|
|
|
GOBIN=$(CURDIR)/out go install github.com/chainguard-dev/osqtool/cmd/osqtool@$(OSQTOOL_VERSION)
|
|
|
|
mv out/osqtool out/osqtool-$(ARCH)-$(OSQTOOL_VERSION)
|
2022-10-13 13:11:17 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
out/detection.conf: out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) $(wildcard detection/*.sql)
|
2024-09-23 15:20:44 +00:00
|
|
|
./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --max-query-duration=16s --verify --exclude-tags=disabled,disabled-privacy,extra --output out/detection.conf pack detection
|
2023-09-20 21:43:39 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
out/policy.conf: out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) $(wildcard policy/*.sql)
|
2024-09-24 19:57:29 +00:00
|
|
|
./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --max-query-duration=8s --exclude-tags=disabled,disabled-privacy,extra --verify --output out/policy.conf pack policy/
|
2023-09-20 21:43:39 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
out/vulnerabilities.conf: out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) $(wildcard vulnerabilities/*.sql)
|
2024-03-15 23:06:16 +00:00
|
|
|
./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --max-query-duration=8s --exclude-tags=disabled,disabled-privacy,extra --output out/vulnerabilities.conf pack vulnerabilities/
|
2023-09-20 21:43:39 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
out/incident-response.conf: out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) $(wildcard incident_response/*.sql)
|
2024-03-15 23:06:16 +00:00
|
|
|
./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --max-query-duration=8s --exclude-tags=disabled,disabled-privacy,extra --output out/incident-response.conf pack incident_response/
|
2023-02-24 22:47:07 +00:00
|
|
|
|
2023-03-04 18:03:30 +00:00
|
|
|
out/osquery.conf:
|
|
|
|
cat osquery.conf | sed s/"out\/"/""/g > out/osquery.conf
|
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
packs: out/detection.conf out/policy.conf out/incident-response.conf out/vulnerabilities.conf
|
2022-10-13 13:11:17 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
out/packs.zip: packs out/osquery.conf
|
2023-02-24 22:47:07 +00:00
|
|
|
cd out && rm -f .*.conf && zip odk-packs.zip *.conf
|
2022-10-13 13:11:17 +00:00
|
|
|
|
2022-10-20 13:10:45 +00:00
|
|
|
.PHONY: reformat
|
|
|
|
reformat:
|
|
|
|
find . -type f -name "*.sql" | perl -ne 'chomp; system("cp $$_ /tmp/fix.sql && npx sql-formatter -l sqlite /tmp/fix.sql > $$_");'
|
|
|
|
|
2023-02-10 15:33:04 +00:00
|
|
|
.PHONY: reformat-updates
|
|
|
|
reformat-updates:
|
2024-07-26 17:26:37 +00:00
|
|
|
git status -s | awk '{ print $$2 }' | grep ".sql" | perl -ne 'chomp; print("$$_\n"); system("cp $$_ /tmp/fix.sql && npx sql-formatter -l sqlite /tmp/fix.sql > $$_");'
|
2023-02-10 15:33:04 +00:00
|
|
|
|
2023-02-24 23:19:22 +00:00
|
|
|
.PHONY: detect
|
2023-12-15 22:29:26 +00:00
|
|
|
detect: ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION)
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) run detection
|
2023-02-24 23:19:22 +00:00
|
|
|
|
2023-03-04 18:03:30 +00:00
|
|
|
.PHONY: run-detect-pack
|
2024-01-09 21:56:40 +00:00
|
|
|
run-detect-pack: out/detection.conf
|
2023-03-04 18:03:30 +00:00
|
|
|
$(SUDO) osqueryi --config_path osquery.conf --pack detection
|
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
.PHONY: run-policy-pack
|
|
|
|
run-policy-pack: out/policy.conf
|
|
|
|
$(SUDO) osqueryi --config_path osquery.conf --pack policy
|
|
|
|
|
|
|
|
.PHONY: run-vuln-pack
|
|
|
|
run-vuln-pack: out/vulnerabilities.conf
|
|
|
|
$(SUDO) osqueryi --config_path osquery.conf --pack vulnerabilities
|
|
|
|
|
2023-03-04 18:03:30 +00:00
|
|
|
.PHONY: run-ir-pack
|
2024-01-09 21:56:40 +00:00
|
|
|
run-ir-pack: out/incident-response.conf
|
2023-03-04 18:03:30 +00:00
|
|
|
$(SUDO) osqueryi --config_path osquery.conf --pack incident-response
|
|
|
|
|
2023-02-24 22:30:43 +00:00
|
|
|
.PHONY: collect
|
2023-12-15 22:29:26 +00:00
|
|
|
collect: ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION)
|
2023-02-24 02:29:28 +00:00
|
|
|
mkdir -p $(COLLECT_DIR)
|
|
|
|
@echo "Saving output to: $(COLLECT_DIR)"
|
2023-12-15 22:29:26 +00:00
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) run incident_response | tee $(COLLECT_DIR)/incident_response.txt
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) run policy | tee $(COLLECT_DIR)/policy.txt
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) run detection | tee $(COLLECT_DIR)/detection.txt
|
2023-02-24 02:29:28 +00:00
|
|
|
|
2023-02-24 21:44:00 +00:00
|
|
|
# Looser values for CI use
|
|
|
|
.PHONY: verify-ci
|
2023-12-15 22:29:26 +00:00
|
|
|
verify-ci: ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION)
|
2024-04-26 20:14:02 +00:00
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=150000 --max-query-duration=30s --max-total-daily-duration=90m verify incident_response
|
2024-07-12 18:30:48 +00:00
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=50 --max-query-duration=30s verify policy
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=1000 --max-query-duration=30s --max-total-daily-duration=2h30m --max-query-daily-duration=1h verify detection
|
2023-02-24 21:44:00 +00:00
|
|
|
|
|
|
|
# Local verification
|
2023-02-24 17:15:56 +00:00
|
|
|
.PHONY: verify
|
2023-12-15 22:29:26 +00:00
|
|
|
verify: ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION)
|
2024-04-26 20:14:02 +00:00
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=150000 --max-query-duration=10s --max-total-daily-duration=15m verify incident_response
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=0 --max-query-duration=6s --max-total-daily-duration=10m verify policy
|
|
|
|
$(SUDO) ./out/osqtool-$(ARCH)-$(OSQTOOL_VERSION) --workers 1 --max-results=0 --max-query-duration=16s --max-total-daily-duration=2h30m --max-query-daily-duration=1h verify detection
|
2023-02-24 17:15:56 +00:00
|
|
|
|
2024-01-09 21:56:40 +00:00
|
|
|
all: out/packs.zip
|
2023-02-24 02:29:28 +00:00
|
|
|
|