From 83f1e746439b550c2d91db4ac96d2387898fab0f Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Mon, 15 Sep 2025 15:51:09 -0700 Subject: [PATCH 1/7] Remove doc submodule --- .gitmodules | 3 --- doc | 1 - 2 files changed, 4 deletions(-) delete mode 160000 doc diff --git a/.gitmodules b/.gitmodules index b9cfdcb91b..01d43a6468 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,9 +16,6 @@ [submodule "auxil/netcontrol-connectors"] path = auxil/netcontrol-connectors url = https://github.com/zeek/zeek-netcontrol -[submodule "doc"] - path = doc - url = https://github.com/zeek/zeek-docs [submodule "auxil/paraglob"] path = auxil/paraglob url = https://github.com/zeek/paraglob diff --git a/doc b/doc deleted file mode 160000 index 2731def915..0000000000 --- a/doc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2731def9159247e6da8a3191783c89683363689c From ded98cd373d517563d34612358c85903db677e56 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Mon, 15 Sep 2025 15:52:18 -0700 Subject: [PATCH 2/7] Copy docs into Zeek repo directly This is based on commit 2731def9159247e6da8a3191783c89683363689c from the zeek-docs repo. --- .gitignore | 3 + doc/.gitignore | 2 + doc/.readthedocs.yml | 16 + doc/.typos.toml | 65 + doc/LICENSE | 5 + doc/Makefile | 37 + doc/README | 132 + doc/README.rst | 132 + doc/_static/theme_overrides.css | 32 + doc/_templates/breadcrumbs.html | 15 + doc/_templates/layout.html | 14 + doc/about.rst | 256 + doc/acknowledgements.rst | 22 + doc/building-from-source.rst | 392 + doc/cluster-setup.rst | 507 + doc/cluster/pf_ring.rst | 141 + doc/components/index.rst | 33 + doc/conf.py | 305 + doc/customizations.rst | 318 + doc/devel/cluster-backend-zeromq.rst | 120 + doc/devel/contributors.rst | 111 + doc/devel/index.rst | 21 + doc/devel/maintainers.rst | 13 + doc/devel/plugins.rst | 505 + doc/devel/plugins/connkey-plugin.rst | 205 + .../CMakeLists.txt | 14 + .../COPYING | 26 + .../Makefile | 23 + .../connkey-vxlan-fivetuple-plugin-src/README | 0 .../Traces/vxlan-overlapping-http-get.pcap | Bin 0 -> 20357 bytes .../VERSION | 1 + .../configure | 193 + .../scripts/__load__.zeek | 3 + .../scripts/__preload__.zeek | 1 + .../src/Factory.cc | 105 + .../src/Factory.h | 18 + .../src/Plugin.cc | 26 + .../src/Plugin.h | 17 + .../event-metadata-plugin-src/.gitignore | 3 + .../event-metadata-plugin-src/CMakeLists.txt | 13 + .../plugins/event-metadata-plugin-src/COPYING | 26 + .../event-metadata-plugin-src/Makefile | 23 + .../plugins/event-metadata-plugin-src/README | 0 .../plugins/event-metadata-plugin-src/VERSION | 1 + .../event-metadata-plugin-src/configure | 193 + .../scripts/__load__.zeek | 11 + .../scripts/__preload__.zeek | 1 + .../event-metadata-plugin-src/src/Plugin.cc | 65 + .../event-metadata-plugin-src/src/Plugin.h | 29 + doc/devel/plugins/event-metadata-plugin.rst | 103 + doc/devel/spicy/autogen-spicy-docs | 48 + doc/devel/spicy/autogen/init-bare.zeek | 38 + doc/devel/spicy/autogen/init-framework.zeek | 85 + doc/devel/spicy/autogen/tftp-no-accept.spicy | 91 + doc/devel/spicy/autogen/tftp.evt | 16 + doc/devel/spicy/autogen/tftp.spicy | 92 + doc/devel/spicy/autogen/tftp.zeek | 162 + doc/devel/spicy/autogen/zeek-functions.spicy | 736 + doc/devel/spicy/examples/my-http.evt | 5 + doc/devel/spicy/examples/my-http.spicy | 26 + doc/devel/spicy/examples/my-http.zeek | 4 + doc/devel/spicy/examples/request-line.pcap | Bin 0 -> 977 bytes .../examples/tftp-schedule-analyzer.zeek | 37 + .../tftp-single-request-more-args.evt | 7 + .../tftp-single-request-more-args.zeek | 4 + .../spicy/examples/tftp-single-request.evt | 7 + .../spicy/examples/tftp-single-request.zeek | 4 + .../spicy/examples/tftp-two-requests.zeek | 9 + doc/devel/spicy/faq.rst | 88 + doc/devel/spicy/getting-started.rst | 118 + doc/devel/spicy/index.rst | 73 + doc/devel/spicy/installation.rst | 18 + doc/devel/spicy/reference.rst | 1189 + doc/devel/spicy/tutorial.rst | 441 + doc/devel/websocket-api.rst | 317 + doc/devel/websocket-api/server.js | 23 + doc/devel/websocket-api/server.zeek | 15 + doc/ext/literal-emph.py | 41 + doc/ext/spicy-pygments.py | 391 + doc/ext/zeek.py | 597 + doc/ext/zeek_pygments.py | 247 + doc/frameworks/broker.rst | 644 + doc/frameworks/broker/cluster-layout.png | Bin 0 -> 56499 bytes doc/frameworks/broker/cluster-layout.xml | 2 + .../broker/connecting-connector.zeek | 12 + .../broker/connecting-listener.zeek | 17 + doc/frameworks/broker/events-connector.zeek | 26 + doc/frameworks/broker/events-listener.zeek | 24 + doc/frameworks/broker/logs-connector.zeek | 36 + doc/frameworks/broker/logs-listener.zeek | 22 + .../broker/store-sqlite-tuning.zeek | 19 + doc/frameworks/broker/stores-connector.zeek | 29 + doc/frameworks/broker/stores-listener.zeek | 79 + doc/frameworks/broker/testlog.zeek | 17 + doc/frameworks/cluster.rst | 630 + doc/frameworks/configuration.rst | 356 + doc/frameworks/denylist.jsonl | 3 + doc/frameworks/file-analysis.rst | 283 + doc/frameworks/file_analysis_01.zeek | 20 + doc/frameworks/file_analysis_02.zeek | 12 + doc/frameworks/file_analysis_03.zeek | 25 + doc/frameworks/index.rst | 38 + doc/frameworks/input.rst | 640 + doc/frameworks/input_json_1.zeek | 56 + doc/frameworks/intel.rst | 270 + doc/frameworks/logging-input-sqlite.rst | 8 + doc/frameworks/logging.rst | 1087 + doc/frameworks/logging/delay1.zeek | 37 + doc/frameworks/management.rst | 867 + doc/frameworks/management/full-config.ini | 88 + .../management/get-id-value-complex.console | 31 + .../management/get-id-value-simple.console | 10 + .../management/mini-config-with-error.ini | 13 + doc/frameworks/management/mini-config.ini | 13 + .../management/mini-deployment-error.console | 29 + ...ini-deployment-get-config-deployed.console | 23 + ...-deployment-get-config-staged-json.console | 55 + .../mini-deployment-get-config-staged.console | 21 + .../mini-deployment-get-nodes.console | 47 + .../management/mini-deployment.console | 25 + .../management/zeek-client-help.console | 45 + .../zeek-client-show-settings.console | 14 + .../netcontrol-1-drop-with-debug.zeek | 10 + .../netcontrol-10-use-skeleton.zeek | 10 + doc/frameworks/netcontrol-2-ssh-guesser.zeek | 16 + doc/frameworks/netcontrol-3-ssh-guesser.zeek | 16 + doc/frameworks/netcontrol-4-drop.zeek | 26 + doc/frameworks/netcontrol-5-hook.zeek | 22 + doc/frameworks/netcontrol-6-find.zeek | 17 + .../netcontrol-7-catch-release.zeek | 10 + doc/frameworks/netcontrol-8-multiple.zeek | 29 + doc/frameworks/netcontrol-9-skeleton.zeek | 39 + .../netcontrol-architecture.graffle | Bin 0 -> 322649 bytes doc/frameworks/netcontrol-architecture.png | Bin 0 -> 102560 bytes doc/frameworks/netcontrol-openflow.graffle | Bin 0 -> 415046 bytes doc/frameworks/netcontrol-openflow.png | Bin 0 -> 85749 bytes doc/frameworks/netcontrol-rules.png | Bin 0 -> 91598 bytes doc/frameworks/netcontrol.rst | 812 + doc/frameworks/notice.rst | 434 + doc/frameworks/notice_ssh_guesser.zeek | 10 + .../packet-analysis-1-ethernet.zeek | 26 + doc/frameworks/packet-analysis-2-llc.cc | 23 + doc/frameworks/packet-analysis-pdu.svg | 1 + doc/frameworks/packet-analysis.rst | 170 + doc/frameworks/signatures.rst | 486 + doc/frameworks/sqlite-conn-filter.zeek | 12 + doc/frameworks/sqlite-read-events.zeek | 40 + doc/frameworks/sqlite-read-table.zeek | 35 + doc/frameworks/storage.rst | 216 + doc/frameworks/sumstats-countconns.zeek | 36 + doc/frameworks/sumstats-toy-scan.zeek | 45 + doc/frameworks/sumstats.rst | 112 + doc/frameworks/supervisor.rst | 162 + .../supervisor/cluster-supervisor.zeek | 28 + .../supervisor/simple-supervisor.zeek | 23 + .../supervisor/supervisor-control.zeek | 15 + .../zeek-supervisor-architecture.png | Bin 0 -> 79160 bytes doc/frameworks/telemetry.rst | 441 + .../telemetry/connection-durations.zeek | 23 + .../telemetry/global-http-counter.zeek | 14 + .../telemetry/log-writes-cached.zeek | 22 + .../telemetry/log-writes-immediate.zeek | 13 + doc/frameworks/telemetry/log-writes-sync.zeek | 23 + .../telemetry/table-size-tracking.zeek | 25 + doc/frameworks/telemetry/version.zeek | 19 + doc/frameworks/tls-decryption.rst | 165 + .../tls_decryption-1-suspend-processing.zeek | 13 + doc/get-started.rst | 11 + doc/images/architecture.png | Bin 0 -> 139697 bytes doc/images/cluster-diagram.png | Bin 0 -> 73801 bytes doc/images/cluster/Makefile | 6 + doc/images/cluster/README.md | 24 + doc/images/cluster/zeromq-cluster.mermaid | 95 + doc/images/cluster/zeromq-cluster.png | Bin 0 -> 47509 bytes doc/images/cluster/zeromq-logging.mermaid | 49 + doc/images/cluster/zeromq-logging.png | Bin 0 -> 30770 bytes doc/images/cluster/zeromq-pubsub.mermaid | 72 + doc/images/cluster/zeromq-pubsub.png | Bin 0 -> 44089 bytes doc/images/collection-figure1.png | Bin 0 -> 14837 bytes doc/images/collection-figure2.png | Bin 0 -> 18885 bytes doc/images/collection-figure3.png | Bin 0 -> 18198 bytes doc/images/deployment.png | Bin 0 -> 36081 bytes doc/images/intel-architecture.png | Bin 0 -> 27576 bytes .../management-all-in-one-two-zeeks.png | Bin 0 -> 75463 bytes .../management-all-in-one-two-zeeks.svgz | Bin 0 -> 3573 bytes doc/images/management-all-in-one.png | Bin 0 -> 69473 bytes doc/images/management-all-in-one.svgz | Bin 0 -> 3519 bytes doc/images/management.png | Bin 0 -> 100146 bytes doc/images/management.svgz | Bin 0 -> 4109 bytes doc/images/troubleshooting/flamegraph.png | Bin 0 -> 276645 bytes .../http-fake-state-growth.gif | Bin 0 -> 270584 bytes .../one-api-many-zeek-ws-bridge.svg | 1 + .../websocket-api/one-api-many-zeek.svg | 1 + doc/images/zeek-favicon.ico | Bin 0 -> 15086 bytes doc/images/zeek-logo-sidebar.png | Bin 0 -> 5571 bytes doc/images/zeek-logo-text.png | Bin 0 -> 8229 bytes doc/images/zeek-logo.png | Bin 0 -> 4392 bytes doc/index.rst | 70 + doc/install.rst | 140 + doc/log-formats.rst | 657 + doc/logs/analyzer.rst | 403 + doc/logs/capture-loss-and-reporter.rst | 98 + doc/logs/conn.rst | 444 + doc/logs/dhcp.rst | 439 + doc/logs/dns.rst | 267 + doc/logs/files.rst | 371 + doc/logs/ftp.rst | 313 + doc/logs/http.rst | 174 + doc/logs/index.rst | 31 + doc/logs/irc.rst | 475 + doc/logs/known-and-software.rst | 137 + doc/logs/ldap.rst | 140 + doc/logs/ntp.rst | 294 + doc/logs/pe.rst | 506 + doc/logs/postgresql.rst | 97 + doc/logs/quic.rst | 88 + doc/logs/rdp.rst | 216 + doc/logs/smb.rst | 1825 ++ doc/logs/smtp.rst | 847 + doc/logs/ssh.rst | 232 + doc/logs/ssl.rst | 459 + doc/logs/traceroute.rst | 44 + doc/logs/tunnel.rst | 947 + doc/logs/weird-and-notice.rst | 151 + doc/logs/x509.rst | 166 + doc/monitoring.rst | 270 + doc/quickstart.rst | 407 + doc/redirects.yml | 58 + doc/requirements.txt | 7 + doc/ruff.toml | 4 + doc/script-reference/assert_1.zeek | 18 + doc/script-reference/attributes.rst | 791 + .../autogenerated-file-analyzer-index.rst | 1051 + .../autogenerated-package-index.rst | 447 + .../autogenerated-packet-analyzer-index.rst | 850 + .../autogenerated-protocol-analyzer-index.rst | 19358 ++++++++++++++++ .../autogenerated-script-index.rst | 658 + doc/script-reference/directives.rst | 280 + doc/script-reference/file-analyzers.rst | 1 + doc/script-reference/index.rst | 20 + doc/script-reference/log-files.rst | 370 + doc/script-reference/notices.rst | 8 + doc/script-reference/operators.rst | 420 + doc/script-reference/packages.rst | 14 + doc/script-reference/packet-analyzers.rst | 1 + doc/script-reference/proto-analyzers.rst | 1 + doc/script-reference/scripts.rst | 5 + doc/script-reference/statements.rst | 1237 + doc/script-reference/types.rst | 2116 ++ doc/scripting/basics.rst | 1817 ++ doc/scripting/conn-id-ctx.rst | 101 + doc/scripting/conn_id_ctx_my_endpoint.zeek | 21 + doc/scripting/connection_record_01.zeek | 6 + doc/scripting/connection_record_02.zeek | 7 + doc/scripting/data_struct_record_01.zeek | 22 + doc/scripting/data_struct_record_02.zeek | 41 + .../data_struct_set_declaration.zeek | 22 + doc/scripting/data_struct_table_complex.zeek | 13 + ...data_struct_table_complex_blank_value.zeek | 11 + .../data_struct_table_declaration.zeek | 19 + doc/scripting/data_struct_vector.zeek | 7 + .../data_struct_vector_declaration.zeek | 15 + doc/scripting/data_struct_vector_iter.zeek | 7 + .../data_struct_vector_iter_value.zeek | 7 + doc/scripting/data_type_const.zeek | 9 + doc/scripting/data_type_const_simple.zeek | 4 + doc/scripting/data_type_declaration.zeek | 9 + doc/scripting/data_type_interval.zeek | 18 + doc/scripting/data_type_local.zeek | 11 + doc/scripting/data_type_pattern_01.zeek | 13 + doc/scripting/data_type_pattern_02.zeek | 10 + doc/scripting/data_type_record.zeek | 25 + doc/scripting/data_type_subnets.zeek | 15 + doc/scripting/data_type_time.zeek | 4 + doc/scripting/event-groups.rst | 115 + doc/scripting/event_groups_attr_01.zeek | 19 + doc/scripting/event_groups_attr_02.zeek | 46 + doc/scripting/event_groups_module_01.zeek | 47 + .../framework_logging_factorial_01.zeek | 19 + .../framework_logging_factorial_02.zeek | 35 + .../framework_logging_factorial_03.zeek | 45 + .../framework_logging_factorial_04.zeek | 50 + doc/scripting/framework_notice_hook_01.zeek | 7 + .../framework_notice_hook_suppression_01.zeek | 7 + .../framework_notice_shortcuts_01.zeek | 7 + .../framework_notice_shortcuts_02.zeek | 6 + doc/scripting/http_main.zeek | 7 + doc/scripting/index.rst | 15 + doc/scripting/javascript.rst | 509 + doc/scripting/js/api.js | 60 + doc/scripting/js/api.zeek | 14 + doc/scripting/js/connection-service.js | 9 + doc/scripting/js/global-vars.js | 9 + doc/scripting/js/hello.js | 5 + doc/scripting/js/intel-insert.js | 10 + doc/scripting/js/zeek-as.js | 13 + doc/scripting/optimization.rst | 110 + doc/scripting/tracing-events.rst | 87 + doc/scripting/usage.rst | 26 + doc/scripts/base/bif/CPP-load.bif.zeek.rst | 39 + doc/scripts/base/bif/__load__.zeek.rst | 14 + doc/scripts/base/bif/analyzer.bif.zeek.rst | 80 + .../base/bif/bloom-filter.bif.zeek.rst | 270 + .../base/bif/cardinality-counter.bif.zeek.rst | 122 + doc/scripts/base/bif/cluster.bif.zeek.rst | 169 + doc/scripts/base/bif/comm.bif.zeek.rst | 252 + doc/scripts/base/bif/communityid.bif.zeek.rst | 37 + doc/scripts/base/bif/const.bif.zeek.rst | 18 + doc/scripts/base/bif/data.bif.zeek.rst | 372 + doc/scripts/base/bif/event.bif.zeek.rst | 1332 ++ .../base/bif/file_analysis.bif.zeek.rst | 146 + doc/scripts/base/bif/index.rst | 567 + doc/scripts/base/bif/input.bif.zeek.rst | 59 + doc/scripts/base/bif/logging.bif.zeek.rst | 122 + doc/scripts/base/bif/messaging.bif.zeek.rst | 96 + doc/scripts/base/bif/mmdb.bif.zeek.rst | 90 + doc/scripts/base/bif/option.bif.zeek.rst | 104 + .../base/bif/packet_analysis.bif.zeek.rst | 96 + doc/scripts/base/bif/pcap.bif.zeek.rst | 149 + .../Zeek_AF_Packet.af_packet.bif.zeek.rst | 16 + .../bif/plugins/Zeek_ARP.events.bif.zeek.rst | 116 + .../Zeek_AsciiReader.ascii.bif.zeek.rst | 16 + .../Zeek_AsciiWriter.ascii.bif.zeek.rst | 16 + ...eek_BenchmarkReader.benchmark.bif.zeek.rst | 16 + .../Zeek_BinaryReader.binary.bif.zeek.rst | 16 + .../Zeek_BitTorrent.events.bif.zeek.rst | 328 + ...ZeroMQ.cluster_backend_zeromq.bif.zeek.rst | 29 + ...Zeek_Cluster_WebSocket.events.bif.zeek.rst | 54 + .../Zeek_ConfigReader.config.bif.zeek.rst | 16 + .../plugins/Zeek_ConnSize.events.bif.zeek.rst | 112 + .../Zeek_ConnSize.functions.bif.zeek.rst | 147 + .../plugins/Zeek_DCE_RPC.consts.bif.zeek.rst | 15 + .../plugins/Zeek_DCE_RPC.events.bif.zeek.rst | 258 + .../plugins/Zeek_DCE_RPC.types.bif.zeek.rst | 107 + .../bif/plugins/Zeek_DHCP.events.bif.zeek.rst | 44 + .../bif/plugins/Zeek_DHCP.types.bif.zeek.rst | 16 + .../bif/plugins/Zeek_DNP3.events.bif.zeek.rst | 618 + .../bif/plugins/Zeek_DNS.events.bif.zeek.rst | 1206 + .../bif/plugins/Zeek_FTP.events.bif.zeek.rst | 87 + .../plugins/Zeek_FTP.functions.bif.zeek.rst | 115 + .../bif/plugins/Zeek_File.events.bif.zeek.rst | 45 + .../Zeek_FileEntropy.events.bif.zeek.rst | 39 + .../Zeek_FileExtract.events.bif.zeek.rst | 51 + .../Zeek_FileExtract.functions.bif.zeek.rst | 32 + .../plugins/Zeek_FileHash.events.bif.zeek.rst | 44 + .../plugins/Zeek_GSSAPI.events.bif.zeek.rst | 37 + .../plugins/Zeek_GTPv1.events.bif.zeek.rst | 173 + .../plugins/Zeek_GTPv1.functions.bif.zeek.rst | 30 + .../plugins/Zeek_Geneve.events.bif.zeek.rst | 43 + .../Zeek_Geneve.functions.bif.zeek.rst | 36 + .../plugins/Zeek_Gnutella.events.bif.zeek.rst | 137 + .../bif/plugins/Zeek_HTTP.events.bif.zeek.rst | 374 + .../plugins/Zeek_HTTP.functions.bif.zeek.rst | 60 + .../bif/plugins/Zeek_ICMP.events.bif.zeek.rst | 529 + .../bif/plugins/Zeek_IMAP.events.bif.zeek.rst | 51 + .../bif/plugins/Zeek_IRC.events.bif.zeek.rst | 1162 + .../plugins/Zeek_Ident.events.bif.zeek.rst | 112 + .../Zeek_JavaScript.zeekjs.bif.zeek.rst | 15 + .../bif/plugins/Zeek_KRB.events.bif.zeek.rst | 260 + .../bif/plugins/Zeek_KRB.types.bif.zeek.rst | 16 + .../plugins/Zeek_Login.events.bif.zeek.rst | 565 + .../plugins/Zeek_Login.functions.bif.zeek.rst | 71 + .../bif/plugins/Zeek_MIME.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_MIME.events.bif.zeek.rst | 289 + .../bif/plugins/Zeek_MQTT.events.bif.zeek.rst | 239 + .../bif/plugins/Zeek_MQTT.types.bif.zeek.rst | 15 + .../plugins/Zeek_Modbus.events.bif.zeek.rst | 650 + .../plugins/Zeek_MySQL.events.bif.zeek.rst | 267 + .../bif/plugins/Zeek_NCP.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_NCP.events.bif.zeek.rst | 88 + .../bif/plugins/Zeek_NTLM.events.bif.zeek.rst | 70 + .../bif/plugins/Zeek_NTLM.types.bif.zeek.rst | 16 + .../bif/plugins/Zeek_NTP.events.bif.zeek.rst | 43 + .../bif/plugins/Zeek_NTP.types.bif.zeek.rst | 16 + .../plugins/Zeek_NetBIOS.events.bif.zeek.rst | 284 + .../Zeek_NetBIOS.functions.bif.zeek.rst | 58 + .../plugins/Zeek_NoneWriter.none.bif.zeek.rst | 16 + .../bif/plugins/Zeek_PE.events.bif.zeek.rst | 115 + .../bif/plugins/Zeek_POP3.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_POP3.events.bif.zeek.rst | 241 + .../plugins/Zeek_PPPoE.functions.bif.zeek.rst | 37 + .../plugins/Zeek_RADIUS.events.bif.zeek.rst | 61 + .../bif/plugins/Zeek_RDP.events.bif.zeek.rst | 269 + .../bif/plugins/Zeek_RDP.types.bif.zeek.rst | 16 + .../bif/plugins/Zeek_RFB.events.bif.zeek.rst | 112 + .../bif/plugins/Zeek_RPC.events.bif.zeek.rst | 1320 ++ .../plugins/Zeek_RawReader.raw.bif.zeek.rst | 16 + .../bif/plugins/Zeek_SIP.events.bif.zeek.rst | 163 + .../bif/plugins/Zeek_SMB.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_SMB.events.bif.zeek.rst | 58 + ..._SMB.smb1_com_check_directory.bif.zeek.rst | 67 + .../Zeek_SMB.smb1_com_close.bif.zeek.rst | 46 + ...SMB.smb1_com_create_directory.bif.zeek.rst | 69 + .../Zeek_SMB.smb1_com_echo.bif.zeek.rst | 75 + ...Zeek_SMB.smb1_com_logoff_andx.bif.zeek.rst | 45 + .../Zeek_SMB.smb1_com_negotiate.bif.zeek.rst | 71 + .../Zeek_SMB.smb1_com_nt_cancel.bif.zeek.rst | 43 + ...k_SMB.smb1_com_nt_create_andx.bif.zeek.rst | 77 + ...MB.smb1_com_query_information.bif.zeek.rst | 47 + .../Zeek_SMB.smb1_com_read_andx.bif.zeek.rst | 76 + ...B.smb1_com_session_setup_andx.bif.zeek.rst | 68 + ...Zeek_SMB.smb1_com_transaction.bif.zeek.rst | 83 + ...eek_SMB.smb1_com_transaction2.bif.zeek.rst | 126 + ...b1_com_transaction2_secondary.bif.zeek.rst | 50 + ...mb1_com_transaction_secondary.bif.zeek.rst | 49 + ...MB.smb1_com_tree_connect_andx.bif.zeek.rst | 76 + ..._SMB.smb1_com_tree_disconnect.bif.zeek.rst | 46 + .../Zeek_SMB.smb1_com_write_andx.bif.zeek.rst | 74 + .../plugins/Zeek_SMB.smb1_events.bif.zeek.rst | 89 + .../Zeek_SMB.smb2_com_close.bif.zeek.rst | 70 + .../Zeek_SMB.smb2_com_create.bif.zeek.rst | 70 + .../Zeek_SMB.smb2_com_negotiate.bif.zeek.rst | 70 + .../Zeek_SMB.smb2_com_read.bif.zeek.rst | 52 + ...ek_SMB.smb2_com_session_setup.bif.zeek.rst | 71 + .../Zeek_SMB.smb2_com_set_info.bif.zeek.rst | 399 + ...SMB.smb2_com_transform_header.bif.zeek.rst | 43 + ...eek_SMB.smb2_com_tree_connect.bif.zeek.rst | 70 + ..._SMB.smb2_com_tree_disconnect.bif.zeek.rst | 60 + .../Zeek_SMB.smb2_com_write.bif.zeek.rst | 76 + .../plugins/Zeek_SMB.smb2_events.bif.zeek.rst | 71 + .../bif/plugins/Zeek_SMB.types.bif.zeek.rst | 15 + .../bif/plugins/Zeek_SMTP.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_SMTP.events.bif.zeek.rst | 174 + .../plugins/Zeek_SMTP.functions.bif.zeek.rst | 35 + .../bif/plugins/Zeek_SNMP.events.bif.zeek.rst | 294 + .../bif/plugins/Zeek_SNMP.types.bif.zeek.rst | 16 + .../plugins/Zeek_SOCKS.events.bif.zeek.rst | 103 + .../Zeek_SQLiteReader.sqlite.bif.zeek.rst | 16 + .../Zeek_SQLiteWriter.sqlite.bif.zeek.rst | 16 + .../bif/plugins/Zeek_SSH.events.bif.zeek.rst | 527 + .../bif/plugins/Zeek_SSH.types.bif.zeek.rst | 16 + .../bif/plugins/Zeek_SSL.consts.bif.zeek.rst | 15 + .../bif/plugins/Zeek_SSL.events.bif.zeek.rst | 1068 + .../plugins/Zeek_SSL.functions.bif.zeek.rst | 93 + .../bif/plugins/Zeek_SSL.types.bif.zeek.rst | 16 + .../Zeek_StreamEvent.events.bif.zeek.rst | 73 + .../bif/plugins/Zeek_TCP.events.bif.zeek.rst | 578 + .../plugins/Zeek_TCP.functions.bif.zeek.rst | 126 + .../bif/plugins/Zeek_TCP.types.bif.zeek.rst | 15 + .../plugins/Zeek_Teredo.events.bif.zeek.rst | 121 + .../Zeek_Teredo.functions.bif.zeek.rst | 30 + .../bif/plugins/Zeek_UDP.events.bif.zeek.rst | 103 + .../plugins/Zeek_VXLAN.events.bif.zeek.rst | 43 + .../Zeek_WebSocket.consts.bif.zeek.rst | 15 + .../Zeek_WebSocket.events.bif.zeek.rst | 130 + .../Zeek_WebSocket.functions.bif.zeek.rst | 48 + .../plugins/Zeek_WebSocket.types.bif.zeek.rst | 16 + .../bif/plugins/Zeek_X509.events.bif.zeek.rst | 150 + .../plugins/Zeek_X509.functions.bif.zeek.rst | 331 + .../Zeek_X509.ocsp_events.bif.zeek.rst | 196 + .../bif/plugins/Zeek_X509.types.bif.zeek.rst | 15 + .../bif/plugins/Zeek_XMPP.events.bif.zeek.rst | 35 + .../base/bif/plugins/__load__.zeek.rst | 14 + doc/scripts/base/bif/plugins/index.rst | 409 + doc/scripts/base/bif/reporter.bif.zeek.rst | 312 + doc/scripts/base/bif/spicy.bif.zeek.rst | 51 + doc/scripts/base/bif/stats.bif.zeek.rst | 354 + .../base/bif/storage-async.bif.zeek.rst | 59 + .../base/bif/storage-events.bif.zeek.rst | 66 + .../base/bif/storage-sync.bif.zeek.rst | 59 + doc/scripts/base/bif/storage.bif.zeek.rst | 54 + doc/scripts/base/bif/store.bif.zeek.rst | 171 + doc/scripts/base/bif/strings.bif.zeek.rst | 1011 + doc/scripts/base/bif/supervisor.bif.zeek.rst | 80 + .../base/bif/telemetry_consts.bif.zeek.rst | 15 + .../base/bif/telemetry_functions.bif.zeek.rst | 129 + .../base/bif/telemetry_types.bif.zeek.rst | 43 + doc/scripts/base/bif/top-k.bif.zeek.rst | 215 + doc/scripts/base/bif/types.bif.zeek.rst | 420 + doc/scripts/base/bif/zeek.bif.zeek.rst | 4065 ++++ doc/scripts/base/bif/zeekygen.bif.zeek.rst | 133 + .../base/files/extract/__load__.zeek.rst | 14 + doc/scripts/base/files/extract/index.rst | 13 + doc/scripts/base/files/extract/main.zeek.rst | 127 + doc/scripts/base/files/hash/__load__.zeek.rst | 14 + doc/scripts/base/files/hash/index.rst | 13 + doc/scripts/base/files/hash/main.zeek.rst | 33 + doc/scripts/base/files/pe/__load__.zeek.rst | 14 + doc/scripts/base/files/pe/consts.zeek.rst | 297 + doc/scripts/base/files/pe/index.rst | 16 + doc/scripts/base/files/pe/main.zeek.rst | 166 + doc/scripts/base/files/x509/__load__.zeek.rst | 14 + .../x509/certificate-event-cache.zeek.rst | 102 + doc/scripts/base/files/x509/index.rst | 30 + doc/scripts/base/files/x509/log-ocsp.zeek.rst | 126 + doc/scripts/base/files/x509/main.zeek.rst | 375 + .../frameworks/analyzer/__load__.zeek.rst | 14 + .../base/frameworks/analyzer/dpd.zeek.rst | 85 + .../base/frameworks/analyzer/index.rst | 42 + .../base/frameworks/analyzer/logging.zeek.rst | 148 + .../base/frameworks/analyzer/main.zeek.rst | 364 + .../base/frameworks/broker/__load__.zeek.rst | 14 + .../frameworks/broker/backpressure.zeek.rst | 24 + doc/scripts/base/frameworks/broker/index.rst | 36 + .../base/frameworks/broker/log.zeek.rst | 121 + .../base/frameworks/broker/main.zeek.rst | 995 + .../base/frameworks/broker/store.zeek.rst | 1377 ++ .../base/frameworks/cluster/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/cluster/index.rst | 38 + .../base/frameworks/cluster/main.zeek.rst | 999 + .../base/frameworks/cluster/pools.zeek.rst | 352 + .../frameworks/cluster/telemetry.zeek.rst | 127 + .../base/frameworks/config/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/config/index.rst | 25 + .../base/frameworks/config/input.zeek.rst | 56 + .../base/frameworks/config/main.zeek.rst | 132 + .../base/frameworks/config/weird.zeek.rst | 17 + .../base/frameworks/control/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/control/index.rst | 18 + .../base/frameworks/control/main.zeek.rst | 239 + .../base/frameworks/files/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/files/index.rst | 20 + .../frameworks/files/magic/__load__.zeek.rst | 13 + .../base/frameworks/files/magic/index.rst | 9 + .../base/frameworks/files/main.zeek.rst | 732 + .../base/frameworks/input/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/input/index.rst | 50 + .../base/frameworks/input/main.zeek.rst | 492 + .../frameworks/input/readers/ascii.zeek.rst | 124 + .../input/readers/benchmark.zeek.rst | 83 + .../frameworks/input/readers/binary.zeek.rst | 47 + .../frameworks/input/readers/config.zeek.rst | 99 + .../frameworks/input/readers/raw.zeek.rst | 60 + .../frameworks/input/readers/sqlite.zeek.rst | 62 + .../base/frameworks/intel/__load__.zeek.rst | 14 + .../base/frameworks/intel/files.zeek.rst | 55 + doc/scripts/base/frameworks/intel/index.rst | 29 + .../base/frameworks/intel/input.zeek.rst | 103 + .../base/frameworks/intel/main.zeek.rst | 754 + .../base/frameworks/logging/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/logging/index.rst | 87 + .../base/frameworks/logging/main.zeek.rst | 1825 ++ .../logging/postprocessors/__load__.zeek.rst | 14 + .../logging/postprocessors/index.rst | 44 + .../logging/postprocessors/scp.zeek.rst | 132 + .../logging/postprocessors/sftp.zeek.rst | 137 + .../frameworks/logging/writers/ascii.zeek.rst | 229 + .../frameworks/logging/writers/none.zeek.rst | 41 + .../logging/writers/sqlite.zeek.rst | 141 + .../frameworks/netcontrol/__load__.zeek.rst | 14 + .../base/frameworks/netcontrol/drop.zeek.rst | 171 + .../base/frameworks/netcontrol/index.rst | 77 + .../base/frameworks/netcontrol/main.zeek.rst | 649 + .../netcontrol/non-cluster.zeek.rst | 16 + .../frameworks/netcontrol/plugin.zeek.rst | 179 + .../netcontrol/plugins/__load__.zeek.rst | 14 + .../netcontrol/plugins/acld.zeek.rst | 197 + .../netcontrol/plugins/broker.zeek.rst | 159 + .../netcontrol/plugins/debug.zeek.rst | 65 + .../frameworks/netcontrol/plugins/index.rst | 36 + .../netcontrol/plugins/openflow.zeek.rst | 195 + .../netcontrol/plugins/packetfilter.zeek.rst | 35 + .../base/frameworks/netcontrol/shunt.zeek.rst | 123 + .../base/frameworks/netcontrol/types.zeek.rst | 380 + .../base/frameworks/notice/__load__.zeek.rst | 14 + .../notice/actions/add-geodata.zeek.rst | 56 + .../notice/actions/email_admin.zeek.rst | 32 + .../frameworks/notice/actions/page.zeek.rst | 47 + .../notice/actions/pp-alarms.zeek.rst | 97 + doc/scripts/base/frameworks/notice/index.rst | 57 + .../base/frameworks/notice/main.zeek.rst | 1156 + .../base/frameworks/notice/weird.zeek.rst | 482 + .../frameworks/openflow/__load__.zeek.rst | 14 + .../base/frameworks/openflow/consts.zeek.rst | 623 + .../base/frameworks/openflow/index.rst | 50 + .../base/frameworks/openflow/main.zeek.rst | 279 + .../frameworks/openflow/non-cluster.zeek.rst | 16 + .../openflow/plugins/__load__.zeek.rst | 14 + .../openflow/plugins/broker.zeek.rst | 91 + .../frameworks/openflow/plugins/index.rst | 23 + .../frameworks/openflow/plugins/log.zeek.rst | 129 + .../frameworks/openflow/plugins/ryu.zeek.rst | 67 + .../base/frameworks/openflow/types.zeek.rst | 368 + .../packet-filter/__load__.zeek.rst | 14 + .../base/frameworks/packet-filter/index.rst | 27 + .../frameworks/packet-filter/main.zeek.rst | 301 + .../packet-filter/netstats.zeek.rst | 44 + .../frameworks/packet-filter/utils.zeek.rst | 76 + .../frameworks/reporter/__load__.zeek.rst | 14 + .../base/frameworks/reporter/index.rst | 26 + .../base/frameworks/reporter/main.zeek.rst | 91 + .../frameworks/signatures/__load__.zeek.rst | 14 + .../base/frameworks/signatures/index.rst | 19 + .../base/frameworks/signatures/main.zeek.rst | 364 + .../frameworks/software/__load__.zeek.rst | 14 + .../base/frameworks/software/index.rst | 21 + .../base/frameworks/software/main.zeek.rst | 425 + .../base/frameworks/spicy/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/spicy/index.rst | 18 + .../base/frameworks/spicy/init-bare.zeek.rst | 139 + .../frameworks/spicy/init-framework.zeek.rst | 94 + .../base/frameworks/spicy/main.zeek.rst | 24 + .../base/frameworks/storage/__load__.zeek.rst | 14 + .../base/frameworks/storage/async.zeek.rst | 132 + doc/scripts/base/frameworks/storage/index.rst | 21 + .../base/frameworks/storage/main.zeek.rst | 140 + .../base/frameworks/storage/sync.zeek.rst | 126 + .../frameworks/sumstats/__load__.zeek.rst | 14 + .../base/frameworks/sumstats/index.rst | 72 + .../base/frameworks/sumstats/main.zeek.rst | 628 + .../frameworks/sumstats/non-cluster.zeek.rst | 16 + .../sumstats/plugins/__load__.zeek.rst | 14 + .../sumstats/plugins/average.zeek.rst | 32 + .../sumstats/plugins/hll_unique.zeek.rst | 61 + .../frameworks/sumstats/plugins/index.rst | 59 + .../frameworks/sumstats/plugins/last.zeek.rst | 53 + .../frameworks/sumstats/plugins/max.zeek.rst | 32 + .../frameworks/sumstats/plugins/min.zeek.rst | 32 + .../sumstats/plugins/sample.zeek.rst | 55 + .../sumstats/plugins/std-dev.zeek.rst | 32 + .../frameworks/sumstats/plugins/sum.zeek.rst | 32 + .../frameworks/sumstats/plugins/topk.zeek.rst | 44 + .../sumstats/plugins/unique.zeek.rst | 54 + .../sumstats/plugins/variance.zeek.rst | 46 + .../frameworks/supervisor/__load__.zeek.rst | 14 + .../base/frameworks/supervisor/api.zeek.rst | 377 + .../frameworks/supervisor/control.zeek.rst | 226 + .../base/frameworks/supervisor/index.rst | 29 + .../base/frameworks/supervisor/main.zeek.rst | 16 + .../frameworks/telemetry/__load__.zeek.rst | 14 + .../base/frameworks/telemetry/index.rst | 25 + .../base/frameworks/telemetry/main.zeek.rst | 469 + .../frameworks/telemetry/options.zeek.rst | 79 + .../base/frameworks/tunnels/__load__.zeek.rst | 14 + doc/scripts/base/frameworks/tunnels/index.rst | 20 + .../base/frameworks/tunnels/main.zeek.rst | 228 + doc/scripts/base/init-bare.zeek.rst | 15561 +++++++++++++ doc/scripts/base/init-default.zeek.rst | 19 + .../base/init-frameworks-and-bifs.zeek.rst | 14 + .../misc/find-checksum-offloading.zeek.rst | 39 + .../base/misc/find-filtered-trace.zeek.rst | 38 + doc/scripts/base/misc/installation.zeek.rst | 74 + doc/scripts/base/misc/version.zeek.rst | 156 + .../base/packet-protocols/__load__.zeek.rst | 14 + .../packet-protocols/ayiya/__load__.zeek.rst | 14 + .../base/packet-protocols/ayiya/index.rst | 12 + .../base/packet-protocols/ayiya/main.zeek.rst | 22 + .../ethernet/__load__.zeek.rst | 14 + .../base/packet-protocols/ethernet/index.rst | 12 + .../packet-protocols/ethernet/main.zeek.rst | 46 + .../packet-protocols/fddi/__load__.zeek.rst | 14 + .../base/packet-protocols/fddi/index.rst | 12 + .../base/packet-protocols/fddi/main.zeek.rst | 32 + .../packet-protocols/geneve/__load__.zeek.rst | 14 + .../base/packet-protocols/geneve/index.rst | 12 + .../packet-protocols/geneve/main.zeek.rst | 99 + .../packet-protocols/gre/__load__.zeek.rst | 14 + .../base/packet-protocols/gre/index.rst | 12 + .../base/packet-protocols/gre/main.zeek.rst | 47 + .../packet-protocols/gtpv1/__load__.zeek.rst | 14 + .../base/packet-protocols/gtpv1/index.rst | 12 + .../base/packet-protocols/gtpv1/main.zeek.rst | 39 + .../packet-protocols/icmp/__load__.zeek.rst | 14 + .../base/packet-protocols/icmp/index.rst | 12 + .../base/packet-protocols/icmp/main.zeek.rst | 15 + .../ieee802_11/__load__.zeek.rst | 14 + .../packet-protocols/ieee802_11/index.rst | 18 + .../packet-protocols/ieee802_11/main.zeek.rst | 15 + .../ieee802_11_radio/__load__.zeek.rst | 14 + .../ieee802_11_radio/index.rst | 12 + .../ieee802_11_radio/main.zeek.rst | 15 + doc/scripts/base/packet-protocols/index.rst | 198 + .../packet-protocols/ip/__load__.zeek.rst | 14 + .../base/packet-protocols/ip/index.rst | 18 + .../base/packet-protocols/ip/main.zeek.rst | 32 + .../iptunnel/__load__.zeek.rst | 14 + .../base/packet-protocols/iptunnel/index.rst | 12 + .../packet-protocols/iptunnel/main.zeek.rst | 31 + .../linux_sll/__load__.zeek.rst | 14 + .../base/packet-protocols/linux_sll/index.rst | 18 + .../packet-protocols/linux_sll/main.zeek.rst | 15 + .../linux_sll2/__load__.zeek.rst | 14 + .../packet-protocols/linux_sll2/index.rst | 12 + .../packet-protocols/linux_sll2/main.zeek.rst | 15 + .../packet-protocols/llc/__load__.zeek.rst | 14 + .../base/packet-protocols/llc/index.rst | 12 + .../base/packet-protocols/llc/main.zeek.rst | 15 + .../base/packet-protocols/main.zeek.rst | 63 + .../packet-protocols/mpls/__load__.zeek.rst | 14 + .../base/packet-protocols/mpls/index.rst | 12 + .../base/packet-protocols/mpls/main.zeek.rst | 32 + .../packet-protocols/nflog/__load__.zeek.rst | 14 + .../base/packet-protocols/nflog/index.rst | 12 + .../base/packet-protocols/nflog/main.zeek.rst | 15 + .../novell_802_3/__load__.zeek.rst | 14 + .../packet-protocols/novell_802_3/index.rst | 12 + .../novell_802_3/main.zeek.rst | 15 + .../packet-protocols/null/__load__.zeek.rst | 14 + .../base/packet-protocols/null/index.rst | 12 + .../base/packet-protocols/null/main.zeek.rst | 15 + .../packet-protocols/pbb/__load__.zeek.rst | 14 + .../base/packet-protocols/pbb/index.rst | 12 + .../base/packet-protocols/pbb/main.zeek.rst | 32 + .../packet-protocols/ppp/__load__.zeek.rst | 14 + .../base/packet-protocols/ppp/index.rst | 24 + .../base/packet-protocols/ppp/main.zeek.rst | 15 + .../ppp_serial/__load__.zeek.rst | 14 + .../packet-protocols/ppp_serial/index.rst | 12 + .../packet-protocols/ppp_serial/main.zeek.rst | 15 + .../packet-protocols/pppoe/__load__.zeek.rst | 14 + .../base/packet-protocols/pppoe/index.rst | 12 + .../base/packet-protocols/pppoe/main.zeek.rst | 15 + .../packet-protocols/root/__load__.zeek.rst | 14 + .../base/packet-protocols/root/index.rst | 12 + .../base/packet-protocols/root/main.zeek.rst | 32 + .../packet-protocols/skip/__load__.zeek.rst | 14 + .../base/packet-protocols/skip/index.rst | 12 + .../base/packet-protocols/skip/main.zeek.rst | 42 + .../packet-protocols/snap/__load__.zeek.rst | 14 + .../base/packet-protocols/snap/index.rst | 12 + .../base/packet-protocols/snap/main.zeek.rst | 15 + .../packet-protocols/tcp/__load__.zeek.rst | 14 + .../base/packet-protocols/tcp/index.rst | 12 + .../base/packet-protocols/tcp/main.zeek.rst | 15 + .../packet-protocols/teredo/__load__.zeek.rst | 14 + .../base/packet-protocols/teredo/index.rst | 12 + .../packet-protocols/teredo/main.zeek.rst | 39 + .../packet-protocols/udp/__load__.zeek.rst | 14 + .../base/packet-protocols/udp/index.rst | 12 + .../base/packet-protocols/udp/main.zeek.rst | 15 + .../packet-protocols/vlan/__load__.zeek.rst | 14 + .../base/packet-protocols/vlan/index.rst | 12 + .../base/packet-protocols/vlan/main.zeek.rst | 46 + .../packet-protocols/vntag/__load__.zeek.rst | 14 + .../base/packet-protocols/vntag/index.rst | 12 + .../base/packet-protocols/vntag/main.zeek.rst | 15 + .../packet-protocols/vxlan/__load__.zeek.rst | 14 + .../base/packet-protocols/vxlan/index.rst | 12 + .../base/packet-protocols/vxlan/main.zeek.rst | 57 + .../base/protocols/conn/__load__.zeek.rst | 14 + .../base/protocols/conn/contents.zeek.rst | 71 + .../base/protocols/conn/inactivity.zeek.rst | 64 + doc/scripts/base/protocols/conn/index.rst | 62 + doc/scripts/base/protocols/conn/main.zeek.rst | 346 + .../base/protocols/conn/polling.zeek.rst | 52 + .../protocols/conn/removal-hooks.zeek.rst | 101 + .../base/protocols/conn/thresholds.zeek.rst | 252 + .../base/protocols/dce-rpc/__load__.zeek.rst | 14 + .../base/protocols/dce-rpc/consts.zeek.rst | 2848 +++ doc/scripts/base/protocols/dce-rpc/index.rst | 17 + .../base/protocols/dce-rpc/main.zeek.rst | 194 + .../base/protocols/dhcp/__load__.zeek.rst | 14 + .../base/protocols/dhcp/consts.zeek.rst | 231 + doc/scripts/base/protocols/dhcp/index.rst | 23 + doc/scripts/base/protocols/dhcp/main.zeek.rst | 360 + .../base/protocols/dnp3/__load__.zeek.rst | 14 + .../base/protocols/dnp3/consts.zeek.rst | 75 + doc/scripts/base/protocols/dnp3/index.rst | 17 + doc/scripts/base/protocols/dnp3/main.zeek.rst | 115 + .../base/protocols/dns/__load__.zeek.rst | 14 + .../dns/check-event-handlers.zeek.rst | 17 + .../base/protocols/dns/consts.zeek.rst | 325 + doc/scripts/base/protocols/dns/index.rst | 25 + doc/scripts/base/protocols/dns/main.zeek.rst | 377 + .../base/protocols/finger/__load__.zeek.rst | 14 + doc/scripts/base/protocols/finger/index.rst | 18 + .../base/protocols/finger/main.zeek.rst | 45 + .../protocols/finger/spicy-events.zeek.rst | 65 + .../base/protocols/ftp/__load__.zeek.rst | 14 + doc/scripts/base/protocols/ftp/files.zeek.rst | 49 + .../base/protocols/ftp/gridftp.zeek.rst | 138 + doc/scripts/base/protocols/ftp/index.rst | 54 + doc/scripts/base/protocols/ftp/info.zeek.rst | 185 + doc/scripts/base/protocols/ftp/main.zeek.rst | 244 + .../protocols/ftp/utils-commands.zeek.rst | 416 + doc/scripts/base/protocols/ftp/utils.zeek.rst | 60 + .../base/protocols/http/__load__.zeek.rst | 14 + .../base/protocols/http/entities.zeek.rst | 130 + .../base/protocols/http/files.zeek.rst | 39 + doc/scripts/base/protocols/http/index.rst | 27 + doc/scripts/base/protocols/http/main.zeek.rst | 498 + .../base/protocols/http/utils.zeek.rst | 82 + .../base/protocols/imap/__load__.zeek.rst | 14 + doc/scripts/base/protocols/imap/index.rst | 17 + doc/scripts/base/protocols/imap/main.zeek.rst | 21 + .../base/protocols/irc/__load__.zeek.rst | 14 + .../base/protocols/irc/dcc-send.zeek.rst | 56 + doc/scripts/base/protocols/irc/files.zeek.rst | 47 + doc/scripts/base/protocols/irc/index.rst | 29 + doc/scripts/base/protocols/irc/main.zeek.rst | 147 + .../base/protocols/krb/__load__.zeek.rst | 14 + .../base/protocols/krb/consts.zeek.rst | 140 + doc/scripts/base/protocols/krb/files.zeek.rst | 65 + doc/scripts/base/protocols/krb/index.rst | 21 + doc/scripts/base/protocols/krb/main.zeek.rst | 243 + .../base/protocols/ldap/__load__.zeek.rst | 14 + .../base/protocols/ldap/consts.zeek.rst | 241 + doc/scripts/base/protocols/ldap/index.rst | 21 + doc/scripts/base/protocols/ldap/main.zeek.rst | 256 + .../base/protocols/ldap/spicy-events.zeek.rst | 191 + .../base/protocols/modbus/__load__.zeek.rst | 14 + .../base/protocols/modbus/consts.zeek.rst | 94 + doc/scripts/base/protocols/modbus/index.rst | 17 + .../base/protocols/modbus/main.zeek.rst | 122 + .../base/protocols/mqtt/__load__.zeek.rst | 14 + .../base/protocols/mqtt/consts.zeek.rst | 109 + doc/scripts/base/protocols/mqtt/index.rst | 19 + doc/scripts/base/protocols/mqtt/main.zeek.rst | 338 + .../base/protocols/mysql/__load__.zeek.rst | 14 + .../base/protocols/mysql/consts.zeek.rst | 69 + doc/scripts/base/protocols/mysql/index.rst | 17 + .../base/protocols/mysql/main.zeek.rst | 124 + .../base/protocols/ntlm/__load__.zeek.rst | 14 + doc/scripts/base/protocols/ntlm/index.rst | 13 + doc/scripts/base/protocols/ntlm/main.zeek.rst | 123 + .../base/protocols/ntp/__load__.zeek.rst | 14 + .../base/protocols/ntp/consts.zeek.rst | 47 + doc/scripts/base/protocols/ntp/index.rst | 15 + doc/scripts/base/protocols/ntp/main.zeek.rst | 161 + .../base/protocols/pop3/__load__.zeek.rst | 13 + doc/scripts/base/protocols/pop3/index.rst | 10 + .../protocols/postgresql/__load__.zeek.rst | 14 + .../base/protocols/postgresql/consts.zeek.rst | 79 + .../base/protocols/postgresql/index.rst | 20 + .../base/protocols/postgresql/main.zeek.rst | 189 + .../postgresql/spicy-events.zeek.rst | 293 + .../base/protocols/quic/__load__.zeek.rst | 14 + .../base/protocols/quic/consts.zeek.rst | 61 + doc/scripts/base/protocols/quic/index.rst | 22 + doc/scripts/base/protocols/quic/main.zeek.rst | 176 + .../base/protocols/quic/spicy-events.zeek.rst | 176 + .../base/protocols/radius/__load__.zeek.rst | 14 + .../base/protocols/radius/consts.zeek.rst | 15 + doc/scripts/base/protocols/radius/index.rst | 17 + .../base/protocols/radius/main.zeek.rst | 154 + .../base/protocols/rdp/__load__.zeek.rst | 14 + .../base/protocols/rdp/consts.zeek.rst | 567 + doc/scripts/base/protocols/rdp/index.rst | 17 + doc/scripts/base/protocols/rdp/main.zeek.rst | 249 + .../base/protocols/redis/__load__.zeek.rst | 14 + doc/scripts/base/protocols/redis/index.rst | 16 + .../base/protocols/redis/main.zeek.rst | 280 + .../protocols/redis/spicy-events.zeek.rst | 305 + .../base/protocols/rfb/__load__.zeek.rst | 14 + doc/scripts/base/protocols/rfb/index.rst | 13 + doc/scripts/base/protocols/rfb/main.zeek.rst | 152 + .../base/protocols/sip/__load__.zeek.rst | 14 + doc/scripts/base/protocols/sip/index.rst | 16 + doc/scripts/base/protocols/sip/main.zeek.rst | 271 + .../base/protocols/smb/__load__.zeek.rst | 14 + .../protocols/smb/const-dos-error.zeek.rst | 22 + .../protocols/smb/const-nt-status.zeek.rst | 22 + .../base/protocols/smb/consts.zeek.rst | 518 + doc/scripts/base/protocols/smb/files.zeek.rst | 39 + doc/scripts/base/protocols/smb/index.rst | 31 + doc/scripts/base/protocols/smb/main.zeek.rst | 445 + .../base/protocols/smb/smb1-main.zeek.rst | 27 + .../base/protocols/smb/smb2-main.zeek.rst | 31 + .../base/protocols/smtp/__load__.zeek.rst | 14 + .../base/protocols/smtp/entities.zeek.rst | 62 + .../base/protocols/smtp/files.zeek.rst | 55 + doc/scripts/base/protocols/smtp/index.rst | 20 + doc/scripts/base/protocols/smtp/main.zeek.rst | 352 + .../base/protocols/snmp/__load__.zeek.rst | 14 + doc/scripts/base/protocols/snmp/index.rst | 14 + doc/scripts/base/protocols/snmp/main.zeek.rst | 181 + .../base/protocols/socks/__load__.zeek.rst | 14 + .../base/protocols/socks/consts.zeek.rst | 109 + doc/scripts/base/protocols/socks/index.rst | 16 + .../base/protocols/socks/main.zeek.rst | 164 + .../base/protocols/ssh/__load__.zeek.rst | 14 + doc/scripts/base/protocols/ssh/index.rst | 14 + doc/scripts/base/protocols/ssh/main.zeek.rst | 298 + .../base/protocols/ssl/__load__.zeek.rst | 14 + .../base/protocols/ssl/consts.zeek.rst | 4884 ++++ .../base/protocols/ssl/ct-list.zeek.rst | 22 + doc/scripts/base/protocols/ssl/files.zeek.rst | 118 + doc/scripts/base/protocols/ssl/index.rst | 27 + doc/scripts/base/protocols/ssl/main.zeek.rst | 756 + .../protocols/ssl/mozilla-ca-list.zeek.rst | 22 + .../base/protocols/syslog/__load__.zeek.rst | 14 + .../base/protocols/syslog/consts.zeek.rst | 89 + doc/scripts/base/protocols/syslog/index.rst | 23 + .../base/protocols/syslog/main.zeek.rst | 97 + .../protocols/syslog/spicy-events.zeek.rst | 46 + .../base/protocols/tunnels/__load__.zeek.rst | 13 + doc/scripts/base/protocols/tunnels/index.rst | 11 + .../protocols/websocket/__load__.zeek.rst | 14 + .../base/protocols/websocket/consts.zeek.rst | 107 + .../base/protocols/websocket/index.rst | 21 + .../base/protocols/websocket/main.zeek.rst | 170 + .../base/protocols/xmpp/__load__.zeek.rst | 14 + doc/scripts/base/protocols/xmpp/index.rst | 17 + doc/scripts/base/protocols/xmpp/main.zeek.rst | 21 + doc/scripts/base/utils/active-http.zeek.rst | 141 + doc/scripts/base/utils/addrs.zeek.rst | 392 + doc/scripts/base/utils/backtrace.zeek.rst | 46 + doc/scripts/base/utils/conn-ids.zeek.rst | 57 + doc/scripts/base/utils/dir.zeek.rst | 64 + .../base/utils/directions-and-hosts.zeek.rst | 113 + doc/scripts/base/utils/email.zeek.rst | 82 + doc/scripts/base/utils/exec.zeek.rst | 114 + doc/scripts/base/utils/files.zeek.rst | 41 + .../base/utils/geoip-distance.zeek.rst | 43 + doc/scripts/base/utils/hash_hrw.zeek.rst | 105 + doc/scripts/base/utils/numbers.zeek.rst | 38 + doc/scripts/base/utils/packages.zeek.rst | 41 + doc/scripts/base/utils/paths.zeek.rst | 86 + doc/scripts/base/utils/patterns.zeek.rst | 106 + doc/scripts/base/utils/queue.zeek.rst | 197 + doc/scripts/base/utils/site.zeek.rst | 266 + doc/scripts/base/utils/strings.zeek.rst | 68 + doc/scripts/base/utils/thresholds.zeek.rst | 118 + doc/scripts/base/utils/time.zeek.rst | 57 + doc/scripts/base/utils/urls.zeek.rst | 129 + .../Zeek_JavaScript/__load__.zeek.rst | 124 + .../builtin-plugins/Zeek_JavaScript/index.rst | 9 + doc/scripts/builtin-plugins/__load__.zeek.rst | 14 + .../builtin-plugins/__preload__.zeek.rst | 13 + doc/scripts/builtin-plugins/index.rst | 15 + ...le-certificate-events-known-certs.zeek.rst | 52 + .../analyzer/debug-logging.zeek.rst | 173 + .../analyzer/detect-protocols.zeek.rst | 152 + .../analyzer/packet-segment-logging.zeek.rst | 56 + .../cluster/backend/zeromq/__load__.zeek.rst | 14 + .../cluster/backend/zeromq/connect.zeek.rst | 17 + .../cluster/backend/zeromq/index.rst | 79 + .../cluster/backend/zeromq/main.zeek.rst | 608 + .../frameworks/cluster/experimental.zeek.rst | 74 + .../nodes-experimental/manager.zeek.rst | 18 + .../conn_key/vlan_fivetuple.zeek.rst | 32 + .../frameworks/control/controllee.zeek.rst | 24 + .../frameworks/control/controller.zeek.rst | 23 + .../frameworks/files/detect-MHR.zeek.rst | 77 + .../files/entropy-test-all-files.zeek.rst | 27 + .../files/extract-all-files.zeek.rst | 15 + .../frameworks/files/hash-all-files.zeek.rst | 15 + .../frameworks/intel/do_expire.zeek.rst | 23 + .../frameworks/intel/do_notice.zeek.rst | 40 + .../policy/frameworks/intel/removal.zeek.rst | 28 + .../frameworks/intel/seen/__load__.zeek.rst | 14 + .../intel/seen/conn-established.zeek.rst | 14 + .../policy/frameworks/intel/seen/dns.zeek.rst | 14 + .../intel/seen/file-hashes.zeek.rst | 14 + .../frameworks/intel/seen/file-names.zeek.rst | 14 + .../intel/seen/http-headers.zeek.rst | 14 + .../frameworks/intel/seen/http-url.zeek.rst | 14 + .../policy/frameworks/intel/seen/index.rst | 52 + .../intel/seen/manage-event-groups.zeek.rst | 46 + .../intel/seen/pubkey-hashes.zeek.rst | 14 + .../intel/seen/smb-filenames.zeek.rst | 14 + .../intel/seen/smtp-url-extraction.zeek.rst | 14 + .../frameworks/intel/seen/smtp.zeek.rst | 14 + .../policy/frameworks/intel/seen/ssl.zeek.rst | 14 + .../intel/seen/where-locations.zeek.rst | 70 + .../frameworks/intel/seen/x509.zeek.rst | 33 + .../frameworks/intel/whitelist.zeek.rst | 28 + .../frameworks/management/__load__.zeek.rst | 19 + .../management/agent/__load__.zeek.rst | 15 + .../frameworks/management/agent/api.zeek.rst | 344 + .../frameworks/management/agent/boot.zeek.rst | 26 + .../management/agent/config.zeek.rst | 235 + .../frameworks/management/agent/index.rst | 37 + .../frameworks/management/agent/main.zeek.rst | 136 + .../frameworks/management/config.zeek.rst | 139 + .../management/controller/__load__.zeek.rst | 15 + .../management/controller/api.zeek.rst | 402 + .../management/controller/boot.zeek.rst | 20 + .../management/controller/config.zeek.rst | 324 + .../management/controller/index.rst | 38 + .../management/controller/main.zeek.rst | 176 + .../policy/frameworks/management/index.rst | 148 + .../policy/frameworks/management/log.zeek.rst | 157 + .../management/node/__load__.zeek.rst | 14 + .../frameworks/management/node/api.zeek.rst | 85 + .../management/node/config.zeek.rst | 61 + .../frameworks/management/node/index.rst | 24 + .../frameworks/management/node/main.zeek.rst | 24 + .../management/persistence.zeek.rst | 22 + .../frameworks/management/request.zeek.rst | 295 + .../management/supervisor/__load__.zeek.rst | 14 + .../management/supervisor/api.zeek.rst | 44 + .../management/supervisor/config.zeek.rst | 75 + .../management/supervisor/index.rst | 21 + .../management/supervisor/main.zeek.rst | 18 + .../frameworks/management/types.zeek.rst | 386 + .../frameworks/management/util.zeek.rst | 38 + .../netcontrol/catch-and-release.zeek.rst | 412 + .../frameworks/notice/__load__.zeek.rst | 14 + .../frameworks/notice/actions/drop.zeek.rst | 30 + .../frameworks/notice/community-id.zeek.rst | 42 + .../notice/extend-email/hostnames.zeek.rst | 20 + .../policy/frameworks/notice/index.rst | 24 + .../frameworks/packet-filter/shunt.zeek.rst | 115 + .../frameworks/signatures/iso-9660.zeek.rst | 21 + .../software/version-changes.zeek.rst | 49 + .../frameworks/software/vulnerable.zeek.rst | 111 + .../windows-version-detection.zeek.rst | 98 + .../frameworks/spicy/resource-usage.zeek.rst | 16 + .../storage/backend/redis/__load__.zeek.rst | 14 + .../storage/backend/redis/index.rst | 13 + .../storage/backend/redis/main.zeek.rst | 108 + .../storage/backend/sqlite/__load__.zeek.rst | 14 + .../storage/backend/sqlite/index.rst | 13 + .../storage/backend/sqlite/main.zeek.rst | 91 + .../policy/frameworks/telemetry/log.zeek.rst | 225 + .../collective-intel/__load__.zeek.rst | 14 + .../integration/collective-intel/index.rst | 16 + .../collective-intel/main.zeek.rst | 93 + doc/scripts/policy/misc/capture-loss.zeek.rst | 161 + .../misc/detect-traceroute/__load__.zeek.rst | 14 + .../policy/misc/detect-traceroute/index.rst | 17 + .../misc/detect-traceroute/main.zeek.rst | 147 + doc/scripts/policy/misc/dump-events.zeek.rst | 70 + .../policy/misc/loaded-scripts.zeek.rst | 61 + doc/scripts/policy/misc/profiling.zeek.rst | 25 + doc/scripts/policy/misc/stats.zeek.rst | 227 + .../policy/misc/trim-trace-file.zeek.rst | 57 + .../policy/misc/unknown-protocols.zeek.rst | 92 + doc/scripts/policy/misc/weird-stats.zeek.rst | 101 + .../conn/community-id-logging.zeek.rst | 52 + .../disable-unknown-ip-proto-support.zeek.rst | 22 + .../conn/failed-service-logging.zeek.rst | 32 + .../conn/ip-proto-name-logging.zeek.rst | 30 + .../protocols/conn/known-hosts.zeek.rst | 214 + .../protocols/conn/known-services.zeek.rst | 349 + .../protocols/conn/mac-logging.zeek.rst | 31 + .../conn/pppoe-session-id-logging.zeek.rst | 28 + .../conn/speculative-service.zeek.rst | 37 + .../protocols/conn/vlan-logging.zeek.rst | 31 + .../policy/protocols/conn/weirds.zeek.rst | 33 + .../policy/protocols/dhcp/msg-orig.zeek.rst | 32 + .../policy/protocols/dhcp/software.zeek.rst | 38 + .../policy/protocols/dhcp/sub-opts.zeek.rst | 38 + .../policy/protocols/dns/auth-addl.zeek.rst | 36 + .../dns/detect-external-names.zeek.rst | 55 + .../dns/log-original-query-case.zeek.rst | 29 + .../ftp/detect-bruteforcing.zeek.rst | 59 + .../policy/protocols/ftp/detect.zeek.rst | 27 + .../policy/protocols/ftp/software.zeek.rst | 29 + .../http/detect-sql-injection.zeek.rst | 111 + .../protocols/http/detect-webapps.zeek.rst | 33 + .../protocols/http/header-names.zeek.rst | 60 + .../http/software-browser-plugins.zeek.rst | 36 + .../policy/protocols/http/software.zeek.rst | 54 + .../http/var-extraction-cookies.zeek.rst | 28 + .../http/var-extraction-uri.zeek.rst | 29 + .../protocols/krb/ticket-logging.zeek.rst | 31 + .../modbus/known-masters-slaves.zeek.rst | 118 + .../protocols/modbus/track-memmap.zeek.rst | 170 + .../policy/protocols/mysql/software.zeek.rst | 26 + .../protocols/rdp/indicate_ssl.zeek.rst | 29 + .../policy/protocols/smb/log-cmds.zeek.rst | 64 + .../policy/protocols/smtp/blocklists.zeek.rst | 50 + .../smtp/detect-suspicious-orig.zeek.rst | 53 + .../protocols/smtp/entities-excerpt.zeek.rst | 49 + .../policy/protocols/smtp/software.zeek.rst | 86 + .../ssh/detect-bruteforcing.zeek.rst | 82 + .../policy/protocols/ssh/geo-data.zeek.rst | 61 + .../ssh/interesting-hostnames.zeek.rst | 54 + .../policy/protocols/ssh/software.zeek.rst | 30 + .../ssl/certificate-request-info.zeek.rst | 29 + .../policy/protocols/ssl/decryption.zeek.rst | 98 + .../protocols/ssl/expiring-certs.zeek.rst | 71 + .../policy/protocols/ssl/heartbleed.zeek.rst | 53 + .../policy/protocols/ssl/known-certs.zeek.rst | 244 + .../protocols/ssl/log-certs-base64.zeek.rst | 29 + .../protocols/ssl/log-hostcerts-only.zeek.rst | 18 + .../policy/protocols/ssl/ssl-log-ext.zeek.rst | 85 + .../protocols/ssl/validate-certs.zeek.rst | 127 + .../protocols/ssl/validate-ocsp.zeek.rst | 36 + .../protocols/ssl/validate-sct.zeek.rst | 129 + .../policy/protocols/ssl/weak-keys.zeek.rst | 109 + doc/scripts/policy/tuning/json-logs.zeek.rst | 21 + .../policy/tuning/track-all-assets.zeek.rst | 23 + doc/scripts/test-all-policy.zeek.rst | 14 + doc/scripts/zeekygen/__load__.zeek.rst | 14 + doc/scripts/zeekygen/example.zeek.rst | 306 + doc/scripts/zeekygen/index.rst | 37 + doc/traces/20171220_smb_at_schedule.pcap | Bin 0 -> 3616 bytes doc/traces/README | 27 + doc/traces/get.trace | Bin 0 -> 6335 bytes doc/traces/quickstart.pcap | Bin 0 -> 2394 bytes doc/troubleshooting.rst | 403 + 1074 files changed, 169319 insertions(+) create mode 100644 doc/.gitignore create mode 100644 doc/.readthedocs.yml create mode 100644 doc/.typos.toml create mode 100644 doc/LICENSE create mode 100644 doc/Makefile create mode 100644 doc/README create mode 100644 doc/README.rst create mode 100644 doc/_static/theme_overrides.css create mode 100644 doc/_templates/breadcrumbs.html create mode 100644 doc/_templates/layout.html create mode 100644 doc/about.rst create mode 100644 doc/acknowledgements.rst create mode 100644 doc/building-from-source.rst create mode 100644 doc/cluster-setup.rst create mode 100644 doc/cluster/pf_ring.rst create mode 100644 doc/components/index.rst create mode 100644 doc/conf.py create mode 100644 doc/customizations.rst create mode 100644 doc/devel/cluster-backend-zeromq.rst create mode 100644 doc/devel/contributors.rst create mode 100644 doc/devel/index.rst create mode 100644 doc/devel/maintainers.rst create mode 100644 doc/devel/plugins.rst create mode 100644 doc/devel/plugins/connkey-plugin.rst create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/CMakeLists.txt create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/COPYING create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/Makefile create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/README create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/Traces/vxlan-overlapping-http-get.pcap create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/VERSION create mode 100755 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/configure create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/scripts/__load__.zeek create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/scripts/__preload__.zeek create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/src/Factory.cc create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/src/Factory.h create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/src/Plugin.cc create mode 100644 doc/devel/plugins/connkey-vxlan-fivetuple-plugin-src/src/Plugin.h create mode 100644 doc/devel/plugins/event-metadata-plugin-src/.gitignore create mode 100644 doc/devel/plugins/event-metadata-plugin-src/CMakeLists.txt create mode 100644 doc/devel/plugins/event-metadata-plugin-src/COPYING create mode 100644 doc/devel/plugins/event-metadata-plugin-src/Makefile create mode 100644 doc/devel/plugins/event-metadata-plugin-src/README create mode 100644 doc/devel/plugins/event-metadata-plugin-src/VERSION create mode 100755 doc/devel/plugins/event-metadata-plugin-src/configure create mode 100644 doc/devel/plugins/event-metadata-plugin-src/scripts/__load__.zeek create mode 100644 doc/devel/plugins/event-metadata-plugin-src/scripts/__preload__.zeek create mode 100644 doc/devel/plugins/event-metadata-plugin-src/src/Plugin.cc create mode 100644 doc/devel/plugins/event-metadata-plugin-src/src/Plugin.h create mode 100644 doc/devel/plugins/event-metadata-plugin.rst create mode 100755 doc/devel/spicy/autogen-spicy-docs create mode 100644 doc/devel/spicy/autogen/init-bare.zeek create mode 100644 doc/devel/spicy/autogen/init-framework.zeek create mode 100644 doc/devel/spicy/autogen/tftp-no-accept.spicy create mode 100644 doc/devel/spicy/autogen/tftp.evt create mode 100644 doc/devel/spicy/autogen/tftp.spicy create mode 100644 doc/devel/spicy/autogen/tftp.zeek create mode 100644 doc/devel/spicy/autogen/zeek-functions.spicy create mode 100644 doc/devel/spicy/examples/my-http.evt create mode 100644 doc/devel/spicy/examples/my-http.spicy create mode 100644 doc/devel/spicy/examples/my-http.zeek create mode 100644 doc/devel/spicy/examples/request-line.pcap create mode 100644 doc/devel/spicy/examples/tftp-schedule-analyzer.zeek create mode 100644 doc/devel/spicy/examples/tftp-single-request-more-args.evt create mode 100644 doc/devel/spicy/examples/tftp-single-request-more-args.zeek create mode 100644 doc/devel/spicy/examples/tftp-single-request.evt create mode 100644 doc/devel/spicy/examples/tftp-single-request.zeek create mode 100644 doc/devel/spicy/examples/tftp-two-requests.zeek create mode 100644 doc/devel/spicy/faq.rst create mode 100644 doc/devel/spicy/getting-started.rst create mode 100644 doc/devel/spicy/index.rst create mode 100644 doc/devel/spicy/installation.rst create mode 100644 doc/devel/spicy/reference.rst create mode 100644 doc/devel/spicy/tutorial.rst create mode 100644 doc/devel/websocket-api.rst create mode 100644 doc/devel/websocket-api/server.js create mode 100644 doc/devel/websocket-api/server.zeek create mode 100644 doc/ext/literal-emph.py create mode 100644 doc/ext/spicy-pygments.py create mode 100644 doc/ext/zeek.py create mode 100644 doc/ext/zeek_pygments.py create mode 100644 doc/frameworks/broker.rst create mode 100644 doc/frameworks/broker/cluster-layout.png create mode 100644 doc/frameworks/broker/cluster-layout.xml create mode 100644 doc/frameworks/broker/connecting-connector.zeek create mode 100644 doc/frameworks/broker/connecting-listener.zeek create mode 100644 doc/frameworks/broker/events-connector.zeek create mode 100644 doc/frameworks/broker/events-listener.zeek create mode 100644 doc/frameworks/broker/logs-connector.zeek create mode 100644 doc/frameworks/broker/logs-listener.zeek create mode 100644 doc/frameworks/broker/store-sqlite-tuning.zeek create mode 100644 doc/frameworks/broker/stores-connector.zeek create mode 100644 doc/frameworks/broker/stores-listener.zeek create mode 100644 doc/frameworks/broker/testlog.zeek create mode 100644 doc/frameworks/cluster.rst create mode 100644 doc/frameworks/configuration.rst create mode 100644 doc/frameworks/denylist.jsonl create mode 100644 doc/frameworks/file-analysis.rst create mode 100644 doc/frameworks/file_analysis_01.zeek create mode 100644 doc/frameworks/file_analysis_02.zeek create mode 100644 doc/frameworks/file_analysis_03.zeek create mode 100644 doc/frameworks/index.rst create mode 100644 doc/frameworks/input.rst create mode 100644 doc/frameworks/input_json_1.zeek create mode 100644 doc/frameworks/intel.rst create mode 100644 doc/frameworks/logging-input-sqlite.rst create mode 100644 doc/frameworks/logging.rst create mode 100644 doc/frameworks/logging/delay1.zeek create mode 100644 doc/frameworks/management.rst create mode 100644 doc/frameworks/management/full-config.ini create mode 100644 doc/frameworks/management/get-id-value-complex.console create mode 100644 doc/frameworks/management/get-id-value-simple.console create mode 100644 doc/frameworks/management/mini-config-with-error.ini create mode 100644 doc/frameworks/management/mini-config.ini create mode 100644 doc/frameworks/management/mini-deployment-error.console create mode 100644 doc/frameworks/management/mini-deployment-get-config-deployed.console create mode 100644 doc/frameworks/management/mini-deployment-get-config-staged-json.console create mode 100644 doc/frameworks/management/mini-deployment-get-config-staged.console create mode 100644 doc/frameworks/management/mini-deployment-get-nodes.console create mode 100644 doc/frameworks/management/mini-deployment.console create mode 100644 doc/frameworks/management/zeek-client-help.console create mode 100644 doc/frameworks/management/zeek-client-show-settings.console create mode 100644 doc/frameworks/netcontrol-1-drop-with-debug.zeek create mode 100644 doc/frameworks/netcontrol-10-use-skeleton.zeek create mode 100644 doc/frameworks/netcontrol-2-ssh-guesser.zeek create mode 100644 doc/frameworks/netcontrol-3-ssh-guesser.zeek create mode 100644 doc/frameworks/netcontrol-4-drop.zeek create mode 100644 doc/frameworks/netcontrol-5-hook.zeek create mode 100644 doc/frameworks/netcontrol-6-find.zeek create mode 100644 doc/frameworks/netcontrol-7-catch-release.zeek create mode 100644 doc/frameworks/netcontrol-8-multiple.zeek create mode 100644 doc/frameworks/netcontrol-9-skeleton.zeek create mode 100644 doc/frameworks/netcontrol-architecture.graffle create mode 100644 doc/frameworks/netcontrol-architecture.png create mode 100644 doc/frameworks/netcontrol-openflow.graffle create mode 100644 doc/frameworks/netcontrol-openflow.png create mode 100644 doc/frameworks/netcontrol-rules.png create mode 100644 doc/frameworks/netcontrol.rst create mode 100644 doc/frameworks/notice.rst create mode 100644 doc/frameworks/notice_ssh_guesser.zeek create mode 100644 doc/frameworks/packet-analysis-1-ethernet.zeek create mode 100644 doc/frameworks/packet-analysis-2-llc.cc create mode 100644 doc/frameworks/packet-analysis-pdu.svg create mode 100644 doc/frameworks/packet-analysis.rst create mode 100644 doc/frameworks/signatures.rst create mode 100644 doc/frameworks/sqlite-conn-filter.zeek create mode 100644 doc/frameworks/sqlite-read-events.zeek create mode 100644 doc/frameworks/sqlite-read-table.zeek create mode 100644 doc/frameworks/storage.rst create mode 100644 doc/frameworks/sumstats-countconns.zeek create mode 100644 doc/frameworks/sumstats-toy-scan.zeek create mode 100644 doc/frameworks/sumstats.rst create mode 100644 doc/frameworks/supervisor.rst create mode 100644 doc/frameworks/supervisor/cluster-supervisor.zeek create mode 100644 doc/frameworks/supervisor/simple-supervisor.zeek create mode 100644 doc/frameworks/supervisor/supervisor-control.zeek create mode 100644 doc/frameworks/supervisor/zeek-supervisor-architecture.png create mode 100644 doc/frameworks/telemetry.rst create mode 100644 doc/frameworks/telemetry/connection-durations.zeek create mode 100644 doc/frameworks/telemetry/global-http-counter.zeek create mode 100644 doc/frameworks/telemetry/log-writes-cached.zeek create mode 100644 doc/frameworks/telemetry/log-writes-immediate.zeek create mode 100644 doc/frameworks/telemetry/log-writes-sync.zeek create mode 100644 doc/frameworks/telemetry/table-size-tracking.zeek create mode 100644 doc/frameworks/telemetry/version.zeek create mode 100644 doc/frameworks/tls-decryption.rst create mode 100644 doc/frameworks/tls_decryption-1-suspend-processing.zeek create mode 100644 doc/get-started.rst create mode 100644 doc/images/architecture.png create mode 100644 doc/images/cluster-diagram.png create mode 100644 doc/images/cluster/Makefile create mode 100644 doc/images/cluster/README.md create mode 100644 doc/images/cluster/zeromq-cluster.mermaid create mode 100644 doc/images/cluster/zeromq-cluster.png create mode 100644 doc/images/cluster/zeromq-logging.mermaid create mode 100644 doc/images/cluster/zeromq-logging.png create mode 100644 doc/images/cluster/zeromq-pubsub.mermaid create mode 100644 doc/images/cluster/zeromq-pubsub.png create mode 100644 doc/images/collection-figure1.png create mode 100644 doc/images/collection-figure2.png create mode 100644 doc/images/collection-figure3.png create mode 100644 doc/images/deployment.png create mode 100644 doc/images/intel-architecture.png create mode 100644 doc/images/management-all-in-one-two-zeeks.png create mode 100644 doc/images/management-all-in-one-two-zeeks.svgz create mode 100644 doc/images/management-all-in-one.png create mode 100644 doc/images/management-all-in-one.svgz create mode 100644 doc/images/management.png create mode 100644 doc/images/management.svgz create mode 100644 doc/images/troubleshooting/flamegraph.png create mode 100644 doc/images/troubleshooting/http-fake-state-growth.gif create mode 100644 doc/images/websocket-api/one-api-many-zeek-ws-bridge.svg create mode 100644 doc/images/websocket-api/one-api-many-zeek.svg create mode 100644 doc/images/zeek-favicon.ico create mode 100644 doc/images/zeek-logo-sidebar.png create mode 100644 doc/images/zeek-logo-text.png create mode 100644 doc/images/zeek-logo.png create mode 100644 doc/index.rst create mode 100644 doc/install.rst create mode 100644 doc/log-formats.rst create mode 100644 doc/logs/analyzer.rst create mode 100644 doc/logs/capture-loss-and-reporter.rst create mode 100644 doc/logs/conn.rst create mode 100644 doc/logs/dhcp.rst create mode 100644 doc/logs/dns.rst create mode 100644 doc/logs/files.rst create mode 100644 doc/logs/ftp.rst create mode 100644 doc/logs/http.rst create mode 100644 doc/logs/index.rst create mode 100644 doc/logs/irc.rst create mode 100644 doc/logs/known-and-software.rst create mode 100644 doc/logs/ldap.rst create mode 100644 doc/logs/ntp.rst create mode 100644 doc/logs/pe.rst create mode 100644 doc/logs/postgresql.rst create mode 100644 doc/logs/quic.rst create mode 100644 doc/logs/rdp.rst create mode 100644 doc/logs/smb.rst create mode 100644 doc/logs/smtp.rst create mode 100644 doc/logs/ssh.rst create mode 100644 doc/logs/ssl.rst create mode 100644 doc/logs/traceroute.rst create mode 100644 doc/logs/tunnel.rst create mode 100644 doc/logs/weird-and-notice.rst create mode 100644 doc/logs/x509.rst create mode 100644 doc/monitoring.rst create mode 100644 doc/quickstart.rst create mode 100644 doc/redirects.yml create mode 100644 doc/requirements.txt create mode 100644 doc/ruff.toml create mode 100644 doc/script-reference/assert_1.zeek create mode 100644 doc/script-reference/attributes.rst create mode 100644 doc/script-reference/autogenerated-file-analyzer-index.rst create mode 100644 doc/script-reference/autogenerated-package-index.rst create mode 100644 doc/script-reference/autogenerated-packet-analyzer-index.rst create mode 100644 doc/script-reference/autogenerated-protocol-analyzer-index.rst create mode 100644 doc/script-reference/autogenerated-script-index.rst create mode 100644 doc/script-reference/directives.rst create mode 100644 doc/script-reference/file-analyzers.rst create mode 100644 doc/script-reference/index.rst create mode 100644 doc/script-reference/log-files.rst create mode 100644 doc/script-reference/notices.rst create mode 100644 doc/script-reference/operators.rst create mode 100644 doc/script-reference/packages.rst create mode 100644 doc/script-reference/packet-analyzers.rst create mode 100644 doc/script-reference/proto-analyzers.rst create mode 100644 doc/script-reference/scripts.rst create mode 100644 doc/script-reference/statements.rst create mode 100644 doc/script-reference/types.rst create mode 100644 doc/scripting/basics.rst create mode 100644 doc/scripting/conn-id-ctx.rst create mode 100644 doc/scripting/conn_id_ctx_my_endpoint.zeek create mode 100644 doc/scripting/connection_record_01.zeek create mode 100644 doc/scripting/connection_record_02.zeek create mode 100644 doc/scripting/data_struct_record_01.zeek create mode 100644 doc/scripting/data_struct_record_02.zeek create mode 100644 doc/scripting/data_struct_set_declaration.zeek create mode 100644 doc/scripting/data_struct_table_complex.zeek create mode 100644 doc/scripting/data_struct_table_complex_blank_value.zeek create mode 100644 doc/scripting/data_struct_table_declaration.zeek create mode 100644 doc/scripting/data_struct_vector.zeek create mode 100644 doc/scripting/data_struct_vector_declaration.zeek create mode 100644 doc/scripting/data_struct_vector_iter.zeek create mode 100644 doc/scripting/data_struct_vector_iter_value.zeek create mode 100644 doc/scripting/data_type_const.zeek create mode 100644 doc/scripting/data_type_const_simple.zeek create mode 100644 doc/scripting/data_type_declaration.zeek create mode 100644 doc/scripting/data_type_interval.zeek create mode 100644 doc/scripting/data_type_local.zeek create mode 100644 doc/scripting/data_type_pattern_01.zeek create mode 100644 doc/scripting/data_type_pattern_02.zeek create mode 100644 doc/scripting/data_type_record.zeek create mode 100644 doc/scripting/data_type_subnets.zeek create mode 100644 doc/scripting/data_type_time.zeek create mode 100644 doc/scripting/event-groups.rst create mode 100644 doc/scripting/event_groups_attr_01.zeek create mode 100644 doc/scripting/event_groups_attr_02.zeek create mode 100644 doc/scripting/event_groups_module_01.zeek create mode 100644 doc/scripting/framework_logging_factorial_01.zeek create mode 100644 doc/scripting/framework_logging_factorial_02.zeek create mode 100644 doc/scripting/framework_logging_factorial_03.zeek create mode 100644 doc/scripting/framework_logging_factorial_04.zeek create mode 100644 doc/scripting/framework_notice_hook_01.zeek create mode 100644 doc/scripting/framework_notice_hook_suppression_01.zeek create mode 100644 doc/scripting/framework_notice_shortcuts_01.zeek create mode 100644 doc/scripting/framework_notice_shortcuts_02.zeek create mode 100644 doc/scripting/http_main.zeek create mode 100644 doc/scripting/index.rst create mode 100644 doc/scripting/javascript.rst create mode 100644 doc/scripting/js/api.js create mode 100644 doc/scripting/js/api.zeek create mode 100644 doc/scripting/js/connection-service.js create mode 100644 doc/scripting/js/global-vars.js create mode 100644 doc/scripting/js/hello.js create mode 100644 doc/scripting/js/intel-insert.js create mode 100644 doc/scripting/js/zeek-as.js create mode 100644 doc/scripting/optimization.rst create mode 100644 doc/scripting/tracing-events.rst create mode 100644 doc/scripting/usage.rst create mode 100644 doc/scripts/base/bif/CPP-load.bif.zeek.rst create mode 100644 doc/scripts/base/bif/__load__.zeek.rst create mode 100644 doc/scripts/base/bif/analyzer.bif.zeek.rst create mode 100644 doc/scripts/base/bif/bloom-filter.bif.zeek.rst create mode 100644 doc/scripts/base/bif/cardinality-counter.bif.zeek.rst create mode 100644 doc/scripts/base/bif/cluster.bif.zeek.rst create mode 100644 doc/scripts/base/bif/comm.bif.zeek.rst create mode 100644 doc/scripts/base/bif/communityid.bif.zeek.rst create mode 100644 doc/scripts/base/bif/const.bif.zeek.rst create mode 100644 doc/scripts/base/bif/data.bif.zeek.rst create mode 100644 doc/scripts/base/bif/event.bif.zeek.rst create mode 100644 doc/scripts/base/bif/file_analysis.bif.zeek.rst create mode 100644 doc/scripts/base/bif/index.rst create mode 100644 doc/scripts/base/bif/input.bif.zeek.rst create mode 100644 doc/scripts/base/bif/logging.bif.zeek.rst create mode 100644 doc/scripts/base/bif/messaging.bif.zeek.rst create mode 100644 doc/scripts/base/bif/mmdb.bif.zeek.rst create mode 100644 doc/scripts/base/bif/option.bif.zeek.rst create mode 100644 doc/scripts/base/bif/packet_analysis.bif.zeek.rst create mode 100644 doc/scripts/base/bif/pcap.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_AF_Packet.af_packet.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_ARP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_AsciiReader.ascii.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_AsciiWriter.ascii.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_BenchmarkReader.benchmark.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_BinaryReader.binary.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_BitTorrent.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Cluster_Backend_ZeroMQ.cluster_backend_zeromq.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Cluster_WebSocket.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_ConfigReader.config.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_ConnSize.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_ConnSize.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DCE_RPC.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DCE_RPC.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DCE_RPC.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DHCP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DHCP.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DNP3.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_DNS.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FTP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FTP.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_File.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FileEntropy.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FileExtract.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FileExtract.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_FileHash.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_GSSAPI.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_GTPv1.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_GTPv1.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Geneve.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Geneve.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Gnutella.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_HTTP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_HTTP.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_ICMP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_IMAP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_IRC.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Ident.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_JavaScript.zeekjs.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_KRB.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_KRB.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Login.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Login.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_MIME.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_MIME.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_MQTT.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_MQTT.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Modbus.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_MySQL.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NCP.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NCP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NTLM.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NTLM.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NTP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NTP.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NetBIOS.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NetBIOS.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_NoneWriter.none.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_PE.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_POP3.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_POP3.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_PPPoE.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RADIUS.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RDP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RDP.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RFB.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RPC.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_RawReader.raw.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SIP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_check_directory.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_close.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_create_directory.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_echo.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_logoff_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_negotiate.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_nt_cancel.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_nt_create_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_query_information.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_read_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_session_setup_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_transaction.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_transaction2.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_transaction2_secondary.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_transaction_secondary.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_tree_connect_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_tree_disconnect.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_com_write_andx.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb1_events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_close.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_create.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_negotiate.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_read.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_session_setup.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_set_info.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_transform_header.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_tree_connect.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_tree_disconnect.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_com_write.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.smb2_events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMB.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMTP.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMTP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SMTP.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SNMP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SNMP.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SOCKS.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SQLiteReader.sqlite.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SQLiteWriter.sqlite.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSH.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSH.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSL.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSL.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSL.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_SSL.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_StreamEvent.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_TCP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_TCP.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_TCP.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Teredo.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_Teredo.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_UDP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_VXLAN.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_WebSocket.consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_WebSocket.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_WebSocket.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_WebSocket.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_X509.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_X509.functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_X509.ocsp_events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_X509.types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/Zeek_XMPP.events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/__load__.zeek.rst create mode 100644 doc/scripts/base/bif/plugins/index.rst create mode 100644 doc/scripts/base/bif/reporter.bif.zeek.rst create mode 100644 doc/scripts/base/bif/spicy.bif.zeek.rst create mode 100644 doc/scripts/base/bif/stats.bif.zeek.rst create mode 100644 doc/scripts/base/bif/storage-async.bif.zeek.rst create mode 100644 doc/scripts/base/bif/storage-events.bif.zeek.rst create mode 100644 doc/scripts/base/bif/storage-sync.bif.zeek.rst create mode 100644 doc/scripts/base/bif/storage.bif.zeek.rst create mode 100644 doc/scripts/base/bif/store.bif.zeek.rst create mode 100644 doc/scripts/base/bif/strings.bif.zeek.rst create mode 100644 doc/scripts/base/bif/supervisor.bif.zeek.rst create mode 100644 doc/scripts/base/bif/telemetry_consts.bif.zeek.rst create mode 100644 doc/scripts/base/bif/telemetry_functions.bif.zeek.rst create mode 100644 doc/scripts/base/bif/telemetry_types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/top-k.bif.zeek.rst create mode 100644 doc/scripts/base/bif/types.bif.zeek.rst create mode 100644 doc/scripts/base/bif/zeek.bif.zeek.rst create mode 100644 doc/scripts/base/bif/zeekygen.bif.zeek.rst create mode 100644 doc/scripts/base/files/extract/__load__.zeek.rst create mode 100644 doc/scripts/base/files/extract/index.rst create mode 100644 doc/scripts/base/files/extract/main.zeek.rst create mode 100644 doc/scripts/base/files/hash/__load__.zeek.rst create mode 100644 doc/scripts/base/files/hash/index.rst create mode 100644 doc/scripts/base/files/hash/main.zeek.rst create mode 100644 doc/scripts/base/files/pe/__load__.zeek.rst create mode 100644 doc/scripts/base/files/pe/consts.zeek.rst create mode 100644 doc/scripts/base/files/pe/index.rst create mode 100644 doc/scripts/base/files/pe/main.zeek.rst create mode 100644 doc/scripts/base/files/x509/__load__.zeek.rst create mode 100644 doc/scripts/base/files/x509/certificate-event-cache.zeek.rst create mode 100644 doc/scripts/base/files/x509/index.rst create mode 100644 doc/scripts/base/files/x509/log-ocsp.zeek.rst create mode 100644 doc/scripts/base/files/x509/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/analyzer/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/analyzer/dpd.zeek.rst create mode 100644 doc/scripts/base/frameworks/analyzer/index.rst create mode 100644 doc/scripts/base/frameworks/analyzer/logging.zeek.rst create mode 100644 doc/scripts/base/frameworks/analyzer/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/broker/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/broker/backpressure.zeek.rst create mode 100644 doc/scripts/base/frameworks/broker/index.rst create mode 100644 doc/scripts/base/frameworks/broker/log.zeek.rst create mode 100644 doc/scripts/base/frameworks/broker/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/broker/store.zeek.rst create mode 100644 doc/scripts/base/frameworks/cluster/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/cluster/index.rst create mode 100644 doc/scripts/base/frameworks/cluster/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/cluster/pools.zeek.rst create mode 100644 doc/scripts/base/frameworks/cluster/telemetry.zeek.rst create mode 100644 doc/scripts/base/frameworks/config/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/config/index.rst create mode 100644 doc/scripts/base/frameworks/config/input.zeek.rst create mode 100644 doc/scripts/base/frameworks/config/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/config/weird.zeek.rst create mode 100644 doc/scripts/base/frameworks/control/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/control/index.rst create mode 100644 doc/scripts/base/frameworks/control/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/files/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/files/index.rst create mode 100644 doc/scripts/base/frameworks/files/magic/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/files/magic/index.rst create mode 100644 doc/scripts/base/frameworks/files/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/index.rst create mode 100644 doc/scripts/base/frameworks/input/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/ascii.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/benchmark.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/binary.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/config.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/raw.zeek.rst create mode 100644 doc/scripts/base/frameworks/input/readers/sqlite.zeek.rst create mode 100644 doc/scripts/base/frameworks/intel/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/intel/files.zeek.rst create mode 100644 doc/scripts/base/frameworks/intel/index.rst create mode 100644 doc/scripts/base/frameworks/intel/input.zeek.rst create mode 100644 doc/scripts/base/frameworks/intel/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/index.rst create mode 100644 doc/scripts/base/frameworks/logging/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/postprocessors/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/postprocessors/index.rst create mode 100644 doc/scripts/base/frameworks/logging/postprocessors/scp.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/postprocessors/sftp.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/writers/ascii.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/writers/none.zeek.rst create mode 100644 doc/scripts/base/frameworks/logging/writers/sqlite.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/drop.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/index.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/non-cluster.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugin.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/acld.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/broker.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/debug.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/index.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/openflow.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/plugins/packetfilter.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/shunt.zeek.rst create mode 100644 doc/scripts/base/frameworks/netcontrol/types.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/actions/add-geodata.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/actions/email_admin.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/actions/page.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/actions/pp-alarms.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/index.rst create mode 100644 doc/scripts/base/frameworks/notice/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/notice/weird.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/consts.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/index.rst create mode 100644 doc/scripts/base/frameworks/openflow/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/non-cluster.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/plugins/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/plugins/broker.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/plugins/index.rst create mode 100644 doc/scripts/base/frameworks/openflow/plugins/log.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/plugins/ryu.zeek.rst create mode 100644 doc/scripts/base/frameworks/openflow/types.zeek.rst create mode 100644 doc/scripts/base/frameworks/packet-filter/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/packet-filter/index.rst create mode 100644 doc/scripts/base/frameworks/packet-filter/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/packet-filter/netstats.zeek.rst create mode 100644 doc/scripts/base/frameworks/packet-filter/utils.zeek.rst create mode 100644 doc/scripts/base/frameworks/reporter/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/reporter/index.rst create mode 100644 doc/scripts/base/frameworks/reporter/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/signatures/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/signatures/index.rst create mode 100644 doc/scripts/base/frameworks/signatures/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/software/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/software/index.rst create mode 100644 doc/scripts/base/frameworks/software/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/spicy/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/spicy/index.rst create mode 100644 doc/scripts/base/frameworks/spicy/init-bare.zeek.rst create mode 100644 doc/scripts/base/frameworks/spicy/init-framework.zeek.rst create mode 100644 doc/scripts/base/frameworks/spicy/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/storage/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/storage/async.zeek.rst create mode 100644 doc/scripts/base/frameworks/storage/index.rst create mode 100644 doc/scripts/base/frameworks/storage/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/storage/sync.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/index.rst create mode 100644 doc/scripts/base/frameworks/sumstats/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/non-cluster.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/average.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/hll_unique.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/index.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/last.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/max.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/min.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/sample.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/std-dev.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/sum.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/topk.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/unique.zeek.rst create mode 100644 doc/scripts/base/frameworks/sumstats/plugins/variance.zeek.rst create mode 100644 doc/scripts/base/frameworks/supervisor/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/supervisor/api.zeek.rst create mode 100644 doc/scripts/base/frameworks/supervisor/control.zeek.rst create mode 100644 doc/scripts/base/frameworks/supervisor/index.rst create mode 100644 doc/scripts/base/frameworks/supervisor/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/telemetry/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/telemetry/index.rst create mode 100644 doc/scripts/base/frameworks/telemetry/main.zeek.rst create mode 100644 doc/scripts/base/frameworks/telemetry/options.zeek.rst create mode 100644 doc/scripts/base/frameworks/tunnels/__load__.zeek.rst create mode 100644 doc/scripts/base/frameworks/tunnels/index.rst create mode 100644 doc/scripts/base/frameworks/tunnels/main.zeek.rst create mode 100644 doc/scripts/base/init-bare.zeek.rst create mode 100644 doc/scripts/base/init-default.zeek.rst create mode 100644 doc/scripts/base/init-frameworks-and-bifs.zeek.rst create mode 100644 doc/scripts/base/misc/find-checksum-offloading.zeek.rst create mode 100644 doc/scripts/base/misc/find-filtered-trace.zeek.rst create mode 100644 doc/scripts/base/misc/installation.zeek.rst create mode 100644 doc/scripts/base/misc/version.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ayiya/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ayiya/index.rst create mode 100644 doc/scripts/base/packet-protocols/ayiya/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ethernet/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ethernet/index.rst create mode 100644 doc/scripts/base/packet-protocols/ethernet/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/fddi/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/fddi/index.rst create mode 100644 doc/scripts/base/packet-protocols/fddi/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/geneve/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/geneve/index.rst create mode 100644 doc/scripts/base/packet-protocols/geneve/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/gre/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/gre/index.rst create mode 100644 doc/scripts/base/packet-protocols/gre/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/gtpv1/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/gtpv1/index.rst create mode 100644 doc/scripts/base/packet-protocols/gtpv1/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/icmp/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/icmp/index.rst create mode 100644 doc/scripts/base/packet-protocols/icmp/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11/index.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11_radio/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11_radio/index.rst create mode 100644 doc/scripts/base/packet-protocols/ieee802_11_radio/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/index.rst create mode 100644 doc/scripts/base/packet-protocols/ip/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ip/index.rst create mode 100644 doc/scripts/base/packet-protocols/ip/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/iptunnel/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/iptunnel/index.rst create mode 100644 doc/scripts/base/packet-protocols/iptunnel/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll/index.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll2/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll2/index.rst create mode 100644 doc/scripts/base/packet-protocols/linux_sll2/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/llc/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/llc/index.rst create mode 100644 doc/scripts/base/packet-protocols/llc/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/mpls/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/mpls/index.rst create mode 100644 doc/scripts/base/packet-protocols/mpls/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/nflog/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/nflog/index.rst create mode 100644 doc/scripts/base/packet-protocols/nflog/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/novell_802_3/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/novell_802_3/index.rst create mode 100644 doc/scripts/base/packet-protocols/novell_802_3/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/null/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/null/index.rst create mode 100644 doc/scripts/base/packet-protocols/null/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/pbb/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/pbb/index.rst create mode 100644 doc/scripts/base/packet-protocols/pbb/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ppp/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ppp/index.rst create mode 100644 doc/scripts/base/packet-protocols/ppp/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ppp_serial/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/ppp_serial/index.rst create mode 100644 doc/scripts/base/packet-protocols/ppp_serial/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/pppoe/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/pppoe/index.rst create mode 100644 doc/scripts/base/packet-protocols/pppoe/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/root/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/root/index.rst create mode 100644 doc/scripts/base/packet-protocols/root/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/skip/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/skip/index.rst create mode 100644 doc/scripts/base/packet-protocols/skip/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/snap/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/snap/index.rst create mode 100644 doc/scripts/base/packet-protocols/snap/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/tcp/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/tcp/index.rst create mode 100644 doc/scripts/base/packet-protocols/tcp/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/teredo/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/teredo/index.rst create mode 100644 doc/scripts/base/packet-protocols/teredo/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/udp/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/udp/index.rst create mode 100644 doc/scripts/base/packet-protocols/udp/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vlan/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vlan/index.rst create mode 100644 doc/scripts/base/packet-protocols/vlan/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vntag/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vntag/index.rst create mode 100644 doc/scripts/base/packet-protocols/vntag/main.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vxlan/__load__.zeek.rst create mode 100644 doc/scripts/base/packet-protocols/vxlan/index.rst create mode 100644 doc/scripts/base/packet-protocols/vxlan/main.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/contents.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/inactivity.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/index.rst create mode 100644 doc/scripts/base/protocols/conn/main.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/polling.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/removal-hooks.zeek.rst create mode 100644 doc/scripts/base/protocols/conn/thresholds.zeek.rst create mode 100644 doc/scripts/base/protocols/dce-rpc/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/dce-rpc/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/dce-rpc/index.rst create mode 100644 doc/scripts/base/protocols/dce-rpc/main.zeek.rst create mode 100644 doc/scripts/base/protocols/dhcp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/dhcp/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/dhcp/index.rst create mode 100644 doc/scripts/base/protocols/dhcp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/dnp3/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/dnp3/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/dnp3/index.rst create mode 100644 doc/scripts/base/protocols/dnp3/main.zeek.rst create mode 100644 doc/scripts/base/protocols/dns/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/dns/check-event-handlers.zeek.rst create mode 100644 doc/scripts/base/protocols/dns/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/dns/index.rst create mode 100644 doc/scripts/base/protocols/dns/main.zeek.rst create mode 100644 doc/scripts/base/protocols/finger/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/finger/index.rst create mode 100644 doc/scripts/base/protocols/finger/main.zeek.rst create mode 100644 doc/scripts/base/protocols/finger/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/files.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/gridftp.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/index.rst create mode 100644 doc/scripts/base/protocols/ftp/info.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/utils-commands.zeek.rst create mode 100644 doc/scripts/base/protocols/ftp/utils.zeek.rst create mode 100644 doc/scripts/base/protocols/http/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/http/entities.zeek.rst create mode 100644 doc/scripts/base/protocols/http/files.zeek.rst create mode 100644 doc/scripts/base/protocols/http/index.rst create mode 100644 doc/scripts/base/protocols/http/main.zeek.rst create mode 100644 doc/scripts/base/protocols/http/utils.zeek.rst create mode 100644 doc/scripts/base/protocols/imap/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/imap/index.rst create mode 100644 doc/scripts/base/protocols/imap/main.zeek.rst create mode 100644 doc/scripts/base/protocols/irc/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/irc/dcc-send.zeek.rst create mode 100644 doc/scripts/base/protocols/irc/files.zeek.rst create mode 100644 doc/scripts/base/protocols/irc/index.rst create mode 100644 doc/scripts/base/protocols/irc/main.zeek.rst create mode 100644 doc/scripts/base/protocols/krb/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/krb/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/krb/files.zeek.rst create mode 100644 doc/scripts/base/protocols/krb/index.rst create mode 100644 doc/scripts/base/protocols/krb/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ldap/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ldap/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/ldap/index.rst create mode 100644 doc/scripts/base/protocols/ldap/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ldap/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/modbus/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/modbus/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/modbus/index.rst create mode 100644 doc/scripts/base/protocols/modbus/main.zeek.rst create mode 100644 doc/scripts/base/protocols/mqtt/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/mqtt/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/mqtt/index.rst create mode 100644 doc/scripts/base/protocols/mqtt/main.zeek.rst create mode 100644 doc/scripts/base/protocols/mysql/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/mysql/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/mysql/index.rst create mode 100644 doc/scripts/base/protocols/mysql/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ntlm/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ntlm/index.rst create mode 100644 doc/scripts/base/protocols/ntlm/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ntp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ntp/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/ntp/index.rst create mode 100644 doc/scripts/base/protocols/ntp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/pop3/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/pop3/index.rst create mode 100644 doc/scripts/base/protocols/postgresql/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/postgresql/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/postgresql/index.rst create mode 100644 doc/scripts/base/protocols/postgresql/main.zeek.rst create mode 100644 doc/scripts/base/protocols/postgresql/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/quic/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/quic/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/quic/index.rst create mode 100644 doc/scripts/base/protocols/quic/main.zeek.rst create mode 100644 doc/scripts/base/protocols/quic/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/radius/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/radius/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/radius/index.rst create mode 100644 doc/scripts/base/protocols/radius/main.zeek.rst create mode 100644 doc/scripts/base/protocols/rdp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/rdp/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/rdp/index.rst create mode 100644 doc/scripts/base/protocols/rdp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/redis/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/redis/index.rst create mode 100644 doc/scripts/base/protocols/redis/main.zeek.rst create mode 100644 doc/scripts/base/protocols/redis/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/rfb/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/rfb/index.rst create mode 100644 doc/scripts/base/protocols/rfb/main.zeek.rst create mode 100644 doc/scripts/base/protocols/sip/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/sip/index.rst create mode 100644 doc/scripts/base/protocols/sip/main.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/const-dos-error.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/const-nt-status.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/files.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/index.rst create mode 100644 doc/scripts/base/protocols/smb/main.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/smb1-main.zeek.rst create mode 100644 doc/scripts/base/protocols/smb/smb2-main.zeek.rst create mode 100644 doc/scripts/base/protocols/smtp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/smtp/entities.zeek.rst create mode 100644 doc/scripts/base/protocols/smtp/files.zeek.rst create mode 100644 doc/scripts/base/protocols/smtp/index.rst create mode 100644 doc/scripts/base/protocols/smtp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/snmp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/snmp/index.rst create mode 100644 doc/scripts/base/protocols/snmp/main.zeek.rst create mode 100644 doc/scripts/base/protocols/socks/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/socks/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/socks/index.rst create mode 100644 doc/scripts/base/protocols/socks/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ssh/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ssh/index.rst create mode 100644 doc/scripts/base/protocols/ssh/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/ct-list.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/files.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/index.rst create mode 100644 doc/scripts/base/protocols/ssl/main.zeek.rst create mode 100644 doc/scripts/base/protocols/ssl/mozilla-ca-list.zeek.rst create mode 100644 doc/scripts/base/protocols/syslog/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/syslog/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/syslog/index.rst create mode 100644 doc/scripts/base/protocols/syslog/main.zeek.rst create mode 100644 doc/scripts/base/protocols/syslog/spicy-events.zeek.rst create mode 100644 doc/scripts/base/protocols/tunnels/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/tunnels/index.rst create mode 100644 doc/scripts/base/protocols/websocket/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/websocket/consts.zeek.rst create mode 100644 doc/scripts/base/protocols/websocket/index.rst create mode 100644 doc/scripts/base/protocols/websocket/main.zeek.rst create mode 100644 doc/scripts/base/protocols/xmpp/__load__.zeek.rst create mode 100644 doc/scripts/base/protocols/xmpp/index.rst create mode 100644 doc/scripts/base/protocols/xmpp/main.zeek.rst create mode 100644 doc/scripts/base/utils/active-http.zeek.rst create mode 100644 doc/scripts/base/utils/addrs.zeek.rst create mode 100644 doc/scripts/base/utils/backtrace.zeek.rst create mode 100644 doc/scripts/base/utils/conn-ids.zeek.rst create mode 100644 doc/scripts/base/utils/dir.zeek.rst create mode 100644 doc/scripts/base/utils/directions-and-hosts.zeek.rst create mode 100644 doc/scripts/base/utils/email.zeek.rst create mode 100644 doc/scripts/base/utils/exec.zeek.rst create mode 100644 doc/scripts/base/utils/files.zeek.rst create mode 100644 doc/scripts/base/utils/geoip-distance.zeek.rst create mode 100644 doc/scripts/base/utils/hash_hrw.zeek.rst create mode 100644 doc/scripts/base/utils/numbers.zeek.rst create mode 100644 doc/scripts/base/utils/packages.zeek.rst create mode 100644 doc/scripts/base/utils/paths.zeek.rst create mode 100644 doc/scripts/base/utils/patterns.zeek.rst create mode 100644 doc/scripts/base/utils/queue.zeek.rst create mode 100644 doc/scripts/base/utils/site.zeek.rst create mode 100644 doc/scripts/base/utils/strings.zeek.rst create mode 100644 doc/scripts/base/utils/thresholds.zeek.rst create mode 100644 doc/scripts/base/utils/time.zeek.rst create mode 100644 doc/scripts/base/utils/urls.zeek.rst create mode 100644 doc/scripts/builtin-plugins/Zeek_JavaScript/__load__.zeek.rst create mode 100644 doc/scripts/builtin-plugins/Zeek_JavaScript/index.rst create mode 100644 doc/scripts/builtin-plugins/__load__.zeek.rst create mode 100644 doc/scripts/builtin-plugins/__preload__.zeek.rst create mode 100644 doc/scripts/builtin-plugins/index.rst create mode 100644 doc/scripts/policy/files/x509/disable-certificate-events-known-certs.zeek.rst create mode 100644 doc/scripts/policy/frameworks/analyzer/debug-logging.zeek.rst create mode 100644 doc/scripts/policy/frameworks/analyzer/detect-protocols.zeek.rst create mode 100644 doc/scripts/policy/frameworks/analyzer/packet-segment-logging.zeek.rst create mode 100644 doc/scripts/policy/frameworks/cluster/backend/zeromq/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/cluster/backend/zeromq/connect.zeek.rst create mode 100644 doc/scripts/policy/frameworks/cluster/backend/zeromq/index.rst create mode 100644 doc/scripts/policy/frameworks/cluster/backend/zeromq/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/cluster/experimental.zeek.rst create mode 100644 doc/scripts/policy/frameworks/cluster/nodes-experimental/manager.zeek.rst create mode 100644 doc/scripts/policy/frameworks/conn_key/vlan_fivetuple.zeek.rst create mode 100644 doc/scripts/policy/frameworks/control/controllee.zeek.rst create mode 100644 doc/scripts/policy/frameworks/control/controller.zeek.rst create mode 100644 doc/scripts/policy/frameworks/files/detect-MHR.zeek.rst create mode 100644 doc/scripts/policy/frameworks/files/entropy-test-all-files.zeek.rst create mode 100644 doc/scripts/policy/frameworks/files/extract-all-files.zeek.rst create mode 100644 doc/scripts/policy/frameworks/files/hash-all-files.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/do_expire.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/do_notice.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/removal.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/conn-established.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/dns.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/file-hashes.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/file-names.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/http-headers.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/http-url.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/index.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/manage-event-groups.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/pubkey-hashes.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/smb-filenames.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/smtp-url-extraction.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/smtp.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/ssl.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/where-locations.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/seen/x509.zeek.rst create mode 100644 doc/scripts/policy/frameworks/intel/whitelist.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/api.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/boot.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/config.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/index.rst create mode 100644 doc/scripts/policy/frameworks/management/agent/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/config.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/api.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/boot.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/config.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/index.rst create mode 100644 doc/scripts/policy/frameworks/management/controller/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/index.rst create mode 100644 doc/scripts/policy/frameworks/management/log.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/node/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/node/api.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/node/config.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/node/index.rst create mode 100644 doc/scripts/policy/frameworks/management/node/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/persistence.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/request.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/supervisor/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/supervisor/api.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/supervisor/config.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/supervisor/index.rst create mode 100644 doc/scripts/policy/frameworks/management/supervisor/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/types.zeek.rst create mode 100644 doc/scripts/policy/frameworks/management/util.zeek.rst create mode 100644 doc/scripts/policy/frameworks/netcontrol/catch-and-release.zeek.rst create mode 100644 doc/scripts/policy/frameworks/notice/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/notice/actions/drop.zeek.rst create mode 100644 doc/scripts/policy/frameworks/notice/community-id.zeek.rst create mode 100644 doc/scripts/policy/frameworks/notice/extend-email/hostnames.zeek.rst create mode 100644 doc/scripts/policy/frameworks/notice/index.rst create mode 100644 doc/scripts/policy/frameworks/packet-filter/shunt.zeek.rst create mode 100644 doc/scripts/policy/frameworks/signatures/iso-9660.zeek.rst create mode 100644 doc/scripts/policy/frameworks/software/version-changes.zeek.rst create mode 100644 doc/scripts/policy/frameworks/software/vulnerable.zeek.rst create mode 100644 doc/scripts/policy/frameworks/software/windows-version-detection.zeek.rst create mode 100644 doc/scripts/policy/frameworks/spicy/resource-usage.zeek.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/redis/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/redis/index.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/redis/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/sqlite/__load__.zeek.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/sqlite/index.rst create mode 100644 doc/scripts/policy/frameworks/storage/backend/sqlite/main.zeek.rst create mode 100644 doc/scripts/policy/frameworks/telemetry/log.zeek.rst create mode 100644 doc/scripts/policy/integration/collective-intel/__load__.zeek.rst create mode 100644 doc/scripts/policy/integration/collective-intel/index.rst create mode 100644 doc/scripts/policy/integration/collective-intel/main.zeek.rst create mode 100644 doc/scripts/policy/misc/capture-loss.zeek.rst create mode 100644 doc/scripts/policy/misc/detect-traceroute/__load__.zeek.rst create mode 100644 doc/scripts/policy/misc/detect-traceroute/index.rst create mode 100644 doc/scripts/policy/misc/detect-traceroute/main.zeek.rst create mode 100644 doc/scripts/policy/misc/dump-events.zeek.rst create mode 100644 doc/scripts/policy/misc/loaded-scripts.zeek.rst create mode 100644 doc/scripts/policy/misc/profiling.zeek.rst create mode 100644 doc/scripts/policy/misc/stats.zeek.rst create mode 100644 doc/scripts/policy/misc/trim-trace-file.zeek.rst create mode 100644 doc/scripts/policy/misc/unknown-protocols.zeek.rst create mode 100644 doc/scripts/policy/misc/weird-stats.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/community-id-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/disable-unknown-ip-proto-support.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/failed-service-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/ip-proto-name-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/known-hosts.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/known-services.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/mac-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/pppoe-session-id-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/speculative-service.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/vlan-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/conn/weirds.zeek.rst create mode 100644 doc/scripts/policy/protocols/dhcp/msg-orig.zeek.rst create mode 100644 doc/scripts/policy/protocols/dhcp/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/dhcp/sub-opts.zeek.rst create mode 100644 doc/scripts/policy/protocols/dns/auth-addl.zeek.rst create mode 100644 doc/scripts/policy/protocols/dns/detect-external-names.zeek.rst create mode 100644 doc/scripts/policy/protocols/dns/log-original-query-case.zeek.rst create mode 100644 doc/scripts/policy/protocols/ftp/detect-bruteforcing.zeek.rst create mode 100644 doc/scripts/policy/protocols/ftp/detect.zeek.rst create mode 100644 doc/scripts/policy/protocols/ftp/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/detect-sql-injection.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/detect-webapps.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/header-names.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/software-browser-plugins.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/var-extraction-cookies.zeek.rst create mode 100644 doc/scripts/policy/protocols/http/var-extraction-uri.zeek.rst create mode 100644 doc/scripts/policy/protocols/krb/ticket-logging.zeek.rst create mode 100644 doc/scripts/policy/protocols/modbus/known-masters-slaves.zeek.rst create mode 100644 doc/scripts/policy/protocols/modbus/track-memmap.zeek.rst create mode 100644 doc/scripts/policy/protocols/mysql/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/rdp/indicate_ssl.zeek.rst create mode 100644 doc/scripts/policy/protocols/smb/log-cmds.zeek.rst create mode 100644 doc/scripts/policy/protocols/smtp/blocklists.zeek.rst create mode 100644 doc/scripts/policy/protocols/smtp/detect-suspicious-orig.zeek.rst create mode 100644 doc/scripts/policy/protocols/smtp/entities-excerpt.zeek.rst create mode 100644 doc/scripts/policy/protocols/smtp/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssh/detect-bruteforcing.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssh/geo-data.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssh/interesting-hostnames.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssh/software.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/certificate-request-info.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/decryption.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/expiring-certs.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/heartbleed.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/known-certs.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/log-certs-base64.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/log-hostcerts-only.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/ssl-log-ext.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/validate-certs.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/validate-ocsp.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/validate-sct.zeek.rst create mode 100644 doc/scripts/policy/protocols/ssl/weak-keys.zeek.rst create mode 100644 doc/scripts/policy/tuning/json-logs.zeek.rst create mode 100644 doc/scripts/policy/tuning/track-all-assets.zeek.rst create mode 100644 doc/scripts/test-all-policy.zeek.rst create mode 100644 doc/scripts/zeekygen/__load__.zeek.rst create mode 100644 doc/scripts/zeekygen/example.zeek.rst create mode 100644 doc/scripts/zeekygen/index.rst create mode 100644 doc/traces/20171220_smb_at_schedule.pcap create mode 100644 doc/traces/README create mode 100644 doc/traces/get.trace create mode 100644 doc/traces/quickstart.pcap create mode 100644 doc/troubleshooting.rst diff --git a/.gitignore b/.gitignore index 27d0bc390b..d1586f6fc8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ build* !ci/windows/build.cmd +# Don't ignore things in the docs directory +!doc/** + tmp *.gcov diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000000..6f97ca1afc --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,2 @@ +build +*.pyc diff --git a/doc/.readthedocs.yml b/doc/.readthedocs.yml new file mode 100644 index 0000000000..e80d705bc6 --- /dev/null +++ b/doc/.readthedocs.yml @@ -0,0 +1,16 @@ +version: 2 + +formats: + - htmlzip + +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +python: + install: + - requirements: requirements.txt + +sphinx: + configuration: conf.py diff --git a/doc/.typos.toml b/doc/.typos.toml new file mode 100644 index 0000000000..0f3aee7a94 --- /dev/null +++ b/doc/.typos.toml @@ -0,0 +1,65 @@ +[default] +extend-ignore-re = [ + # seh too close to she + "registered SEH to support IDL", + # ALLO is a valid FTP command + "\"ALLO\".*[0-9]{3}", + "des-ede3-cbc-Env-OID", + # On purpose + "\"THE NETBIOS NAM\"", + # NFS stuff. + "commited :zeek:type:`NFS3::stable_how_t`", + "\\/fo\\(o", + " nd\\./dev/null; done + @ + @echo Checking whether docs for Spicy integration are up-to-date + @./devel/spicy/autogen-spicy-docs spicy-tftp + @ + @git diff --quiet devel/spicy/autogen/ \ + || (echo "Spicy docs are not up-to-date, rerun './devel/spicy/autogen-spicy-docs'." && exit 1) + +.PHONY : all doc builddir clean html livehtml diff --git a/doc/README b/doc/README new file mode 100644 index 0000000000..8204c11a4e --- /dev/null +++ b/doc/README @@ -0,0 +1,132 @@ +.. _zeek-docs: https://github.com/zeek/zeek-docs +.. _Read the Docs: https://docs.readthedocs.io/en/stable/index.html +.. _Zeek repo: https://github.com/zeek/zeek +.. _Sphinx: https://www.sphinx-doc.org/en/master +.. _pip: https://pypi.org/project/pip + +Zeek Documentation +================== + +The documentation repo at zeek-docs_ +contains version-specific Zeek documentation source files that are ultimately +used as the basis for content hosted at https://docs.zeek.org. + +Markup Format, Style, and Conventions +------------------------------------- + +For general guidance on the basics of how the documentation is written, +consult this Zeek wiki: + +https://github.com/zeek/zeek/wiki/Documentation-Style-and-Conventions + +Source-Tree Organization +------------------------ + +The zeek-docs_ repo containing this README file is the root of a Sphinx_ source +tree and can be modified to add more documentation, style sheets, JavaScript, +etc. The Sphinx config file is ``conf.py``. The typical way new documents get +integrated is from them being referenced directly in ``index.rst`` or +indirectly from something in the ``toctree`` (Table of Contents Tree) specified +in that main index. + +There is also a custom Sphinx domain implemented in ``ext/zeek.py`` which adds +some reStructureText (reST) directives and roles that aid in generating useful +index entries and cross-references. This primarily supports integration with +the script-reference sections, some of which are auto-generated by Zeek's +Doxygen-like feature, named "Zeekygen". The bulk of auto-generated content +lives under the ``scripts/`` directory or has a file name starting with +"autogenerated", so if you find yourself wanting to change those, you should +actually look at at doing those changes within the `Zeek repo`_ itself rather +than here, so see the next section for how Zeekygen docs can be (re)generated. + +Generating Zeekygen Reference Docs +---------------------------------- + +All Zeekygen-generated docs get committed into Git, so if you don't have to +perform any changes on it and just want to preview what's already existing, +you can skip down to the next :ref:`Local Previewing ` section. + +The Zeekygen documentation-generation feature is a part of Zeek itself, so +you'll want to obtain the `Zeek repo`_ from Git, read the :doc:`INSTALL +` file directions to install required dependencies, and build Zeek:: + + git clone --recursive https://github.com/zeek/zeek + cd zeek + # Read INSTALL file and get dependencies here + ./configure && make -j $(nproc) + # Make desired edits to scripts/, src/, etc. + ./ci/update-zeekygen-docs.sh + +The last command runs a script to generate documentation, which will end up in +the ``doc/`` subdirectory. Note that ``doc/`` is just a Git submodule of this +this zeek-docs_ repository, so you can run ``git status`` there to find exactly +what changed. + +Also note that the documentation-generation script is run automatically +on a daily basis to incorporate up any documentation changes that people make +in Zeek itself without them having to necessarily be aware of the full +documentation process. The GitHub Action that does that daily task is +located in the Zeek repo's ``.github/workflows/generate-docs.yml`` file. + +.. _local-doc-preview: + +Local Previewing (How To Build) +------------------------------- + +First make sure you have the required dependencies used for building docs: + +* Python interpreter >= 3.9 +* Sphinx: https://www.sphinx-doc.org/en/master/ +* Read the Docs Sphinx Theme: https://github.com/rtfd/sphinx_rtd_theme +* GitPython: https://github.com/gitpython-developers/GitPython + +If you have pip_, you may just use the command ``pip3 install -r +requirements.txt`` to install all the dependencies using the +``requirements.txt`` from zeek-docs_. + +Now run ``make`` within the zeek-docs_ repository's top-level to locally render +its reST files into HTML. After the build completes, HTML documentation is +symlinked in ``build/html`` and you can open the ``index.html`` found there in +your web browser. + +There's also a ``make livehtml`` (requires ``pip3 install sphinx-autobuild``) +target in the top-level Makefile that is useful for editing the reST files and +seeing changes rendered out live to a separate browser. + +Hosting +------- + +Documentation is hosted by `Read the Docs`_ (RTD), so you can generally read +about how it works there. The web-interface is accessible via +https://readthedocs.org/projects/zeek-docs. + +How zeek-docs_ is configured to use RTD is a combination of some custom +settings in its ``.readthedocs.yml`` file and others only accessible through +RTD's web-interface (e.g. domain and subproject settings). Most config +settings are likely understandable just by browsing the web-interface and +RTD's guides, but a few particular points to mention: + +* There is an associated, always-failing project at + https://readthedocs.org/projects/zeek. It's always-failing because + RTD redirects only activate when pages 404 and this project exists so that + all attempts to use https://zeek.rtfd.io or https://zeek.readthedocs.io + get redirected to https://docs.zeek.org. Those would have been the project + URLs if ownership of the RTD 'zeek' project was had from the start, but + it was only obtained later, after documentation already started development + in the 'zeek-docs' RTD project slug. + +* Over time, page redirects have accrued into ``redirects.yml`` as a way to + help document what they are and why they happened and also as a potential + way to automate addition/reinstantiation of a large number of redirects, + but typically redirects can be manually added via the RTD web interface + first and then noted in ``redirects.yml`` + +* There are RTD subprojects for things like Broker, Package Manager, + and Spicy. The use of subprojects simply allows access to their RTD + docs via the custom domain of https://docs.zeek.org + +* RTD will auto-build any newly-pushed commits to zeek-docs_ (i.e. a webhook is + configured), but if a tag is changed to point somewhere different, you'll + typically have to go into the RTD web interface, "Edit" the associated + version under "Versions", "wipe" the existing docs, and then manually trigger + a rebuild of that version tag under "Builds". diff --git a/doc/README.rst b/doc/README.rst new file mode 100644 index 0000000000..8204c11a4e --- /dev/null +++ b/doc/README.rst @@ -0,0 +1,132 @@ +.. _zeek-docs: https://github.com/zeek/zeek-docs +.. _Read the Docs: https://docs.readthedocs.io/en/stable/index.html +.. _Zeek repo: https://github.com/zeek/zeek +.. _Sphinx: https://www.sphinx-doc.org/en/master +.. _pip: https://pypi.org/project/pip + +Zeek Documentation +================== + +The documentation repo at zeek-docs_ +contains version-specific Zeek documentation source files that are ultimately +used as the basis for content hosted at https://docs.zeek.org. + +Markup Format, Style, and Conventions +------------------------------------- + +For general guidance on the basics of how the documentation is written, +consult this Zeek wiki: + +https://github.com/zeek/zeek/wiki/Documentation-Style-and-Conventions + +Source-Tree Organization +------------------------ + +The zeek-docs_ repo containing this README file is the root of a Sphinx_ source +tree and can be modified to add more documentation, style sheets, JavaScript, +etc. The Sphinx config file is ``conf.py``. The typical way new documents get +integrated is from them being referenced directly in ``index.rst`` or +indirectly from something in the ``toctree`` (Table of Contents Tree) specified +in that main index. + +There is also a custom Sphinx domain implemented in ``ext/zeek.py`` which adds +some reStructureText (reST) directives and roles that aid in generating useful +index entries and cross-references. This primarily supports integration with +the script-reference sections, some of which are auto-generated by Zeek's +Doxygen-like feature, named "Zeekygen". The bulk of auto-generated content +lives under the ``scripts/`` directory or has a file name starting with +"autogenerated", so if you find yourself wanting to change those, you should +actually look at at doing those changes within the `Zeek repo`_ itself rather +than here, so see the next section for how Zeekygen docs can be (re)generated. + +Generating Zeekygen Reference Docs +---------------------------------- + +All Zeekygen-generated docs get committed into Git, so if you don't have to +perform any changes on it and just want to preview what's already existing, +you can skip down to the next :ref:`Local Previewing ` section. + +The Zeekygen documentation-generation feature is a part of Zeek itself, so +you'll want to obtain the `Zeek repo`_ from Git, read the :doc:`INSTALL +` file directions to install required dependencies, and build Zeek:: + + git clone --recursive https://github.com/zeek/zeek + cd zeek + # Read INSTALL file and get dependencies here + ./configure && make -j $(nproc) + # Make desired edits to scripts/, src/, etc. + ./ci/update-zeekygen-docs.sh + +The last command runs a script to generate documentation, which will end up in +the ``doc/`` subdirectory. Note that ``doc/`` is just a Git submodule of this +this zeek-docs_ repository, so you can run ``git status`` there to find exactly +what changed. + +Also note that the documentation-generation script is run automatically +on a daily basis to incorporate up any documentation changes that people make +in Zeek itself without them having to necessarily be aware of the full +documentation process. The GitHub Action that does that daily task is +located in the Zeek repo's ``.github/workflows/generate-docs.yml`` file. + +.. _local-doc-preview: + +Local Previewing (How To Build) +------------------------------- + +First make sure you have the required dependencies used for building docs: + +* Python interpreter >= 3.9 +* Sphinx: https://www.sphinx-doc.org/en/master/ +* Read the Docs Sphinx Theme: https://github.com/rtfd/sphinx_rtd_theme +* GitPython: https://github.com/gitpython-developers/GitPython + +If you have pip_, you may just use the command ``pip3 install -r +requirements.txt`` to install all the dependencies using the +``requirements.txt`` from zeek-docs_. + +Now run ``make`` within the zeek-docs_ repository's top-level to locally render +its reST files into HTML. After the build completes, HTML documentation is +symlinked in ``build/html`` and you can open the ``index.html`` found there in +your web browser. + +There's also a ``make livehtml`` (requires ``pip3 install sphinx-autobuild``) +target in the top-level Makefile that is useful for editing the reST files and +seeing changes rendered out live to a separate browser. + +Hosting +------- + +Documentation is hosted by `Read the Docs`_ (RTD), so you can generally read +about how it works there. The web-interface is accessible via +https://readthedocs.org/projects/zeek-docs. + +How zeek-docs_ is configured to use RTD is a combination of some custom +settings in its ``.readthedocs.yml`` file and others only accessible through +RTD's web-interface (e.g. domain and subproject settings). Most config +settings are likely understandable just by browsing the web-interface and +RTD's guides, but a few particular points to mention: + +* There is an associated, always-failing project at + https://readthedocs.org/projects/zeek. It's always-failing because + RTD redirects only activate when pages 404 and this project exists so that + all attempts to use https://zeek.rtfd.io or https://zeek.readthedocs.io + get redirected to https://docs.zeek.org. Those would have been the project + URLs if ownership of the RTD 'zeek' project was had from the start, but + it was only obtained later, after documentation already started development + in the 'zeek-docs' RTD project slug. + +* Over time, page redirects have accrued into ``redirects.yml`` as a way to + help document what they are and why they happened and also as a potential + way to automate addition/reinstantiation of a large number of redirects, + but typically redirects can be manually added via the RTD web interface + first and then noted in ``redirects.yml`` + +* There are RTD subprojects for things like Broker, Package Manager, + and Spicy. The use of subprojects simply allows access to their RTD + docs via the custom domain of https://docs.zeek.org + +* RTD will auto-build any newly-pushed commits to zeek-docs_ (i.e. a webhook is + configured), but if a tag is changed to point somewhere different, you'll + typically have to go into the RTD web interface, "Edit" the associated + version under "Versions", "wipe" the existing docs, and then manually trigger + a rebuild of that version tag under "Builds". diff --git a/doc/_static/theme_overrides.css b/doc/_static/theme_overrides.css new file mode 100644 index 0000000000..cf1fa824f8 --- /dev/null +++ b/doc/_static/theme_overrides.css @@ -0,0 +1,32 @@ +/* override table width restrictions */ +@media screen and (min-width: 767px) { + + .wy-table-responsive table td { + /* !important prevents the common CSS stylesheets from overriding + this as on RTD they are loaded after this stylesheet */ + white-space: normal !important; + } + + .wy-table-responsive { + overflow: visible !important; + } +} + +h1, h2, h3, h4, h5, h6 { + color: #294488; + font-family: 'Open Sans',Helvetica,Arial,Lucida,sans-serif!important; +} + +a { + color: #2ea3f2; +} + +body { + font-family: "Open Sans",Arial,sans-serif; + color: #666; +} + +div.highlight pre strong { + font-weight: 800; + background-color: #ffffcc; +} diff --git a/doc/_templates/breadcrumbs.html b/doc/_templates/breadcrumbs.html new file mode 100644 index 0000000000..8a4aa54ae4 --- /dev/null +++ b/doc/_templates/breadcrumbs.html @@ -0,0 +1,15 @@ +{% extends "!breadcrumbs.html" %} + +{% block breadcrumbs_aside %} +
  • +{% if pagename != "search" %} + {% if display_github %} + {% if github_version == "master" %} + {{ _('Edit on GitHub') }} + {% endif %} + {% elif show_source and has_source and sourcename %} + {{ _('View page source') }} + {% endif %} +{% endif %} +
  • +{% endblock %} diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html new file mode 100644 index 0000000000..3a5449e99a --- /dev/null +++ b/doc/_templates/layout.html @@ -0,0 +1,14 @@ +{% extends "!layout.html" %} + +{% if READTHEDOCS and current_version %} + {% if current_version == "latest" or current_version == "stable" + or current_version == "master" or current_version == "current" + or current_version == "lts" or current_version == "LTS" %} + {% set current_version = current_version ~ " (" ~ version ~ ")" %} + {% endif %} +{% endif %} + +{% block menu %} + {{ super() }} + Index +{% endblock %} diff --git a/doc/about.rst b/doc/about.rst new file mode 100644 index 0000000000..85b3ddd5a8 --- /dev/null +++ b/doc/about.rst @@ -0,0 +1,256 @@ +========== +About Zeek +========== + +What Is Zeek? +============= + +Zeek is a passive, open-source network traffic analyzer. Many operators use +Zeek as a network security monitor (NSM) to support investigations of +suspicious or malicious activity. Zeek also supports a wide range of traffic +analysis tasks beyond the security domain, including performance measurement +and troubleshooting. + +The first benefit a new user derives from Zeek is the extensive set of logs +describing network activity. These logs include not only a comprehensive record +of every connection seen on the wire, but also application-layer transcripts. +These include all HTTP sessions with their requested URIs, key headers, MIME +types, and server responses; DNS requests with replies; SSL certificates; key +content of SMTP sessions; and much more. By default, Zeek writes all this +information into well-structured tab-separated or JSON log files suitable for +post-processing with external software. Users can also choose to have external +databases or SIEM products consume, store, process, and present the data for +querying. + +In addition to the logs, Zeek comes with built-in functionality for a range of +analysis and detection tasks, including extracting files from HTTP sessions, +detecting malware by interfacing to external registries, reporting vulnerable +versions of software seen on the network, identifying popular web applications, +detecting SSH brute-forcing, validating SSL certificate chains, and much more. + +In addition to shipping such powerful functionality “out of the box,” Zeek is a +fully customizable and extensible platform for traffic analysis. Zeek provides +users a domain-specific, Turing-complete scripting language for expressing +arbitrary analysis tasks. Think of the Zeek language as a “domain-specific +Python” (or Perl): just like Python, the system comes with a large set of +pre-built functionality (the “standard library”), yet users can also put Zeek +to use in novel ways by writing custom code. Indeed, all of Zeek’s default +analyses, including logging, are done via scripts; no specific analysis is +hard-coded into the core of the system. + +Zeek runs on commodity hardware and hence provides a low-cost alternative to +expensive proprietary solutions. In many ways Zeek exceeds the capabilities of +other network monitoring tools, which typically remain limited to a small set +of hard-coded analysis tasks. Zeek is not a classic signature-based intrusion +detection system (IDS); while it supports such standard functionality as well, +Zeek’s scripting language facilitates a much broader spectrum of very different +approaches to finding malicious activity. These include semantic misuse +detection, anomaly detection, and behavioral analysis. + +A large variety of sites deploy Zeek to protect their infrastructure, including +many universities, research labs, supercomputing centers, open-science +communities, major corporations, and government agencies. Zeek specifically +targets high-speed, high-volume network monitoring, and an increasing number of +sites are now using the system to monitor their 10GE networks, with some +already moving on to 100GE links. + +Zeek accommodates high-performance settings by supporting scalable +load-balancing. Large sites typically run “Zeek Clusters” in which a high-speed +front end load balancer distributes the traffic across an appropriate number of +back end PCs, all running dedicated Zeek instances on their individual traffic +slices. A central manager system coordinates the process, synchronizing state +across the back ends and providing the operators with a central management +interface for configuration and access to aggregated logs. Zeek’s integrated +management framework, ZeekControl, supports such cluster setups out-of-the-box. + +Zeek’s cluster features support single-system and multi-system setups. That's +part of Zeek’s scalability advantages. For example, administrators can scale +Zeek within one system for as long as possible, and then transparently add more +systems when necessary. + +In brief, Zeek is optimized for interpreting network traffic and generating +logs based on that traffic. It is not optimized for byte matching, and users +seeking signature detection approaches would be better served by trying +intrusion detection systems such as Suricata. Zeek is also not a protocol +analyzer in the sense of Wireshark, seeking to depict every element of network +traffic at the frame level, or a system for storing traffic in packet capture +(PCAP) form. Rather, Zeek sits at the “happy medium” representing compact yet +high fidelity network logs, generating better understanding of network traffic +and usage. + +Why Zeek? +========= + +Zeek offers many advantages for security and network teams who want to better +understand how their infrastructure is being used. + +Security teams generally depend upon four sorts of data sources when trying to +detect and respond to suspicious and malicious activity. These include *third +party* sources such as law enforcement, peers, and commercial or nonprofit +threat intelligence organizations; *network data*; *infrastructure and +application data*, including logs from cloud environments; and *endpoint data*. +Zeek is primarily a platform for collecting and analyzing the second form of +data -- network data. All four are important elements of any security team’s +program, however. + +When looking at data derived from the network, there are four types of data +available to analysts. As defined by the `network security monitoring paradigm +`_, these +four data types are *full content*, *transaction data*, *extracted content*, +and *alert data*. Using these data types, one can record traffic, summarize +traffic, extract traffic (or perhaps more accurately, extract content +in the form of files), and judge traffic, respectively. + +It’s critical to collect and analyze the four types of network security +monitoring data. The question becomes one of determining the best way to +accomplish this goal. Thankfully, Zeek as a NSM platform enables collection of +at least two, and in some ways three, of these data forms, namely transaction +data, extracted content, and alert data. + +Zeek is best known for its transaction data. By default, when run and told to +watch a network interface, Zeek will generate a collection of compact, +high-fidelity, richly-annotated set of transaction logs. These logs describe +the protocols and activity seen on the wire, in a judgement-free, +policy-neutral manner. This documentation will spend a considerable amount of +time describing the most common Zeek log files such that readers will become +comfortable with the format and learn to apply them to their environment. + +Zeek can also easily carve files from network traffic, thanks to its file +extraction capabilities. Analysts can then send those files to execution +sandboxes or other file examination tools for additional investigation. Zeek +has some capability to perform classical byte-centric intrusion detection, but +that job is best suited for packages like the open source Snort or Suricata +engines. Zeek has other capabilities however that are capable of providing +judgements in the form of alerts, through its notice mechanism. + +Zeek is not optimized for writing traffic to disk in the spirit of a full +content data collection, and that task is best handled by software written to +fulfill that requirement. + +Beyond the forms of network data that Zeek can natively collect and generate, +Zeek has advantages that appeared in the `What Is Zeek?`_ section. These +include its built-in functionality for a range of analysis and detection +tasks, and its status as a fully customizable and extensible platform for +traffic analysis. Zeek is also attractive because of its ability to run on +commodity hardware, giving users of all types the ability to at least try Zeek +in a low-cost manner. + +History +======= + +Zeek has a rich history stretching back to the 1990s. `Vern Paxson +`_ designed and implemented the initial version in +1995 as a researcher at the `Lawrence Berkeley National Laboratory (LBNL) +`_. The original software was called “Bro,” as an +“Orwellian reminder that monitoring comes hand in hand with the potential +for privacy violations”. + +LBNL first deployed Zeek in 1996, and the USENIX Security Symposium published +Vern’s original paper on Zeek in 1998, and awarded it the Best Paper Award that +year He published a refined version of the paper in 1999 as `Bro: A System for +Detecting Network Intruders in Real-Time +`_. + +In 2003, the `National Science Foundation (NSF) `_ began +supporting research and advanced development on Bro at the `International +Computer Science Institute (ICSI) `_. (Vern +still leads the ICSI `Networking and Security group `_.) + +Over the years, a growing team of ICSI researchers and students kept adding +novel functions to Zeek, while LBNL continued its support with funding from the +`Department of Energy (DOE) `_. Much of Zeek’s +capabilities originate in academic research projects, with results often +published at top-tier conferences. A key to Zeek’s success was the project’s +ability to bridge the gap between academia and operations. This relationship +helped ground research on Zeek in real-world challenges. + +With a growing operational user community, the research-centric development +model eventually became a bottleneck to the system’s evolution. Research +grants did not support the more mundane parts of software development and +maintenance. However, those elements were crucial for the end-user experience. +As a result, deploying Zeek required overcoming a steep learning curve. + +In 2010, NSF sought to address this challenge by awarding ICSI a grant from its +Software Development for Cyberinfrastructure fund. The `National Center for +Supercomputing Applications (NCSA) `_ joined the +team as a core partner, and the Zeek project began to overhaul many of the +user-visible parts of the system for the 2.0 release in 2012. + +After Zeek 2.0, the project enjoyed tremendous growth in new deployments across +a diverse range of settings, and the ongoing collaboration between ICSI (co-PI +Robin Sommer) and NCSA (co-PI Adam Slagell) brought a number of important +features. In 2012, Zeek added native IPv6 support, long before many enterprise +networking monitoring tools. In 2013, NSF renewed its support with a second +grant that established the Bro Center of Expertise at ICSI and NCSA, promoting +Zeek as a comprehensive, low-cost security capability for research and +education communities. To facilitate both debugging and education, +`try.zeek.org `_ (formerly try.bro.org) was launched in +2014. This provided an interactive way for users to test a script with their +own packet captures against a variety of Zeek versions and easily share +sample code with others. For Zeek clusters and external communication, +the Broker communication framework was added. Last, but not least, the +Zeek package manager was created in 2016, funded by an additional grant +from the Mozilla Foundation. + +In the fall of 2018, the project leadership team decided to change the name of +the software from Bro to Zeek. The leadership team desired a name that better +reflected the values of the community while avoiding the negative connotations +of so-called “bro culture” outside the computing world. The project released +version 3.0 in the fall of 2019, the first release bearing the name Zeek. The +year 2020 saw a renewed focus on community and growing the Zeek community, with +increased interaction via social media, webinars, Slack channels, and related +outreach efforts. + +For a history of the project from 1995 to 2015, see Vern Paxson’s talk from +BroCon 2015, `Reflecting on Twenty Years of Bro +`_. + +For background on the decision to rename Bro to Zeek, see Vern Paxson’s talk +from BroCon 2018, `Renaming Bro +`_. + +Architecture +============ + +.. image:: /images/architecture.png + :align: center + :scale: 75% + +At a very high level, Zeek is architecturally layered into two major +components. Its *event engine* (or *core*) reduces the incoming packet stream +into a series of higher-level *events*. These events reflect network activity +in policy-neutral terms, i.e., they describe *what* has been seen, but not +*why*, or whether it is significant. + +For example, every HTTP request on the wire turns into a corresponding +:zeek:see:`http_request` event that carries with it the involved IP addresses +and ports, the URI being requested, and the HTTP version in use. The event +however does not convey any further *interpretation*, such as whether that URI +corresponds to a known malware site. + +The event engine component comprises a number of subcomponents, including in +particular the packet processing pipeline consisting of: input sources, +packet analysis, session analysis, and file analysis. Input sources ingest +incoming network traffic from network interfaces. Packet analysis processes +lower-level protocols, starting all the way down at the link layer. Session +analysis handles application-layer protocols, such as HTTP, FTP, etc. File +analysis dissects the content of files transferred over sessions. The event +engine provides a plugin architecture for adding any of these from outside +of the core Zeek code base, allowing to expand Zeek’s capabilities as +needed. + +Semantics related to the events are derived by Zeek’s second main component, +the *script interpreter*, which executes a set of *event handlers* written in +Zeek’s custom scripting language. These scripts can express a site’s +security policy, such as what actions to take when the monitor detects +different types of activity. + +More generally scripts can derive any desired properties and statistics from +the input traffic. In fact, all of Zeek’s default output comes from scripts +included in the distribution. Zeek’s language comes with extensive +domain-specific types and support functionality. Crucially, Zeek’s language +allows scripts to maintain state over time, enabling them to track and +correlate the evolution of what they observe across connection and host +boundaries. Zeek scripts can generate real-time alerts and also execute +arbitrary external programs on demand. One might use this functionality to +trigger an active response to an attack. diff --git a/doc/acknowledgements.rst b/doc/acknowledgements.rst new file mode 100644 index 0000000000..7a0747e638 --- /dev/null +++ b/doc/acknowledgements.rst @@ -0,0 +1,22 @@ +================ +Acknowledgements +================ + +Thanks to everyone who contributed in making Zeek's documentation +(alphabetically): + +* Johanna Amann +* Richard Bejtlich +* Michael Dopheide +* Amber Graner +* Jan Grashöfer +* Christian Kreibich +* Terry Leach +* Aashish Sharma +* Jon Siwek +* Stephen Smoot +* Robin Sommer +* Aaron Soto +* Nick Turley +* Fatema Bannat Wala +* Tim Wojtulewicz diff --git a/doc/building-from-source.rst b/doc/building-from-source.rst new file mode 100644 index 0000000000..21f940406f --- /dev/null +++ b/doc/building-from-source.rst @@ -0,0 +1,392 @@ + +.. _CMake: https://www.cmake.org +.. _SWIG: https://www.swig.org +.. _Xcode: https://developer.apple.com/xcode/ +.. _MacPorts: https://www.macports.org +.. _Fink: https://www.finkproject.org +.. _Homebrew: https://brew.sh +.. _downloads page: https://zeek.org/get-zeek +.. _devtoolset: https://developers.redhat.com/products/developertoolset/hello-world +.. _zkg package manager: https://docs.zeek.org/projects/package-manager/en/stable/ +.. _crosstool-NG: https://crosstool-ng.github.io/ +.. _CMake toolchain: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html +.. _contribute: https://github.com/zeek/zeek/wiki/Contribution-Guide +.. _Chocolatey: https://chocolatey.org +.. _Npcap: https://npcap.com/ + +.. _building-from-source: + +==================== +Building from Source +==================== + +Building Zeek from source provides the most control over your build and is the +preferred approach for advanced users. We support a wide range of operating +systems and distributions. Our `support policy +`_ is informed by +what we can run in our CI pipelines with reasonable effort, with the current +status captured in our `support matrix +`_. + +Required Dependencies +--------------------- + +Building Zeek from source requires the following dependencies, including +development headers for libraries: + + * Bash (for ZeekControl and BTest) + * BIND8 library or greater (if not covered by system's libresolv) + * Bison 3.3 or greater (https://www.gnu.org/software/bison/) + * C/C++ compiler with C++17 support (GCC 8+ or Clang 9+) + * CMake 3.15 or greater (https://www.cmake.org) + * Flex (lexical analyzer generator) 2.6 or greater (https://github.com/westes/flex) + * Libpcap (https://www.tcpdump.org) + * Make + * OpenSSL (https://www.openssl.org) + * Python 3.9 or greater (https://www.python.org/) + * SWIG (https://www.swig.org) + * ZeroMQ (https://zeromq.org) + * Zlib (https://zlib.net/) + +To install these, you can use: + +* RPM/RedHat-based Linux: + + .. code-block:: console + + sudo dnf install bison cmake cppzmq-devel gcc gcc-c++ flex libpcap-devel make openssl-devel python3 python3-devel swig zlib-devel + + On pre-``dnf`` systems, use ``yum`` instead. Additionally, on RHEL/CentOS 7, + you can install and activate a devtoolset_ to get access to recent GCC + versions. You will also have to install and activate CMake 3. For example: + + .. code-block:: console + + sudo yum install cmake3 devtoolset-7 + scl enable devtoolset-7 bash + +* DEB/Debian-based Linux: + + .. code-block:: console + + sudo apt-get install bison cmake cppzmq-dev gcc g++ flex libfl-dev libpcap-dev libssl-dev make python3 python3-dev swig zlib1g-dev + + If your platform doesn't offer ``cppzmq-dev``, try ``libzmq3-dev`` + instead. Zeek's build will fall back to an in-tree version of C++ + bindings to ZeroMQ in that case. + +* FreeBSD: + + Most required dependencies should come with a minimal FreeBSD install + except for the following. + + .. code-block:: console + + sudo pkg install -y base64 bash bison cmake cppzmq git python3 swig + pyver=`python3 -c 'import sys; print(f"py{sys.version_info[0]}{sys.version_info[1]}")'` + sudo pkg install -y $pyver-sqlite3 + +* macOS: + + Compiling source code on Macs requires first installing either Xcode_ + or the "Command Line Tools" (which is a much smaller download). To check + if either is installed, run the ``xcode-select -p`` command. If you see + an error message, then neither is installed and you can then run + ``xcode-select --install`` which will prompt you to either get Xcode (by + clicking "Get Xcode") or to install the command line tools (by + clicking "Install"). + + macOS comes with all required dependencies except for CMake_, SWIG_, + Bison, Flex, and OpenSSL (OpenSSL headers were removed in macOS 10.11, + therefore OpenSSL must be installed manually for macOS versions 10.11 + or newer). + + Distributions of these dependencies can likely be obtained from your + preferred macOS package management system (e.g. Homebrew_, + MacPorts_, or Fink_). Specifically for Homebrew, the ``bison``, ``cmake``, + ``cppzmq``, ``flex``, ``swig``, and ``openssl`` packages + provide the required dependencies. For MacPorts, use the ``bison``, ``cmake``, + ``cppzmq``, ``flex``, ``swig``, ``swig-python``, and ``openssl`` packages. + +* Windows + + Windows support is experimental. These instructions are meant as a starting + point for development on that platform, and might have issues or be missing + steps. Notify the Zeek team if any such problems arise. + + Compiling on Windows requires the installation of a development environment. + Zeek currently builds on Visual Studio 2019, and you can either install the + full version including the UI tools or you can install the command-line tools + and build from a shell. The instructions below describe how to install the + command-line tools, but are not necessary if you install the full VS2019 + package. You will need to install Chocolatey_ in order to install the + dependencies as instructed below. It's possible to install them from other + sources (msys2, cygwin, etc), which we leave to the reader. + + Cloning the repository will also require Developer Mode to be enabled in + Windows. This is due to the existence of a number of symbolic links in the + repository. Without Developer Mode, ``git`` on Windows will ignore these + links and builds will fail. There are a couple of different ways to enable + it, and the settings may differ depending on the version of Windows. + + .. code-block:: console + + choco install -y --no-progress visualstudio2019buildtools --version=16.11.11.0 + choco install -y --no-progress visualstudio2019-workload-vctools --version=1.0.0 --package-parameters '--add Microsoft.VisualStudio.Component.VC.ATLMFC' + choco install -y --no-progress sed + choco install -y --no-progress winflexbison3 + choco install -y --no-progress msysgit + choco install -y --no-progress python + choco install -y --no-progress openssl --version=3.1.1 + + Once the dependencies are installed, you will need to add the Git installation + to your PATH (``C:\Program Files\Git\bin`` by default). This is needed for the + ``sh`` command to be available during the build. Once all of the dependencies + are in place, you will need to open a shell (PowerShell or cmd) and add the + development environment to it. The following command is for running on an + x86_64 host. + + .. code-block:: console + + C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat x86_amd64 + + Now you can build via cmake: + + .. code-block:: console + + mkdir build + cd build + cmake.exe .. -DCMAKE_BUILD_TYPE=release -DENABLE_ZEEK_UNIT_TESTS=yes -DENABLE_CLUSTER_BACKEND_ZEROMQ=no -DVCPKG_TARGET_TRIPLET="x64-windows-static" -G Ninja + cmake.exe --build . + + All of this is duplicated in the CI configuration for Windows which lives in + the ``ci/windows`` directory, and can be used as a reference for running the + commands by hand. + + Note: By default, Windows links against the standard libpcap library from + vcpkg. This version of libpcap does not support packet capture on Windows, + unlike other platforms. In order to capture packets from live interfaces on + Windows, you will need to link against the Npcap_ library. This library is free + for personal use, but requires a paid license for commercial use or + redistribution. To link against Npcap, download the SDK from their website, + unzip it, and then pass ``-DPCAP_ROOT_DIR=""`` to the + initial CMake invocation for Zeek. + + Note also that the ZeroMQ cluster backend is not yet supported on Windows. + +Optional Dependencies +--------------------- + +Zeek can make use of some optional libraries and tools if they are found at +build time: + + * libmaxminddb (for geolocating IP addresses) + * sendmail (enables Zeek and ZeekControl to send mail) + * curl (used by a Zeek script that implements active HTTP) + * gperftools (tcmalloc is used to improve memory and CPU usage) + * jemalloc (https://github.com/jemalloc/jemalloc) + * PF_RING (Linux only, see :ref:`pf-ring-config`) + * krb5 libraries and headers + * ipsumdump (for trace-summary; https://github.com/kohler/ipsumdump) + * hiredis (for the Redis storage backend) + +Geolocation is probably the most interesting and can be installed on most +platforms by following the instructions for :ref:`address geolocation and AS +lookups `. + +The `zkg package manager`_, included in the Zeek installation, requires +two external Python modules: + + * GitPython: https://pypi.org/project/GitPython/ + * semantic-version: https://pypi.org/project/semantic-version/ + +These install easily via pip (``pip3 install GitPython +semantic-version``) and also ship with some distributions: + +* RPM/RedHat-based Linux: + + .. code-block:: console + + sudo yum install python3-GitPython python3-semantic_version + +* DEB/Debian-based Linux: + + .. code-block:: console + + sudo apt-get install python3-git python3-semantic-version + +``zkg`` also requires a ``git`` installation, which the above system packages +pull in as a dependency. If you install via pip, remember that you also need +``git`` itself. + +Retrieving the Sources +---------------------- + +Zeek releases are bundled into source packages for convenience and are +available on the `downloads page`_. The source code can be manually downloaded +from the link in the ``.tar.gz`` format to the target system for installation. + +If you plan to `contribute`_ to Zeek or just want to try out the latest +features under development, you should obtain Zeek's source code through its +Git repositories hosted at https://github.com/zeek: + +.. code-block:: console + + git clone --recurse-submodules https://github.com/zeek/zeek + +.. note:: If you choose to clone the ``zeek`` repository + non-recursively for a "minimal Zeek experience", be aware that + compiling it depends on several of the other submodules as well, so + you'll likely have to build/install those independently first. + +Configuring and Building +------------------------ + +The typical way to build and install from source is as follows: + +.. code-block:: console + + ./configure + make + make install + +If the ``configure`` script fails, then it is most likely because it either +couldn't find a required dependency or it couldn't find a sufficiently new +version of a dependency. Assuming that you already installed all required +dependencies, then you may need to use one of the ``--with-*`` options +that can be given to the ``configure`` script to help it locate a dependency. +To find out what all different options ``./configure`` supports, run +``./configure --help``. + +The default installation path is ``/usr/local/zeek``, which would typically +require root privileges when doing the ``make install``. A different +installation path can be chosen by specifying the ``configure`` script +``--prefix`` option. Note that ``/usr``, ``/opt/bro/``, and ``/opt/zeek`` are +the standard prefixes for binary Zeek packages to be installed, so those are +typically not good choices unless you are creating such a package. + +OpenBSD users, please see our `FAQ `_ if you are having +problems installing Zeek. + +Depending on the Zeek package you downloaded, there may be auxiliary +tools and libraries available in the ``auxil/`` directory. Some of them +will be automatically built and installed along with Zeek. There are +``--disable-*`` options that can be given to the configure script to +turn off unwanted auxiliary projects that would otherwise be installed +automatically. Finally, use ``make install-aux`` to install some of +the other programs that are in the ``auxil/zeek-aux`` directory. + +Finally, if you want to build the Zeek documentation (not required, because +all of the documentation for the latest Zeek release is available at +https://docs.zeek.org), there are instructions in ``doc/README`` in the source +distribution. + +Cross Compiling +--------------- + +Prerequisites +~~~~~~~~~~~~~ + +You need three things on the host system: + +1. The Zeek source tree. +2. A cross-compilation toolchain, such as one built via crosstool-NG_. +3. Pre-built Zeek dependencies from the target system. This usually + includes libpcap, zlib, OpenSSL, and Python development headers + and libraries. + +Configuration and Compiling +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You first need to compile a few build tools native to the host system +for use during the later cross-compile build. In the root of your +Zeek source tree: + +.. code-block:: console + + ./configure --builddir=../zeek-buildtools + ( cd ../zeek-buildtools && make binpac bifcl ) + +Next configure Zeek to use your cross-compilation toolchain (this example +uses a Raspberry Pi as the target system): + +.. code-block:: console + + ./configure --toolchain=/home/jon/x-tools/RaspberryPi-toolchain.cmake --with-binpac=$(pwd)/../zeek-buildtools/auxil/binpac/src/binpac --with-bifcl=$(pwd)/../zeek-buildtools/src/bifcl + +Here, the :file:`RaspberryPi-toolchain.cmake` file specifies a `CMake +toolchain`_. In the toolchain file, you need to point the toolchain and +compiler at the cross-compilation toolchain. It might look something the +following: + +.. code-block:: cmake + + # Operating System on which CMake is targeting. + set(CMAKE_SYSTEM_NAME Linux) + + # The CMAKE_STAGING_PREFIX option may not work. + # Given that Zeek is configured: + # + # ``./configure --prefix=`` + # + # The options are: + # + # (1) ``make install`` and then copy over the --prefix dir from host to + # target system. + # + # (2) ``DESTDIR= make install`` and then copy over the + # contents of that staging directory. + + set(toolchain /home/jon/x-tools/arm-rpi-linux-gnueabihf) + set(CMAKE_C_COMPILER ${toolchain}/bin/arm-rpi-linux-gnueabihf-gcc) + set(CMAKE_CXX_COMPILER ${toolchain}/bin/arm-rpi-linux-gnueabihf-g++) + + # The cross-compiler/linker will use these paths to locate dependencies. + set(CMAKE_FIND_ROOT_PATH + /home/jon/x-tools/zeek-rpi-deps + ${toolchain}/arm-rpi-linux-gnueabihf/sysroot + ) + + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +If that configuration succeeds you are ready to build: + +.. code-block:: console + + make + +And if that works, install on your host system: + +.. code-block:: console + + make install + +Once installed, you can copy/move the files from the installation prefix on the +host system to the target system and start running Zeek as usual. + +Configuring the Run-Time Environment +==================================== + +You may want to adjust your :envvar:`PATH` environment variable +according to the platform/shell/package you're using since +neither :file:`/usr/local/zeek/bin/` nor :file:`/opt/zeek/bin/` +will reside in the default :envvar:`PATH`. For example: + +Bourne-Shell Syntax: + +.. code-block:: console + + export PATH=/usr/local/zeek/bin:$PATH + +C-Shell Syntax: + +.. code-block:: console + + setenv PATH /usr/local/zeek/bin:$PATH + +Or substitute ``/opt/zeek/bin`` instead if you installed from a binary package. + +Zeek supports several environment variables to adjust its behavior. Take a look +at the ``zeek --help`` output for details. diff --git a/doc/cluster-setup.rst b/doc/cluster-setup.rst new file mode 100644 index 0000000000..0bb5cc0790 --- /dev/null +++ b/doc/cluster-setup.rst @@ -0,0 +1,507 @@ + +.. _ZeekControl documentation: https://github.com/zeek/zeekctl + +================== +Zeek Cluster Setup +================== + +.. TODO: integrate BoZ revisions + +A *Zeek Cluster* is a set of systems jointly analyzing the traffic of +a network link in a coordinated fashion. You can operate such a setup from +a central manager system easily using ZeekControl because it +hides much of the complexity of the multi-machine installation. + +Cluster Architecture +==================== + +Zeek is not multithreaded, so once the limitations of a single processor core +are reached the only option currently is to spread the workload across many +cores, or even many physical computers. The cluster deployment scenario for +Zeek is the current solution to build these larger systems. The tools and +scripts that accompany Zeek provide the structure to easily manage many Zeek +processes examining packets and doing correlation activities but acting as +a singular, cohesive entity. This section describes the Zeek cluster +architecture. For information on how to configure a Zeek cluster, +see the documentation for `ZeekControl `_. + +Architecture +------------ + +The figure below illustrates the main components of a Zeek cluster. + +.. image:: /images/deployment.png + +For more specific information on the way Zeek processes are connected, +how they function, and how they communicate with each other, see the +:ref:`Broker Framework Documentation `. + +Tap +*** +The tap is a mechanism that splits the packet stream in order to make a copy +available for inspection. Examples include the monitoring port on a switch +and an optical splitter on fiber networks. + +Frontend +******** +The frontend is a discrete hardware device or on-host technique that splits +traffic into many streams or flows. The Zeek binary does not do this job. +There are numerous ways to accomplish this task, some of which are described +below in `Frontend Options`_. + +Manager +******* +The manager is a Zeek process that has two primary jobs. It receives log +messages and notices from the rest of the nodes in the cluster using the Zeek +communications protocol (note that if you use a separate logger node, then the +logger receives all logs instead of the manager). The result +is a single log instead of many discrete logs that you have to +combine in some manner with post-processing. +The manager also supports other functionality and analysis which +requires a centralized, global view of events or data. + +Logger +****** +A logger is an optional Zeek process that receives log messages from the +rest of the nodes in the cluster using the Zeek communications protocol. +The purpose of having a logger receive logs instead of the manager is +to reduce the load on the manager. If no logger is needed, then the +manager will receive logs instead. + +Proxy +***** +A proxy is a Zeek process that may be used to offload data storage or +any arbitrary workload. A cluster may contain multiple proxy nodes. +The default scripts that come with Zeek make minimal use of proxies, so +a single one may be sufficient, but customized use of them to partition +data or workloads provides greater cluster scalability potential than +just doing similar tasks on a single, centralized Manager node. + +Zeek processes acting as proxies don't tend to be extremely hard on CPU +or memory and users frequently run proxy processes on the same physical +host as the manager. + +Worker +****** +The worker is the Zeek process that sniffs network traffic and does protocol +analysis on the reassembled traffic streams. Most of the work of an active +cluster takes place on the workers and as such, the workers typically +represent the bulk of the Zeek processes that are running in a cluster. +The fastest memory and CPU core speed you can afford is recommended +since all of the protocol parsing and most analysis will take place here. +There are no particular requirements for the disks in workers since almost all +logging is done remotely to the manager, and normally very little is written +to disk. + +Frontend Options +---------------- + +There are many options for setting up a frontend flow distributor. In many +cases it is beneficial to do multiple stages of flow distribution +on the network and on the host. + +Discrete hardware flow balancers +******************************** + +cPacket +^^^^^^^ + +If you are monitoring one or more 10G physical interfaces, the recommended +solution is to use either a cFlow or cVu device from cPacket because they +are used successfully at a number of sites. These devices will perform +layer-2 load balancing by rewriting the destination Ethernet MAC address +to cause each packet associated with a particular flow to have the same +destination MAC. The packets can then be passed directly to a monitoring +host where each worker has a BPF filter to limit its visibility to only that +stream of flows, or onward to a commodity switch to split the traffic out to +multiple 1G interfaces for the workers. This greatly reduces +costs since workers can use relatively inexpensive 1G interfaces. + +On host flow balancing +********************** + +PF_RING +^^^^^^^ + +The PF_RING software for Linux has a "clustering" feature which will do +flow-based load balancing across a number of processes that are sniffing the +same interface. This allows you to easily take advantage of multiple +cores in a single physical host because Zeek's main event loop is single +threaded and can't natively utilize all of the cores. If you want to use +PF_RING, see the documentation on :ref:`how to configure Zeek with PF_RING +`. + + +AF_PACKET +^^^^^^^^^ + +On Linux, Zeek supports `AF_PACKET sockets `_ natively. +Currently, this is provided by including the `external Zeek::AF_Packet plugin `_ +in default builds of Zeek for Linux. Additional information can be found in +the project's README file. + +To check the availability of the ``af_packet`` packet source, print its information using ``zeek -N``:: + + zeek -N Zeek::AF_Packet + Zeek::AF_Packet - Packet acquisition via AF_Packet (dynamic, version 3.2.0) + +On FreeBSD, MacOSX, or if Zeek was built with ``--disable-af-packet``, the +plugin won't be available. + +Single worker mode +"""""""""""""""""" + +For the most basic usage, prefix the interface with ``af_packet::`` when invoking Zeek:: + + zeek -i af_packet::eth0 + +Generally, running Zeek this way requires a privileged user with CAP_NET_RAW +and CAP_NET_ADMIN capabilities. Linux supports file-based capabilities: A +process executing an executable with capabilities will receive these. +Using this mechanism allows to run Zeek as an unprivileged user once the file +capabilities have been added:: + + sudo setcap cap_net_raw,cap_net_admin=+eip /path/to/zeek + +Offloading and ethtool tuning +""""""""""""""""""""""""""""" + +While not specific to AF_PACKET, it is recommended to disable any offloading +features provided by the network card or Linux networking stack when running +Zeek. This allows to see network packets as they arrive on the wire. +See this `blog post `_ +for more background + +Toggling these features can be done with the ``ethtool -K`` command, for example:: + + IFACE=eth0 + for offload in rx tx sg tso ufo gso gro lro; do + ethtool -K $IFACE $offload off + done + +Detailed statistics about the interface can be gathered via ``ethtool -S``. + +For more details around the involved offloads consult the +`ethtool manpage `_. + +Load balancing +"""""""""""""" + +The more interesting use-case is to use AF_PACKET to run multiple Zeek workers +and have their packet sockets join what is called a fanout group. +In such a setup, the network traffic is load-balanced across Zeek workers. +By default load balancing is based on symmetric flow hashes [#]_. + +For example, running two Zeek workers listening on the same network interface, +each worker analyzing approximately half of the network traffic, can be done +as follows:: + + zeek -i af_packet::eth0 & + zeek -i af_packet::eth0 & + +The fanout group is identified by an id and configurable using the +``AF_Packet::fanout_id`` constant which defaults to 23. In the example +above, both Zeek workers join the same fanout group. + + +.. note:: + + As a caveat, within the same Linux network namespace, two Zeek processes can + not use the same fanout group id for listening on different network interfaces. + If this is a setup you're planning on running, configure the fanout group + ids explicitly. + For illustration purposes, the following starts two Zeek workers each using + a different network interface and fanout group id:: + + zeek -i af_packet::eth0 AF_Packet::fanout_id=23 & + zeek -i af_packet::eth1 AF_Packet::fanout_id=24 & + +.. warning:: + + Zeek workers crashing or restarting due to running out of memory can, + for a short period of time, disturb load balancing due to their packet + sockets being removed and later rejoining the fanout group. + This may be visible in Zeek logs as gaps and/or duplicated connection + entries produced by different Zeek workers. + +See :ref:`cluster-configuration` for instructions how to configure AF_PACKET +with ZeekControl. + + +Netmap +^^^^^^ + +`Netmap `_ is a framework for fast +packet I/O that is natively supported on FreeBSD since version 10. +On Linux it can be installed as an out-of-tree kernel module. + +FreeBSD +""""""" +FreeBSD's libpcap library supports netmap natively. This allows to prefix +interface names with ``netmap:`` to instruct libpcap to open the interface +in netmap mode. For example, a single Zeek worker can leverage netmap +transparently using Zeek's default packet source as follows:: + + zeek -i netmap:em0 + +.. warning:: + + Above command will put the em0 interface into kernel-bypass mode. Network + packets will pass directly to Zeek without being interpreted by the kernel. + If em0 is your primary network interface, this effectively disables + networking, including SSH connectivity. + +If your network card supports multiple rings, individual Zeek workers can be +attached to these as well (this assumes the NIC does proper flow hashing in hardware):: + + zeek -i netmap:em0-0 + zeek -i netmap:em0-1 + +For software load balancing support, the FreeBSD source tree includes the +``lb`` tool to distribute packets into netmap pipes doing flow hashing +in user-space. + +To compile and install ``lb``, ensure ``/usr/src`` is available on your +FreeBSD system, then run the following commands:: + + cd /usr/src/tools/tools/netmap/ + make + # Installs lb into /usr/local/bin + cp /usr/obj/usr/src/`uname -m`.`uname -m`/tools/tools/netmap/lb /usr/local/bin/ + + +To load-balance packets arriving on em0 into 4 different netmap pipes named +``zeek}0`` through ``zeek}3``, run ``lb`` as follows:: + + lb -i em0 -p zeek:4 + 410.154166 main [634] interface is em0 + 411.377220 main [741] successfully opened netmap:em0 + 411.377243 main [812] opening pipe named netmap:zeek{0/xT@1 + 411.379200 main [829] successfully opened pipe #1 netmap:zeek{0/xT@1 (tx slots: 1024) + 411.379242 main [838] zerocopy enabled + ... + +Now, Zeek workers can attach to these four netmap pipes. When starting Zeek +workers manually, the respective invocations would be as follows. The ``/x`` +suffix specifies exclusive mode to prevent two Zeek processes consuming packets +from the same netmap pipe:: + + zeek -i netmap:zeek}0/x + zeek -i netmap:zeek}1/x + zeek -i netmap:zeek}2/x + zeek -i netmap:zeek}3/x + +For packet-level debugging, you can attach ``tcpdump`` to any of the netmap +pipes in read monitor mode even while Zeek workers are consuming from them:: + + tcpdump -i netmap:zeek}1/r + +In case libpcap's netmap support is insufficient, the external +`Zeek netmap plugin `_ can be installed. + +.. warning:: + + When using the zeek-netmap plugin on FreeBSD, the interface specification given to Zeek + needs to change from ``netmap:zeek}0/x`` to ``netmap::zeek}0/x`` - a single colon more. + In the first case, Zeek uses the default libpcap packet source and passes ``netmap:zeek}0`` + as interface name. In the second case, ``netmap::`` is interpreted by Zeek and + the netmap packet source is instantiated. The ``zeek}0/x`` part is used as + interface name. + +Linux +""""" + +While netmap isn't included in the Linux kernel, it can be installed as +an out-of-tree kernel module. +See the project's `GitHub repository `_ +for detailed instructions. This includes the ``lb`` tool for load balancing. + +On Linux, the external `zeek-netmap `_ +packet source plugin is required, or the system's libpcap library as used by +Zeek needs to be recompiled with native netmap support. With the netmap kernel +module loaded and the Zeek plugin installed, running a Zeek worker as follows +will leverage netmap on Linux:: + + zeek -i netmap::eth1 + +For using ``lb`` or libpcap with netmap support, refer to the commands shown +in the FreeBSD section - these are essentially the same. + + +.. _cluster-configuration: + +Cluster Configuration +===================== + +A *Zeek Cluster* is a set of systems jointly analyzing the traffic of +a network link in a coordinated fashion. You can operate such a setup from +a central manager system easily using ZeekControl because it +hides much of the complexity of the multi-machine installation. + +This section gives examples of how to setup common cluster configurations +using ZeekControl. For a full reference on ZeekControl, see the +`ZeekControl documentation`_. + +Preparing to Setup a Cluster +---------------------------- + +We refer to the user account used to set up the cluster +as the "Zeek user". When setting up a cluster the Zeek user must be set up +on all hosts, and this user must have ssh access from the manager to all +machines in the cluster, and it must work without being prompted for a +password/passphrase (for example, using ssh public key authentication). +Also, on the worker nodes this user must have access to the target +network interface in promiscuous mode. + +Additional storage must be available on all hosts under the same path, +which we will call the cluster's prefix path. We refer to this directory +as ````. If you build Zeek from source, then ```` is +the directory specified with the ``--prefix`` configure option, +or ``/usr/local/zeek`` by default. The Zeek user must be able to either +create this directory or, where it already exists, must have write +permission inside this directory on all hosts. + +When trying to decide how to configure the Zeek nodes, keep in mind that +there can be multiple Zeek instances running on the same host. For example, +it's possible to run a proxy and the manager on the same host. However, it is +recommended to run workers on a different machine than the manager because +workers can consume a lot of CPU resources. The maximum recommended +number of workers to run on a machine should be one or two less than +the number of CPU cores available on that machine. Using a load-balancing +method (such as PF_RING) along with CPU pinning can decrease the load on +the worker machines. Also, in order to reduce the load on the manager +process, it is recommended to have a logger in your configuration. If a +logger is defined in your cluster configuration, then it will receive logs +instead of the manager process. + +Basic Cluster Configuration +--------------------------- + +With all prerequisites in place, perform the following steps to setup +a Zeek cluster (do this as the Zeek user on the manager host only): + +- Edit the ZeekControl configuration file, ``/etc/zeekctl.cfg``, + and change the value of any options to be more suitable for + your environment. You will most likely want to change the value of + the ``MailTo`` and ``LogRotationInterval`` options. A complete + reference of all ZeekControl options can be found in the + `ZeekControl documentation`_. + +- Edit the ZeekControl node configuration file, ``/etc/node.cfg`` + to define where logger, manager, proxies, and workers are to run. For a + cluster configuration, you must comment-out (or remove) the standalone node + in that file, and either uncomment or add node entries for each node + in your cluster (logger, manager, proxy, and workers). For example, if you + wanted to run five Zeek nodes (two workers, one proxy, a logger, and a + manager) on a cluster consisting of three machines, your cluster + configuration would look like this:: + + [logger] + type=logger + host=10.0.0.10 + + [manager] + type=manager + host=10.0.0.10 + + [proxy-1] + type=proxy + host=10.0.0.10 + + [worker-1] + type=worker + host=10.0.0.11 + interface=eth0 + + [worker-2] + type=worker + host=10.0.0.12 + interface=eth0 + + For a complete reference of all options that are allowed in the ``node.cfg`` + file, see the `ZeekControl documentation`_. + +- Edit the network configuration file ``/etc/networks.cfg``. This + file lists all of the networks which the cluster should consider as local + to the monitored environment. + +- Install Zeek on all machines in the cluster using ZeekControl:: + + > zeekctl install + +- See the `ZeekControl documentation`_ + for information on setting up a cron job on the manager host that can + monitor the cluster. + +AF_PACKET Cluster Configuration +------------------------------- + +Since version 5.2, Zeek includes AF_PACKET as a native packet source. This +provides an easy and efficient capture mechanism for Linux users. + +Adapt the worker section in ZeekControl's ``node.cfg`` file with the +following entries, assuming running four worker processes listening on ``eth0`` :: + + [worker-1] + type=worker + host=10.0.0.11 + interface=eth0 + lb_method=af_packet + lb_procs=4 + +The specific options are ``lb_method=af_packet`` and ``lb_procs=4``. +If listening on two or more interfaces on the same host is a requirement, +remember to set a unique ``fanout_id`` using the node option ``af_packet_fanout_id``:: + + [worker-1-eth0] + type=worker + host=10.0.0.11 + interface=eth0 + lb_method=af_packet + lb_procs=4 + af_packet_fanout_id=20 + + [worker-1-eth1] + type=worker + host=10.0.0.11 + interface=eth1 + lb_method=af_packet + lb_procs=4 + af_packet_fanout_id=21 + +Pinning the worker processes to individual CPU cores can improve performance. +Use the node's option ``pin_cpus=4,5,6,7``, listing as many CPU numbers as +processes at appropriate offsets. + +.. _pf-ring-config: + +PF_RING Cluster Configuration +----------------------------- + +`PF_RING `_ allows speeding up the +packet capture process by installing a new type of socket in Linux systems. +It supports 10Gbit hardware packet filtering using standard network adapters, +and user-space DNA (Direct NIC Access) for fast packet capture/transmission. + +.. note:: + + Unless you have evaluated to specifically require PF_RING, consider using + AF_PACKET first and test if it fulfills your requirements. AF_PACKET has + been integrated into Zeek since version 5.2. It's a bit easier to get + started with as it does not require an out of tree Linux kernel module. + +Head over to :ref:`cluster-pf-ring` for more details. + +.. toctree:: + :hidden: + + cluster/pf_ring + + +.. [#] Some Linux kernel versions between 3.10 and 4.7 might exhibit + a bug that prevents the required symmetric hashing. The script available + in the GitHub project `can-i-use-afpacket-fanout `_ + can be used to verify whether ``PACKET_FANOUT`` works as expected. + + This issue has been fixed in all stable kernels for at least 5 years. + You're unlikely to be affected. diff --git a/doc/cluster/pf_ring.rst b/doc/cluster/pf_ring.rst new file mode 100644 index 0000000000..aa124491c2 --- /dev/null +++ b/doc/cluster/pf_ring.rst @@ -0,0 +1,141 @@ +.. _cluster-pf-ring: + +=================== +PF_RING Setup Guide +=================== + +Installing PF_RING +****************** + +1. Download and install PF_RING for your system following the instructions + `here `_. The following + commands will install the PF_RING libraries and kernel module (replace + the version number 5.6.2 in this example with the version that you + downloaded):: + + cd /usr/src + tar xvzf PF_RING-5.6.2.tar.gz + cd PF_RING-5.6.2/userland/lib + ./configure --prefix=/opt/pfring + make install + + cd ../libpcap + ./configure --prefix=/opt/pfring + make install + + cd ../tcpdump-4.1.1 + ./configure --prefix=/opt/pfring + make install + + cd ../../kernel + make + make install + + modprobe pf_ring enable_tx_capture=0 min_num_slots=32768 + + Refer to the documentation for your Linux distribution on how to load the + pf_ring module at boot time. You will need to install the PF_RING + library files and kernel module on all of the workers in your cluster. + +2. Download the Zeek source code. + +3. Configure and install Zeek using the following commands:: + + ./configure --with-pcap=/opt/pfring + make + make install + +4. Make sure Zeek is correctly linked to the PF_RING libpcap libraries:: + + ldd /usr/local/zeek/bin/zeek | grep pcap + libpcap.so.1 => /opt/pfring/lib/libpcap.so.1 (0x00007fa6d7d24000) + +5. Configure ZeekControl to use PF_RING (explained below). + +6. Run "zeekctl install" on the manager. This command will install Zeek and + required scripts to all machines in your cluster. + +Using PF_RING +************* + +In order to use PF_RING, you need to specify the correct configuration +options for your worker nodes in ZeekControl's node configuration file. +Edit the ``node.cfg`` file and specify ``lb_method=pf_ring`` for each of +your worker nodes. Next, use the ``lb_procs`` node option to specify how +many Zeek processes you'd like that worker node to run, and optionally pin +those processes to certain CPU cores with the ``pin_cpus`` option (CPU +numbering starts at zero). The correct ``pin_cpus`` setting to use is +dependent on your CPU architecture (Intel and AMD systems enumerate +processors in different ways). Using the wrong ``pin_cpus`` setting +can cause poor performance. Here is what a worker node entry should +look like when using PF_RING and CPU pinning:: + + [worker-1] + type=worker + host=10.0.0.50 + interface=eth0 + lb_method=pf_ring + lb_procs=10 + pin_cpus=2,3,4,5,6,7,8,9,10,11 + + +Using PF_RING+DNA with symmetric RSS +************************************ + +You must have a PF_RING+DNA license in order to do this. You can sniff +each packet only once. + +1. Load the DNA NIC driver (i.e. ixgbe) on each worker host. + +2. Run "ethtool -L dna0 combined 10" (this will establish 10 RSS queues + on your NIC) on each worker host. You must make sure that you set the + number of RSS queues to the same as the number you specify for the + lb_procs option in the node.cfg file. + +3. On the manager, configure your worker(s) in node.cfg:: + + [worker-1] + type=worker + host=10.0.0.50 + interface=dna0 + lb_method=pf_ring + lb_procs=10 + + +Using PF_RING+DNA with pfdnacluster_master +****************************************** + +You must have a PF_RING+DNA license and a libzero license in order to do +this. You can load balance between multiple applications and sniff the +same packets multiple times with different tools. + +1. Load the DNA NIC driver (i.e. ixgbe) on each worker host. + +2. Run "ethtool -L dna0 1" (this will establish 1 RSS queues on your NIC) + on each worker host. + +3. Run the pfdnacluster_master command on each worker host. For example:: + + pfdnacluster_master -c 21 -i dna0 -n 10 + + Make sure that your cluster ID (21 in this example) matches the interface + name you specify in the node.cfg file. Also make sure that the number + of processes you're balancing across (10 in this example) matches + the lb_procs option in the node.cfg file. + +4. If you are load balancing to other processes, you can use the + pfringfirstappinstance variable in zeekctl.cfg to set the first + application instance that Zeek should use. For example, if you are running + pfdnacluster_master with "-n 10,4" you would set + pfringfirstappinstance=4. Unfortunately that's still a global setting + in zeekctl.cfg at the moment but we may change that to something you can + set in node.cfg eventually. + +5. On the manager, configure your worker(s) in node.cfg:: + + [worker-1] + type=worker + host=10.0.0.50 + interface=dnacluster:21 + lb_method=pf_ring + lb_procs=10 diff --git a/doc/components/index.rst b/doc/components/index.rst new file mode 100644 index 0000000000..45092f3baa --- /dev/null +++ b/doc/components/index.rst @@ -0,0 +1,33 @@ + +============= +Subcomponents +============= + +To find documentation for the various subcomponents of Zeek, see their +respective GitHub repositories or documentation: + +* `Spicy `__ + - C++ parser generator for dissecting protocols & files. +* `BinPAC `__ + - A protocol parser generator +* `ZeekControl `__ + - Interactive Zeek management shell +* `Zeek-Aux `__ + - Small auxiliary tools for Zeek +* `BTest `__ + - A system testing framework +* `Capstats `__ + - Command-line packet statistic tool +* `PySubnetTree `__ + - Python module for CIDR lookups +* `trace-summary `__ + - Script for generating break-downs of network traffic +* `Broker `__ + - Zeek's Messaging Library + - `(Docs) `__ +* `Package Manager `__ + - A package manager for Zeek + - `(Docs) `__ +* `Paraglob `__ + - A pattern matching data structure for Zeek. + - `(Docs) `__ diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000000..69de553ac5 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,305 @@ +# +# Zeek documentation build configuration file, created by sphinx-quickstart +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import os +import sys + +extensions = [] + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath("ext")) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions += [ + "zeek", + "sphinx.ext.todo", + "zeek_pygments", + "spicy-pygments", + "literal-emph", + "sphinx.ext.extlinks", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# The suffix of source filenames. +source_suffix = ".rst" + +# The encoding of source files. +# source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = "index" + +# General information about the project. +project = "Zeek" +copyright = "by the Zeek Project" + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +# + +version = "source" + +try: + # Use the actual Zeek version if available + with open("../VERSION") as f: + version = f.readline().strip() +except: + try: + import re + + import git + + repo = git.Repo(os.path.abspath(".")) + version = "git/master" + + version_tag_re = r"v\d+\.\d+(\.\d+)?" + version_tags = [ + t + for t in repo.tags + if t.commit == repo.head.commit and re.match(version_tag_re, str(t)) + ] + # Note: sorting by tag date doesn't necessarily give correct + # order in terms of version numbers, but doubtful that will ever be + # a problem (if we ever do re-tag an old version number on a given + # commit such that it is incorrectly found as the most recent version, + # we can just re-tag all the other version numbers on that same commit) + version_tags = sorted(version_tags, key=lambda t: t.tag.tagged_date) + + if version_tags: + version = str(version_tags[-1]) + + except: + pass + +# The full version, including alpha/beta/rc tags. +release = version + +# In terms of the actual hyperlink URL, a more ideal/stable way to reference +# source code on GitHub would be by commit hash, but that can be tricky to +# update in a way that produces stable Sphinx/reST configuration: don't want +# to update the commit-hash for every Zeek commit unless it actually produces +# new content, and also don't want to accidentally make it easy for people to +# insert unreachable commits when manually running +# `zeek/ci/update-zeekygen-docs.sh`. +# +# We only have a few versions of docs that actually matter: `master` and +# `release/.*`, and the tip of those branches will always be in sync with +# auto-generated content by simply having `zeek/ci/update-zeekygen-docs.sh` +# change this to `release/.*` when needed. +zeek_code_version = "master" +zeek_code_url = f"https://github.com/zeek/zeek/blob/{zeek_code_version}" + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = "%B %d, %Y" + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [".#*", "script-reference/autogenerated-*"] + +# The reST default role (used for this markup: `text`) to use for all documents. +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = True + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +highlight_language = "none" + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +html_theme = "sphinx_rtd_theme" + +# Set canonical URL from the Read the Docs Domain +html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "") + +# Tell Jinja2 templates the build is running on Read the Docs +if os.environ.get("READTHEDOCS", "") == "True": + if "html_context" not in globals(): + html_context = {} + html_context["READTHEDOCS"] = True + +html_last_updated_fmt = "%B %d, %Y" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "analytics_id": "UA-144186885-1", + "collapse_navigation": False, + "style_external_links": True, +} + +# Add any paths that contain custom themes here, relative to this directory. +# html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v Documentation". +html_title = f"Book of Zeek ({release})" + +# A shorter title for the navigation bar. Default is the same as html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = "images/zeek-logo-sidebar.png" + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = "images/zeek-favicon.ico" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + + +def setup(app): + app.add_css_file("theme_overrides.css") + from sphinx.highlighting import lexers + from zeek_pygments import ZeekLexer + + lexers["zeek"] = ZeekLexer() + app.add_config_value("zeek-code-url", zeek_code_url, "env") + + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = { +#'**': ['localtoc.html', 'sourcelink.html', 'searchbox.html'], +# } + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_domain_indices = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = "zeek-docs" + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +# latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +# latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ("index", "Zeek.tex", "Zeek Documentation", "The Zeek Project", "manual"), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# latex_use_parts = False + +# If true, show page references after internal links. +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +# latex_preamble = '' + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_domain_indices = True + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [("index", "zeek", "Zeek Documentation", ["The Zeek Project"], 1)] + +# -- Options for todo plugin -------------------------------------------- +todo_include_todos = True + +extlinks = { + "slacklink": ("https://zeek.org/slack%s", None), + "discourselink": ("https://community.zeek.org/%s", None), + "spicylink": ("https://docs.zeek.org/projects/spicy/en/latest/%s", None), +} +extlinks_detect_hardcoded_links = True diff --git a/doc/customizations.rst b/doc/customizations.rst new file mode 100644 index 0000000000..fc6b15e826 --- /dev/null +++ b/doc/customizations.rst @@ -0,0 +1,318 @@ +.. _popular-customizations: + +====================== +Popular Customizations +====================== + +This page outlines customizations and additions that are popular +among Zeek users. + +.. note:: + + This page lists externally-maintained Zeek packages. The Zeek team does not + provide support or maintenance for these packages. If you find bugs or have + feature requests, please reach out to the respective package maintainers directly. + + You may also post in the :slacklink:`Zeek Slack <>` #packages + channel or :discourselink:`forum <>` to get help from the broader + Zeek community. + + +Log Enrichment +============== + +Community ID +------------ + +.. versionadded:: 6.0 + +Zeek includes native `Community ID Flow Hashing`_ support. This functionality +has previously been provided through the `zeek-community-id`_ package. + +.. note:: + + At this point, the external `zeek-community-id`_ package is still + available to support Zeek deployments running older versions. However, + the scripts provided by the package cause conflicts with those provided in + Zeek 6.0 - do not load both. + +Loading the +:doc:`/scripts/policy/protocols/conn/community-id-logging.zeek` +and +:doc:`/scripts/policy/frameworks/notice/community-id.zeek` +scripts adds an additional ``community_id`` field to the +:zeek:see:`Conn::Info` and :zeek:see:`Notice::Info` record. + +.. code-block:: console + + $ zeek -r ./traces/get.trace protocols/conn/community-id-logging LogAscii::use_json=T + $ jq < conn.log + { + "ts": 1362692526.869344, + "uid": "CoqLmg1Ds5TE61szq1", + "id.orig_h": "141.142.228.5", + "id.orig_p": 59856, + "id.resp_h": "192.150.187.43", + "id.resp_p": 80, + "proto": "tcp", + ... + "community_id": "1:yvyB8h+3dnggTZW0UEITWCst97w=" + } + + +The Community ID Flow Hash of a :zeek:see:`conn_id` instance can be computed +with the :zeek:see:`community_id_v1` builtin function directly on the command-line +or used in custom scripts. + +.. code-block:: console + + $ zeek -e 'print community_id_v1([$orig_h=141.142.228.5, $orig_p=59856/tcp, $resp_h=192.150.187.43, $resp_p=80/tcp])' + 1:yvyB8h+3dnggTZW0UEITWCst97w= + +.. _Community ID Flow Hashing: https://github.com/corelight/community-id-spec +.. _zeek-community-id: https://github.com/corelight/zeek-community-id/>`_ + +.. _geolocation: + +Address geolocation and AS lookups +---------------------------------- + +.. _libmaxminddb: https://github.com/maxmind/libmaxminddb + +Zeek supports IP address geolocation as well as AS (autonomous system) +lookups. This requires two things: + + * Compilation of Zeek with the `libmaxminddb`_ library and development + headers. If you're using our :ref:`Docker images ` or + :ref:`binary packages `, there's nothing to do: they ship + with GeoIP support. + * Installation of corresponding MaxMind database files on your + system. + +To check whether your Zeek supports geolocation, run ``zeek-config --have-geoip`` +(available since Zeek 6.2) or simply try an address lookup. The following +indicates that your Zeek lacks support: + +.. code-block:: console + + $ zeek -e 'lookup_location(1.2.3.4)' + error in , line 1: Zeek was not configured for GeoIP support (lookup_location(1.2.3.4)) + +Read on for more details about building Zeek with GeoIP support, and how to +configure access to the database files. + +Building Zeek with libmaxminddb +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you build Zeek yourself, you need to install libmaxminddb prior to +configuring your build. + +* RPM/RedHat-based Linux: + + .. code-block:: console + + sudo yum install libmaxminddb-devel + +* DEB/Debian-based Linux: + + .. code-block:: console + + sudo apt-get install libmaxminddb-dev + +* FreeBSD: + + .. code-block:: console + + sudo pkg install libmaxminddb + +* Mac OS X: + + You need to install from your preferred package management system + (e.g. Homebrew, MacPorts, or Fink). For Homebrew, the name of the package + that you need is libmaxminddb. + +The ``configure`` script's output indicates whether it successfully located +libmaxminddb. If your system's MaxMind library resides in a non-standard path, +you may need to specify it via ``./configure --with-geoip=``. + +Installing and configuring GeoIP databases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +MaxMind's databases ship as individual files that you can `download +`_ from their +website after `signing up `_ for an +account. Some Linux distributions also offer free databases in their package +managers. + +There are three types of databases: city-level geolocation, country-level +geolocation, and mapping of IP addresses to autonomous systems (AS number and +organization). Download these and decide on a place to put them on your +file system. If you use automated tooling or system packages for the +installation, that path may be chosen for you, such as ``/usr/share/GeoIP``. + +Zeek provides three ways to configure access to the databases: + +* Specifying the path and filenames via script variables. Use the + :zeek:see:`mmdb_dir` variable, unset by default, to point to the directory + containing the database(s). By default Zeek looks for databases called + ``GeoLite2-City.mmdb``, ``GeoLite2-Country.mmdb``, and + ``GeoLite2-ASN.mmdb``. Starting with Zeek 6.2 you can adjust these names by + redefining the :zeek:see:`mmdb_city_db`, :zeek:see:`mmdb_country_db`, and + :zeek:see:`mmdb_asn_db` variables. +* Relying on Zeek's pre-configured search paths and filenames. The + :zeek:see:`mmdb_dir_fallbacks` variable contains default + search paths that Zeek will try in turn when :zeek:see:`mmdb_dir` is not + set. Prior to Zeek 6.2 these paths were hardcoded; they're now redefinable. + For geolocation, Zeek first attempts the city-level databases due to their + greater precision, and falls back to the city-level one. You can adjust the + database filenames via :zeek:see:`mmdb_city_db` and related variables, as + covered above. +* Opening databases explicitly via scripting. The + :zeek:see:`mmdb_open_location_db` and :zeek:see:`mmdb_open_asn_db` + functions take full paths to database files. Zeek only ever uses one + geolocation and one ASN database, and these loads override any databases + previously loaded. These loads can occur at any point. + +Querying the databases +^^^^^^^^^^^^^^^^^^^^^^ + +Two built-in functions provide GeoIP functionality: + +.. code-block:: zeek + + function lookup_location(a:addr): geo_location + function lookup_autonomous_system(a:addr): geo_autonomous_system + +:zeek:see:`lookup_location` returns a :zeek:see:`geo_location` record with +country/region/etc fields, while :zeek:see:`lookup_autonomous_system` returns a +:zeek:see:`geo_autonomous_system` record indicating the AS number and +organization. Depending on the queried IP address some fields may be +uninitialized, so you should guard access with an ``a?$b`` :ref:`existence test +`. + +Zeek tests the database files for staleness. If it detects that a database has +been updated, it will automatically reload it. Zeek does not automatically add +GeoIP intelligence to its logs, but several add-on scripts and packages provide +such functionality. These include: + +* The :ref:`notice framework ` lets you configure notice types + that you'd like to augment with location information. See + :zeek:see:`Notice::lookup_location_types` and + :zeek:see:`Notice::ACTION_ADD_GEODATA` for details. +* The :doc:`/scripts/policy/protocols/smtp/detect-suspicious-orig.zeek` and + :doc:`/scripts/policy/protocols/ssh/geo-data.zeek` policy scripts. +* Several `Zeek packages `_. + +Testing +^^^^^^^ + +Before using the GeoIP functionality it is a good idea to verify that +everything is setup correctly. You can quickly check if the GeoIP +functionality works by running commands like these: + +.. code-block:: console + + zeek -e "print lookup_location(8.8.8.8);" + +If you see an error message similar to "Failed to open GeoIP location database", +then your database configuration is broken. You may need to rename or move your +GeoIP database files. + +Example +^^^^^^^ + +The following shows every FTP connection from hosts in Ohio, US: + +.. code-block:: zeek + + event ftp_reply(c: connection, code: count, msg: string, cont_resp: bool) + { + local client = c$id$orig_h; + local loc = lookup_location(client); + + if (loc?$region && loc$region == "OH" && loc?$country_code && loc$country_code == "US") + { + local city = loc?$city ? loc$city : ""; + + print fmt("FTP Connection from:%s (%s,%s,%s)", client, city, + loc$region, loc$country_code); + } + } + + +Log Writers +=========== + +Kafka +----- + +For exporting logs to `Apache Kafka`_ in a streaming fashion, the externally-maintained +`zeek-kafka`_ package is a popular choice and easy to configure. It relies on `librdkafka`_. + +.. code-block:: zeek + + redef Log::default_writer = Log::WRITER_KAFKAWRITER; + + redef Kafka::kafka_conf += { + ["metadata.broker.list"] = "192.168.0.1:9092" + }; + +.. _Apache Kafka: https://kafka.apache.org/ +.. _zeek-kafka: https://github.com/SeisoLLC/zeek-kafka/ +.. _librdkafka: https://github.com/confluentinc/librdkafka + + +Logging +======= + +JSON Streaming Logs +------------------- + +The externally-maintained `json-streaming-logs`_ package tailors Zeek +for use with log shippers like `Filebeat`_ or `fluentd`_. It configures +additional log files prefixed with ``json_streaming_``, adds ``_path`` +and ``_write_ts`` fields to log records and configures log rotation +appropriately. + +If you do not use a logging archive and want to stream all logs away +from the system where Zeek is running without leveraging Kafka, this +package helps you with that. + +.. _json-streaming-logs: https://github.com/corelight/json-streaming-logs +.. _Filebeat: https://www.elastic.co/beats/filebeat +.. _fluentd: https://www.fluentd.org/ + + +Long Connections +---------------- + +Zeek logs connection entries into the :file:`conn.log` only upon termination +or due to expiration of inactivity timeouts. Depending on the protocol and +chosen timeout values this can significantly delay the appearance of a log +entry for a given connection. The delay may be up to an hour for lingering +SSH connections or connections where the final FIN or RST packets were missed. + +The `zeek-long-connections`_ package alleviates this by creating a :file:`conn_long.log` +log with the same format as :file:`conn.log`, but containing entries for connections +that have been existing for configurable intervals. +By default, the first entry for a connection is logged after 10mins. Depending on +the environment, this can be lowered as even a 10 minute delay may be significant +for detection purposes in streaming setup. + +.. _zeek-long-connections: https://github.com/corelight/zeek-long-connections + + +Profiling and Debugging +======================= + +jemalloc profiling +------------------ + +For investigation of memory leaks or state-growth issues within Zeek, +jemalloc's profiling is invaluable. A package providing a bit support +for configuring jemalloc's profiling facilities is `zeek-jemalloc-profiling`_. + +Some general information about memory profiling exists in the :ref:`Troubleshooting ` +section. + +.. _zeek-jemalloc-profiling: https://github.com/JustinAzoff/zeek-jemalloc-profiling diff --git a/doc/devel/cluster-backend-zeromq.rst b/doc/devel/cluster-backend-zeromq.rst new file mode 100644 index 0000000000..c07c523786 --- /dev/null +++ b/doc/devel/cluster-backend-zeromq.rst @@ -0,0 +1,120 @@ +.. _cluster_backend_zeromq: + +====================== +ZeroMQ Cluster Backend +====================== + +.. versionadded:: 7.1 + +*Experimental* + +Quickstart +========== + +To switch a Zeek cluster with a static cluster layout over to use ZeroMQ +as cluster backend, add the following snippet to ``local.zeek``: + +.. code-block:: zeek + + @load frameworks/cluster/backend/zeromq/connect + + +Note that the function :zeek:see:`Broker::publish` will be non-functional +and a warning emitted when used - use :zeek:see:`Cluster::publish` instead. + +By default, a configuration based on hard-coded endpoints and cluster layout +information is created. For more customization, refer to the module documentation +at :doc:`cluster/backend/zeromq/main.zeek `. + + +Architecture +============ + +Publish-Subscribe of Zeek Events +-------------------------------- + +The `ZeroMQ `_ based cluster backend uses a central +XPUB/XSUB broker for publish-subscribe functionality. Zeek events published +via :zeek:see:`Cluster::publish` are distributed by this central broker to +interested nodes. + +.. figure:: /images/cluster/zeromq-pubsub.png + + +As depicted in the figure above, each cluster node connects to the central +broker twice, once via its XPUB socket and once via its XSUB socket. This +results in two TCP connections from every cluster node to the central broker. +This setup allows every node in the cluster to see messages from all other +nodes, avoiding the need for cluster topology awareness. + +.. note:: + + Scalability of the central broker in production setups, but for small + clusters on a single node, may be fast enough. + +On a cluster node, the XPUB socket provides notifications about subscriptions +created by other nodes: For every subscription created by any node in +the cluster, the :zeek:see:`Cluster::Backend::ZeroMQ::subscription` event is +raised locally on every other node (unless another node had created the same +subscription previously). + +This mechanism is used to discover the existence of other cluster nodes by +matching the topics with the prefix for node specific subscriptions as produced +by :zeek:see:`Cluster::nodeid_topic`. + +As of now, the implementation of the central broker calls ZeroMQ's +``zmq::proxy()`` function to forward messages between the XPUB and +XSUB socket. + +While the diagram above indicates the central broker being deployed separately +from Zeek cluster nodes, by default the manager node will start and run this +broker using a separate thread. There's nothing that would prevent from running +a long running central broker independently from the Zeek cluster nodes, however. + +The serialization of Zeek events is done by the selected +:zeek:see:`Cluster::event_serializer` and is independent of ZeroMQ. +The central broker needs no knowledge about the chosen format, it is +only shuffling messages between nodes. + + +Logging +------- + +While remote events always pass through the central broker, nodes connect and +send log writes directly to logger nodes in a cluster. The ZeroMQ cluster backend +leverages ZeroMQ's pipeline pattern for this functionality. That is, logger nodes +(including the manager if configured using :zeek:see:`Cluster::manager_is_logger`) +open a ZeroMQ PULL socket to receive log writes. All other nodes connect their +PUSH socket to all available PULL sockets. These connections are separate from +the publish-subscribe setup outlined above. + +When sending log-writes over a PUSH socket, load balancing is done by ZeroMQ. +Individual cluster nodes do not have control over the decision which logger +node receives log writes at any given time. + +.. figure:: /images/cluster/zeromq-logging.png + +While the previous paragraph used "log writes", a single message to a logger +node actually contains a batch of log writes. The options :zeek:see:`Log::flush_interval` +and :zeek:see:`Log::write_buffer_size` control the frequency and maximum size +of these batches. + +The serialization format used to encode such batches is controlled by the +selected :zeek:see:`Cluster::log_serializer` and is independent of ZeroMQ. + +With the default serializer (:zeek:see:`Cluster::LOG_SERIALIZER_ZEEK_BIN_V1`), +every log batch on the wire has a header prepended that describes it. This allows +interpretation of log writes even by non-Zeek processes. This opens the possibility +to implement non-Zeek logger processes as long as the chosen serializer format +is understood by the receiving process. In the future, a JSON lines serialization +may be provided, allowing easier interpretation than a proprietary binary format. + + +Summary +------- + +Combining the diagrams above, the connections between the different socket +types in a Zeek cluster looks something like the following. + +.. figure:: /images/cluster/zeromq-cluster.png + diff --git a/doc/devel/contributors.rst b/doc/devel/contributors.rst new file mode 100644 index 0000000000..f1ec537a16 --- /dev/null +++ b/doc/devel/contributors.rst @@ -0,0 +1,111 @@ + +=================== +Contributor's Guide +=================== + +See below for selection of some of the more common contribution guidelines +maintained directly in `Zeek wiki +`_. + +General Contribution Process +============================ + +See https://github.com/zeek/zeek/wiki/Contribution-Guide + +Coding Style and Conventions +============================ + +See https://github.com/zeek/zeek/wiki/Coding-Style-and-Conventions + +General Documentation Structure/Process +======================================= + +See the :doc:`README ` file of https://github.com/zeek/zeek-docs + +Documentation Style and Conventions +=================================== + +See https://github.com/zeek/zeek/wiki/Documentation-Style-and-Conventions + +Checking for Memory Errors and Leaks +==================================== + +See https://github.com/zeek/zeek/wiki/Checking-for-Memory-Errors-and-Leaks + +Maintaining long-lived forks of Zeek +==================================== + +Consistent formatting of the Zeek codebase is enforced automatically by +configurations tracked in the repository. Upstream updates to these +configurations can lead to formatting changes which could cause merge conflicts +for long-lived forks. + +Currently the following configuration files in the root directory are used: + +- ``.pre-commit-config.yaml``: Configuration for `pre-commit `_. + We use pre-commit to manage and orchestrate formatters and linters. +- ``.clang-format``: Configuration for `clang-format + `_ for formatting C++ files. +- ``.style.yapf``: Configuration for `YAPF `_ + for formatting Python files. +- ``.cmake-format.json``: Configuration for `cmake-format + `_ for formatting CMake files. + +With these configuration files present ``pre-commit run --all-files`` will +install all needed formatters and reformat all files in the repository +according to the current configuration. + +.. rubric:: Workflow: Zeek ``master`` branch regularly merged into fork + +If Zeek's master branch is regularly merged into the fork, merge conflicts can +be resolved once and their resolution is tracked in the repository. Similarly, +we can explicitly reformat the fork once and then merge the upstream branch. + +.. code-block:: sh + + ## Get and stage latest versions of configuration files from master. + git checkout master -- .pre-commit-config.yaml .clang-format .style.yapf .cmake-format.json + + ## Reformat fork according to new configuration. + pre-commit run -a + + ## Record reformatted state of fork. + git add -u && git commit -m 'Reformat' + + # Merge in master, resolve merge conflicts as usual. + git merge master + +.. rubric:: Workflow: Fork regularly rebased onto Zeek ``master`` branch + +If the target for a rebase has been reformatted individual diff hunks might not +apply cleanly anymore. There are different approaches to work around that. The +approach with the least conflicts is likely to first reformat the fork +according to upstream style without pulling in changes, and only after that +rebase on upstream and resolve potential semantic conflicts. + +.. code-block:: sh + + # Create a commit updating the configuration files. + git checkout master -- .pre-commit-config.yaml .clang-format .style.yapf .cmake-format.json + git commit -m 'Bump formatter configurations' + + # With a fork branched from upstream at commit FORK_COMMIT, rebase the + # config update commit 'Bump formatter configurations' to the start of the + # fork, but do not yet rebase on master (interactively move the last patch + # to the start of the list of patches). + git rebase -i FORK_COMMIT + + # Reformat all commits according to configs at the base. We use the '--exec' + # flag of 'git rebase' to execute pre-commit after applying each patch. If + # 'git rebase' detects uncommitted changes it stops automatic progress so + # one can inspect and apply the changes. + git rebase -i FORK_COMMIT --exec 'pre-commit run --all-files' + # When this stops, inspect changes and stage them. + git add -u + # Continue rebasing. This prompts for a commit message and amends the last + # patch. + git rebase --continue + + # The fork is now formatted according to upstream style. Rebase on master, + # and drop the 'Bump formatter configurations' patch from the list of patches. + git rebase -i master diff --git a/doc/devel/index.rst b/doc/devel/index.rst new file mode 100644 index 0000000000..7ffe4baf86 --- /dev/null +++ b/doc/devel/index.rst @@ -0,0 +1,21 @@ + +================ +Developer Guides +================ + +In addition to documentation found or mentioned below, some developer-oriented +content is maintained directly in the `Zeek wiki +`_ due to the nature of +the content (e.g. the author finds it to be more dynamic, informal, meta, +transient, etc. compared to other documentation). + +.. toctree:: + :maxdepth: 2 + + plugins + spicy/index + websocket-api + Documentation Guide + contributors + maintainers + cluster-backend-zeromq diff --git a/doc/devel/maintainers.rst b/doc/devel/maintainers.rst new file mode 100644 index 0000000000..0bc179bcc9 --- /dev/null +++ b/doc/devel/maintainers.rst @@ -0,0 +1,13 @@ + +================== +Maintainer's Guide +================== + +Some notable guidelines for maintainers are linked below for convenience, but +they are generally maintained directly in the `Zeek wiki +`_. + +Release Process +=============== + +See https://github.com/zeek/zeek/wiki/Release-Process diff --git a/doc/devel/plugins.rst b/doc/devel/plugins.rst new file mode 100644 index 0000000000..5381c1ef24 --- /dev/null +++ b/doc/devel/plugins.rst @@ -0,0 +1,505 @@ +.. _zkg package manager: https://docs.zeek.org/projects/package-manager/en/stable/ + +.. _writing-plugins: + +=============== +Writing Plugins +=============== + +Zeek provides a plugin API that enables extending +the system dynamically, without modifying the core code base. That way, +custom code remains self-contained and can be maintained, compiled, +and installed independently. Currently, plugins can add the following +functionality to Zeek: + + - Zeek scripts. + + - Builtin functions/events/types for the scripting language. + + - Protocol analyzers. + + - File analyzers. + + - Packet sources and packet dumpers. + + - Logging framework backends. + + - Input framework readers. + +A plugin's functionality is available to the user just as if Zeek had +the corresponding code built-in. Indeed, internally many of Zeek's +pieces are structured as plugins as well, they are just statically +compiled into the binary rather than loaded dynamically at runtime. + +.. note:: + + Plugins and Zeek packages are related but separate concepts. Both extend + Zeek's functionality without modifying Zeek's source code. A plugin achieves + this via compiled, native code that Zeek links into its core at runtime. A Zeek + package, on the other hand, is a modular addition to Zeek, managed via the + `zkg package manager`_, that may or may not include a plugin. More commonly, + packages consist of script-layer additions to Zeek's functionality. Packages + also feature more elaborate metadata, enabling dependencies on other packages, + Zeek versions, etc. + +Quick Start +=========== + +Writing a basic plugin is quite straight-forward as long as one +follows a few conventions. In the following, we create a simple example +plugin that adds a new Built-In Function (BIF) to Zeek: we'll add +``rot13(s: string) : string``, a function that rotates every letter +in a string by 13 places. + +Generally, a plugin comes in the form of a directory following a +certain structure. To get started, Zeek's distribution provides a +helper script ``auxil/zeek-aux/plugin-support/init-plugin`` that creates +a skeleton plugin that can then be customized. Let's use that:: + + # init-plugin ./rot13-plugin Demo Rot13 + +As you can see, the script takes three arguments. The first is a +directory inside which the plugin skeleton will be created. The second +is the namespace the plugin will live in, and the third is a descriptive +name for the plugin itself relative to the namespace. Zeek uses the +combination of namespace and name to identify a plugin. The namespace +serves to avoid naming conflicts between plugins written by independent +developers; pick, e.g., the name of your organisation. The namespaces +``Bro`` (legacy) and ``Zeek`` are reserved for functionality distributed +by the Zeek Project. In +our example, the plugin will be called ``Demo::Rot13``. + +The ``init-plugin`` script puts a number of files in place. The full +layout is described later. For now, all we need is +``src/rot13.bif``. It's initially empty, but we'll add our new BIF +there as follows:: + + # cat src/rot13.bif + %%{ + #include + #include + #include "zeek/util.h" + #include "zeek/ZeekString.h" + #include "zeek/Val.h" + %%} + + module Demo; + + function rot13%(s: string%) : string + %{ + char* rot13 = util::copy_string(s->CheckString()); + + for ( char* p = rot13; *p; p++ ) + { + char b = islower(*p) ? 'a' : 'A'; + char d = *p - b + 13; + + if ( d >= 13 && d <= 38 ) + *p = d % 26 + b; + } + + zeek::String* zs = new zeek::String(1, reinterpret_cast(rot13), + strlen(rot13)); + return make_intrusive(zs); + %} + +The syntax of this file is just like any other ``*.bif`` file; we +won't go into it here. + +Now we are ready to compile our plugin. The configure script will just +need to be able to find the location of either a Zeek installation-tree or +a Zeek source-tree. + +When building a plugin against a Zeek installation-tree, simply have the +installation's associated ``zeek-config`` in your :envvar:`PATH` and the +configure script will detect it and use it to obtain all the information +it needs:: + + # which zeek-config + /usr/local/zeek/bin/zeek-config + # cd rot13-plugin + # ./configure && make + [... cmake output ...] + +When building a plugin against a Zeek source-tree (which itself needs +to have first been built), the configure script has to explicitly be +told its location:: + + # cd rot13-plugin + # ./configure --zeek-dist=/path/to/zeek/dist && make + [... cmake output ...] + +This builds the plugin in a subdirectory ``build/``. In fact, that +subdirectory *becomes* the plugin: when ``make`` finishes, ``build/`` +has everything it needs for Zeek to recognize it as a dynamic plugin. + +Let's try that. Once we point Zeek to the ``build/`` directory, it will +pull in our new plugin automatically, as we can check with the ``-N`` +option:: + + # export ZEEK_PLUGIN_PATH=/path/to/rot13-plugin/build + # zeek -N + [...] + Demo::Rot13 - (dynamic, version 0.1.0) + [...] + +That looks quite good, except for the dummy description that we should +replace with something nicer so that users will know what our plugin +is about. We do this by editing the ``config.description`` line in +``src/Plugin.cc``, like this:: + + [...] + plugin::Configuration Plugin::Configure() + { + plugin::Configuration config; + config.name = "Demo::Rot13"; + config.description = "Caesar cipher rotating a string's letters by 13 places."; + config.version.major = 0; + config.version.minor = 1; + config.version.patch = 0; + return config; + } + [...] + +Now rebuild and verify that the description is visible:: + + # make + [...] + # zeek -N | grep Rot13 + Demo::Rot13 - Caesar cipher rotating a string's letters by 13 places. (dynamic, version 0.1.0) + +Zeek can also show us what exactly the plugin provides with the +more verbose option ``-NN``:: + + # zeek -NN + [...] + Demo::Rot13 - Caesar cipher rotating a string's letters by 13 places. (dynamic, version 0.1.0) + [Function] Demo::rot13 + [...] + +There's our function. Now let's use it:: + + # zeek -e 'print Demo::rot13("Hello")' + Uryyb + +It works. We next install the plugin along with Zeek itself, so that it +will find it directly without needing the ``ZEEK_PLUGIN_PATH`` +environment variable. If we first unset the variable, the function +will no longer be available:: + + # unset ZEEK_PLUGIN_PATH + # zeek -e 'print Demo::rot13("Hello")' + error in , line 1: unknown identifier Demo::rot13, at or near "Demo::rot13" + +Once we install it, it works again:: + + # make install + # zeek -e 'print Demo::rot13("Hello")' + Uryyb + +The installed version went into +``/lib/zeek/plugins/Demo_Rot13``. + +One can distribute the plugin independently of Zeek for others to use. +To distribute in source form, just remove the ``build/`` directory +(``make distclean`` does that) and then tar up the whole ``rot13-plugin/`` +directory. Others then follow the same process as above after +unpacking. + +To distribute the plugin in binary form, the build process +conveniently creates a corresponding tarball in ``build/dist/``. In +this case, it's called ``Demo_Rot13-0.1.0.tar.gz``, with the version +number coming out of the ``VERSION`` file that ``init-plugin`` put +into place. The binary tarball has everything needed to run the +plugin, but no further source files. Optionally, one can include +further files by specifying them in the plugin's ``CMakeLists.txt`` +through the ``zeek_plugin_dist_files`` macro; the skeleton does that +for ``README``, ``VERSION``, ``CHANGES``, and ``COPYING``. To use the +plugin through the binary tarball, just unpack it into +``/lib/zeek/plugins/``. Alternatively, if you unpack +it in another location, then you need to point ``ZEEK_PLUGIN_PATH`` there. + +Before distributing your plugin, you should edit some of the meta +files that ``init-plugin`` puts in place. Edit ``README`` and +``VERSION``, and update ``CHANGES`` when you make changes. Also put a +license file in place as ``COPYING``; if BSD is fine, you will find a +template in ``COPYING.edit-me``. + +Plugin Directory Layout +======================= + +A plugin's directory needs to follow a set of conventions so that Zeek +(1) recognizes it as a plugin, and (2) knows what to load. While +``init-plugin`` takes care of most of this, the following is the full +story. We'll use ```` to represent a plugin's top-level +directory. With the skeleton, ```` corresponds to ``build/``. + +``/__zeek_plugin__`` + A file that marks a directory as containing a Zeek plugin. The file + must exist, and its content must consist of a single line with the + qualified name of the plugin (e.g., "Demo::Rot13"). + +``/lib/.-.so`` + The shared library containing the plugin's compiled code. Zeek will + load this in dynamically at run-time if OS and architecture match + the current platform. + +``scripts/`` + A directory with the plugin's custom Zeek scripts. When the plugin + gets activated, this directory will be automatically added to + ``ZEEKPATH``, so that any scripts/modules inside can be + "@load"ed. + +``scripts``/__load__.zeek + A Zeek script that will be loaded when the plugin gets activated. + When this script executes, any BIF elements that the plugin + defines will already be available. See below for more information + on activating plugins. + +``scripts``/__preload__.zeek + A Zeek script that will be loaded when the plugin gets activated, + but before any BIF elements become available. See below for more + information on activating plugins. + +``lib/bif/`` + Directory with auto-generated Zeek scripts that declare the plugin's + BIF elements. The files here are produced by ``bifcl``. + +Any other files in ```` are ignored by Zeek. + +By convention, a plugin should put its custom scripts into sub folders +of ``scripts/``, i.e., ``scripts///', + # format='html') + # signode += rawnode + + else: + signode += addnodes.desc_name("", sig) + + return sig + + +class ZeekNamespace(ZeekGeneric): + def add_target_and_index(self, name, sig, signode): + targetname = self.get_obj_name() + "-" + name + + if targetname not in self.state.document.ids: + signode["names"].append(targetname) + signode["ids"].append(targetname) + signode["first"] = not self.names + self.state.document.note_explicit_target(signode) + + objects = self.env.domaindata["zeek"]["objects"] + key = (self.get_obj_name(), name) + objects[key] = self.env.docname + self.update_type_map(name) + + indextext = self.get_index_text(name) + self.indexnode["entries"].append( + make_index_tuple("single", indextext, targetname, targetname) + ) + self.indexnode["entries"].append( + make_index_tuple("single", f"namespaces; {sig}", targetname, targetname) + ) + + def get_index_text(self, name): + return _("%s (namespace); %s") % (name, self.env.docname) + + def handle_signature(self, sig, signode): + signode += addnodes.desc_name("", sig) + return sig + + +class ZeekEnum(ZeekGeneric): + def add_target_and_index(self, name, sig, signode): + targetname = self.get_obj_name() + "-" + name + + if targetname not in self.state.document.ids: + self.process_signode(name, sig, signode, targetname) + + objects = self.env.domaindata["zeek"]["objects"] + key = (self.get_obj_name(), name) + objects[key] = self.env.docname + self.update_type_map(name) + + # indextext = self.get_index_text(name) + # self.indexnode['entries'].append(make_index_tuple('single', indextext, + # targetname, targetname)) + m = sig.split() + + if len(m) < 2: + logger.warning( + "%s: zeek:enum directive missing argument(s)", self.env.docname + ) + return + + if m[1] == "Notice::Type": + if "notices" not in self.env.domaindata["zeek"]: + self.env.domaindata["zeek"]["notices"] = [] + self.env.domaindata["zeek"]["notices"].append( + (m[0], self.env.docname, targetname) + ) + + self.indexnode["entries"].append( + make_index_tuple( + "single", f"{m[1]} (enum values); {m[0]}", targetname, targetname + ) + ) + + def handle_signature(self, sig, signode): + m = sig.split() + name = m[0] + signode += addnodes.desc_name("", name) + return name + + +class ZeekParamField(docfields.GroupedField): + has_arg = True + is_typed = True + + +class ZeekIdentifier(ZeekGeneric): + zeek_param_field = ZeekParamField("param", label="Parameters", can_collapse=True) + field_type_map = {"param": (zeek_param_field, False)} + + def get_index_text(self, name): + return name + + def get_field_type_map(self): + return self.field_type_map + + +class ZeekNative(ZeekGeneric): + def handle_signature(self, sig, signode): + # The run() method is overridden to drop signode anyway in favor of + # simply adding the index and a target nodes and leaving up + # to the .rst document to explicitly add things that need to + # be presented in the final rendering (e.g. a section header) + self.native_name = sig + return sig + + def process_signode(self, name, sig, signode, targetname): + pass + + def run(self): + ns = super().run() + index_node = ns[0] + + target_id = self.get_obj_name() + "-" + self.native_name + target_node = nodes.target("", "", ids=[target_id]) + self.state.document.note_explicit_target(target_node) + + # Replace the description node from Sphinx with a simple target node + return [index_node, target_node] + + +class ZeekKeyword(ZeekNative): + def get_index_text(self, name): + if name and name[0] == "@": + return _("%s (directive)") % (name) + else: + return _("%s (keyword)") % (name) + + +class ZeekAttribute(ZeekNative): + def get_index_text(self, name): + return _("%s (attribute)") % (name) + + +class ZeekType(ZeekGeneric): + """ + Put the type that's currently documented into env.ref_context + for usage with the ZeekField directive. + """ + + def before_content(self): + self.env.ref_context["zeek:type"] = self.arguments[0] + + def after_content(self): + self.env.ref_context.pop("zeek:type", None) + + +class ZeekField(ZeekGeneric): + def handle_signature(self, sig, signode): + """ + The signature for .. zeek:field: currently looks like the following: + + .. zeek:field:: ts :zeek:type:`time` :zeek:attr:`&log` :zeek:attr:`&optional` + """ + parts = sig.split(" ", 2) + name, type_str = parts[0:2] + record_type = self.env.ref_context["zeek:type"] + fullname = "$".join([record_type, name]) + attrs_str = "" + if len(parts) == 3: + attrs_str = parts[2] + + type_nodes, _ = self.state.inline_text(type_str, -1) + + signode += addnodes.desc_name(name, name) + signode += addnodes.desc_sig_punctuation("", ":") + signode += addnodes.desc_sig_space() + signode += type_nodes + + if attrs_str: + attr_nodes, _ = self.state.inline_text(attrs_str, -1) + signode += addnodes.desc_sig_space() + signode += attr_nodes + + signode["class"] = record_type + signode["fullname"] = fullname + + return fullname + + def run(self): + idx, signode = super().run() + + record_type = self.env.ref_context["zeek:type"] + + fields = self.env.domaindata["zeek"].setdefault("fields", {}) + rfields = fields.setdefault(record_type, collections.OrderedDict()) + rfields[signode[0]["fullname"]] = { + "idx": idx, + "signode": signode, + } + + return [] + + +class ZeekNativeType(ZeekNative): + def get_obj_name(self): + # As opposed to using 'native-type', just imitate 'type'. + return "type" + + +class ZeekFieldXRefRole(XRefRole): + def process_link(self, env, refnode, has_explicit_title, title, target): + title, target = super().process_link( + env, refnode, has_explicit_title, title, target + ) + + parts = title.split("$") + if len(parts) == 2 and parts[0] and parts[1]: + # If a field is in Type$field, form, strip Type. + title = parts[1] + + return title, target + + +class ZeekNotices(Index): + """ + Index subclass to provide the Zeek notices index. + """ + + name = "noticeindex" + localname = _("Zeek Notice Index") + shortname = _("notices") + + def generate(self, docnames=None): + content = {} + + if "notices" not in self.domain.env.domaindata["zeek"]: + return content, False + + for n in self.domain.env.domaindata["zeek"]["notices"]: + modname = n[0].split("::")[0] + entries = content.setdefault(modname, []) + entries.append([n[0], 0, n[1], n[2], "", "", ""]) + + content = sorted(content.items()) + + return content, False + + +class ZeekDomain(Domain): + """Zeek domain.""" + + name = "zeek" + label = "Zeek" + + object_types = { + "type": ObjType(_("type"), "type"), + "native-type": ObjType(_("type"), "type"), + "namespace": ObjType(_("namespace"), "namespace"), + "id": ObjType(_("id"), "id"), + "keyword": ObjType(_("keyword"), "keyword"), + "enum": ObjType(_("enum"), "enum"), + "attr": ObjType(_("attr"), "attr"), + "field": ObjType(_("field"), "field"), + } + + directives = { + "type": ZeekType, + "native-type": ZeekNativeType, + "namespace": ZeekNamespace, + "id": ZeekIdentifier, + "keyword": ZeekKeyword, + "enum": ZeekEnum, + "attr": ZeekAttribute, + "field": ZeekField, + } + + roles = { + "type": XRefRole(), + "namespace": XRefRole(), + "id": XRefRole(), + "keyword": XRefRole(), + "enum": XRefRole(), + "attr": XRefRole(), + "see": XRefRole(), + "field": ZeekFieldXRefRole(), + } + + indices = [ + ZeekNotices, + ] + + initial_data = { + "objects": {}, # fullname -> docname, objtype + } + + def clear_doc(self, docname): + to_delete = [] + + for (typ, name), doc in self.data["objects"].items(): + if doc == docname: + to_delete.append((typ, name)) + + for typ, name in to_delete: + del self.data["objects"][typ, name] + + def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode): + objects = self.data["objects"] + + if typ == "see": + if target not in self.data["idtypes"]: + logger.warning( + '%s: unknown target for ":zeek:see:`%s`"', fromdocname, target + ) + return [] + + objtype = self.data["idtypes"][target] + return make_refnode( + builder, + fromdocname, + objects[objtype, target], + objtype + "-" + target, + contnode, + target + " " + objtype, + ) + elif typ == "field" and "$" not in target: + # :zeek:field:`x` without a record type ends up just x, no ref. + return [] + else: + objtypes = self.objtypes_for_role(typ) + + for objtype in objtypes: + if (objtype, target) in objects: + return make_refnode( + builder, + fromdocname, + objects[objtype, target], + objtype + "-" + target, + contnode, + target + " " + objtype, + ) + else: + logger.warning( + '%s: unknown target for ":zeek:%s:`%s`"', + fromdocname, + typ, + target, + ) + + def get_objects(self): + for (typ, name), docname in self.data["objects"].items(): + yield name, name, typ, docname, typ + "-" + name, 1 + + def merge_domaindata(self, docnames, otherdata): + """ + Merge domaindata in multiprocess mode. + + I'm quite unclear how the objects dict works out okay in single + process mode. For example, the file_entropy() event is defined + in scripts/base/bif/plugins/Zeek_FileEntropy.events.bif.zeek.rst + *and* in script-reference/autogenerated-file-analyzer-index.rst. + The current documentation refers to the first one for :zeek:see:. + It seems in single process mode the reading sorts filenames and + just uses the last highest sorting one. That ends-up being the one + in scripts/base. + + In [4]: "script-reference/autogenerated" < "scripts/base" + Out[4]: True + + """ + for target, data in otherdata.items(): + if target == "version": + continue + elif hasattr(data, "items"): + target_data = self.env.domaindata["zeek"].setdefault(target, {}) + + # Iterate manually over the elements for debugging + for k, v in data.items(): + if k not in target_data: + target_data[k] = v + else: + # The > comparison below updates the objects domaindata + # to filenames that sort higher. See comment above. + if isinstance(v, str): + if v > target_data[k]: + target_data[k] = v + else: + # Otherwise assume it's a dict and we can merge + # using update() + target_data[k].update(v) + + elif hasattr(data, "extend"): + # notices are a list + target_data = self.env.domaindata["zeek"].setdefault(target, []) + target_data.extend(data) + else: + raise NotImplementedError(target, type(data)) diff --git a/doc/ext/zeek_pygments.py b/doc/ext/zeek_pygments.py new file mode 100644 index 0000000000..aaa9f449fe --- /dev/null +++ b/doc/ext/zeek_pygments.py @@ -0,0 +1,247 @@ +from pygments.lexer import RegexLexer, bygroups, include, words +from pygments.token import ( + Comment, + Keyword, + Literal, + Name, + Number, + Operator, + Punctuation, + String, + Text, +) + + +def setup(Sphinx): + return { + "parallel_read_safe": True, + } + + +class ZeekLexer(RegexLexer): + """ + For `Zeek `_ scripts. + + .. versionadded:: 2.5 + """ + + name = "Zeek" + aliases = ["zeek"] + filenames = ["*.zeek"] + + _hex = r"[0-9a-fA-F]" + _float = r"((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?" + _h = r"[A-Za-z0-9][-A-Za-z0-9]*" + + tokens = { + "root": [ + include("whitespace"), + include("comments"), + include("directives"), + include("attributes"), + include("types"), + include("keywords"), + include("literals"), + include("operators"), + include("punctuation"), + ( + r"\b((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(?=\s*\()", + Name.Function, + ), + include("identifiers"), + ], + "whitespace": [ + (r"\n", Text), + (r"\s+", Text), + (r"\\\n", Text), + ], + "comments": [ + (r"#.*$", Comment), + ], + "directives": [ + (r"(@(load-plugin|load-sigs|load|unload))\b.*$", Comment.Preproc), + ( + r"(@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif))\b", + Comment.Preproc, + ), + (r"(@prefixes)\s*(\+?=).*$", Comment.Preproc), + ], + "attributes": [ + ( + words( + ( + "redef", + "priority", + "log", + "optional", + "default", + "add_func", + "delete_func", + "expire_func", + "read_expire", + "write_expire", + "create_expire", + "synchronized", + "persistent", + "rotate_interval", + "rotate_size", + "encrypt", + "raw_output", + "mergeable", + "error_handler", + "broker_allow_complex_type", + "is_assigned", + "is_used", + "type_column", + "deprecated", + "on_change", + "backend", + "broker_store", + ), + prefix=r"&", + suffix=r"\b", + ), + Keyword.Pseudo, + ), + ], + "types": [ + ( + words( + ( + "any", + "enum", + "record", + "set", + "table", + "vector", + "function", + "hook", + "event", + "addr", + "bool", + "count", + "double", + "file", + "int", + "interval", + "pattern", + "port", + "string", + "subnet", + "time", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Type, + ), + ( + r"\b(opaque)(\s+)(of)(\s+)((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\b", + bygroups(Keyword.Type, Text, Operator.Word, Text, Keyword.Type), + ), + ( + r"\b(type)(\s+)((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(\s*)(:)(\s*)\b(record|enum)\b", + bygroups(Keyword, Text, Name.Class, Text, Operator, Text, Keyword.Type), + ), + ( + r"\b(type)(\s+)((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(\s*)(:)", + bygroups(Keyword, Text, Name, Text, Operator), + ), + ( + r"\b(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\b", + bygroups(Keyword, Text, Keyword.Type, Text, Name.Class), + ), + ], + "keywords": [ + ( + words( + ( + "redef", + "export", + "if", + "else", + "for", + "while", + "return", + "break", + "next", + "continue", + "fallthrough", + "switch", + "default", + "case", + "add", + "delete", + "copy", + "when", + "timeout", + "schedule", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + (r"\b(print)\b", Keyword), + (r"\b(global|local|const|option)\b", Keyword.Declaration), + ( + r"\b(module)(\s+)(([A-Za-z_][A-Za-z_0-9]*)(?:::([A-Za-z_][A-Za-z_0-9]*))*)\b", + bygroups(Keyword.Namespace, Text, Name.Namespace), + ), + ], + "literals": [ + (r'"', String, "string"), + # Not the greatest match for patterns, but generally helps + # disambiguate between start of a pattern and just a division + # operator. + (r"/(?=.*/)", String.Regex, "regex"), + (r"\b(T|F)\b", Keyword.Constant), + # Port + (r"\b\d{1,5}/(udp|tcp|icmp|unknown)\b", Number), + # IPv4 Address + ( + r"\b(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\b", + Number, + ), + # IPv6 Address (not 100% correct: that takes more effort) + ( + r"\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2}))?\]", + Number, + ), + # Numeric + (r"\b0[xX]" + _hex + r"+\b", Number.Hex), + (r"\b" + _float + r"\s*(day|hr|min|sec|msec|usec)s?\b", Literal.Date), + (r"\b" + _float + r"\b", Number.Float), + (r"\b(\d+)\b", Number.Integer), + # Hostnames + (_h + r"(\." + _h + r")+", String), + ], + "operators": [ + (r"[!%*/+<=>~|&^-]", Operator), + (r"([-+=&|]{2}|[+=!><-]=)", Operator), + (r"\b(in|as|is|of)\b", Operator.Word), + (r"\??\$", Operator), + # Technically, colons are often used for punctuation/separation. + # E.g. field name/type separation. + (r"[?:]", Operator), + ], + "punctuation": [ + (r"\?\$", Punctuation), + (r"[{}()\[\],;:.]", Punctuation), + ], + "identifiers": [ + (r"([a-zA-Z_]\w*)(::)", bygroups(Name, Punctuation)), + (r"[a-zA-Z_]\w*", Name), + ], + "string": [ + (r"\\.", String.Escape), + (r"%-?[0-9]*(\.[0-9]+)?[DTdxsefg]", String.Escape), + (r'"', String, "#pop"), + (r".", String), + ], + "regex": [ + (r"\\.", String.Escape), + (r"/", String.Regex, "#pop"), + (r".", String.Regex), + ], + } diff --git a/doc/frameworks/broker.rst b/doc/frameworks/broker.rst new file mode 100644 index 0000000000..a70b042e5a --- /dev/null +++ b/doc/frameworks/broker.rst @@ -0,0 +1,644 @@ +.. _CAF: https://github.com/actor-framework/actor-framework + +.. _broker-framework: + +============================== +Broker Communication Framework +============================== + +.. rst-class:: opening + + Zeek uses the `Broker Library + `_ to exchange information with + other Zeek processes. Broker itself uses CAF_ (C++ Actor Framework) + internally for connecting nodes and exchanging arbitrary data over + networks. Broker then introduces, on top of CAF, a topic-based + publish/subscribe communication pattern using a data model that is + compatible to Zeek's. Broker itself can be utilized outside the + context of Zeek, with Zeek itself making use of only a few predefined + Broker message formats that represent Zeek events, log entries, etc. + + In summary, the Zeek's Broker framework provides basic facilities for + connecting broker-enabled peers (e.g. Zeek instances) to each other + and exchanging messages (e.g. events and logs). + +Cluster Layout / API +==================== + +Layout / Topology +----------------- + +In a Zeek cluster setup, every Zeek process is assigned a cluster role. +Such a process is then called a Zeek node, a cluster node, or just named +after the role of the process (the manager, the loggers, ...). A basic Zeek +cluster uses four different node types, enumerated in the script-level +variable :zeek:see:`Cluster::NodeType`. + +- Manager +- Logger +- Worker +- Proxy + +In small Zeek deployments, all nodes may run on a single host. In large +Zeek deployments, nodes may be distributed across multiple physical +systems for scaling. + +Currently, a single Manager node in a Zeek cluster exists. Further, connectivity +between nodes is determined statically based on their type: + +- Every node connects to all loggers and the manager. + +- Each worker connects to all proxies. + + +.. figure:: broker/cluster-layout.png + +Some general suggestions as to the purpose/utilization of each node type: + +- Workers: are a good first choice for doing the brunt of any work you need + done. They should be spending a lot of time performing the actual job + of parsing/analyzing incoming data from packets, so you might choose + to look at them as doing a "first pass" analysis and then deciding how + the results should be shared with other nodes in the cluster. + +- Proxies: serve as intermediaries for data storage and work/calculation + offloading. Good for helping offload work or data in a scalable and + distributed way. Since any given worker is connected to all + proxies and can agree on an "arbitrary key -> proxy node" mapping + (more on that later), you can partition work or data amongst them in a + uniform manner. e.g. you might choose to use proxies as a method of + sharing non-persistent state or as a "second pass" analysis for any + work that you don't want interfering with the workers' capacity to + keep up with capturing and parsing packets. Note that the default scripts + that come with Zeek make minimal use of proxies, so if you are coming + from a previous ZeekControl deployment, you may want to try reducing down + to a single proxy node. If you come to have custom/community scripts + that utilize proxies, that would be the time to start considering scaling + up the number of proxies to meet demands. + +- Manager: this node will be good at performing decisions that require a + global view of things since it is in a centralized location, connected + to everything. However, that also makes it easy to overload, so try + to use it sparingly and only for tasks that must be done in a + centralized or authoritative location. Optionally, for some + deployments, the Manager can also serve as the sole Logger. + +- Loggers: these nodes should simply be spending their time writing out + logs to disk and not used for much else. In the default cluster + configuration, logs get distributed among available loggers in a + round-robin fashion, providing failover capability should any given + logger temporarily go offline. + +Data Management/Sharing Strategies +================================== + +There's maybe no single, best approach or pattern to use when you need a +Zeek script to store or share long-term state and data. The two +approaches that were previously used were either using the ``&synchronized`` +attribute on tables/sets or by explicitly sending events to specific +nodes on which you wanted data to be stored. The former is no longer +possible, though there are several new possibilities that the new +Broker/Cluster framework offer, namely distributed data store and data +partitioning APIs. + +Data Stores +----------- + +Broker provides a distributed key-value store interface with optional +choice of using a persistent backend. For more detail, see +:ref:`this example `. + +Some ideas/considerations/scenarios when deciding whether to use +a data store for your use-case: + +* If you need the full data set locally in order to achieve low-latency + queries using data store "clones" can provide that. + +* If you need data that persists across restarts of Zeek processes, then + data stores can also provide that. + +* If the data you want to store is complex (tables, sets, records) or + you expect to read, modify, and store back, then data stores may not + be able to provide simple, race-free methods of performing the pattern + of logic that you want. + +* If the data set you want to store is excessively large, that's still + problematic even for stores that use a persistent backend as they are + implemented in a way that requires a full snapshot of the store's + contents to fit in memory (this limitation may change in the future). + +Data Partitioning +----------------- + +New data partitioning strategies are available using the API in +:doc:`/scripts/base/frameworks/cluster/pools.zeek`. Using that API, developers +of custom Zeek scripts can define a custom pool of nodes that best fits the +needs of their script. + +One example strategy is to use Highest Random Weight (HRW) hashing to +partition data tables amongst the pool of all proxy nodes. e.g. using +:zeek:see:`Cluster::publish_hrw`. This could allow clusters to +be scaled more easily than the approach of "the entire data set gets +synchronized to all nodes" as the solution to memory limitations becomes +"just add another proxy node". It may also take away some of the +messaging load that used to be required to synchronize data sets across +all nodes. + +The tradeoff of this approach, is that nodes that leave the pool (due to +crashing, etc.) cause a temporary gap in the total data set until +workers start hashing keys to a new proxy node that is still alive, +causing data to now be located and updated there. + +If the developer of a script expects its workload to be particularly +intensive, wants to ensure that their operations get exclusive +access to nodes, or otherwise set constraints on the number of nodes within +a pool utilized by their script, then the :zeek:see:`Cluster::PoolSpec` +structure will allow them to do that while still allowing users of that script +to override the default suggestions made by the original developer. + +Broker Framework Examples +========================= + +The broker framework provides basic facilities for connecting Zeek instances +to each other and exchanging messages, like events or logs. + +See :doc:`/scripts/base/frameworks/broker/main.zeek` for an overview +of the main Broker API. + +.. _broker_topic_naming: + +Topic Naming Conventions +------------------------ + +All Broker-based messaging involves two components: the information you +want to send (e.g. an event w/ its arguments) along with an associated +topic name string. The topic strings are used as a filtering mechanism: +Broker uses a publish/subscribe communication pattern where peers +advertise interest in topic **prefixes** and only receive messages which +match one of their prefix subscriptions. + +Broker itself supports arbitrary topic strings, however Zeek generally +follows certain conventions in choosing these topics to help avoid +conflicts and generally make them easier to remember. + +As a reminder of how topic subscriptions work, subscribers advertise +interest in a topic **prefix** and then receive any messages published by a +peer to a topic name that starts with that prefix. E.g. Alice +subscribes to the "alice/dogs" prefix, then would receive the following +message topics published by Bob: + +- topic "alice/dogs/corgi" +- topic "alice/dogs" +- topic "alice/dogsarecool/oratleastilikethem" + +Alice would **not** receive the following message topics published by Bob: + +- topic "alice/cats/siamese" +- topic "alice/cats" +- topic "alice/dog" +- topic "alice" + +Note that the topics aren't required to form a slash-delimited hierarchy, +the subscription matching is purely a byte-per-byte prefix comparison. + +However, Zeek scripts generally will follow a topic naming hierarchy and +any given script will make the topic names it uses apparent via some +redef'able constant in its export section. Generally topics that Zeek +scripts use will be along the lines of :samp:`zeek/{}/{}` +with :samp:`{}` being the script's module name (in all-undercase). +For example, you might expect an imaginary ``Pretend`` framework to +publish/subscribe using topic names like ``zeek/pretend/my_cool_event``. +For scripts that use Broker as a means of cluster-aware analysis, +it's usually sufficient for them to make use of the topics declared +by the cluster framework. For scripts that are meant to establish +communication flows unrelated to Zeek cluster, new topics are declared +(examples being the NetControl and Control frameworks). + +For cluster operation, see :doc:`/scripts/base/frameworks/cluster/main.zeek` +for a list of topics that are useful for steering published events to +the various node classes. E.g. you have the ability to broadcast +to all nodes of a given class (e.g. just workers) or just send to a +specific node within a class. + +The topic names that logs get published under are a bit nuanced. In the +default cluster configuration, they are round-robin published to +explicit topic names that identify a single logger. In standalone Zeek +processes, logs get published to the topic indicated by +:zeek:see:`Broker::default_log_topic_prefix`. + +For those writing their own scripts which need new topic names, a +suggestion would be to avoid prefixing any new topics/prefixes with +``zeek/`` as any changes in scripts shipping with Zeek will use that prefix +and it's better to not risk unintended conflicts. Again, it's +often less confusing to just re-use existing topic names instead +of introducing new topic names. The typical use case is writing +a cluster-enabled script, which usually just needs to route events +based upon node classes, and that already has usable topics in the +cluster framework. + +Connecting to Peers +------------------- + +Zeek can accept incoming connections by calling :zeek:see:`Broker::listen`. + +.. literalinclude:: broker/connecting-listener.zeek + :caption: connecting-listener.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Zeek can initiate outgoing connections by calling :zeek:see:`Broker::peer`. + +.. literalinclude:: broker/connecting-connector.zeek + :caption: connecting-connector.zeek + :language: zeek + :linenos: + :tab-width: 4 + +In either case, connection status updates are monitored via the +:zeek:see:`Broker::peer_added` and :zeek:see:`Broker::peer_lost` events. + +Remote Events +------------- + +To receive remote events, you need to first subscribe to a "topic" to which +the events are being sent. A topic is just a string chosen by the sender, +and named in a way that helps organize events into various categories. +See the :ref:`topic naming conventions section ` for +more on how topics work and are chosen. + +Use the :zeek:see:`Broker::subscribe` function to subscribe to topics and +define any event handlers for events that peers will send. + +.. literalinclude:: broker/events-listener.zeek + :caption: events-listener.zeek + :language: zeek + :linenos: + :tab-width: 4 + +To send an event, call the :zeek:see:`Broker::publish` function which you can +supply directly with the event and its arguments or give it the return value of +:zeek:see:`Broker::make_event` in case you need to send the same event/args +multiple times. When publishing events like this, local event handlers for +the event are not called, even if a matching subscription exists. + +.. literalinclude:: broker/events-connector.zeek + :caption: events-connector.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Note that the subscription model is prefix-based, meaning that if you subscribe +to the ``zeek/events`` topic prefix you would receive events that are published +to topic names ``zeek/events/foo`` and ``zeek/events/bar`` but not +``zeek/misc``. + +.. note:: + + In prior Zeek versions, ``Broker::auto_publish`` was available to automatically + send events to peers whenever the events were called locally via the normal + event invocation syntax. When auto-publishing events, local event handlers for + the event were called in addition to sending the event to any subscribed peers. + + ``Broker::auto_publish`` was removed due to its + `implicit nature `_. + + +Remote Logging +-------------- + +.. literalinclude:: broker/testlog.zeek + :caption: testlog.zeek + :language: zeek + :linenos: + :tab-width: 4 + +To toggle remote logs, redef :zeek:see:`Log::enable_remote_logging`. +Use the :zeek:see:`Broker::subscribe` function to advertise interest +in logs written by peers. The topic names that Zeek uses are determined by +:zeek:see:`Broker::log_topic`. + +.. literalinclude:: broker/logs-listener.zeek + :caption: logs-listener.zeek + :language: zeek + :linenos: + :tab-width: 4 + +.. literalinclude:: broker/logs-connector.zeek + :caption: logs-connector.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Note that logging events are only raised locally on the node that performs +the :zeek:see:`Log::write` and not automatically published to peers. + +.. _data_store_example: + +Distributed Data Stores +----------------------- + +See :doc:`/scripts/base/frameworks/broker/store.zeek` for an overview +of the Broker data store API. + +There are two flavors of key-value data store interfaces: master and clone. + +A master data store can be cloned from remote peers which may then +perform lightweight, local queries against the clone, which +automatically stays synchronized with the master store. Clones cannot +modify their content directly, instead they send modifications to the +centralized master store which applies them and then broadcasts them to +all clones. + +Master stores get to choose what type of storage backend to +use. E.g. In-memory versus SQLite for persistence. + +Data stores also support expiration on a per-key basis using an amount of +time relative to the entry's last modification time. + +.. literalinclude:: broker/stores-listener.zeek + :caption: stores-listener.zeek + :language: zeek + :linenos: + :tab-width: 4 + +.. literalinclude:: broker/stores-connector.zeek + :caption: stores-connector.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Note that all data store queries must be made within Zeek's asynchronous +``when`` statements and must specify a timeout block. + + +SQLite Data Store Tuning +^^^^^^^^^^^^^^^^^^^^^^^^ + +When leveraging the SQLite backend for persistence, SQLite's default journaling +and consistency settings are used. Concretely, ``journal_mode`` is set to +``DELETE`` and ``synchronous`` to ``FULL``. This in turn is not optimal for +`high INSERT or UPDATE rates `_ +due to SQLite waiting for the required IO to complete until data is safely +on disk. This can also have a non-negligible system effect when the +SQLite database is located on the same device as other IO critical processes. + +Starting with Zeek 5.2, it is possible to tune and relax these settings by +providing an appropriate :zeek:see:`Broker::BackendOptions` and +:zeek:see:`Broker::SQLiteOptions` instance to +:zeek:see:`Broker::create_master`. The following example changes the +data store to use `Write-Ahead Logging `_ +which should perform significantly faster than the default. + + +.. literalinclude:: broker/store-sqlite-tuning.zeek + :caption: store-sqlite-tuning.zeek + :language: zeek + :linenos: + :tab-width: 4 + +If your use-case turns out to require more and lower-level tuning around +SQLite options, please get in contact or open a feature request on GitHub. + + +Cluster Framework Examples +========================== + +This section contains a few brief examples of how various communication +patterns one might use when developing Zeek scripts that are to operate in +the context of a cluster. + +.. _event-namespacing-pitfall: + +A Reminder About Events and Module Namespaces +--------------------------------------------- + +For simplicity, the following examples do not use any modules/namespaces. +If you choose to use them within your own code, it's important to +remember that the ``event`` and ``schedule`` dispatching statements +should always use the fully-qualified event name. + +For example, this will likely not work as expected: + +.. code-block:: zeek + + module MyModule; + + export { + global my_event: event(); + } + + event my_event() + { + print "got my event"; + } + + event zeek_init() + { + event my_event(); + schedule 10sec { my_event() }; + } + +This code runs without errors, however, the local ``my_event`` handler +will never be called and also not any remote handlers either. Instead, at +minimum you would need change the ``zeek_init()`` handler: + +.. code-block:: zeek + + event zeek_init() + { + event MyModule::my_event(); + schedule 10sec { MyModule::my_event() }; + } + +Though, an easy rule of thumb to remember would be to always use the +explicit module namespace scoping and you can't go wrong: + +.. code-block:: zeek + + module MyModule; + + export { + global MyModule::my_event: event(); + } + + event MyModule::my_event() + { + print "got my event"; + } + + event zeek_init() + { + event MyModule::my_event(); + schedule 10sec { MyModule::my_event() }; + } + +Event types that reside in the default namespace (such as :zeek:id:`zeek_init` or +:zeek:id:`connection_established`) require no qualification, even when scheduled from +inside a module. Don't force qualification of such events by prefixing with +``GLOBAL::``. + +Note that other identifiers in Zeek do not have this inconsistency +related to module namespacing, it's just events that require +explicitness. + +Manager Sending Events To Workers +--------------------------------- + +This is fairly straightforward, we just need a topic name which we know +all workers are subscribed combined with the event we want to send them. + +.. code-block:: zeek + + event manager_to_workers(s: string) + { + print "got event from manager", s; + } + + event some_event_handled_on_manager() + { + Broker::publish(Cluster::worker_topic, manager_to_workers, + "hello v0"); + + # If you know this event is only handled on the manager, you don't + # need any of the following conditions, they're just here as an + # example of how you can further discriminate based on node identity. + + # Can check based on the name of the node. + if ( Cluster::node == "manager" ) + Broker::publish(Cluster::worker_topic, manager_to_workers, + "hello v1"); + + # Can check based on the type of the node. + if ( Cluster::local_node_type() == Cluster::MANAGER ) + Broker::publish(Cluster::worker_topic, manager_to_workers, + "hello v2"); + + # The run-time overhead of the above conditions can even be + # eliminated by using the following conditional directives. + # It's evaluated once per node at parse-time and, if false, + # any code within is just ignored / treated as not existing at all. + @if ( Cluster::local_node_type() == Cluster::MANAGER ) + Broker::publish(Cluster::worker_topic, manager_to_workers, + "hello v3"); + @endif + } + +Worker Sending Events To Manager +-------------------------------- + +This should look almost identical to the previous case of sending an event +from the manager to workers, except it simply changes the topic name to +one which the manager is subscribed. + +.. code-block:: zeek + + event worker_to_manager(worker_name: string) + { + print "got event from worker", worker_name; + } + + event some_event_handled_on_worker() + { + Broker::publish(Cluster::manager_topic, worker_to_manager, + Cluster::node); + } + +Worker Sending Events To All Workers +------------------------------------ + +Since workers are not directly connected to each other in the cluster +topology, this type of communication is a bit different than what we +did before since we have to manually relay the event via some node that *is* +connected to all workers. The manager or a proxy satisfies that requirement: + +.. code-block:: zeek + + event worker_to_workers(worker_name: string) + { + @if ( Cluster::local_node_type() == Cluster::MANAGER || + Cluster::local_node_type() == Cluster::PROXY ) + Broker::publish(Cluster::worker_topic, worker_to_workers, + worker_name); + @else + print "got event from worker", worker_name; + @endif + } + + event some_event_handled_on_worker() + { + # We know the manager is connected to all workers, so we could + # choose to relay the event across it. + Broker::publish(Cluster::manager_topic, worker_to_workers, + Cluster::node + " (via manager)"); + + # We also know that any given proxy is connected to all workers, + # though now we have a choice of which proxy to use. If we + # want to distribute the work associated with relaying uniformly, + # we can use a round-robin strategy. The key used here is simply + # used by the cluster framework internally to keep track of + # which node is up next in the round-robin. + local pt = Cluster::rr_topic(Cluster::proxy_pool, "example_key"); + Broker::publish(pt, worker_to_workers, + Cluster::node + " (via a proxy)"); + } + +Worker Distributing Events Uniformly Across Proxies +--------------------------------------------------- + +If you want to offload some data/work from a worker to your proxies, +we can make use of a `Highest Random Weight (HRW) hashing +`_ distribution strategy +to uniformly map an arbitrary key space across all available proxies. + +.. code-block:: zeek + + event worker_to_proxies(worker_name: string) + { + print "got event from worker", worker_name; + } + + global my_counter = 0; + + event some_event_handled_on_worker() + { + # The key here is used to choose which proxy shall receive + # the event. Different keys may map to different nodes, but + # any given key always maps to the same node provided the + # pool of nodes remains consistent. If a proxy goes offline, + # that key maps to a different node until the original comes + # back up. + Cluster::publish_hrw(Cluster::proxy_pool, + cat("example_key", ++my_counter), + worker_to_proxies, Cluster::node); + } + +Broker-backed Zeek Tables for Data Synchronization and Persistence +================================================================== + +Starting with Zeek 3.2, it is possible to "bind" a Zeek table to a backing +Broker store. Changes to the Zeek table are sent to the Broker store. Similarly, +changes of the Broker store are applied to the Zeek table. + +This feature allows easy distribution of table contents across a cluster. +It also offers persistence for tables (when using a persistent Broker store +backend like SQLite). + +To give a short example, to distribute a table over a cluster you can use +the :zeek:attr:`&backend` attribute. + +.. code-block:: zeek + + global t: table[string] of count &backend=Broker::MEMORY; + +The :zeek:attr:`&backend` attribute creates a master data store on the +manager and a clone data store on all other node on the cluster. This +in essence means that the table exists twice in each Zeek process. One +copy of the table is contained in a Broker data store (either a master +or a clone depending on the node), which data store distributes the +data across the cluster---and, depending on the backend, might also +make the data persistent. Since Broker data stores are only accessible +via asynchronous operations, and accessing them might not always be +immediate, a second copy of the table, which is immediately +accessible, is held inside the Zeek core. This is the copy that you +see and interact with on the Zeek side. diff --git a/doc/frameworks/broker/cluster-layout.png b/doc/frameworks/broker/cluster-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..3813bfbfda1540c3bb31aaaaca3691f7a647a170 GIT binary patch literal 56499 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 XHcdB>Cni=N1RS@nBa8~JI=uKFHPWAd literal 0 HcmV?d00001 diff --git a/doc/frameworks/broker/cluster-layout.xml b/doc/frameworks/broker/cluster-layout.xml new file mode 100644 index 0000000000..4269c6723f --- /dev/null +++ b/doc/frameworks/broker/cluster-layout.xml @@ -0,0 +1,2 @@ + +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 \ No newline at end of file diff --git a/doc/frameworks/broker/connecting-connector.zeek b/doc/frameworks/broker/connecting-connector.zeek new file mode 100644 index 0000000000..f1f8cbf872 --- /dev/null +++ b/doc/frameworks/broker/connecting-connector.zeek @@ -0,0 +1,12 @@ +redef exit_only_after_terminate = T; + +event zeek_init() + { + Broker::peer("127.0.0.1"); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + terminate(); + } diff --git a/doc/frameworks/broker/connecting-listener.zeek b/doc/frameworks/broker/connecting-listener.zeek new file mode 100644 index 0000000000..7802229996 --- /dev/null +++ b/doc/frameworks/broker/connecting-listener.zeek @@ -0,0 +1,17 @@ +redef exit_only_after_terminate = T; + +event zeek_init() + { + Broker::listen("127.0.0.1"); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + } + +event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer lost", endpoint; + terminate(); + } diff --git a/doc/frameworks/broker/events-connector.zeek b/doc/frameworks/broker/events-connector.zeek new file mode 100644 index 0000000000..fb4bec92ef --- /dev/null +++ b/doc/frameworks/broker/events-connector.zeek @@ -0,0 +1,26 @@ +redef exit_only_after_terminate = T; +global my_event: event(msg: string, c: count); + +event zeek_init() + { + Broker::peer("127.0.0.1"); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + Broker::publish("zeek/event/my_event", my_event, "hi", 0); + Broker::publish("zeek/event/my_event", my_event, "...", 1); + local e = Broker::make_event(my_event, "bye", 2); + Broker::publish("zeek/event/my_event", e); + } + +event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) + { + terminate(); + } + +event my_event(msg: string, c: count) + { + print "got my_event", msg, c; + } diff --git a/doc/frameworks/broker/events-listener.zeek b/doc/frameworks/broker/events-listener.zeek new file mode 100644 index 0000000000..374dc5db11 --- /dev/null +++ b/doc/frameworks/broker/events-listener.zeek @@ -0,0 +1,24 @@ +redef exit_only_after_terminate = T; +global msg_count = 0; +global my_event: event(msg: string, c: count); +global my_auto_event: event(msg: string, c: count); + +event zeek_init() + { + Broker::subscribe("zeek/event/"); + Broker::listen("127.0.0.1"); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + } + +event my_event(msg: string, c: count) + { + ++msg_count; + print "got my_event", msg, c; + + if ( msg_count == 5 ) + terminate(); + } diff --git a/doc/frameworks/broker/logs-connector.zeek b/doc/frameworks/broker/logs-connector.zeek new file mode 100644 index 0000000000..47d912e294 --- /dev/null +++ b/doc/frameworks/broker/logs-connector.zeek @@ -0,0 +1,36 @@ +@load ./testlog + +redef exit_only_after_terminate = T; +global n = 0; + +event zeek_init() + { + Broker::peer("127.0.0.1"); + } + +event do_write() + { + if ( n == 6 ) + return; + + Log::write(Test::LOG, [$msg = "ping", $num = n]); + ++n; + event do_write(); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + event do_write(); + } + +event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) + { + terminate(); + } + +event Test::log_test(rec: Test::Info) + { + print "wrote log", rec; + Broker::publish("zeek/logs/forward/test", Test::log_test, rec); + } diff --git a/doc/frameworks/broker/logs-listener.zeek b/doc/frameworks/broker/logs-listener.zeek new file mode 100644 index 0000000000..654551b940 --- /dev/null +++ b/doc/frameworks/broker/logs-listener.zeek @@ -0,0 +1,22 @@ +@load ./testlog + +redef exit_only_after_terminate = T; + +event zeek_init() + { + Broker::subscribe("zeek/logs"); + Broker::listen("127.0.0.1"); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added", endpoint; + } + +event Test::log_test(rec: Test::Info) + { + print "got log event", rec; + + if ( rec$num == 5 ) + terminate(); + } diff --git a/doc/frameworks/broker/store-sqlite-tuning.zeek b/doc/frameworks/broker/store-sqlite-tuning.zeek new file mode 100644 index 0000000000..4c59456013 --- /dev/null +++ b/doc/frameworks/broker/store-sqlite-tuning.zeek @@ -0,0 +1,19 @@ +global h: opaque of Broker::Store; + +event zeek_init() + { + # Use WAL mode. + local sqlite_options=Broker::SQLiteOptions( + $synchronous=Broker::SQLITE_SYNCHRONOUS_NORMAL, + $journal_mode=Broker::SQLITE_JOURNAL_MODE_WAL, + ); + local options = Broker::BackendOptions($sqlite=sqlite_options); + h = Broker::create_master("persistent-store", Broker::SQLITE, options); + + local c = 1000; + while (c > 0) + { + Broker::put(h, cat(c), rand(10000)); + --c; + } + } diff --git a/doc/frameworks/broker/stores-connector.zeek b/doc/frameworks/broker/stores-connector.zeek new file mode 100644 index 0000000000..4c09d9b950 --- /dev/null +++ b/doc/frameworks/broker/stores-connector.zeek @@ -0,0 +1,29 @@ +redef exit_only_after_terminate = T; + +global h: opaque of Broker::Store; + +global ready: event(); + +event Broker::peer_lost(endpoint: Broker::EndpointInfo, msg: string) + { + terminate(); + } + +event zeek_init() + { + h = Broker::create_master("mystore"); + + local myset: set[string] = {"a", "b", "c"}; + local myvec: vector of string = {"alpha", "beta", "gamma"}; + Broker::put(h, "one", 110); + Broker::put(h, "two", 223); + Broker::put(h, "myset", myset); + Broker::put(h, "myvec", myvec); + Broker::increment(h, "one"); + Broker::decrement(h, "two"); + Broker::insert_into_set(h, "myset", "d"); + Broker::remove_from(h, "myset", "b"); + Broker::push(h, "myvec", "delta"); + + Broker::peer("127.0.0.1"); + } diff --git a/doc/frameworks/broker/stores-listener.zeek b/doc/frameworks/broker/stores-listener.zeek new file mode 100644 index 0000000000..059444226f --- /dev/null +++ b/doc/frameworks/broker/stores-listener.zeek @@ -0,0 +1,79 @@ +redef exit_only_after_terminate = T; + +global h: opaque of Broker::Store; +global expected_key_count = 4; +global key_count = 0; + +# Lookup a value in the store based on an arbitrary key string. +function do_lookup(key: string) + { + when ( local res = Broker::get(h, key) ) + { + ++key_count; + print "lookup", key, res; + + # End after we iterated over looking up each key in the store twice. + if ( key_count == expected_key_count * 2 ) + terminate(); + } + # All data store queries must specify a timeout + timeout 3sec + { print "timeout", key; } + } + +event check_keys() + { + # Here we just query for the list of keys in the store, and show how to + # look up each one's value. + when ( local res = Broker::keys(h) ) + { + print "clone keys", res; + + if ( res?$result ) + { + # Since we know that the keys we are storing are all strings, + # we can conveniently cast the result of Broker::keys to + # a native Bro type, namely 'set[string]'. + for ( k in res$result as string_set ) + do_lookup(k); + + # Alternatively, we can use a generic iterator to iterate + # over the results (which we know is of the 'set' type because + # that's what Broker::keys() always returns). If the keys + # we stored were not all of the same type, then you would + # likely want to use this method of inspecting the store's keys. + local i = Broker::set_iterator(res$result); + + while ( ! Broker::set_iterator_last(i) ) + { + do_lookup(Broker::set_iterator_value(i) as string); + Broker::set_iterator_next(i); + } + } + } + # All data store queries must specify a timeout. + # You also might see timeouts on connecting/initializing a clone since + # it hasn't had time to get fully set up yet. + timeout 1sec + { + print "timeout"; + schedule 1sec { check_keys() }; + } + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + print "peer added"; + # We could create a clone early, like in zeek_init and it will periodically + # try to synchronize with its master once it connects, however, we just + # create it now since we know the peer w/ the master store has just + # connected. + h = Broker::create_clone("mystore"); + + event check_keys(); + } + +event zeek_init() + { + Broker::listen("127.0.0.1"); + } diff --git a/doc/frameworks/broker/testlog.zeek b/doc/frameworks/broker/testlog.zeek new file mode 100644 index 0000000000..f52f177cf1 --- /dev/null +++ b/doc/frameworks/broker/testlog.zeek @@ -0,0 +1,17 @@ +module Test; + +export { + redef enum Log::ID += { LOG }; + + type Info: record { + msg: string &log; + num: count &log; + }; + + global log_test: event(rec: Test::Info); +} + +event zeek_init() &priority=5 + { + Log::create_stream(Test::LOG, [$columns=Test::Info, $ev=log_test, $path="test"]); + } diff --git a/doc/frameworks/cluster.rst b/doc/frameworks/cluster.rst new file mode 100644 index 0000000000..ed9766f45c --- /dev/null +++ b/doc/frameworks/cluster.rst @@ -0,0 +1,630 @@ + +.. _cluster-framework: + +================= +Cluster Framework +================= + +The basic premise of Zeek clusterization is to break down network traffic into +smaller pieces, while preserving the affinity of individual network sessions to +a single analysis process. Cluster architecture thus allows Zeek to distribute +that analysis across many dozens or hundreds of worker processes, allowing the +monitoring system to scale up to line speeds of 100G or more. + +.. figure:: /images/cluster-diagram.png + + Figure 1: Block diagram of cluster setup showing multiple network feeds to a + traffic aggregator. This device sends traffic to workers after symmetric + hashing/load-balancing. Traffic is then fed to the Zeek cluster using + load-balancing network cards. + +Zeek's Cluster Components +========================= + +By distributing network traffic across hosts and processes, overall traffic +finally reaches a volume that can be effectively analyzed by a single worker +process. Zeek then acts as a distributed network security monitor to perform +analysis across many dozens or hundreds of workers, all acting on a small +fraction of the overall traffic volume. The analysis of the worker process is +further facilitated by nodes such as manager and proxies, ultimately logging +the alerts and or relevant network logs. A Zeek cluster therefore consists of +four main components: a manager, workers, proxies, and a logger. + +Manager +------- + +The manager is a Zeek process that has two primary jobs. It normally receives +log messages and notices from the rest of the nodes in the cluster using the +Zeek communications protocol. It combines the individual logs that each worker +produces, so that the result is a set of joint logs instead of many discrete +logs that you would have to combine in some manner with post-processing. (Note +that if you use a separate logger node, then the logger receives all logs +instead of the manager.) The manager also supports other functionality and +analysis which requires a centralized, global view of events or data. + +Worker +------ + +The worker is the Zeek process that sniffs network traffic and does protocol +analysis on the reassembled traffic streams. Most of the work of an active +cluster takes place on the workers. Workers typically represent the bulk of the +Zeek processes that are running in a cluster. The fastest memory and CPU core +speed you can afford is recommended since all of the protocol parsing and most +analysis will take place here. There are no particular requirements for the +disks in workers since almost all logging is done remotely to the manager (or +dedicated logger). Normally, very little is written to disk. + +Proxy +----- + +A proxy is a Zeek process that may be used to offload data storage or any +arbitrary workload. A cluster may contain multiple proxy nodes. +Zeek's default scripts make only minimal use of proxies. +Custom scripts or third-party packages may exercise proxies more heavily +to partition data or workloads, providing greater cluster scalability potential. +The number of required proxy nodes in a cluster depends on the deployed scripts, +cluster size and traffic characteristics. For small clusters with four or less workers, +a single proxy node is usually sufficient. For larger clusters, you may want to +closely monitor :ref:`CPU and memory usage ` of proxy +nodes and increase their number as needed. + +Zeek processes acting as proxies don’t tend to be extremely hard on CPU or +memory, and users frequently run proxy processes on the same physical host as +the manager. + +Logger +------ + +A logger is an optional Zeek process that receives log messages from the rest +of the nodes in the cluster using the Zeek communications protocol. The purpose +of having a logger to receive logs instead of the manager is to reduce the load +on the manager. If no logger is needed, then the manager will receive logs +instead. + +Running a Zeek Cluster +====================== + +Zeek Cluster Setup +------------------ + +This :ref:`link ` describes the cluster setup in great +detail. + +General Usage and Deployment +---------------------------- + +The biggest advantage to using a Zeek cluster is that most of its inner +workings are transparent to the user. Clusterization is a clever trick to +divide-and-conquer ever increasing network traffic volume. + +As a practitioner one must know how to set up a cluster by defining components +such as the manager, proxies, loggers and workers in the +:samp:`{}/etc/node.cfg` file on the manager. + +Edit the ZeekControl node configuration file, :samp:`{}/etc/node.cfg`, +to define where the logger, manager, proxies, and workers will run. For a +cluster configuration, comment-out (or remove) the standalone node in that +file, and either uncomment or add node entries for each node in your cluster +(logger, manager, proxy, and workers). + +For example, to run five Zeek nodes (two workers, one proxy, a logger, and a +manager) on a cluster consisting of three machines, the cluster configuration +would look like this:: + + [logger] + type=logger + host=10.0.0.10 + + [manager] + type=manager + host=10.0.0.10 + + [proxy-1] + type=proxy + host=10.0.0.10 + + [worker-1] + type=worker + host=10.0.0.11 + interface=eth0 + + [worker-2] + type=worker + host=10.0.0.12 + interface=eth0 + + +To set up a cluster we need a network-aggregator/load balancing device which +can aggregate inputs from network sources, such as taps or span ports. This +device also performs the critical function of ensuring each TCP session is +distributed to a single link. This function is provided through symmetric +hashing. + +Once the tap aggregator is set, output from each port is sent to a “Zeek node” +which is typically built on commodity hardware. Zeek clusters have evolved from +running the manager, workers and proxies on individual servers, to most often +now running a “cluster-in-a-box” setup, where a powerful multi-core box with +dedicated cores hosts the workers, proxies logger and manager. We’ve seen +instances of 90 workers running on a single physical server. + +At present the preferred way to run a cluster is to use a load-balancing +network card such as Myricom NICs or Intel cards with PF_RING or AF_PACKET +support. The NIC (and associated software) further divides the traffic to +multiple Zeek worker processes running on the ‘Zeek- node’. + +While the Zeek cluster allows us to monitor traffic at scale, an optional +add-on technology called “shunting” is helpful to reduce the volume that needs +be processed.. Shunting can detect specific large data flows based on +predetermined characteristics and communicate with the network tap via an API +to stop sending those flows to Zeek for analysis. This allows Zeek to maintain +awareness and logs of these shunted large flows while dramatically reducing the +analysis load necessary to process traffic. + +The following links gives more specific information on how to set up +clusterization using one of the above approaches: :ref:`cluster-configuration`. + +Developing Scripts/Heuristics +============================= + +This section is for developers who are interested in writing +packages/scripts/heuristics and want to take advantage of clusterization. + +In order to make your scripts/packages “clusterized,” one must understand the +purpose of each of the cluster components (manager, workers, proxies and +logger) and how/where the data is generated and how to move data/information +across the different nodes in the cluster. + +* **Workers**: Workers are a good first choice for doing the brunt of any work. + They should be spending a lot of time parsing or analyzing incoming data from + packets. You might choose them to do a “first pass” analysis and then decide + how the results should be shared with other nodes in the cluster. + +* **Proxies**: Proxies serve as intermediaries for data storage and computation + offloading. Proxies help offload work or data in a scalable and distributed + way. Since any given worker is connected to all proxies and can agree on an + “arbitrary key -> proxy node” mapping (discussed later), you can partition + work or data amongst them in a uniform manner. You might choose to use + proxies as a method to share non-persistent state or as a “second pass” + analysis for any work that you don’t want interfering with the workers’ + capacity to keep up with capturing and parsing packets. The default scripts + that come with Zeek make minimal use of proxies. If you are migrating from a + previous ZeekControl deployment, you may want to implement a single proxy + node. If you have custom or community scripts that utilize proxies, + considering scaling up the number of proxies to meet demand. + +* **Manager**: A manager will make decisions that require a global view, as it + is in a centralized location and connected to everything. However, that + connectivity also makes it easy to overload it. Try to use a manager + sparingly and only for tasks that must be done in a centralized or + authoritative location. Optionally, for some deployments, the manager can + also serve as the sole logger. + +* **Loggers**: Loggers should simply write logs to disk. In the default cluster + configuration, log content gets distributed among available loggers in a + round-robin fashion, providing failover capability should any given logger + temporarily go offline. + +The Need to Move Data and Events Across Different Nodes +------------------------------------------------------- + +Imagine you have a list of IP addresses that you want to distribute across all +workers to keep in a watch list, such as the Intel framework. You may also want +to aggregate results across workers to see if that count crosses a threshold, +such as using scan detection. Finally, you might want to extract URLs from +emails and then redistribute the extracted URLs to all workers to be able to +find which of these extracted URLs got clicked on. All these examples tend to +introduce challenges in a Zeek cluster setup due to data centrality issues. In +other words, the very advantageous divide-and-conquer approach of +clusterization also introduces complexity in Zeek scripts. However, with the +introduction of the Broker communication framework and additional helper +functions, data centrality complexities can be addressed efficiently. One must +rely on clusterization techniques provided by Zeek scripting, the Broker API, +and clusterization components. + +When clustering your scripts, the fundamental work to move data or events in +the context of a cluster falls primarily on few high level abstractions of +communication patterns: + + 1. Manager-to-worker + 2. Worker-to-manager + 3. Worker-to-proxy + 4. Worker-to-manager-to-worker + 5. Manager-to-worker-to-manager + +All the communication between workers, proxies and manager is established by +Zeek via the Broker framework. The Broker framework provides basic facilities +for connecting Zeek instances to each other and exchanging messages, events or +data. + +Cluster Topics +-------------- + +All Broker-based messaging involves two components: the information you want to +send, such as an event with its arguments, along with an associated topic name +string. The topic strings are used as a filtering mechanism: Broker uses a +publish-subscribe communication pattern where peers advertise interest in topic +prefixes and only receive messages which match one of their prefix +subscriptions. Broker itself supports arbitrary topic strings. However, Zeek +generally follows certain conventions in choosing these topics to help avoid +conflicts and generally make them easier to remember. + +To communicate between workers, proxies and manager one needs to know the topic +name to which all workers, proxies and manager are subscribed to. These are: + + 1. :zeek:see:`Cluster::worker_topic` - to which all workers are subscribed + 2. :zeek:see:`Cluster::proxy_topic` - to which all proxies are subscribed + 3. :zeek:see:`Cluster::manager_topic` - to which manager is subscribed + + +The following table illustrates all the topics and communication events for +clusterization, along with potential use cases: + +.. list-table:: + :header-rows: 1 + + * - Event + - Topic + - Use cases + + * - Manager to worker + - :zeek:see:`Cluster::worker_topic` + - * Read input file on manager + * Distribute data and events from manager to workers + + * - Worker to manager + - :zeek:see:`Cluster::manager_topic` + - * Find characteristics of a “scan” eg. SYN-only pkts + * Send data to manager for aggregation + + * - Worker or manager to proxy + - :zeek:see:`Cluster::proxy_topic` + - * Run operation on all proxies + * Disseminate notice suppression + + * - Worker to manager to worker + - :zeek:see:`Cluster::manager_topic` + :zeek:see:`Cluster::worker_topic` + - * Find URLs in emails + * Send to manager + * Distribute to workers to check against HTTP GET requests + + * - Manager to worker to manager + - :zeek:see:`Cluster::worker_topic` + :zeek:see:`Cluster::manager_topic` + - * Read input file on manager + * Distribute data to workers + * Workers to report counts of connections to manager + * Aggregate the counts on manager + +Cluster Pools +------------- + +In addition to topics, Zeek nodes can join a :zeek:see:`Cluster::Pool`. +Using :zeek:see:`Cluster::publish_hrw` and :zeek:see:`Cluster::publish_rr`, +pools allow to publish events to individual proxies without prior knowledge +of a cluster's shape and size. + +A popular pool is the :zeek:see:`Cluster::proxy_pool`. It comprises all +the proxies of a cluster. Examples of its use are listed in the following table. + + +.. list-table:: + :header-rows: 1 + + * - Event + - Pool + - Use cases + + * - Workers to individual proxy processes + - :zeek:see:`Cluster::proxy_pool` + - * Aggregation based on Highest Random Weight (eg. DNS query types, see the :ref:`section below ` for details.) + * Aggregation of Software versions for a given host + * Offloading tasks in round-robin fashion across proxies + + +Publishing Events Across the Cluster +------------------------------------ + +Broker, as well as Zeek’s higher-level cluster framework, provide a set of +function to publish events, including: + +.. list-table:: + :header-rows: 1 + + * - Function + - Description + - Use + + * - :zeek:see:`Cluster::publish` + - Publishes an event at a given topic + - Standard function to send an event to all nodes subscribed to a given + topic. + + * - :zeek:see:`Cluster::publish_hrw` + - Publishes an event to a node within a pool according to + Highest Random Weight (HRW) hashing strategy; see details below + - Use this in cases of any aggregation needs - eg. scan detection or + anything that needs a counter going. + + * - :zeek:see:`Cluster::publish_rr` + - Publishes an event to a node within a pool according to Round-Robin + distribution strategy. + - Generally used inside Zeek for multiple logger nodes. + + * - :zeek:see:`Broker::publish` + - Publishes an event at a given topic + - Standard function to send an event to all nodes subscribed to a given + topic. + + Starting with Zeek 7.1, this function should only be used in + Broker-specific scripts. Use :zeek:see:`Cluster::publish` otherwise. + + +.. note:: + + The ``Cluster::publish`` function was added in Zeek 7.1. In contrast to + ``Broker:publish``, it publishes events even when a non-Broker cluster + backend is in use. Going forward, ``Cluster:publish`` should be preferred + over ``Broker::publish``, unless the script is specific to the Broker backend, + e.g. when interacting with an external application using native Python + bindings for Broker. + + +An example sending an event from worker to manager: + +.. code-block:: zeek + + event worker_to_manager(worker_name: string) + { + print "got event from worker", worker_name; + } + + event some_event_handled_on_worker() + { + Broker::publish(Cluster::manager_topic, worker_to_manager, + Cluster::node); + } + +More details and code snippets and documentation on Broker communication +frameworks are available at :ref:`broker-framework`. + + +.. _cluster-framework-proxies-uniform: + +Distributing Events Uniformly Across Proxies +-------------------------------------------- + +If you want to offload some data/work from a worker to your proxies, we can +make use of a `Highest Random Weight (HRW) hashing +`_ distribution strategy to +uniformly map an arbitrary key space across all available proxies through +:zeek:see:`Cluster::publish_hrw`. This function publishes an event to one node +within a pool according to a Highest Random Weight hashing strategy. By +assigning :zeek:see:`Cluster::proxy_pool` to this event, one can utilize +proxies to handle it. Note that :zeek:see:`Cluster::publish_hrw` requires a +unique key as an input to the hashing function to uniformly distribute keys +among available nodes. Often this key is a source or destination IP address. If +you are using :zeek:see:`Cluster::publish_hrw` for an aggregate function, such +as counts unique across the workers, make sure to appropriately select the +hashing key. + +The following example illustrates this issue. Assume that we are counting the +number of scanner IPs from each ``/24`` subnet. If the key were the source IP, +then depending on the hashing, different IP addresses from the same ``/24`` +might end up on different proxies for the aggregation function. In this case +one might instead want to use a more inclusive hashing key, such as the subnet +(``/24``) itself. To illustrate the issue, in the notice log below, you see +that 3 scanners each from ``52.100.165.0/24`` went to ``proxy-1`` and +``proxy-2``. Ideally we want a single count of 6 scanners instead. + +:: + + 1600212249.061779 Scan::Subnet 52.100.165.0/24 has 3 spf IPs originating from it 52.100.165.249 52.100.165.237 52.100.165.246 - 52.100.165.246 - - proxy-2 Notice::ACTION_LOG 3600.000000 F + + 1600212293.581745 Scan::Subnet 52.100.165.0/24 has 3 spf IPs originating from it 52.100.165.247 52.100.165.244 52.100.165.205 - 52.100.165.205 - - proxy-1 Notice::ACTION_LOG 3600.000000 + +Instead, we can ensure the hash key is ``52.100.165.0/24`` instead of the +original IP, as the hash for ``52.100.165.0/24`` will be the same for all +addresses belonging to this subnet. Then the data will reach only one proxy. +To that end, we can use the ``mask_address`` function to extract subnet +information for a given IP address to use as a key in the hash function: + +.. code-block:: zeek + + local spf = mask_address(orig); + + @if ( Cluster::is_enabled()) + Cluster::publish_hrw(Cluster::proxy_pool, spf, smtpsink::aggregate_stats, c) ; + @else + event smtpsink::aggregate_stats(c); + @endif + +Carefully select the key for :zeek:see:`Cluster::publish_hrw`. If done right, +this feature will bring tremendous benefits in code scalability, especially +when working with aggregate and threshold functions. + +.. note:: + + In scripting for clusterization, using the correct module names and + namespaces is crucial as both events and data are transmitted to different + systems. In order to make sure the contexts are correct, all functions, + events and datasets should be scoped within their respective namespaces and + modules. An easy rule of thumb is to always use the explicit module namespace + scoping. See :ref:`event-namespacing-pitfall` for further explanation and + examples. + +Clusterization of Zeek scripts can be an intimidating task for beginners. +However, with reliance on the new Broker framework, clusterization has become +simpler and straightforward. Consider the following: + +1. Communication overhead: Be sure not to generate unnecessary communication + overhead. For example, scan detection is one of the worst cases for + distributed analysis. One needs to count connections from a given IP address + across all workers and then aggregate them on a proxy or manager. All the + connections have to reach an aggregate function before Zeek can determine if + a given source is a scanner or not. This happens because each worker only + has a limited picture of the activity generated by a given remote IP. + +2. Communication optimizations: Once a given remote IP is identified as + desired, make sure a manager reports that to the worker, and workers stop + sending any further data for that IP to the manager. This is especially + useful in scan detection where it takes only a few connections to identify + scans, while a given scanner might send millions of probes eventually. If + done right, workers will only send the first N connections, and stop after + that, thus saving a lot of communication overheads. However, it makes sense + to stop workers from sending any further connection information + +3. Clusterization also requires timely state synchronization across the + workers, to make sure that all workers have a common view of a particular + heuristic. + +4. When writing scripts for clusterization make sure your detection runs in + both cluster and standalone setup. + +A Cluster Script Walkthrough +---------------------------- + +Let's say we want to count how many connections a remote IP is making to a host +in our network on port 3389 UDP. Due to the distributed nature of Zeek +clusters, connections are distributed across the workers based on a 5-tuple +hash (source IP, source port, destination IP, destination port, and protocol). +To get a central view of a connection between a given IP pair, one must deploy +a clusterized scripting approach. The following example highlights how to go +about doing so. + +In this use case, we intend to create an aggregation function. +:zeek:see:`Cluster::publish_hrw` appears to be the appropriate function, since +it allows offloading a lot of work to proxies, thus leaving workers and manager +to process traffic. + +In order to make sure all the connections between two hosts go to a single +specific proxy, we need to make sure the key for the hashing function +accommodates this constraint. We will use ``orig_h+resp_h`` as the key. We +create a new data-type called ``pair`` as seen in code below. This allows us +to use the ``orig+resp`` as a unique key across the code, including in the +candidate table. Further, we create a new data type called ``stats`` to keep +track of additional data associated with a connection pair. + +.. code-block:: zeek + + module DoS; + + export { + + redef enum Notice::Type += { + Threshold, + Victim_3389UDP, + }; + + type pair: record { + orig: addr; + resp: addr; + }; + + type stats: record { + orig: addr; + resp: addr ; + orig_bytes: count &default=0; + resp_bytes: count &default=0; + conns: count &default=0; + }; + + global dos_candidates: table [pair] of stats &create_expire=1 day; + + global DoS::aggregate_stats:event(s: stats); + } + +We choose the :zeek:see:`connection_state_remove` event as the primary event to +tap into. :zeek:see:`connection_state_remove` is generated when a connection’s +internal state is about to be removed from memory. It's appropriate for this +case, as all the information about the connection is now included in the +:zeek:see:`connection` record ``c``. One disadvantage of using +:zeek:see:`connection_state_remove` is that the event is fired at the very end +of the connection, after the expiration timeouts are over. Thus, there are +delays, and any operation which happens on the data is “after-the-fact” that +connection is over. While this could be a problem in approaches such as +proactive blocking and early detection heuristics, in this case of aggregation +it is not an issue. + +The thing to pay attention to in the code snippet below is the +:zeek:see:`@if`-:zeek:see:`@else`-:zeek:see:`@endif` directives which +differentiate between clusterized and standalone operation of the script. With +the :zeek:see:`@if` construct, the specified expression must evaluate to type +bool. If the value is true, then the following script lines (up to the next +:zeek:see:`@else` or :zeek:see:`@endif`) are available to be executed. In this +case we check if :zeek:see:`Cluster::is_enabled`. If so, we call +:zeek:see:`Cluster::publish_hrw` along with the key (``hash_pair``) and the +aggregate function followed by parameters, which is the stats record in this +case. If the cluster isn’t running that aggregate function, it is directly +called. + +.. code-block:: zeek + + event connection_state_remove(c: connection) + { + local service = c$id$resp_p; + local resp = c$id$resp_h; + + if ( service != 3389/udp ) + return; + + if ( resp !in Site::local_nets ) + return; + + local s: stats; + s$orig = c$id$orig_h; + s$resp = c$id$resp_h; + s$orig_bytes = c$conn$orig_ip_bytes; + s$resp_bytes = c$conn$resp_ip_bytes; + + local hash_pair: pair; + hash_pair$orig = c$id$orig_h; + hash_pair$resp = resp; + + @if ( Cluster::is_enabled() ) + Cluster::publish_hrw(Cluster::proxy_pool, hash_pair, DoS::aggregate_stats, s); + @else + event DoS::aggregate_stats(s); + @endif + } + +Since ``hash_pair`` makes the key unique, irrespective of what worker this +specific connection has gone to, it will end up on a one specific proxy only. + +.. code-block:: zeek + + event DoS::aggregate_stats(s: stats) + { + local p: pair ; + p$orig = s$orig; + p$resp = s$resp ; + + if ( p !in dos_candidates ) + { + local tmp_s: stats; + tmp_s$orig = s$orig; + tmp_s$resp = s$resp; + tmp_s$orig_bytes = 0; + tmp_s$resp_bytes= 0; + tmp_s$conns = 0; + + dos_candidates[p] = tmp_s; + } + + dos_candidates[p]$conns += 1; + dos_candidates[p]$orig_bytes += s$orig_bytes; + dos_candidates[p]$resp_bytes += s$resp_bytes; + + local n = dos_candidates[p]$conns; + + local thresh = check_ip_threshold(dos_threshold, ip_pair_threshold_idx, p, n); + + if ( thresh ) + { + local msg = fmt("%s pair has reached %s threshold %s", + p, n, dos_candidates[p]); + NOTICE([$note=DoS::Threshold, $src=p$orig, $msg=msg]); + + if ( dos_candidates[p]$resp_bytes > 0 ) + NOTICE([$note=DoS::Victim, $src=p$orig, $msg=msg, + $identifier=cat(p$resp), $suppress_for=1 hrs]); + } + } diff --git a/doc/frameworks/configuration.rst b/doc/frameworks/configuration.rst new file mode 100644 index 0000000000..91492b231b --- /dev/null +++ b/doc/frameworks/configuration.rst @@ -0,0 +1,356 @@ + +.. _framework-configuration: + +======================= +Configuration Framework +======================= + +Zeek includes a configuration framework that allows updating script options at +runtime. This functionality consists of an :zeek:see:`option` declaration in +the Zeek language, configuration files that enable changing the value of +options at runtime, option-change callbacks to process updates in your Zeek +scripts, a couple of script-level functions to manage config settings directly, +and a log file (:file:`config.log`) that contains information about every +option value change according to :zeek:see:`Config::Info`. + +Introduction +============ + +The configuration framework provides an alternative to using Zeek script +constants to store various Zeek settings. + +While traditional constants work well when a value is not expected to change at +runtime, they cannot be used for values that need to be modified occasionally. +While a :zeek:see:`redef` allows a re-definition of an already defined constant +in Zeek, these redefinitions can only be performed when Zeek first starts. +Afterwards, constants can no longer be modified. + +However, it is clearly desirable to be able to change at runtime many of the +configuration options that Zeek offers. Restarting Zeek can be time-consuming +and causes it to lose all connection state and knowledge that it accumulated. +Zeek’s configuration framework solves this problem. + +Declaring Options +================= + +The :zeek:see:`option` keyword allows variables to be declared as configuration +options: + +.. code-block:: zeek + + module Test; + + export { + option my_networks: set[subnet] = {}; + option enable_feature = F; + option hostname = "testsystem"; + option timeout_after = 1min; + option my_ports: vector of port = {}; + } + +Options combine aspects of global variables and constants. Like global +variables, options cannot be declared inside a function, hook, or event +handler. Like constants, options must be initialized when declared (the type +can often be inferred from the initializer but may need to be specified when +ambiguous). The value of an option can change at runtime, but options cannot be +assigned a new value using normal assignments. + +The initial value of an option can be redefined with a :zeek:see:`redef` +declaration just like for global variables and constants. However, there is no +need to specify the :zeek:see:`&redef` attribute in the declaration of an +option. For example, given the above option declarations, here are possible +redefs that work anyway: + +.. code-block:: zeek + + redef Test::enable_feature = T; + redef Test::my_networks += { 10.1.0.0/16, 10.2.0.0/16 }; + +Changing Options +================ + +The configuration framework facilitates reading in new option values from +external files at runtime. Configuration files contain a mapping between option +names and their values. Each line contains one option assignment, formatted as +follows:: + + [option name][tab/spaces][new value] + +Lines starting with ``#`` are comments and ignored. + +You register configuration files by adding them to +:zeek:see:`Config::config_files`, a set of filenames. Simply say something like +the following in :file:`local.zeek`: + +.. code-block:: zeek + + redef Config::config_files += { "/path/to/config.dat" }; + +Zeek will then monitor the specified file continuously for changes. For +example, editing a line containing:: + + Test::enable_feature T + +to the config file while Zeek is running will cause it to automatically update +the option’s value in the scripting layer. The next time your code accesses the +option, it will see the new value. + +.. note:: + + The config framework is clusterized. In a cluster configuration, only the + manager node watches the specified configuration files, and relays option + updates across the cluster. + +Config File Formatting +---------------------- + +The formatting of config option values in the config file is not the same as in +Zeek’s scripting language. Keep an eye on the :file:`reporter.log` for warnings +from the config reader in case of incorrectly formatted values, which it’ll +generally ignore when encountered. The following table summarizes supported +types and their value representations: + +.. list-table:: + :header-rows: 1 + + * - Data Type + - Sample Config File Entry + - Comments + + * - :zeek:see:`addr` + - ``1.2.3.4`` + - Plain IPv4 or IPv6 address, as in Zeek. No ``/32`` or similar netmasks. + + * - :zeek:see:`bool` + - ``T`` + - ``T`` or ``1`` for true, ``F`` or ``0`` for false + + * - :zeek:see:`count` + - ``42`` + - Plain, nonnegative integer. + + * - :zeek:see:`double` + - ``-42.5`` + - Plain double number. + + * - :zeek:see:`enum` + - ``Enum::FOO_A`` + - Plain enum string. + + * - :zeek:see:`int` + - ``-1`` + - Plain integer. + + * - :zeek:see:`interval` + - ``3600.0`` + - Always in epoch seconds, with optional fraction of seconds. Never + includes a time unit. + + * - :zeek:see:`pattern` + - ``/(foo|bar)/`` + - The regex pattern, within forward-slash characters. + + * - :zeek:see:`port` + - ``42/tcp`` + - Port number with protocol, as in Zeek. When the protocol part is missing, + Zeek interprets it as ``/unknown``. + + * - :zeek:see:`set` + - ``80/tcp,53/udp`` + - The set members, formatted as per their own type, separated by commas. + For an empty set, use an empty string: just follow the option name with + whitespace. + + Sets with multiple index types (e.g. ``set[addr,string]``) are currently + not supported in config files. + + * - :zeek:see:`string` + - ``Don’t bite, Zeek`` + - Plain string, no quotation marks. Given quotation marks become part of + the string. Everything after the whitespace separator delineating the + option name becomes the string. Saces and special characters are fine. + Backslash characters (e.g. ``\n``) have no special meaning. + + * - :zeek:see:`subnet` + - ``1.2.3.4/16`` + - Plain subnet, as in Zeek. + + * - :zeek:see:`time` + - ``1608164505.5`` + - Always in epoch seconds, with optional fraction of seconds. Never + includes a time unit. + + * - :zeek:see:`vector` + - ``1,2,3,4`` + - The set members, formatted as per their own type, separated by commas. + For an empty vector, use an empty string: just follow the option name + with whitespace. + +This leaves a few data types unsupported, notably tables and records. If you +require these, build up an instance of the corresponding type manually (perhaps +from a separate input framework file) and then call +:zeek:see:`Config::set_value` to update the option: + +.. code-block:: zeek + + module Test; + + export { + option host_port: table[addr] of port = {}; + } + + event zeek_init() { + local t: table[addr] of port = { [10.0.0.2] = 123/tcp }; + Config::set_value("Test::host_port", t); + } + + +Regardless of whether an option change is triggered by a config file or via +explicit :zeek:see:`Config::set_value` calls, Zeek always logs the change to +:file:`config.log`. A sample entry:: + + #fields ts id old_value new_value location + #types time string string string string + 1608167352.498872 Test::a_count 42 3 config.txt + +Mentioning options repeatedly in the config files leads to multiple update +events; the last entry “wins”. Mentioning options that do not correspond to +existing options in the script layer is safe, but triggers warnings in +:file:`reporter.log`:: + + warning: config.txt/Input::READER_CONFIG: Option 'an_unknown' does not exist. Ignoring line. + +Internally, the framework uses the Zeek input framework to learn about config +changes. If you inspect the configuration framework scripts, you will notice +that the scripts simply catch input framework events and call +:zeek:see:`Config::set_value` to set the relevant option to the new value. If +you want to change an option in your scripts at runtime, you can likewise call +:zeek:see:`Config::set_value` directly from a script (in a cluster +configuration, this only needs to happen on the manager, as the change will be +automatically sent to all other nodes in the cluster). + +.. note:: + + The input framework is usually very strict about the syntax of input files, but + that is not the case for configuration files. These require no header lines, + and both tabs and spaces are accepted as separators. A custom input reader, + specifically for reading config files, facilitates this. + +.. tip:: + + The gory details of option-parsing reside in ``Ascii::ParseValue()`` in + :file:`src/threading/formatters/Ascii.cc` and ``Value::ValueToVal`` in + :file:`src/threading/SerialTypes.cc` in the Zeek core. + +Change Handlers +=============== + +A change handler is a user-defined function that Zeek calls each time an option +value changes. This allows you to react programmatically to option changes. The +following example shows how to register a change handler for an option that has +a data type of :zeek:see:`addr` (for other data types, the return type and +second parameter data type must be adjusted accordingly): + +.. code-block:: zeek + + module Test; + + export { + option testaddr = 127.0.0.1; + } + + # Note: the data type of 2nd parameter and return type must match + function change_addr(id: string, new_value: addr): addr + { + print fmt("Value of %s changed from %s to %s", id, testaddr, new_value); + return new_value; + } + + event zeek_init() + { + Option::set_change_handler("Test::testaddr", change_addr); + } + +Immediately before Zeek changes the specified option value, it invokes any +registered change handlers. The value returned by the change handler is the +value Zeek assigns to the option. This allows, for example, checking of values +to reject invalid input (the original value can be returned to override the +change). + +.. note:: + + :zeek:see:`Option::set_change_handler` expects the name of the option to + invoke the change handler for, not the option itself. Also, that name + includes the module name, even when registering from within the module. + +It is possible to define multiple change handlers for a single option. In this +case, the change handlers are chained together: the value returned by the first +change handler is the “new value” seen by the next change handler, and so on. +The built-in function :zeek:see:`Option::set_change_handler` takes an optional +third argument that can specify a priority for the handlers. + +A change handler function can optionally have a third argument of type string. +When a config file triggers a change, then the third argument is the pathname +of the config file. When the :zeek:see:`Config::set_value` function triggers a +change, then the third argument of the change handler is the value passed to +the optional third argument of the :zeek:see:`Config::set_value` function. + +.. tip:: + + Change handlers are also used internally by the configuration framework. If + you look at the script-level source code of the config framework, you can see + that change handlers log the option changes to :file:`config.log`. + +When Change Handlers Trigger +---------------------------- + +Change handlers often implement logic that manages additional internal state. +For example, depending on a performance toggle option, you might initialize or +clean up a caching structure. In such scenarios you need to know exactly when +and whether a handler gets invoked. The following hold: + +* When no config files get registered in :zeek:see:`Config::config_files`, + change handlers do not run. +* When none of any registered config files exist on disk, change handlers do + not run. + +That is, change handlers are tied to config files, and don’t automatically run +with the option’s default values. + +* When a config file exists on disk at Zeek startup, change handlers run with + the file’s config values. +* When the config file contains the same value the option already defaults to, + its change handlers are invoked anyway. +* :zeek:see:`zeek_init` handlers run before any change handlers — i.e., they + run with the options’ default values. +* Since the config framework relies on the input framework, the input + framework’s inherent asynchrony applies: you can’t assume when exactly an + option change manifests in the code. + +If your change handler needs to run consistently at startup and when options +change, you can call the handler manually from :zeek:see:`zeek_init` when you +register it. That way, initialization code always runs for the option’s default +value, and also for any new values. + +.. code-block:: zeek + + module Test; + + export { + option use_cache = T; + } + + function use_cache_hdlr(id: string, new_value: bool): bool + { + if ( new_value ) { + # Ensure caching structures are set up properly + } + + return new_value; + } + + event zeek_init() + { + use_cache_hdlr("Test::use_cache", use_cache); + Option::set_change_handler("Test::use_cache", use_cache_hdlr); + } diff --git a/doc/frameworks/denylist.jsonl b/doc/frameworks/denylist.jsonl new file mode 100644 index 0000000000..1ea6a1851e --- /dev/null +++ b/doc/frameworks/denylist.jsonl @@ -0,0 +1,3 @@ +{"ip": "192.168.17.1", "timestamp": 1333252748, "reason": "Malware host"} +{"ip": "192.168.27.2", "timestamp": 1330235733, "reason": "Botnet server"} +{"ip": "192.168.250.3", "timestamp": 1333145108, "reason": "Virus detected"} diff --git a/doc/frameworks/file-analysis.rst b/doc/frameworks/file-analysis.rst new file mode 100644 index 0000000000..03f152af49 --- /dev/null +++ b/doc/frameworks/file-analysis.rst @@ -0,0 +1,283 @@ + +.. _file-analysis-framework: + +======================= +File Analysis Framework +======================= + +.. TODO: integrate BoZ revisions + +.. rst-class:: opening + + In the past, writing Zeek scripts with the intent of analyzing file + content could be cumbersome because of the fact that the content + would be presented in different ways, via events, at the + script-layer depending on which network protocol was involved in the + file transfer. Scripts written to analyze files over one protocol + would have to be copied and modified to fit other protocols. The + file analysis framework (FAF) instead provides a generalized + presentation of file-related information. The information regarding + the protocol involved in transporting a file over the network is + still available, but it no longer has to dictate how one organizes + their scripting logic to handle it. A goal of the FAF is to + provide analysis specifically for files that is analogous to the + analysis Zeek provides for network connections. + +Supported Protocols +=================== + +Zeek ships with file analysis for the following protocols: +:ref:`FTP `, +:ref:`HTTP `, +:ref:`IRC `, +:ref:`Kerberos `, +:ref:`MIME `, +:ref:`RDP `, +:ref:`SMTP `, and +:ref:`SSL/TLS/DTLS `. +Protocol analyzers are regular :ref:`Zeek plugins `, so users +are welcome to provide additional ones in separate Zeek packages. + +File Lifecycle Events +===================== + +The key events that may occur during the lifetime of a file are: +:zeek:see:`file_new`, :zeek:see:`file_over_new_connection`, +:zeek:see:`file_sniff`, :zeek:see:`file_timeout`, :zeek:see:`file_gap`, and +:zeek:see:`file_state_remove`. Handling any of these events provides +some information about the file such as which network +:zeek:see:`connection` and protocol are transporting the file, how many +bytes have been transferred so far, and its MIME type. + +Here's a simple example: + +.. literalinclude:: file_analysis_01.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -r http/get.trace file_analysis_01.zeek + file_state_remove + FakNcS1Jfe01uljb3 + CHhAvVGS1DHFjwGM9 + [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] + HTTP + connection_state_remove + CHhAvVGS1DHFjwGM9 + [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] + HTTP + +This doesn't perform any interesting analysis yet, but does highlight +the similarity between analysis of connections and files. Connections +are identified by the usual 5-tuple or a convenient UID string while +files are identified just by a string of the same format as the +connection UID. So there's unique ways to identify both files and +connections and files hold references to a connection (or connections) +that transported it. + +File Type Identification +======================== + +Zeek ships with its own library of content signatures to determine the type of a +file, conveyed as MIME types in the :zeek:see:`file_sniff` event. You can find +those signatures in the Zeek distribution's ``scripts/base/frameworks/files/magic/`` +directory. (Despite the name, Zeek does *not* rely on libmagic for content analysis.) + +Adding Analysis +=============== + +Zeek supports customized file analysis via *file analyzers* that users can +attach to observed files. You can attach analyzers selectively to individual +files, or register them for auto-attachment under certain conditions. Once +attached, file analyzers start receiving the contents of files as Zeek parses +them from ongoing network connections. + +Zeek comes with the following built-in analyzers: + + * :ref:`plugin-zeek-filedataevent` to access file content via + events (as data streams or content chunks), + * :ref:`plugin-zeek-fileentropy` to compute various entropy for a file, + * :ref:`plugin-zeek-fileextract` to extract files to disk, + * :ref:`plugin-zeek-filehash` to produce common hash values for files, + * :ref:`plugin-zeek-pe` to parse executables in PE format, and + * :ref:`plugin-zeek-x509` to extract information about x509 certificates. + +Like protocol parsers, file analyzers are regular :ref:`Zeek plugins +`. Users are free to contribute additional ones via Zeek +packages. + +Per-file analyzer registration +------------------------------ + +To attach an analyzer to a specific file, call :zeek:see:`Files::add_analyzer` +with the analyzer's component tag (such as :zeek:see:`Files::ANALYZER_MD5`; +consult the above analyzers for details). Some file analyzers support parameters +that you can provide to this function via a :zeek:see:`Files::AnalyzerArgs` +record, while others introduce additional event types and tunable script-layer +settings. + +You can add multiple analyzers to a file, and add the same analyzer type +multiple times, assuming you use varying :zeek:see:`Files::AnalyzerArgs` +parameterization. You may remove these selectively from files via calls to +:zeek:see:`Files::remove_analyzer`. You may also enable and disable file +analyzers globally by calling :zeek:see:`Files::enable_analyzer` and +:zeek:see:`Files::disable_analyzer`, respectively. + +Generic analyzer registration +----------------------------- + +The framework provides mechanisms for automatically attaching analyzers to +files. For example, the :zeek:see:`Files::register_for_mime_types` function +ensures that Zeek automatically attaches a given analyzer to all files of a +given MIME type. For fully customized auto-attachment logic take a look at +:zeek:see:`Files::register_analyzer_add_callback`, and refer to +:doc:`base/frameworks/files/main.zeek ` +for additional APIs and data structures. + +Regardless of which file analyzers end up acting on a file, general +information about the file (e.g. size, time of last data transferred, +MIME type, etc.) is logged in :file:`files.log`. + +Protocol-specific state +----------------------- + +Some protocol analyzers redefine the ``fa_file`` record to add additional +state. For example, ``base/protocols/http/entities.zeek``, which Zeek loads by +default as part of the HTTP analyzer, makes the transaction's +:zeek:see:`HTTP::Info` record available via ``f$http`` to provide HTTP +context. As always, make sure to test the presence of optional fields via the +``a?$b`` :ref:`record field operator ` before accessing +them. + +Examples +-------- + +File hashing +^^^^^^^^^^^^ + +The following script uses the MD5 file analyzer to calculate the hashes of plain +text files: + +.. literalinclude:: file_analysis_02.zeek + :caption: + :language: zeek + :tab-width: 4 + +.. code-block:: console + + $ zeek -r http/get.trace file_analysis_02.zeek + new file, FakNcS1Jfe01uljb3 + file_hash, FakNcS1Jfe01uljb3, md5, 397168fd09991a0e712254df7bc639ac + +File extraction +^^^^^^^^^^^^^^^ + +The following example sets up extraction of observed files to disk: + +.. code-block:: zeek + + global idx: count = 0; + + event file_new(f: fa_file) + { + Files::add_analyzer(f, Files::ANALYZER_EXTRACT, + [$extract_filename=fmt("file-%04d", ++idx)]); + } + +The file extraction analyzer now writes the content of each observed file to a +separate file on disk. The output file name results from concatenating the +:zeek:see:`FileExtract::prefix` (normally ``./extract_files/``) and the +enumerated ``file-NNNN`` strings. + +In a production setting you'll likely want to include additional information in +the output, for example from state attached to the provided file record. The +Zeek distribution ships with a starting point for such approaches: the +``policy/frameworks/files/extract-all-files.zeek`` script. For additional +configurability, take a look at the `file-extraction +`_ Zeek package. + +Script-level content analysis +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``FileDataEvent`` analyzer provides script-layer access to file content for +customized analysis. Since observed files can be very large, Zeek cannot buffer +these files and provide their entire content to the script layer once +complete. Instead, the ``FileDataEvent`` analyzer reflects the incremental +nature of file content as Zeek observes it, and supports two types of events to +allow you to process it: user-provided *stream events* receive new file content +as supplied by connection-oriented protocols, while *chunk events* receive +observed data as provided by protocols that do not feature stream semantics. + +The following example manually computes the SHA256 hash of each observed file by +building up hash state and feeding streamed file content into the hash +computation. When Zeek removes a file's state (because it has fully observed it, +or perhaps because its state is timing out), it prints the resulting hash to the +console: + +.. code-block:: zeek + + global hashstate: table[string] of opaque of sha256; + + event file_stream(f: fa_file, data: string) + { + if ( f$id !in hashstate ) + hashstate[f$id] = sha256_hash_init(); + + sha256_hash_update(hashstate[f$id], data); + } + + event file_new(f: fa_file) + { + Files::add_analyzer(f, Files::ANALYZER_DATA_EVENT, [$stream_event=file_stream]); + } + + event file_state_remove(f: fa_file) + { + if ( f$id in hashstate ) + { + print(sha256_hash_finish(hashstate[f$id])); + delete hashstate[f$id]; + } + } + +Be careful with this approach, as it can quickly prove expensive to route all +file content through the script layer. Make sure to add the analyzer only for +relevant files, and consider removing it via :zeek:see:`Files::remove_analyzer` +when you no longer require content analysis. For performance-critical +applications a new file analyzer plugin could be a better approach. + +Input Framework Integration +=========================== + +The FAF comes with a simple way to integrate with the :doc:`Input +Framework `, so that Zeek can analyze files from external sources +in the same way it analyzes files that it sees coming over traffic from +a network interface it's monitoring. It only requires a call to +:zeek:see:`Input::add_analysis`: + +.. literalinclude:: file_analysis_03.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +Note that the "source" field of :zeek:see:`fa_file` corresponds to the +"name" field of :zeek:see:`Input::AnalysisDescription` since that is what +the input framework uses to uniquely identify an input stream. + +Example output of the above script may be: + +.. code-block:: console + + $ echo "Hello world" > myfile + $ zeek file_analysis_03.zeek + new file, FZedLu4Ajcvge02jA8 + file_hash, FZedLu4Ajcvge02jA8, md5, f0ef7081e1539ac00ef5b761b4fb01b3 + file_state_remove + +Nothing that special, but it at least verifies the MD5 file analyzer +saw all the bytes of the input file and calculated the checksum +correctly! diff --git a/doc/frameworks/file_analysis_01.zeek b/doc/frameworks/file_analysis_01.zeek new file mode 100644 index 0000000000..a48f8184ad --- /dev/null +++ b/doc/frameworks/file_analysis_01.zeek @@ -0,0 +1,20 @@ +event connection_state_remove(c: connection) + { + print "connection_state_remove"; + print c$uid; + print c$id; + for ( s in c$service ) + print s; + } + +event file_state_remove(f: fa_file) + { + print "file_state_remove"; + print f$id; + for ( cid in f$conns ) + { + print f$conns[cid]$uid; + print cid; + } + print f$source; + } diff --git a/doc/frameworks/file_analysis_02.zeek b/doc/frameworks/file_analysis_02.zeek new file mode 100644 index 0000000000..fd4f0e775e --- /dev/null +++ b/doc/frameworks/file_analysis_02.zeek @@ -0,0 +1,12 @@ +event file_sniff(f: fa_file, meta: fa_metadata) + { + if ( ! meta?$mime_type ) return; + print "new file", f$id; + if ( meta$mime_type == "text/plain" ) + Files::add_analyzer(f, Files::ANALYZER_MD5); + } + +event file_hash(f: fa_file, kind: string, hash: string) + { + print "file_hash", f$id, kind, hash; + } diff --git a/doc/frameworks/file_analysis_03.zeek b/doc/frameworks/file_analysis_03.zeek new file mode 100644 index 0000000000..3f8aa35d31 --- /dev/null +++ b/doc/frameworks/file_analysis_03.zeek @@ -0,0 +1,25 @@ +redef exit_only_after_terminate = T; + +event file_new(f: fa_file) + { + print "new file", f$id; + Files::add_analyzer(f, Files::ANALYZER_MD5); + } + +event file_state_remove(f: fa_file) + { + print "file_state_remove"; + Input::remove(f$source); + terminate(); + } + +event file_hash(f: fa_file, kind: string, hash: string) + { + print "file_hash", f$id, kind, hash; + } + +event zeek_init() + { + local source: string = "./myfile"; + Input::add_analysis([$source=source, $name=source]); + } diff --git a/doc/frameworks/index.rst b/doc/frameworks/index.rst new file mode 100644 index 0000000000..a9ef76f884 --- /dev/null +++ b/doc/frameworks/index.rst @@ -0,0 +1,38 @@ + +========== +Frameworks +========== + +Zeek includes several software frameworks that provide commonly used +functionality to the scripting layer. Among other things, these frameworks +enhance Zeek’s ability to ingest data, structure and filter its outputs, adapt +settings at runtime, and interact with other components in your network. Most +frameworks include functionality implemented in Zeek’s core, with +corresponding data structures and APIs exposed to the script layer. + +Some frameworks target relatively specific use cases, while others run in +nearly every Zeek installation. The logging framework, for example, provides +the machinery behind all of the Zeek logs covered earlier. Frameworks also +build on each other, so it’s well worth knowing their capabilities. The next +sections cover them in detail. + +.. toctree:: + :maxdepth: 1 + + broker + cluster + configuration + file-analysis + input + intel + logging + management + netcontrol + notice + packet-analysis + signatures + storage + sumstats + supervisor + telemetry + tls-decryption diff --git a/doc/frameworks/input.rst b/doc/frameworks/input.rst new file mode 100644 index 0000000000..994eec01eb --- /dev/null +++ b/doc/frameworks/input.rst @@ -0,0 +1,640 @@ + +.. _framework-input: + +=============== +Input Framework +=============== + +Zeek features a flexible input framework that allows users to import arbitrary +data into Zeek. Data is either read into Zeek tables or directly converted to +events for scripts to handle as they see fit. A modular reader architecture +allows reading from files, databases, or other data sources. + +This chapter gives an overview of how to use the input framework, with +examples. For more complex scenarios take a look at the test cases in +:file:`testing/btest/scripts/base/frameworks/input/` in the Zeek distribution. + +.. note:: + + The input framework has no awareness of Zeek’s cluster architecture. Zeek + supports all of the mechanisms covered below on any cluster node. The config + and intelligence frameworks both leverage the input framework, adding logic + that applies the input framework on the manager node, distributing ingested + information across the cluster via events. + +Reading Data into Tables +======================== + +Probably the most interesting use-case of the input framework is to read data +into a Zeek table. By default, the input framework reads the data in the same +format as it is written by Zeek’s logging framework: a tab-separated ASCII +file. + +We will show the ways to read files into Zeek with a simple example. For this +example we assume that we want to import data from a denylist that contains +server IP addresses as well as the timestamp and the reason for the block. + +An example input file could look like this (note that all fields must be +tab-separated):: + + #fields ip timestamp reason + 192.168.17.1 1333252748 Malware host + 192.168.27.2 1330235733 Botnet server + 192.168.250.3 1333145108 Virus detected + +To read a file into a Zeek table, two record types have to be defined. One +contains the types and names of the columns that should constitute the table +keys, and the second contains the types and names of the columns that should +constitute the table values. + +In our case, we want to be able to look up IPs. Hence, our key record only +contains the server IP. All other elements should be stored as the table +content. + +.. code-block:: zeek + + type Idx: record { + ip: addr; + }; + + type Val: record { + timestamp: time; + reason: string; + }; + +Note that the names of the fields in the record definitions must correspond to +the column names listed in the ``#fields`` line of the input file, in this case +``ip``, ``timestamp``, and ``reason``. Also note that the ordering of the +columns does not matter, because each column is identified by name. + +The input file is read into the table with a call of the +:zeek:see:`Input::add_table` function: + +.. code-block:: zeek + + global denylist: table[addr] of Val = table(); + + event zeek_init() { + Input::add_table([$source="denylist.file", $name="denylist", + $idx=Idx, $val=Val, $destination=denylist]); + Input::remove("denylist"); + } + +With these three lines we first create an empty table that should receive the +denylist data and then instruct the input framework to open an input stream +named “denylist” to read the data into the table. The third line removes the +input stream again, because we do not need it any more after the data has been +read. + +Note that while the key and content records may use :zeek:attr:`&optional` +fields, omitting columns (usually via the "-" character) requires care. Since +the key record's columns expand into a list of values for indexing into the +receiving table (note how in the above example ``denylist`` is indexed via a +plain ``addr``) and all of those values must be present for indexing, you cannot +in practice omit these values. For content records, omitting is meaningful, but +only permitted for columns with the :zeek:attr:`&optional` attribute. The +framework skips offending input lines with a warning. + +.. note:: + + Prior to version 4.1 Zeek accepted such inputs, unsafely. When transitioning + from such versions to Zeek 4.1 or newer, users with omitted fields in their + input data may observe discrepancies in the loaded data sets. + +Asynchronous processing +----------------------- + +Since some data files might be rather large, the input framework works +asynchronously. A new thread is created for each new input stream. This thread +opens the input data file, converts the data into an internal format and sends +it back to the main Zeek thread. Because of this, the data is not immediately +accessible. Depending on the size of the data source it might take from a few +milliseconds up to a few seconds until all data is present in the table. Please +note that this means that when Zeek is running without an input source or on +very short captured files, it might terminate before the data is present in the +table (because Zeek already handled all packets before the import thread +finished). + +Subsequent calls to an input source are queued until the previous action has +been completed. Because of this it is, for example, possible to call +:zeek:see:`Input::add_table` and :zeek:see:`Input::remove` in two subsequent +lines: the remove action will remain queued until the first read has been +completed. + +Once the input framework finishes reading from a data source, it fires the +:zeek:see:`Input::end_of_data` event. Once this event has been received all +data from the input file is available in the table. + +.. code-block:: zeek + + event Input::end_of_data(name: string, source: string) { + # now all data is in the table + print denylist; + } + +The table can be used while the data is still being read — it just might not +contain all lines from the input file before the event has fired. After the +table has been populated it can be used like any other Zeek table and denylist +entries can easily be tested: + +.. code-block:: zeek + + if ( 192.168.18.12 in denylist ) + # take action + + +Sets instead of tables +---------------------- + +For some use cases the key/value notion that drives tabular data does not +apply, for example when the main purpose of the data is to test for membership +in a set. The input framework supports this approach by using sets as the +destination data type, and omitting ``$val`` in :zeek:see:`Input::add_table`: + +.. code-block:: zeek + + type Idx: record { + ip: addr; + }; + + global denylist: set[addr] = set(); + + event zeek_init() { + Input::add_table([$source="denylist.file", $name="denylist", + $idx=Idx, $destination=denylist]); + Input::remove("denylist"); + } + +Re-reading and streaming data +----------------------------- + +For some data sources (such as many denylists), the input data changes +continually. The input framework supports additional techniques to manage such +ever-changing input. + +The first, very basic method is an explicit refresh of an input stream. When an +input stream is open (meaning it has not yet been removed by a call to +:zeek:see:`Input::remove`), the function :zeek:see:`Input::force_update` can be +called. This will trigger a complete refresh of the table: any changed elements +from the file will be updated, new ones added, and any elements no longer in +the input data get removed. After the update is finished the +:zeek:see:`Input::end_of_data` event will be raised. + +In our example the call would look as follows: + +.. code-block:: zeek + + Input::force_update("denylist"); + +Alternatively, the input framework can automatically refresh the table contents +when it detects a change to the input file. To use this feature you need to +specify a non-default read mode by setting the mode option of the +:zeek:see:`Input::add_table` call. Valid values are :zeek:see:`Input::MANUAL` +(the default), :zeek:see:`Input::REREAD`, and :zeek:see:`Input::STREAM`. For +example, setting the value of the mode option in the previous example would +look like this: + +.. code-block:: zeek + + Input::add_table([$source="denylist.file", $name="denylist", + $idx=Idx, $val=Val, $destination=denylist, + $mode=Input::REREAD]); + +When using the reread mode (i.e., ``$mode=Input::REREAD``), Zeek continually +checks if the input file has been changed. If the file has been changed, it is +re-read and the data in the Zeek table is updated to reflect the current state. +Each time a change has been detected and all the new data has been read into +the table, the :zeek:see:`Input::end_of_data` event is raised. + +When using the streaming mode (i.e., ``$mode=Input::STREAM``), Zeek +assumes that the input is an append-only file to which new data is +continually appended. Zeek also checks to see if the file being +followed has been renamed or rotated. The file is closed and reopened +when tail detects that the filename being read from has a new inode +number. Zeek continually checks for new data at the end of the file +and will add the new data to the table. If newer lines in the file +have the same table index as previous lines, they will overwrite +the values in the output table. Because of the nature of streaming +reads (data is continually added to the table), the +:zeek:see:`Input::end_of_data` event is never raised when using +streaming reads. + +.. tip:: + + Change detection happens via periodic “heartbeat” events, defaulting to a + frequency of once per second as defined by the global + :zeek:see:`Threading::heartbeat_interval` constant. The reader considers the + input file changed when the file’s inode or modification time has changed + since the last check. + +Receiving change events +----------------------- + +When re-reading files, it might be interesting to know exactly which lines in +the source files have changed. For this reason, the input framework can raise +an event each time when a data item is added to, removed from, or changed in a +table. + +The event definition looks like this (note that you can change the name of this +event in your own Zeek script): + +.. code-block:: zeek + + event entry(description: Input::TableDescription, tpe: Input::Event, + left: Idx, right: Val) { + # do something here... + print fmt("%s = %s", left, right); + } + +The event must be specified in ``$ev`` in the :zeek:see:`Input::add_table` +call: + +.. code-block:: zeek + + Input::add_table([$source="denylist.file", $name="denylist", + $idx=Idx, $val=Val, $destination=denylist, + $mode=Input::REREAD, $ev=entry]); + +The description argument of the event contains the arguments that were +originally supplied to the :zeek:see:`Input::add_table` call. Hence, the name +of the stream can, for example, be accessed with ``description$name``. The +``tpe`` argument of the event is an enum containing the type of the change that +occurred. + +If a line that was not previously present in the table has been added, then the +value of ``tpe`` will be :zeek:see:`Input::EVENT_NEW`. In this case left +contains the index of the added table entry and right contains the values of +the added entry. + +If a table entry that already was present is altered during the re-reading or +streaming read of a file, then the value of ``tpe`` will be +:zeek:see:`Input::EVENT_CHANGED`. In this case ``left`` contains the index of +the changed table entry and ``right`` contains the values of the entry before +the change. The reason for this is that the table already has been updated when +the event is raised. The current value in the table can be ascertained by +looking up the current table value. Hence it is possible to compare the new and +the old values of the table. + +If a table element is removed because it was no longer present during a +re-read, then the value of ``tpe`` will be :zeek:see:`Input::EVENT_REMOVED`. In +this case ``left`` contains the index and ``right`` the values of the removed +element. + +Filtering data during import +---------------------------- + +The input framework also allows a user to filter the data during the import. To +this end, predicate functions are used. A predicate function is called before a +new element is added/changed/removed from a table. The predicate can either +accept or veto the change by returning true for an accepted change and false +for a rejected change. Furthermore, it can alter the data before it is written +to the table. + +The following example filter will reject adding entries to the table when they +were generated over a month ago. It will accept all changes and all removals of +values that are already present in the table. + +.. code-block:: zeek + + Input::add_table([$source="denylist.file", $name="denylist", + $idx=Idx, $val=Val, $destination=denylist, + $mode=Input::REREAD, + $pred(tpe: Input::Event, left: Idx, right: Val) = { + if ( tpe != Input::EVENT_NEW ) { + return T; + } + return (current_time() - right$timestamp) < 30day; + }]); + +To change elements while they are being imported, the predicate function can +manipulate ``left`` and ``right``. Note that predicate functions are called +before the change is committed to the table. Hence, when a table element is +changed (``tpe`` is :zeek:see:`Input::EVENT_CHANGED`), ``left`` and ``right`` +contain the new values, but the destination (``denylist`` in our example) still +contains the old values. This allows predicate functions to examine the changes +between the old and the new version before deciding if they should be allowed. + +Broken input data +----------------- + +The input framework notifies you of problems during data ingestion in two ways. +First, reporter messages, ending up in :file:`reporter.log`, indicate the type of +problem and the file in which the problem occurred:: + + #fields ts level message location + 0.000000 Reporter::WARNING denylist.file/Input::READER_ASCII: Did not find requested field ip in input data file denylist.file. (empty) + +Second, the :zeek:see:`Input::TableDescription` and +:zeek:see:`Input::EventDescription` records feature an ``$error_ev`` member to +trigger events indicating the same message and severity levels as shown above. +The use of these events mirrors that of change events. + +For both approaches, the framework suppresses repeated messages regarding the +same file, so mistakes in large data files do not trigger a message flood. + +Finally, the ASCII reader allows coarse control over the robustness in case of +problems during data ingestion. Concretely, the +:zeek:see:`InputAscii::fail_on_invalid_lines` and +:zeek:see:`InputAscii::fail_on_file_problem` flags indicate whether problems +should merely trigger warnings or lead to processing failure. Both default to +warnings. + +Reading Data to Events +====================== + +The second data ingestion mode of the input framework directly generates Zeek +events from ingested data instead of inserting them to a table. Event streams +work very similarly to the table streams discussed above, and most of the +features discussed (such as predicates for filtering) also work for event +streams. To read the denylist of the previous example into an event stream, we +use the :zeek:see:`Input::add_event` function: + +.. code-block:: zeek + + type Val: record { + ip: addr; + timestamp: time; + reason: string; + }; + + event denylistentry(description: Input::EventDescription, + tpe: Input::Event, data: Val) { + # do something here... + print "data:", data; + } + + event zeek_init() { + Input::add_event([$source="denylist.file", $name="denylist", + $fields=Val, $ev=denylistentry]); + } + +Event streams differ from table streams in two ways: + +* An event stream needs no separate index and value declarations — instead, all + source data types are provided in a single record definition. +* Since the framework perceives a continuous stream of events, it has no + concept of a data baseline (e.g. a table) to compare the incoming data to. + Therefore the change event type (an :zeek:see:`Input::Event` instance, + ``tpe`` in the above) is currently always :zeek:see:`Input::EVENT_NEW`. + +These aside, event streams work exactly the same as table streams and support +most of the options that are also supported for table streams. + +Data Readers +============ + +The input framework supports different kinds of readers for different kinds of +source data files. At the moment, the framework defaults to ingesting ASCII +files formatted in the Zeek log file format (tab-separated values with a +``#fields`` header line). Several other readers are included in Zeek, and Zeek +packages/plugins can provide additional ones. + +Reader selection proceeds as follows. The :zeek:see:`Input::default_reader` +variable defines the default reader: :zeek:see:`Input::READER_ASCII`. When you +call :zeek:see:`Input::add_table` or :zeek:see:`Input::add_event` this reader +gets used automatically. You can override the default by assigning the +``$reader`` member in the description record passed into these calls. See test +cases in :file:`testing/btest/scripts/base/frameworks/input/` for examples. + +The ASCII Reader +---------------- + +The ASCII reader, enabled by default or by selecting +:zeek:see:`Input::READER_ASCII`, understands Zeek’s TSV log format. It actually +understands the full set of directives in the preamble of those log files, e.g. +to define the column separator. This is rarely used, and most commonly input +files merely start with a tab-separated row that names the ``#fields`` in the +input file, as shown earlier. + +.. warning:: + + The ASCII reader has no notion of file locking, including UNIX’s advisory + locking. For large files, this means the framework might process a file + that’s still written to. The reader handles resulting errors robustly (e.g. + via the reporter log, as described earlier), but nevertheless will encounter + errors. In order to avoid these problems it’s best to produce a new input + file on the side, and then atomically rename it to the filename monitored by + the framework. + +There’s currently no JSON ingestion mode for this reader, but see the section +about using the :ref:`raw reader ` together with the +builtin :zeek:see:`from_json` function. + +The Benchmark Reader +-------------------- + +The benchmark reader, selected via :zeek:see:`Input::READER_BENCHMARK`, helps +the Zeek developers optimize the speed of the input framework. It can generate +arbitrary amounts of semi-random data in all Zeek data types supported by the +input framework. + +The Binary Reader +----------------- + +This reader, selected via :zeek:see:`Input::READER_BINARY`, is intended for +use with file analysis input streams to ingest file content (and is the default +type of reader for those streams). + +.. _input-raw-reader: + +The Raw Reader +-------------- + +The raw reader, selected via :zeek:see:`Input::READER_RAW`, reads a file that +is split by a specified record separator (newline by default). The contents are +returned line-by-line as strings; it can, for example, be used to read +configuration files and the like and is probably only useful in the event mode +and not for reading data to tables. + +Reading JSON Lines +~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 6.0 + + +While the ASCII reader does not currently support JSON natively, it is +possible to use the raw reader together with the builtin :zeek:see:`from_json` +function to read files in JSON lines format and instantiate Zeek record +values based on the input. + +The following example shows how this can be done, holding two state tables +in order to allow for removal updates of the read data. + +.. literalinclude:: denylist.jsonl + :caption: + :language: json + :linenos: + :tab-width: 4 + +.. literalinclude:: input_json_1.zeek + :caption: Loading denylist.jsonl, converting to Zeek types, populating a table. + :language: zeek + :linenos: + :tab-width: 4 + +If your input data is already in, or can be easily converted into, JSON Lines format +the above approach can be used to load it into Zeek. + +.. _input-sqlite-reader: + +The SQLite Reader +----------------- + +The SQLite input reader, selected via :zeek:see:`Input::READER_SQLITE`, +provides a way to access SQLite databases from Zeek. SQLite is a simple, +file-based, widely used SQL database system. Due to the transactional nature of +SQLite, databases can be used by several applications simultaneously. Hence +they can, for example, be used to make constantly evolving datasets available +to Zeek on a continuous basis. + +Reading Data from SQLite Databases +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Like with Zeek’s logging support, reading data from SQLite databases is built +into Zeek without any extra configuration needed. Just like text-based input +readers, the SQLite reader can read data — in this case the result of SQL +queries — into tables or events. + +Reading Data into Tables +************************ + +To read data from a SQLite database, we first have to provide Zeek with the +information how the resulting data will be structured. For this example, we +expect that we have a SQLite database, which contains host IP addresses and the +user accounts that are allowed to log into a specific machine. + +The SQLite commands to create the schema are as follows:: + + create table machines_to_users ( + host text unique not null, + users text not null); + + insert into machines_to_users values ( + '192.168.17.1', 'johanna,matthias,seth'); + insert into machines_to_users values ( + '192.168.17.2', 'johanna'); + insert into machines_to_users values ( + '192.168.17.3', 'seth,matthias'); + +After creating a file called hosts.sqlite with this content, we can read the +resulting table into Zeek: + +.. code-block:: zeek + + type Idx: record { + host: addr; + }; + + type Val: record { + users: set[string]; + }; + + global hostslist: table[addr] of Val = table(); + + event zeek_init() + { + Input::add_table([$source="/var/db/hosts", + $name="hosts", + $idx=Idx, + $val=Val, + $destination=hostslist, + $reader=Input::READER_SQLITE, + $config=table(["query"] = "select * from machines_to_users;") + ]); + + Input::remove("hosts"); + } + + event Input::end_of_data(name: string, source: string) + { + if ( name != "hosts" ) + return; + + # now all data is in the table + print "Hosts list has been successfully imported"; + + # List the users of one host. + print hostslist[192.168.17.1]$users; + } + +The ``hostslist`` table can now be used to check host logins against an +available user list. + +Turning Data into Events +************************ + +The second mode is to use the SQLite reader to output the input data as events. +Typically there are two reasons to do this. First, the structure of the input +data is too complicated for a direct table import. In this case, the data can +be read into an event which can then create the necessary data structures in +Zeek in scriptland. Second, the dataset is too big to hold in memory. In this +case, event-driven ingestion can perform checks on-demand. + +As an example, let’s consider a large database with malware hashes. Live +database queries allow us to cross-check sporadically occurring downloads +against this evolving database. The SQLite commands to create the schema are as +follows:: + + create table malware_hashes ( + hash text unique not null, + description text not null); + + insert into malware_hashes values ('86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', 'malware a'); + insert into malware_hashes values ('e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98', 'malware b'); + insert into malware_hashes values ('84a516841ba77a5b4648de2cd0dfcb30ea46dbb4', 'malware c'); + insert into malware_hashes values ('3c363836cf4e16666669a25da280a1865c2d2874', 'malware d'); + insert into malware_hashes values ('58e6b3a414a1e090dfc6029add0f3555ccba127f', 'malware e'); + insert into malware_hashes values ('4a0a19218e082a343a1b17e5333409af9d98f0f5', 'malware f'); + insert into malware_hashes values ('54fd1711209fb1c0781092374132c66e79e2241b', 'malware g'); + insert into malware_hashes values ('27d5482eebd075de44389774fce28c69f45c8a75', 'malware h'); + insert into malware_hashes values ('73f45106968ff8dc51fba105fa91306af1ff6666', 'ftp-trace'); + +The following code uses the file-analysis framework to get the sha1 hashes of +files that are transmitted over the network. For each hash, a SQL-query runs +against SQLite. If the query returns a result, we output the matching hash. + +.. code-block:: zeek + + @load frameworks/files/hash-all-files + + type Val: record { + hash: string; + description: string; + }; + + event line(description: Input::EventDescription, tpe: Input::Event, r: Val) + { + print fmt("malware-hit with hash %s, description %s", r$hash, r$description); + } + + global malware_source = "/var/db/malware"; + + event file_hash(f: fa_file, kind: string, hash: string) + { + + # check all sha1 hashes + if ( kind=="sha1" ) + { + Input::add_event( + [ + $source=malware_source, + $name=hash, + $fields=Val, + $ev=line, + $want_record=T, + $config=table( + ["query"] = fmt("select * from malware_hashes where hash='%s';", hash) + ), + $reader=Input::READER_SQLITE + ]); + } + } + + event Input::end_of_data(name: string, source:string) + { + if ( source == malware_source ) + Input::remove(name); + } + +If you run this script against the trace in +:file:`testing/btest/Traces/ftp/ipv4.trace`, you will get one hit. diff --git a/doc/frameworks/input_json_1.zeek b/doc/frameworks/input_json_1.zeek new file mode 100644 index 0000000000..8a829e4375 --- /dev/null +++ b/doc/frameworks/input_json_1.zeek @@ -0,0 +1,56 @@ +## Read a denylist.jsonl file in JSON Lines format +module Denylist; + +type JsonLine: record { + s: string; +}; + +type Entry: record { + ip: addr; + timestamp: time; + reason: string; +}; + +global staged_denies: table[addr] of Entry; +global active_denies: table[addr] of Entry; + +event Input::end_of_data(name: string, source: string) + { + if ( name != "denylist" ) + return; + + # Switch active and staging tables when input file has been read. + active_denies = staged_denies; + staged_denies = table(); + + print network_time(), "end_of_data() active:", table_keys(active_denies); + } + + +event Denylist::json_line(description: Input::EventDescription, tpe: Input::Event, l: string) + { + local parse_result = from_json(l, Entry); + + # Parsing of JSON may fail, so ignore anything invalid. + if ( ! parse_result$valid ) + return; + + # Cast parsed value as Entry... + local entry = parse_result$v as Entry; + + # ...and populate staging table. + staged_denies[entry$ip] = entry; + } + +event zeek_init() + { + Input::add_event([ + $source="denylist.jsonl", + $name="denylist", + $reader=Input::READER_RAW, + $mode=Input::REREAD, + $fields=JsonLine, + $ev=Denylist::json_line, + $want_record=F, + ]); + } diff --git a/doc/frameworks/intel.rst b/doc/frameworks/intel.rst new file mode 100644 index 0000000000..dd7500f4c7 --- /dev/null +++ b/doc/frameworks/intel.rst @@ -0,0 +1,270 @@ + +====================== +Intelligence Framework +====================== + +Introduction +============ + +The goals of Zeek’s Intelligence Framework are to consume intelligence data, +make it available for matching, and provide infrastructure to improve +performance and memory utilization. + +Data in the Intelligence Framework is an atomic piece of intelligence such as +an IP address or an e-mail address. This atomic data will be packed with +metadata such as a freeform source field, a freeform descriptive field, and a +URL which might lead to more information about the specific item. The metadata +in the default scripts has been deliberately kept to a minimum. + +Quick Start +=========== + +First we need to define the intelligence data to match. Let's look for the +domain ``www.reddit.com``. For the details of the file format see the +:ref:`Loading Intelligence ` section below. + +:: + + #fields indicator indicator_type meta.source + www.reddit.com Intel::DOMAIN my_special_source + +Now we need to tell Zeek about the data. Add this line to your local.zeek to +load an intelligence file: + +.. code-block:: zeek + + redef Intel::read_files += { "/somewhere/yourdata.txt" }; + +In a cluster, the text files only need to reside on the manager. + +Add the following line to :file:`local.zeek` to load the scripts that send +“seen” data into the Intelligence Framework to be checked against the loaded +intelligence data: + +.. code-block:: zeek + + @load frameworks/intel/seen + +Intelligence data matches will be logged to the :file:`intel.log` file. A match +on ``www.reddit.com`` might look like this:: + + { + "ts":1320279566.452687, + "uid":"C4llPsinsviGyNY45", + "id.orig_h":"192.168.2.76", + "id.orig_p":52026, + "id.resp_h":"132.235.215.119", + "id.resp_p":80, + "seen.indicator":"www.reddit.com", + "seen.indicator_type":"Intel::DOMAIN", + "seen.where":"HTTP::IN_HOST_HEADER", + "seen.node":"zeek", + "matched":[ + "Intel::DOMAIN" + ], + "sources":[ + "my_special_source" + ]} + +You can explore this example on `try.zeek.org +`_. + +Architecture +============ + +The Intelligence Framework can be thought of as containing three separate +portions. The first part involves loading intelligence data. The second is a +mechanism for indicating to the intelligence framework that a piece of data +which needs to be checked has been seen. The third handles when a positive +match has been discovered. + +.. image:: /images/intel-architecture.png + :align: center + +The figure above depicts how these portions work together: loading intelligence +*inserts* the data into an in-memory data store that is managed by the +intelligence framework. During traffic analysis, scripts report the *seen* data +to the framework to check against the loaded items. + +.. _loading-intelligence: + +Loading Intelligence +-------------------- + +By default, intelligence data is loaded through plain text files using the +Input Framework. In clusters the manager is the only node that needs the +intelligence data. The intelligence framework has distribution mechanisms which +will push data out to all of the nodes that need it. + +Here is an example of the intelligence data format. All fields must be +separated by a single tab character and fields containing only a hyphen are +considered to be null values. Note that there may be additional fields +depending on the loaded extensions. One example is the +:doc:`/scripts/policy/frameworks/intel/do_notice.zeek` script as described +below. + +:: + + #fields indicator indicator_type meta.source meta.desc meta.url + 1.2.3.4 Intel::ADDR source1 Sending phishing email http://source1.com/badhosts/1.2.3.4 + a.b.com Intel::DOMAIN source2 Name used for data exfiltration - + +For a list of all built-in ``indicator_type`` values, please refer to the +documentation of :zeek:see:`Intel::Type`. + +To load the data once the files are created, add the following to your +``local.zeek`` to specify which intel files to load (with your own file names +of course): + +.. code-block:: zeek + + redef Intel::read_files += { + "/somewhere/feed1.txt", + "/somewhere/feed2.txt", + }; + +Remember, the files only need to be present on the file system of the manager +node on cluster deployments. + +The intel framework is very flexible so that intelligence matching can be +extended in numerous ways. For example, the +:doc:`/scripts/policy/frameworks/intel/do_notice.zeek` +script implements a +simple mechanism to raise a Zeek notice (of type :zeek:see:`Intel::Notice`) for +user-specified intelligence matches. To use this feature, add the following +line to ``local.zeek``: + +.. code-block:: zeek + + @load frameworks/intel/do_notice + +The script adds additional metadata fields. In particular, if the ``do_notice`` +field of type bool is set to ``T`` for an intelligence item, Zeek will create a +notice when the item is matched. + +Seen Data +--------- + +When some bit of data is extracted from network traffic (such as an email +address in the “From” header in a SMTP message), the Intelligence Framework +needs to be informed that this data was discovered so that its presence will be +checked within the loaded intelligence data. This is accomplished through the +:zeek:see:`Intel::seen` function. + +Zeek includes a default set of scripts that will send data to the intelligence +framework. To load all of the scripts included with Zeek for sending “seen” +data to the intelligence framework, just add this line to ``local.zeek``: + +.. code-block:: zeek + + @load frameworks/intel/seen + +Alternatively, specific scripts in that directory can be loaded. Keep in mind +that as more data is sent to the intelligence framework, the CPU load consumed +by Zeek will increase depending on how many times the :zeek:see:`Intel::seen` +function is being called. The effect of this condition depends on the nature +and volume of the traffic Zeek monitors. + +Zeek's intelligence framework can only match loaded items if corresponding +occurrences are reported as *seen*. For example, the scripts included with Zeek +will only report IP addresses from established TCP connections to the +intelligence framework. Thus, neither UDP traffic nor one-sided traffic will +trigger intelligence hits by default. However, it is easy to report additional +observations to the framework. The following will report the IPs of all +connections (including ICMP, UDP and one-sided traffic) to the intelligence +framework: + +.. code-block:: zeek + + event new_connection(c: connection) + { + Intel::seen([$host=c$id$orig_h, $conn=c, $where=Conn::IN_ORIG]); + Intel::seen([$host=c$id$resp_h, $conn=c, $where=Conn::IN_RESP]); + } + +Note that using the :zeek:see:`new_connection` event could have a significant +impact on the overall performance as much more data might be processed by the +intelligence framework. + +Intelligence Matches +-------------------- + +The Intelligence Framework provides an event that is generated whenever a match +is discovered. This event is named :zeek:see:`Intel::match` and receives two +arguments. First, a record of type :zeek:see:`Intel::Seen` that describes the +observation as reported to the framework. It contains information about what +was seen (e.g., the domain ``www.slideshare.net``), where it was seen (e.g. in +an X509 certificate) and further context (e.g., a connection or a file record) +if available. The second argument is a set of intelligence items that matched +the observation. A set is used because multiple items may match a given +observation. For example, assume you have ingested the IP ``1.2.3.4`` from +source A and from source B as well as the subnet ``1.2.3.0/24`` from source B. +If the IP ``1.2.3.4`` is seen in your traffic, the match event will receive all +three intelligence items. + +In a cluster setup, the match event is raised on the manager. This is important +to keep in mind when writing a script that handles the event. While the context +information about the match is available through the event parameters, the +handler itself is executed on the manager. Thus, one cannot access any state +that is local to the worker node that reported the observation in the first +place. Other interaction is also limited. For example, one cannot reliably +trigger file extraction based on an intelligence hit: Once the manager +processes the match event and comes to the conclusion that file extraction +would be desired, the worker that triggered the hit is most likely done +processing the corresponding data. Instead, one would need to start by +extracting all files that are potentially relevant, keep the ones that refer to +an intelligence hit and regularly discard the others. + +Intelligence matches are logged to the :file:`intel.log` file. For further +description of each field in that file, see the documentation for the +:zeek:see:`Intel::Info` record. + +The following are two matches from a sample :file:`intel.log`:: + + { + "ts": "2019-03-12T18:22:19.252191Z", + "uid": "Cpue7J1KNReqCodXHc", + "id.orig_h": "192.168.4.6", + "id.orig_p": 64738, + "id.resp_h": "13.107.18.13", + "id.resp_p": 443, + "seen.indicator": "www.slideshare.net", + "seen.indicator_type": "Intel::DOMAIN", + "seen.where": "X509::IN_CERT", + "seen.node": "so16-enp0s8-1", + "matched": [ + "Intel::DOMAIN" + ], + "sources": [ + "from http://hosts-file.net/fsa.txt via intel.criticalstack.com" + ], + "fuid": "FnRp0j1YMig5KhcMDg", + "file_mime_type": "application/x-x509-user-cert", + "file_desc": "13.107.18.13:443/tcp" + } + { + "ts": "2019-03-12T18:32:19.821962Z", + "uid": "CvusFJ2HdbTnCLxEUa", + "id.orig_h": "192.168.4.6", + "id.orig_p": 64826, + "id.resp_h": "13.107.42.14", + "id.resp_p": 443, + "seen.indicator": "www.slideshare.net", + "seen.indicator_type": "Intel::DOMAIN", + "seen.where": "X509::IN_CERT", + "seen.node": "so16-enp0s8-1", + "matched": [ + "Intel::DOMAIN" + ], + "sources": [ + "from http://hosts-file.net/fsa.txt via intel.criticalstack.com" + ], + "fuid": "FUrrLa45T7a8hjdRy", + "file_mime_type": "application/x-x509-user-cert", + "file_desc": "13.107.42.14:443/tcp" + } + +These examples show there were matches in a domain observed in a X509 +certificate. That domain was ``www.slideshare.net``. This is unusual as that +domain is used for legitimate purposes. This example demonstrates that analysts +must vet intelligence feeds for their local use and applicability. diff --git a/doc/frameworks/logging-input-sqlite.rst b/doc/frameworks/logging-input-sqlite.rst new file mode 100644 index 0000000000..a785e99b58 --- /dev/null +++ b/doc/frameworks/logging-input-sqlite.rst @@ -0,0 +1,8 @@ +:orphan: + +==================== +SQLite Input/Logging +==================== + +* :ref:`SQLite Input Reader ` +* :ref:`SQLite Log Writer ` diff --git a/doc/frameworks/logging.rst b/doc/frameworks/logging.rst new file mode 100644 index 0000000000..b764a730cc --- /dev/null +++ b/doc/frameworks/logging.rst @@ -0,0 +1,1087 @@ + +.. _framework-logging: + +================= +Logging Framework +================= + +Zeek comes with a flexible logging interface that allows fine-grained control of +what gets logged and how it is logged. This section explains how you can use +this framework to customize and extended your logs. + +Terminology +=========== + +Zeek’s logging interface is built around three main abstractions: + + Streams + A log stream corresponds to a single log. It defines the set of fields that + a log consists of with their names and types. Examples are the conn stream + for recording connection summaries, and the http stream for recording HTTP + activity. + + Filters + Each stream has a set of filters attached to it that determine what + information gets written out, and how. By default, each stream has one + default filter that just logs everything directly to disk. However, + additional filters can be added to record only a subset of the log records, + write to different outputs, or set a custom rotation interval. If all + filters are removed from a stream, then output is disabled for that stream. + + Writers + Each filter has a writer. A writer defines the actual output format for the + information being logged. The default writer is the ASCII writer, which + produces tab-separated ASCII files. Other writers are available, like for + binary output or direct logging into a database. + +There are several different ways to customize Zeek’s logging: you can create a +new log stream, you can extend an existing log with new fields, you can apply +filters to an existing log stream, or you can customize the output format by +setting log writer options. All of these approaches are described below. + +Streams +======= + +In order to log data to a new log stream, all of the following needs to be done: + +* A :zeek:see:`record` type must be defined which consists of all the fields + that will be logged (by convention, the name of this record type is usually + “Info”). +* A log stream ID (an :zeek:see:`enum` with type name :zeek:see:`Log::ID`) must + be defined that uniquely identifies the new log stream. +* A log stream must be created using the :zeek:see:`Log::create_stream` + function. +* When the data to be logged becomes available, the :zeek:see:`Log::write` + function must be called. + +In the following example, we create a new module, ``Foo``, which creates a new +log stream. + +.. code-block:: zeek + + module Foo; + + export { + # Create an ID for our new stream. By convention, this is + # called "LOG". + redef enum Log::ID += { LOG }; + + # Define the record type that will contain the data to log. + type Info: record { + ts: time &log; + id: conn_id &log; + service: string &log &optional; + missed_bytes: count &log &default=0; + }; + } + + # Optionally, we can add a new field to the connection record so that + # the data we are logging (our "Info" record) will be easily + # accessible in a variety of event handlers. + redef record connection += { + # By convention, the name of this new field is the lowercase name + # of the module. + foo: Info &optional; + }; + + # This event is handled at a priority higher than zero so that if + # users modify this stream in another script, they can do so at the + # default priority of zero. + event zeek_init() &priority=5 + { + # Create the stream. This adds a default filter automatically. + Log::create_stream(Foo::LOG, [$columns=Info, $path="foo"]); + } + +In the definition of the ``Info`` record above, notice that each field has the +:zeek:see:`&log` attribute. Without this attribute, a field will not appear in +the log output. Also notice one field has the :zeek:see:`&optional` attribute. +This indicates that the field might not be assigned any value before the log +record is written. Finally, a field with the :zeek:see:`&default` attribute +has a default value assigned to it automatically. + +At this point, the only thing missing is a call to the :zeek:see:`Log::write` +function to send data to the logging framework. The actual event handler where +this should take place will depend on where your data becomes available. In +this example, the :zeek:see:`connection_established` event provides our data, +and we also store a copy of the data being logged into the +:zeek:see:`connection` record: + +.. code-block:: zeek + + event connection_established(c: connection) + { + local rec: Foo::Info = [$ts=network_time(), $id=c$id]; + + # Store a copy of the data in the connection record so other + # event handlers can access it. + c$foo = rec; + + Log::write(Foo::LOG, rec); + } + +If you run Zeek with this script, a new log file :file:`foo.log` will be +created. Although we only specified four fields in the ``Info`` record above, +the log output will actually contain seven fields because one of the fields +(the one named ``id``) is itself a record type. Since a :zeek:see:`conn_id` +record has four fields, then each of these fields is a separate column in the +log output. Note that the way that such fields are named in the log output +differs slightly from the way we would refer to the same field in a Zeek script +(each dollar sign is replaced with a period). For example, to access the first +field of a :zeek:see:`conn_id` in a Zeek script we would use the notation +``id$orig_h``, but that field is named ``id.orig_h`` in the log output. + +When you are developing scripts that add data to the :zeek:see:`connection` +record, care must be given to when and how long data is stored. Normally data +saved to the connection record will remain there for the duration of the +connection and from a practical perspective it’s not uncommon to need to delete +that data before the end of the connection. + +Add Fields to a Log +------------------- + +You can add additional fields to a log by extending the record type that +defines its content, and setting a value for the new fields before each log +record is written. + +Let’s say we want to add a boolean field ``is_private`` to +:zeek:see:`Conn::Info` that indicates whether the originator IP address is part +of the :rfc:`1918` space: + +.. code-block:: zeek + + # Add a field to the connection log record. + redef record Conn::Info += { + ## Indicate if the originator of the connection is part of the + ## "private" address space defined in RFC1918. + is_private: bool &default=F &log; + }; + +As this example shows, when extending a log stream’s ``Info`` record, each new +field must always be declared either with a &default value or as +:zeek:see:`&optional`. Furthermore, you need to add the :zeek:see:`&log` +attribute or otherwise the field won’t appear in the log file. + +Now we need to set the field. Although the details vary depending on which log +is being extended, in general it is important to choose a suitable event in +which to set the additional fields because we need to make sure that the fields +are set before the log record is written. Sometimes the right choice is the +same event which writes the log record, but at a higher priority (in order to +ensure that the event handler that sets the additional fields is executed +before the event handler that writes the log record). + +In this example, since a connection’s summary is generated at the time its +state is removed from memory, we can add another handler at that time that sets +our field correctly: + +.. code-block:: zeek + + event connection_state_remove(c: connection) + { + if ( c$id$orig_h in Site::private_address_space ) + c$conn$is_private = T; + } + +Now :file:`conn.log` will show a new field ``is_private`` of type +:zeek:see:`bool`. If you look at the Zeek script which defines the connection +log stream :doc:`/scripts/base/protocols/conn/main.zeek`, you will see that +:zeek:see:`Log::write` gets called in an event handler for the same event as +used in this example to set the additional fields, but at a lower priority than +the one used in this example (i.e., the log record gets written after we assign +the ``is_private`` field). + +For extending logs this way, one needs a bit of knowledge about how the script +that creates the log stream is organizing its state keeping. Most of the +standard Zeek scripts attach their log state to the :zeek:see:`connection` +record where it can then be accessed, just like ``c$conn`` above. For example, +the HTTP analysis adds a field http of type :zeek:see:`HTTP::Info` to the +:zeek:see:`connection` record. + +Define a Logging Event +---------------------- + +Sometimes it is helpful to do additional analysis of the information being +logged. For these cases, a stream can specify an event that will be generated +every time a log record is written to it. To do this, we need to modify the +example module shown above to look something like this: + +.. code-block:: zeek + + module Foo; + + export { + redef enum Log::ID += { LOG }; + + type Info: record { + ts: time &log; + id: conn_id &log; + service: string &log &optional; + missed_bytes: count &log &default=0; + }; + + # Define a logging event. By convention, this is called + # "log_". + global log_foo: event(rec: Info); + } + + event zeek_init() &priority=5 + { + # Specify the "log_foo" event here in order for Zeek to raise it. + Log::create_stream(Foo::LOG, [$columns=Info, $ev=log_foo, + $path="foo"]); + } + +All of Zeek’s default log streams define such an event. For example, the +connection log stream raises the event :zeek:see:`Conn::log_conn`. You could +use that for example for flagging when a connection to a specific destination +exceeds a certain duration: + +.. code-block:: zeek + + redef enum Notice::Type += { + ## Indicates that a connection remained established longer + ## than 5 minutes. + Long_Conn_Found + }; + + event Conn::log_conn(rec: Conn::Info) + { + if ( rec?$duration && rec$duration > 5mins ) + NOTICE([$note=Long_Conn_Found, + $msg=fmt("unusually long conn to %s", rec$id$resp_h), + $id=rec$id]); + } + +Often, these events can be an alternative to post-processing Zeek logs +externally with Perl scripts. Much of what such an external script would do +later offline, one may instead do directly inside of Zeek in real-time. + +Disable a Stream +---------------- + +One way to “turn off” a log is to completely disable the stream. For example, +the following example will prevent the :file:`conn.log` from being written: + +.. code-block:: zeek + + event zeek_init() + { + Log::disable_stream(Conn::LOG); + } + +Note that this must run after the stream is created, so the priority of this +event handler must be lower than the priority of the event handler where the +stream was created. + + +Delaying Log Writes +------------------- + +.. versionadded:: 6.2 + +The logging framework allows delaying log writes using the +:zeek:see:`Log::delay` function. + +This functionality enables querying or waiting for additional data to attach to +an in-flight log record for which a :zeek:see:`Log::write` has happened. +Common examples are the execution of DNS reverse lookups for the addresses +of a connection, or - more generally - asynchronous queries to external systems. +Similarly, waiting a small duration for more data from an external process +pertaining to specific connections or events is another. For example, endpoint +agents may provide detailed process information for specific connections +logged by Zeek. + +Conceptually, the delay of a log record is placed after the execution of the +global :zeek:see:`Log::log_stream_policy` hook and before the execution of +:ref:`policy hooks attached to filters `. +At this point, calling :zeek:see:`Log::delay` is only valid for the currently +*active write* during the execution of the global :zeek:see:`Log::log_stream_policy` +hook. Calling :zeek:see:`Log::delay` in any other context or with the wrong +arguments results in runtime errors. + +.. note:: + + While this may appear very restrictive, it does make it explicit that it is + the action of a :zeek:see:`Log::write` for a given stream and log record + that is being delayed as well as providing a defined point where a delay starts. + + Prior ideas entertained the idea of an implicit and very lax interface, but + in the end was deemed too loose and provided too much flexibility that would + be hard to later restrict again or keep stable. The current interface might + be made more lax in the future if it turns out to be too rigid. + + +By default, log records are not delayed. That is, during the execution of +the :zeek:see:`Log::write` function, a serialized version of the given log +record is handed off to a remote logger or a local logging thread. +Modifications of the same log record after :zeek:see:`Log::write` has returned +have no effect. + +In contrast, when a log write is delayed using the :zeek:see:`Log::delay` +function, the record is enqueued into a per-stream record queue and the +:zeek:see:`Log::write` returns. Processing of the delayed write resumes once +it is released by using the :zeek:see:`Log::delay_finish` function or until +a maximum, per-stream configurable, delay duration expires. + +When processing of a log write is resumed, first, all post delay callbacks +given to :zeek:see:`Log::delay` are executed. Thereafter, as for non-delayed +writes, filter policy hooks are executed and the log record is serialized. + +Policy hooks attached to filters and the serialization step observe any +mutations done during the delay. Filter policy hooks may even use these +modifications for deciding on the verdict of the given log record. + +.. note:: + + Policy hooks attached to filters are often used to skip logging of + uninteresting log records. When combined with log write delaying, users + should consider lifting such filter logic up into the + :zeek:see:`Log::log_stream_policy` hook to avoid unnecessarily delaying + records when it is known that these will be discarded later on. + + +The :zeek:see:`Log::delay` and :zeek:see:`Log::delay_finish` functions increment +and decrement an internal reference count for a given write. To continue a +delayed write, :zeek:see:`Log::delay_finish` must be called as often as +:zeek:see:`Log::delay`. + + +Zeek delays a log record by a configurable interval defined for each log stream. +It defaults to the global :zeek:see:`Log::default_max_delay_interval`, and can be +adapted by calling :zeek:see:`Log::set_max_delay_interval` on the stream. +It is possible to explicitly extend the delay duration by providing a post +delay callback to :zeek:see:`Log::delay`. Calling :zeek:see:`Log::delay` from +within such a post delay callback re-delays the record, essentially putting +it at the end of the per-stream queue again. + +.. note:: + + While this puts additional burden on the script writer to realize per-record + specific longer delay intervals, it allows for a simpler internal implementation. + Additionally, the explicit re-delaying is also meant to make users aware of the + consequences when using such long delays either on purpose or by accident. + + For multiple second or even longer delays, it is suggested to consider resumable, + robust and non-ephemeral external post processing steps based on Zeek logs instead. + In the face of worker crashes or uncontrolled restarts of a Zeek cluster, all + delayed log records are inevitably lost. + + +The following example shows how to use the :ref:`when ` to asynchronously +lookup the DNS names of the originator and responder addresses to enrich an +in-flight :zeek:see:`Conn::Info` record. By default, a stream's maximum delay +interval is 200 milliseconds - the ``timeout 150msec`` part ensures a delayed +write resumes after 150 milliseconds already by explicitly calling +:zeek:see:`Log::delay_finish`. + + +.. literalinclude:: logging/delay1.zeek + :caption: Enriching conn.log with originator and responder names. + :language: zeek + :linenos: + :tab-width: 4 + + +Filters +======= + +A stream has one or more filters attached to it. A stream without any filters +will not produce any log output. Filters govern two aspects of log production: +they control which of the stream’s log entries get written out, and they define +how to actually implement the log writes. They do the latter by specifying a +log writer that implements the write operation, such as the ASCII writer (see +below) for text file output. When a stream is created, it automatically gets a +default filter attached to it. This default filter can be removed or replaced, +or other filters can be added to the stream. This is accomplished by using +either the :zeek:see:`Log::add_filter` or :zeek:see:`Log::remove_filter` +function. This section shows how to use filters to do such tasks as rename a +log file, split the output into multiple files, control which records are +written, and set a custom rotation interval. + +Each filter has a unique name, scoped to the stream it belongs to. That is, all +filters attached to a given stream have different names. Calling +:zeek:see:`Log::add_filter` to add a filter with a name that already exists for +the stream replaces the existing filter. + +Rename a Log File +----------------- + +Normally, the log filename for a given log stream is determined when the stream +is created, unless you explicitly specify a different one by adding a filter. + +The easiest way to change a log filename is to simply replace the default log +filter with a new filter that specifies a value for the ``path`` field. In this +example, :file:`conn.log` will be changed to :file:`myconn.log`: + +.. code-block:: zeek + + event zeek_init() + { + # Replace default filter for the Conn::LOG stream in order to + # change the log filename. + + local f = Log::get_filter(Conn::LOG, "default"); + f$path = "myconn"; + Log::add_filter(Conn::LOG, f); + } + +Keep in mind that the ``path`` field of a log filter never contains the +filename extension. The extension will be determined later by the log writer. + +Change the Logging Directory +---------------------------- + +By default, Zeek log files are created in the current working directory. +To write logs into a different directory, set :zeek:see:`Log::default_logdir`: + +.. code-block:: zeek + + redef Log::default_logdir = /path/to/output_log_directory + +The :zeek:see:`Log::default_logdir` option is honored by all file based +writes included with Zeek (ASCII and SQLite). + +Add an Additional Output File +----------------------------- + +Normally, a log stream writes to only one log file. However, you can add +filters so that the stream writes to multiple files. This is useful if you want +to restrict the set of fields being logged to the new file. + +In this example, a new filter is added to the :zeek:see:`Conn::LOG` stream that +writes two fields to a new log file: + +.. code-block:: zeek + + event zeek_init() + { + # Add a new filter to the Conn::LOG stream that logs only + # timestamp and originator address. + + local filter: Log::Filter = [$name="orig-only", $path="origs", + $include=set("ts", "id.orig_h")]; + Log::add_filter(Conn::LOG, filter); + } + +.. note:: + + When multiple filters added to a stream use the same path value, Zeek will + disambiguate the output file names by adding numeric suffixes to the name. If + we say ``$path="conn"`` in the above example, Zeek warns us about the fact that + it’ll write this filter’s log entries to a different file:: + + 1071580905.346457 warning: Write using filter 'orig-only' on path 'conn' changed to use new path 'conn-2' to avoid conflict with filter 'default' + + The same also happens when omitting a path value, in which case the filter + inherits the value of the stream’s path member. + +Notice how the ``include`` filter attribute specifies a set that limits the +fields to the ones given. The names correspond to those in the +:zeek:see:`Conn::Info` record (however, because the ``id`` field is itself a +record, we can specify an individual field of ``id`` by the dot notation shown +in the example). + +Using the code above, in addition to the regular :file:`conn.log`, you will now +also get a new log file :file:`origs.log` that looks like the regular +:file:`conn.log`, but will have only the fields specified in the ``include`` +filter attribute. + +If you want to skip only some fields but keep the rest, there is a +corresponding exclude filter attribute that you can use instead of include to +list only the ones you are not interested in. + +If you want to make this the only log file for the stream, you can remove the +default filter: + +.. code-block:: zeek + + event zeek_init() + { + # Remove the filter called "default". + Log::remove_filter(Conn::LOG, "default"); + } + +Determine Log Path Dynamically +------------------------------ + +Instead of using the ``path`` filter attribute, a filter can determine output +paths *dynamically* based on the record being logged. That allows, e.g., to +record local and remote connections into separate files. To do this, you define +a function that returns the desired path, and use the ``path_func`` filter +attribute: + +.. code-block:: zeek + + function myfunc(id: Log::ID, path: string, rec: Conn::Info) : string + { + # Return "conn-local" if originator is a local IP, otherwise + # return "conn-remote". + local r = Site::is_local_addr(rec$id$orig_h) ? "local" : "remote"; + return fmt("%s-%s", path, r); + } + + event zeek_init() + { + local filter: Log::Filter = [$name="conn-split", + $path_func=myfunc, $include=set("ts", "id.orig_h")]; + Log::add_filter(Conn::LOG, filter); + } + +Running this will now produce two new files, :file:`conn-local.log` and +:file:`conn-remote.log`, with the corresponding entries. For this example +to work, :zeek:see:`Site::local_nets` must specify your local network. +It defaults to IANA's standard private address space. One +could extend this further for example to log information by subnets or even by +IP address. Be careful, however, as it is easy to create many files very +quickly. + +The ``myfunc`` function has one drawback: it can be used only with the :zeek:see:`Conn::LOG` +stream as the record type is hardcoded into its argument list. However, Zeek +allows to do a more generic variant: + +.. code-block:: zeek + + function myfunc(id: Log::ID, path: string, + rec: record { id: conn_id; } ) : string + { + local r = Site::is_local_addr(rec$id$orig_h) ? "local" : "remote"; + return fmt("%s-%s", path, r); + } + +This function can be used with all log streams that have records containing an +``id: conn_id`` field. + +.. _logging-filtering-log-records: + +Filtering Log Records +--------------------- + +We just saw ways how to customize the logged columns. The logging framework also +lets you control which records Zeek writes out. It relies on Zeek’s :zeek:see:`hook` +mechanism to do this, as follows. The framework provides two levels of "policy" +hooks, a global one and a set of filter-level ones. The hook handlers can +implement additional processing of a log record, including vetoing the writing +of the record. Any handler that uses a :zeek:see:`break` statement to leave the +hook declares that a record shall not be written out. Anyone can attach handlers +to these hooks, which look as follows: + +.. code-block:: zeek + + type Log::StreamPolicyHook: hook(rec: any, id: ID); + type Log::PolicyHook: hook(rec: any, id: ID, filter: Filter); + +For both hook types, the ``rec`` argument contains the entry to be logged and is +an instance of the record type associated with the stream’s columns, and ``id`` +identifies the log stream. + +The logging framework defines one global hook policy hook: :zeek:see:`Log::log_stream_policy`. +For every log write, this hook gets invoked first. Any of its handlers may +decide to veto the log entry. The framework then iterates over the log stream's +filters. Each filter has a ``filter$policy`` hook of type :zeek:see:`Log::PolicyHook`. +Its handlers receive the log record, the ID of the log stream, and the filter +record itself. Each handler can veto the write. After the filter's hook has run, +any veto (by :zeek:see:`Log::log_stream_policy` or the filter's hook) aborts the +write via that filter. If no veto has occurred, the filter now steers the log +record to its output. + +You can pass arbitrary state through these hook handlers. For example, you can +extending streams or filters via a :zeek:see:`redef`, or pass key-value pairs +via the ``filter$config`` table.. + +Since you'll often want to use uniform handling for all writes on a given +stream, log streams offer a default hook, provided when constructing the stream, +that the stream's filters will use if they don't provide their own. To support +hooks on your log streams, you should always define a default hook when creating +new streams, as follows: + +.. code-block:: zeek + + module Foo; + + export { + ## The logging stream identifier. + redef enum Log::ID += { LOG }; + + ## A default logging policy hook for the stream. + global log_policy: Log::PolicyHook; + + # Define the record type that will contain the data to log. + type Info: record { + ts: time &log; + id: conn_id &log; + service: string &log &optional; + missed_bytes: count &log &default=0; + }; + } + + event zeek_init() &priority=5 + { + # Create the stream, adding the default policy hook: + Log::create_stream(Foo::LOG, [$columns=Info, $path="foo", $policy=log_policy]); + } + +With this hook in place, it’s now easy to add a filtering predicate for the ``Foo`` +log from anywhere: + +.. code-block:: zeek + + hook Foo::log_policy(rec: Foo::Info, id: Log::ID, filter: Log::Filter) + { + # Let's only log complete information: + if ( rec$missed_bytes > 0 ) + break; + } + +The Zeek distribution features default hooks for all of its streams. Here’s a +more realistic example, using HTTP: + +.. code-block:: zeek + + hook HTTP::log_policy(rec: HTTP::Info, id: Log::ID, filter: Log::Filter) + { + # Record only connections with successfully analyzed HTTP traffic + if ( ! rec?$service || rec$service != "http" ) + break; + } + +To override a hook selectively in a new filter, set the hook when adding the +filter to a stream: + +.. code-block:: zeek + + hook my_policy(rec: Foo::Info, id: Log::ID, filter: Log::Filter) + { + # Let's only log incomplete flows: + if ( rec$missed_bytes == 0 ) + break; + } + + event zeek_init() + { + local filter: Log::Filter = [$name="incomplete-only", + $path="foo-incomplete", + $policy=my_policy]; + Log::add_filter(Foo::LOG, filter); + } + +Note that this approach has subtle implications: the new filter does not use the +``Foo::log_policy`` hook, and that hook does not get invoked for writes to this +filter. Any vetoes or additional processing implemented in ``Foo::log_policy`` +handlers no longer happens for the new filter. Such hook replacement should +rarely be necessary; you may find it preferable to narrow the stream's default +handler to the filter in question: + +.. code-block:: zeek + + hook Foo::log_policy(rec: Foo::Info, id: Log::ID, filter: Log::Filter) + { + if ( filter$name != "incomplete-only" ) + return; + + # Let's only log incomplete flows: + if ( rec$missed_bytes == 0 ) + break; + } + +For tasks that need to run once per-write, not once per-write-and-filter, +use the :zeek:see:`Log::log_stream_policy` instead: + +.. code-block:: zeek + + hook Log::log_stream_policy(rec: Foo::Info, id: Log::ID) + { + # Called once per write + } + + hook Foo::log_policy(rec: Foo::Info, id: Log::ID, filter: Log::Filter) + { + # Called once for each of Foo's filters. + } + +To change an existing filter first retrieve it, then update it, and +re-establish it: + +.. code-block:: zeek + + hook my_policy(rec: Foo::Info, id: Log::ID, filter: Log::Filter) + { + # Let's only log incomplete flows: + if ( rec$missed_bytes == 0 ) + break; + } + + event zeek_init() + { + local f = Log::get_filter(Foo::LOG, "default"); + f$policy = my_policy; + Log::add_filter(Foo::LOG, f); + } + +.. note:: + + Policy hooks can also modify the log records, but with subtle implications. + The logging framework applies all of a stream’s log filters sequentially to + the same log record, so modifications made in a hook handler will persist + not only into subsequent handlers in the same hook, but also into any in + filters processed subsequently. In contrast to hook priorities, filters + provide no control over their processing order. + +Log Rotation and Post-Processing +-------------------------------- + +The logging framework provides fine-grained control over when and how to rotate +log files. Log rotation means that Zeek periodically renames an active log +file, such as :file:`conn.log`, in a manner configurable by the user (e.g., +renaming to :file:`conn_21-01-03_14-05-00.log` to timestamp it), and starts +over on a fresh :file:`conn.log` file. Post-processing means that Zeek can also +apply optional additional processing to the rotated file, such as compression +or file transfers. These mechanisms apply naturally to file-based log writers, +but are available to other writers as well for more generalized forms of +periodic additional processing of their outputs. + +Rotation Timing +~~~~~~~~~~~~~~~ + +The log rotation interval is globally controllable for all filters by +redefining the :zeek:see:`Log::default_rotation_interval` constant, or +specifically for certain :zeek:see:`Log::Filter` instances by setting their +``interv`` field. The default value, ``0secs``, disables rotation. + +.. note:: + + When using ZeekControl, this option is set automatically via the ZeekControl + configuration. + +Here’s an example of changing just the :zeek:see:`Conn::LOG` stream’s default +filter rotation: + +.. code-block:: zeek + + event zeek_init() + { + local f = Log::get_filter(Conn::LOG, "default"); + f$interv = 1 min; + Log::add_filter(Conn::LOG, f); + } + +Controlling File Naming +~~~~~~~~~~~~~~~~~~~~~~~ + +The redef’able :zeek:see:`Log::rotation_format_func` determines the naming of +the rotated-to file. The logging framework invokes the function with sufficient +context (a :zeek:see:`Log::RotationFmtInfo` record), from which it determines +the output name in two parts: the output directory, and the output file’s base +name, meaning its name without a suffix. It returns these two components via a +:zeek:see:`Log::RotationPath` record. The output directory defaults to +:zeek:see:`Log::default_rotation_dir` (a config option) and incorporates a +timestamp in the base name, as specified by +:zeek:see:`Log::default_rotation_date_format`. + +When :zeek:see:`Log::default_logdir` is in use and :zeek:see:`Log::rotation_format_func` +does not set an output directory (e.g. when :zeek:see:`Log::default_rotation_dir` is not set), +:zeek:see:`Log::default_logdir` is used as the default output directory. + +For examples of customized log rotation, take a look at the +`relevant `_ +`test `_ +`cases `_. + +Post-Processing of Rotated Logs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Post-processing can proceed via defaults configured across all log filters, or +with per-filter customizations. Zeek provides helpful default infrastructure to +simplify running shell commands on rotated logs, but you’re free to define your +own post-processing infrastructure from scratch. + +By default, the :zeek:see:`Log::default_rotation_postprocessor_cmd`, if +defined, runs on every rotated log. The wrapper function making the actual +command invocation is :zeek:see:`Log::run_rotation_postprocessor_cmd`. It +passes six additional arguments to the configured shell command: + +* The rotated-to file name (e.g. ``conn_21-01-03_14-05-00.log``) +* The original base name (e.g. ``conn``) +* The timestamp at which the original log file got created (e.g. ``21-01-03_14.04.00``) +* The timestamp at which the original log file got rotated (e.g. ``21-01-03_15.05.00``) +* ``1`` if Zeek is terminating, ``0`` otherwise +* The name of the writer (e.g. ``ascii`` for the ASCII writer) + +.. warning:: + + Zeek ignores failures (non-zero exit codes) of this shell command: the + default rotation postprocessor command returns ``T`` regardless. Be careful + if you implement your own postprocessor function: returning ``F`` from it + will cause the corresponding log writer instance to shut down, therefore do + so only when the writer really won’t be able to continue. + +Zeek ships with ready-to-use postprocessors for file transfer via :doc:`SCP +` and +:doc:`SFTP `. The +Zeek project also provides an external tool, `zeek-archiver +`_, that performs log compression +outside of the Zeek process for robustness. + +Other Features +-------------- + +Log Extension Fields +~~~~~~~~~~~~~~~~~~~~ + +The logging framework provides rudimentary support for adding additional +columns to an already defined log format, globally for all logs or for +individual log filters only. Records returned by the +:zeek:see:`Log::default_ext_func` function get added to every log, and the +``ext_func`` member of :zeek:see:`Log::Filter` in filter records allows local +overrides. + +You can configure a prefix string separately for either of these options — this +string ensures that the resulting fields don’t collide with already existing +log fields. The prefix defaults to an underscore, via +:zeek:see:`Log::default_ext_prefix`. The ``ext_prefix`` field in filter +records overrides as needed. + +The following example, taken straight from a Zeek testcase, adds three extra +columns to all logs: + +.. code-block:: zeek + + type Extension: record { + write_ts: time &log; + stream: string &log; + system_name: string &log; + }; + + function add_extension(path: string): Extension + { + return Extension($write_ts = network_time(), + $stream = path, + $system_name = peer_description); + } + + redef Log::default_ext_func = add_extension; + +A resulting :file:`conn.log`:: + + #fields _write_ts _stream _system_name ts uid … + #types time string string time string … + 1071580905.346457 conn zeek 1071580904.891921 Cod6Wj3YeJFHgkaO8j … + +.. note:: + + Extension fields remain separate from the original log record. They remain + invisible to filters, policy hooks, and log events. *After* filter processing + determines that an entry is to be logged, the framework simply tucks the + extension's members onto the list of fields to write out. + +Field Name Mapping +~~~~~~~~~~~~~~~~~~ + +On occasion it can be handy to rewrite column names as they appear in a Zeek +log. A typical use case for this would be to ensure that column naming complies +with the requirements of your log ingestion system. To achieve this, you can +provide name translation maps, and here too you can do this either globally or +per-filter. The maps are simple string tables with the keys being Zeek’s field +names and the values being the ones to actually write out. Field names not +present in the maps remain unchanged. The global variant is the (normally +empty) :zeek:see:`Log::default_field_name_map`, and the corresponding +filter-local equivalent is the filter’s ``field_name_map`` member. + +For example, the following name map gets rid of the dots in the usual naming of +connection IDs: + +.. code-block:: zeek + + redef Log::default_field_name_map = { + ["id.orig_h"] = "id_orig_h", + ["id.orig_p"] = "id_orig_p", + ["id.resp_h"] = "id_resp_h", + ["id.resp_p"] = "id_resp_p" + }; + +With it, all logs rendering a connection identifier tuple now use ... + +:: + + #fields ts uid id_orig_h id_orig_p id_resp_h id_resp_p ... + +… instead of the default names: + +:: + + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p ... + +If you’d prefer this change only for a given log filter, make the change to the +filter record directly. The following changes the naming only for +:file:`conn.log`: + +.. code-block:: zeek + + event zeek_init() + { + local f = Log::get_filter(Conn::LOG, "default"); + f$field_name_map = table( + ["id.orig_h"] = "id_orig_h", + ["id.orig_p"] = "id_orig_p", + ["id.resp_h"] = "id_resp_h", + ["id.resp_p"] = "id_resp_p"); + Log::add_filter(Conn::LOG, f); + } + +Printing to Log Messages +~~~~~~~~~~~~~~~~~~~~~~~~ + +Zeek’s :zeek:see:`print` statement normally writes to ``stdout`` or a specific +output file. By adjusting the :zeek:see:`Log::print_to_log` enum value you can +redirect such statements to instead go directly into a Zeek log. Possible +values include: + +* :zeek:see:`Log::REDIRECT_NONE`: the default, which doesn’t involve Zeek logs +* :zeek:see:`Log::REDIRECT_STDOUT`: prints that would normally go to stdout go + to a log +* :zeek:see:`Log::REDIRECT_ALL`: any prints end up in a log instead of stdout + or other files + +The :zeek:see:`Log::print_log_path` defines the name of the log file, +:zeek:see:`Log::PrintLogInfo` its columns, and :zeek:see:`Log::log_print` +events allow you to process logged messages via event handlers. + +Local vs Remote Logging +~~~~~~~~~~~~~~~~~~~~~~~ + +In its log processing, Zeek considers whether log writes should happen locally +to a Zeek node or remotely on another node, after forwarding log entries to it. +Single-node Zeek setups default to local logging, whereas cluster setups enable +local logging only on logger nodes, and log remotely on all but the logger +nodes. You normally don’t need to go near these settings, but you can do so by +``redef``’ing the :zeek:see:`Log::enable_local_logging` and +:zeek:see:`Log::enable_remote_logging` booleans, respectively. + +Writers +======= + +Each filter has a writer. If you do not specify a writer when adding a filter +to a stream, then the ASCII writer is the default. + +There are two ways to specify a non-default writer. To change the default +writer for all log filters, just redefine the :zeek:see:`Log::default_writer` +option. Alternatively, you can specify the writer to use on a per-filter basis +by setting a value for the filter’s ``writer`` field. Consult the documentation +of the writer to use to see if there are other options that are needed. + +ASCII Writer +------------ + +By default, the ASCII writer outputs log files that begin with several lines of +metadata, followed by the actual log output. The metadata describes the format +of the log file, the ``path`` of the log (i.e., the log filename without file +extension), and also specifies the time that the log was created and the time +when Zeek finished writing to it. The ASCII writer has a number of options for +customizing the format of its output, see +:doc:`/scripts/base/frameworks/logging/writers/ascii.zeek`. If you change the +output format options, then be careful to check whether your post-processing +scripts can still recognize your log files. + +Some writer options are global (i.e., they affect all log filters using that +log writer). For example, to change the output format of all ASCII logs to JSON +format: + +.. code-block:: zeek + + redef LogAscii::use_json = T; + + +Some writer options are filter-specific (i.e., they affect only the filters +that explicitly specify the option). For example, to change the output format +of the :file:`conn.log` only: + +.. code-block:: zeek + + event zeek_init() + { + local f = Log::get_filter(Conn::LOG, "default"); + # Use tab-separated-value mode + f$config = table(["tsv"] = "T"); + Log::add_filter(Conn::LOG, f); + } + +.. _logging-sqlite-writer: + +SQLite Writer +------------- + +SQLite is a simple, file-based, widely used SQL database system. Using SQLite +allows Zeek to write and access data in a format that is easy to use in +interchange with other applications. Due to the transactional nature of SQLite, +databases can be used by several applications simultaneously. Zeek’s input +framework supports a :ref:`SQLite reader `. + +Logging support for SQLite is available in all Zeek installations. There is no +need to load any additional scripts or for any compile-time configurations. +Sending data from existing logging streams to SQLite is rather straightforward. +Most likely you’ll want SQLite output only for select log filters, so you have +to configure one to use the SQLite writer. The following example code adds +SQLite as a filter for the connection log: + +.. code-block:: zeek + + event zeek_init() + { + local filter: Log::Filter = + [ + $name="sqlite", + $path="/var/db/conn", + $config=table(["tablename"] = "conn"), + $writer=Log::WRITER_SQLITE + ]; + + Log::add_filter(Conn::LOG, filter); + } + +Zeek will create the database file :file:`/var/db/conn.sqlite` if it does not +already exist. It will also create a table with the name ``conn`` (if it does +not exist) and start appending connection information to the table. + +Zeek does not currently support rotating SQLite databases as it does for ASCII +logs. You have to take care to create them in adequate locations. + +If you examine the resulting SQLite database, the schema will contain the same +fields that are present in the ASCII log files: + +.. code-block:: console + + sqlite3 /var/db/conn.sqlite + +:: + + SQLite version 3.8.0.2 2013-09-03 17:11:13 + Enter ".help" for instructions + Enter SQL statements terminated with a ";" + sqlite> .schema + CREATE TABLE conn ( + 'ts' double precision, + 'uid' text, + 'id.orig_h' text, + 'id.orig_p' integer, + ... + +Note that with the above code the ASCII :file:`conn.log` will still be created, +because it adds an additional log filter alongside the default, ASCII-logging +one. To prevent this you can remove the default filter: + +.. code-block:: zeek + + Log::remove_filter(Conn::LOG, "default"); + +To create a custom SQLite log file, you have to create a new log stream that +contains just the information you want to commit to the database. See the above +documentation on how to create custom log streams. + +None Writer +----------- + +The ``None`` writer, selected via :zeek:see:`Log::WRITER_NONE`, is largely a +troubleshooting and development aide. It discards all log entries it receives, +but behaves like a proper writer to the rest of the logging framework, +including, for example, pretended log rotation. If you enable its debugging +mode by setting :zeek:see:`LogNone::debug` to ``T``, Zeek reports operational +details about the writer’s activity to ``stdout``. diff --git a/doc/frameworks/logging/delay1.zeek b/doc/frameworks/logging/delay1.zeek new file mode 100644 index 0000000000..ae75bd76ca --- /dev/null +++ b/doc/frameworks/logging/delay1.zeek @@ -0,0 +1,37 @@ +@load base/protocols/conn + +redef record Conn::Info += { + orig_name: string &log &optional; + resp_name: string &log &optional; +}; + +hook Log::log_stream_policy(rec: Conn::Info, id: Log::ID) + { + if ( id != Conn::LOG ) + return; + + local token1 = Log::delay(id, rec); + local token2 = Log::delay(id, rec); + + when [id, rec, token1] ( local orig_name = lookup_addr(rec$id$orig_h) ) + { + rec$orig_name = orig_name; + Log::delay_finish(id, rec, token1); + } + timeout 150msec + { + Reporter::warning(fmt("lookup_addr timeout for %s", rec$id$orig_h)); + Log::delay_finish(id, rec, token1); + } + + when [id, rec, token2] ( local resp_name = lookup_addr(rec$id$resp_h) ) + { + rec$resp_name = resp_name; + Log::delay_finish(id, rec, token2); + } + timeout 150msec + { + Reporter::warning(fmt("lookup_addr timeout for %s", rec$id$resp_h)); + Log::delay_finish(id, rec, token2); + } + } diff --git a/doc/frameworks/management.rst b/doc/frameworks/management.rst new file mode 100644 index 0000000000..f8d7499339 --- /dev/null +++ b/doc/frameworks/management.rst @@ -0,0 +1,867 @@ +.. _framework-management: + +==================== +Management Framework +==================== + +.. rst-class:: opening + + The management framework provides a Zeek-based, service-oriented architecture + and event-driven APIs to manage a Zeek cluster that monitors live traffic. It + provides a central, stateful *controller* that relays and orchestrates + cluster management tasks across connected *agents*. Each agent manages Zeek + processes in its local *instance*, the Zeek process tree controlled by the + local Zeek :ref:`Supervisor `. A management *client* + lets the user interact with the controller to initiate cluster management + tasks, such as deployment of cluster configurations, monitoring of + operational aspects, or to restart cluster nodes. The default client is + ``zeek-client``, included in the Zeek distribution. + +.. _framework-management-quickstart: + +Quickstart +========== + +Run the following (as root) to launch an all-in-one management instance on your +system: + +.. code-block:: console + + # zeek -C -j policy/frameworks/management/controller policy/frameworks/management/agent + +The above will stay in the foreground. In a new shell, save the following +content to a file ``cluster.cfg`` and adapt the workers' sniffing interfaces to +your system: + +.. literalinclude:: management/mini-config.ini + :language: ini + +Run the following command (as any user) to deploy the configuration: + +.. literalinclude:: management/mini-deployment.console + :language: console + +You are now running a Zeek cluster on your system. Try ``zeek-client get-nodes`` +to see more details about the cluster's current status. (In the above, "testbox" +is the system's hostname.) + +Architecture and Terminology +============================ + +Controller +---------- + +The controller forms the central hub of cluster management. It exists once in +every installation and runs as a Zeek process solely dedicated to management +tasks. It awaits instructions from a management client and communicates with one +or more agents to manage their cluster nodes. + +All controller communication happens via :ref:`Broker `-based +Zeek event exchange, usually in the form of request-response event pairs tagged +with a request ID to provide context. The controller is stateful and persists +cluster configurations to disk. In a multi-system setup, the controller runs +inside a separate, dedicated Zeek instance. In a single-system setup, the +controller can run as an additional process in the local instance. + +The controller's API resides in the :zeek:see:`Management::Controller::API` module. +Additional code documentation is :doc:`here `. + +Instance +-------- + +A Zeek instance comprises the set of processes managed by a Zeek +:ref:`Supervisor `. The management framework builds +heavily on the Supervisor framework and cannot run without it. Typically, a +single instance includes all Zeek processes on the local system (a physical +machine, a container, etc), but running multiple instances on a system is +possible. + +Agent +----- + +Management agents implement instance-level cluster management tasks. Every +instance participating in cluster management runs an agent. Agents peer with the +controller to receive instructions (a node restart, say), carry them out, and +respond with the outcome. The direction of connection establishment for the +peering depends on configuration and can go either way (more on this below); by +default, agents connect to the controller. + +The agent's API resides in the :zeek:see:`Management::Agent::API` module. +Additional code documentation is :doc:`here `. + +Agents add script-layer code to both the Supervisor (details :doc:`here +`) and Zeek cluster +nodes (details :doc:`here `) +to enable management tasks (e.g. to tap into node stdout/stderr output) and to +receive confirmation of successful node startup. + +Cluster nodes +------------- + +The Zeek processes involved in traffic analysis and log output make up the Zeek +*cluster*, via the :ref:`cluster framework `. The management +framework does not change the cluster framework, and all of its concepts (the +manager, logger(s), workers, etc) apply as before. Cluster *nodes* refer to +individual Zeek processes in the cluster, as managed by the Supervisor. + +Client +------ + +The management client provides the user's interface to cluster management. It +allows configuration and deployment of the Zeek cluster, insight into the +running cluster, the ability to restart nodes, etc. The client uses the +controller's event API to communicate and is the only component in the framework +not (necessarily) implemented in Zeek's script layer. The Zeek distribution +ships with ``zeek-client``, a command-line client implemented in Python, to +provide management functionality. Users are welcome to implement other clients. + +.. _framework-management-visual-example: + +A Visual Example +================ + +Consider the following setup, consisting of a single instance, controller, and a +connected ``zeek-client``, all running on different machines: + +.. image:: /images/management.png + :align: center + +The cluster system runs a single management instance, with an agent listening on +TCP port 2151, the default. Since the agent needs to communicate with the +Supervisor for node management tasks and the two run in separate processes, the +Supervisor listens for Broker peerings, on TCP port 9999 (again, the default), +and the two communicate events over topic ``zeek/supervisor``. As shown, the +agent has launched a 4-node Zeek cluster consisting of two workers, a logger, +and a manager, communicating internally as usual. + +The controller system is more straightforward, consisting merely of a +Supervisor-governed management controller. This controller has connected to and +peered with the agent on the cluster system, to relay commands received by the +client via the agent's API and receive responses over Broker topic +``zeek/management/agent``. Since the controller doesn't need to interact with +the Supervisor, the latter doesn't listen on any ports. Standalone controllers, +as running here, still require a Supervisor, to simplify co-located deployment +of agent and controller in a single instance. + +Finally, the admin system doesn't run Zeek, but has it installed to provide +``zeek-client``, the CLI for issuing cluster management requests. This client +connects to and peers with the controller, exchanging controller API events over +topic ``zeek/management/controller``. For more details on ``zeek-client``, see +:ref:`below `. + +In practice you can simplify the deployment by running ``zeek-client`` directly +on the controller machine, or by running agent and controller jointly on a +single system. We cover this in :ref:`more detail +`. + +Goals and Relationship to ZeekControl +===================================== + +The management framework first shipped in usable form in Zeek 5.0. It will +replace the aging :ref:`ZeekControl ` over the course of +the coming releases. The framework is not compatible with ZeekControl's approach +to cluster management: use one or the other, not both. + +The framework currently targets single-instance deployments, i.e., setups in +which traffic monitoring happens on a single system. While the management +framework technically supports clusters spanning multiple monitoring systems, +much of the infrastructure users know from ``zeekctl`` (such as the ability to +deploy Zeek scripts and additional configuration) is not yet available in the +management framework. + +ZeekControl remains included in the Zeek distribution, and remains the +recommended solution for multi-system clusters and those needing rich management +capabilities. + +.. _framework-management-running: + +Running Controller and Agent +============================ + +.. _joint-launch: + +Joint launch +------------ + +The easiest approach is to run a single Zeek instance in which the Supervisor +launches both an agent and the controller. The framework comes pre-configured for +this use-case. Its invocation looks as follows: + +.. code-block:: console + + # zeek -j policy/frameworks/management/controller policy/frameworks/management/agent + +The ``-j`` flag enables the Supervisor and is required for successful launch of +the framework. (Without it, the above command will simply return.) + +.. note:: + + If you're planning to monitor the machine's own traffic, add the ``-C`` flag + to avoid checksum errors, which commonly happen in local monitoring due to + offload of the checksum computation to the NIC. + +The following illustrates this setup: + +.. image:: /images/management-all-in-one.png + :align: center + :scale: 75% + +Separate controller and agent instances +--------------------------------------- + +You can also separate the agent and controller instances. For this, you'd say + +.. code-block:: console + + # zeek -j policy/frameworks/management/agent + +for the agent, and + +.. code-block:: console + + # zeek -j policy/frameworks/management/controller + +for the controller. You can run the latter as a regular user, assuming the user +has write access to the installation's spool and log directories (more on this +below). While technically not required to operate a stand-alone controller, the +Supervisor is currently also required in this scenario, so don't omit the +``-j``. + +This looks as follows: + +.. image:: /images/management-all-in-one-two-zeeks.png + :align: center + + +Controller and agent instances on separate systems +-------------------------------------------------- + +You can also separate the two across different systems, though that approach +will only really start to make sense when the framework fully supports running +multiple traffic-sniffing instances. To do this, you either need to configure +the agent to find the controller, or tell the controller where to find the +agent. For the former, redefine the corresponding config setting, for example by +saying + +.. code-block:: zeek + + redef Management::Agent::controller = [$address="1.2.3.4", $bound_port=21500/tcp]; + +in ``local.zeek`` and then launching + +.. code-block:: console + + # zeek -j policy/frameworks/management/agent local + +The result looks as already covered :ref:`earlier `: + +.. image:: /images/management.png + :align: center + +To make the controller connect to remote agents, deploy configurations that +include the location of such agents in the configuration. More on this below. + +Multiple instances +------------------ + +You can run multiple instances on a single system, but it requires some +care. Doing so requires specifying a different listening port for each agent, +and additionally providing a different listening port for each instance's +Supervisor. Since agents communicate with their Supervisor to facilitate node +management, the Supervisor needs to listen (though only locally). Furthermore, +you need to ensure this agent runs with a unique name (see the next section for +more on naming). + +Assuming you already have an instance running, a launch of an additional agent +might look as follows: + +.. code-block:: console + + # zeek -j policy/frameworks/management/agent \ + Management::Agent::default_port=2152/tcp \ + Management::Agent::name=agent-standby \ + Broker::default_port=10001/tcp + +Finally, as already mentioned, you can spread multiple instances across multiple +systems to explore distributed cluster management. This simplifies the +individual launch invocations, but for practical distributed cluster use you may +find the framework's current cluster management features lacking when compared +to ZeekControl. + +Controller and agent naming +--------------------------- + +The management framework identifies all nodes in the system by name, and all +nodes (agent(s), controller, and Zeek cluster nodes) must have unique names. By +default, the framework chooses ``agent-`` and +``controller-`` for agent and controller, respectively. To reconfigure +naming, set the ``ZEEK_AGENT_NAME`` / ``ZEEK_CONTROLLER_NAME`` environment +variables, or redefine the following: + +.. code-block:: zeek + + redef Management::Controller::name = "controller1"; + redef Management::Agent::name = "agent1"; + +Firewalling and encryption +-------------------------- + +By default, the controller listens for clients and agents on ports ``2149/tcp`` and +``2150/tcp``. The former port supports Broker's WebSocket data format, the latter its +traditional one. +Unless you run all components, including the client, on a single system, you'll +want to open up these ports on the controller's system. The agent's default port +is ``2151/tcp``. It always listens; this allows cluster nodes to connect to it +to send status reports. If the agents connect to the controller, your firewall +may block the agent's port since host-local connectivity from cluster nodes to +the agent process suffices. + +To switch agent and/or controller to different ports, set environment variables +``ZEEK_CONTROLLER_PORT`` / ``ZEEK_CONTROLLER_WEBSOCKET_PORT`` / ``ZEEK_AGENT_PORT``, +or use the following: + +.. code-block:: zeek + + redef Management::Controller::default_port_websocket = 21490/tcp; + redef Management::Controller::default_port = 21500/tcp; + redef Management::Agent::default_port = 21510/tcp; + +By default, agent and controller listen globally. To make them listen on a +specific interface, set environment variables ``ZEEK_CONTROLLER_ADDR`` / +``ZEEK_CONTROLLER_WEBSOCKET_ADDR`` / ``ZEEK_AGENT_ADDR``, +or redefine the framework's fallback default address: + +.. code-block:: zeek + + redef Management::default_address = "127.0.0.1"; + +The framework inherits Broker's TLS capabilities and defaults. For details, +please refer to the :doc:`Broker config settings +`. + +.. note:: + + ``zeek-client`` currently doesn't support client-side certificates. + +Additional framework configuration +---------------------------------- + +The framework features a number of additional settings that we cover as needed +in the remainder of this chapter. Refer to the following to browse them all: + +* :doc:`General settings ` +* :doc:`Controller ` +* :doc:`Agents ` +* :doc:`Cluster nodes ` +* :doc:`Supervisor ` + +Node Operation and Outputs +========================== + +The framework places every Supervisor-created node into its own working +directory, located in ``$(zeek-config --prefix)/var/lib/nodes/``. You can +reconfigure this by setting the ``ZEEK_MANAGEMENT_STATE_DIR`` or redefining +:zeek:see:`Management::state_dir`. Doing either will change the toplevel +directory (i.e., replacing the path up to and including ``var/lib`` in the +above); the framework will still create the ``nodes/`` directory structure +within it. + +Outputs in the resulting directory include: + +* Two separate ad-hoc logs (not structured by Zeek's logging framework) + capturing the node's stdout and stderr streams. Their naming is configurable, + defaulting simply to ``stdout`` and ``stderr``. + +* Zeek log files prior to log rotation. + +* Persisted Zeek state, such as Broker-backed tables. + + +Log Management +============== + +The framework configures log rotation and archival via Zeek's included +`zeek-archiver tool `_, as follows: + +* The :zeek:see:`Log::default_rotation_interval` is one hour, with both local + and remote logging enabled. You are free to adjust it as needed. + +* The log rotation directory defaults to ``$(zeek-config --prefix)/spool/log-queue``. + To adjust this, redefine :zeek:see:`Log::default_rotation_dir` as usual. + You can also relocate the spool by setting the ``ZEEK_MANAGEMENT_SPOOL_DIR`` + environment variable or redefining :zeek:see:`Management::spool_dir`. The + framework will place ``log-queue`` into that new destination. + +* The log rotation callback rotates node-local logs into the log queue, with + naming suitable for ``zeek-archiver``. An example: + + .. code-block:: console + + conn__2022-06-20-10-00-00__2022-06-20-11-00-00__.log + + For details, take a look at the implementation in + ``scripts/policy/frameworks/management/persistence.zeek``. + +* Once per log rotation interval, the agent launches log archival to archive + rotated logs into the installation's log directory (``$(zeek-config + --root)/logs``). By default this invokes ``zeek-archiver``, which establishes + a datestamp directory in the ``logs`` directory and places the compressed logs + into it: + + .. code-block:: console + + # cd $(zeek-config --root)/logs + # ls -l + total 4 + drwx------. 2 root root 4096 Jun 20 21:17 2022-06-20 + # cd 2022-06-20 + # ls -l + total 712 + -rw-r--r--. 1 root root 280 Jun 20 20:17 broker.19:00:00-20:00:00.log.gz + -rw-r--r--. 1 root root 24803 Jun 20 20:17 conn.19:00:00-20:00:00.log.gz + -rw-r--r--. 1 root root 26036 Jun 20 21:17 conn.20:00:00-21:00:00.log.gz + -rw-r--r--. 1 root root 350 Jun 20 20:17 dhcp.19:00:00-20:00:00.log.gz + -rw-r--r--. 1 root root 400 Jun 20 21:17 dhcp.20:00:00-21:00:00.log.gz + ... + +You can adapt the log archival configuration via the following settings: + +* Redefine :zeek:see:`Management::Agent::archive_logs` to ``F`` to disable + archival entirely. + +* Redefine :zeek:see:`Management::Agent::archive_interval` for an interval other + than the log rotation one. + +* Redefine :zeek:see:`Management::Agent::archive_dir` to change the + destination directory. + +* Redefine :zeek:see:`Management::Agent::archive_cmd` to invoke an executable + other than the included ``zeek-archiver``. The replacement should accept the + same argument structure: `` -1 ``. The + ``-1`` here refers to ``zeek-archiver``'s one-shot processing mode. + +.. _framework-management-zeek-client: + +The zeek-client CLI +=================== + +Zeek ships with a command-line client for the Management framework: +``zeek-client``, installed alongside the other executables in the +distribution. It looks as follows: + +.. literalinclude:: management/zeek-client-help.console + :language: console + +Run commands with ``--help`` for additional details. + +The majority of ``zeek-client``'s commands send off a request to the controller, +wait for it to act on it, retrieve the response, and render it to the +console. The output is typically in JSON format, though a few commands also +support ``.ini`` output. + +Looking at the :zeek:see:`Management::Controller::API` module, you'll notice +that the structure of response event arguments is fairly rigid, consisting of +one or more :zeek:see:`Management::Result` records. ``zeek-client`` does not +render these directly to JSON. Instead, it translates the responses to a more +convenient JSON format reflecting specific types of requests. Several commands +share a common output format. + +.. _zeek-client-installation: + +Standalone installation +----------------------- + +As mentioned above, Zeek ships with ``zeek-client`` by default. Since users will +often want to use the client from machines not otherwise running Zeek, the +client is also available as a standalone Python package via ``pip``: + +.. code-block:: console + + $ pip install zeek-client + +Users with custom Zeek builds who don't require a Zeek-bundled ``zeek-client`` +can skip its installation by configuring their build with +``--disable-zeek-client``. + +.. _zeek-client-compatibility: + +Compatibility +------------- + +Zeek 5.2 switched client/controller communication from Broker's native wire +format to the newer `WebSocket data transport +`_, with +``zeek-client`` 1.2.0 being the first version to exclusively use WebSockets. +This has a few implications: + +* Since Broker dedicates separate ports to the respective wire formats, the + controller listens on TCP port 2149 for WebSocket connections, while + TCP port 2150 remains available for connections by native-Broker clients, as well + as by management agents connecting to the controller. + +* ``zeek-client`` 1.2.0 and newer default to connecting to port 2149. + +* Controllers running Zeek older than 5.2 need tweaking to listen on a WebSocket + port, for example by saying: + + .. code-block:: console + + event zeek_init() + { + Broker::listen_websocket("0.0.0.0", 2149/tcp); + } + +* Older clients continue to work with Zeek 5.2 and newer. + +.. _zeek-client-configuration: + +Configuration +------------- + +The client features a handful of configuration settings, reported when running +``zeek-client show-settings``: + +.. literalinclude:: management/zeek-client-show-settings.console + :language: console + +You can override these via a configuration file, the environment variable +``ZEEK_CLIENT_CONFIG_SETTINGS``, and the ``--set`` command-line argument, in +order of increasing precedence. To identify a setting, use +``

    .``, as shown by your client. For example, in order to +specify a controller's location on the network, you could: + +* Put the following in a config file, either at its default location shown in + the help output (usually ``$(zeek-config --prefix)/etc/zeek-client.cfg``) + or one that you provide via ``-c``/``--configfile``: + + .. code-block:: ini + + [controller] + host = mycontroller + port = 21490 + +* Set the environment: + + .. code-block:: console + + ZEEK_CLIENT_CONFIG_SETTINGS="controller.host=mycontroller controller.port=21490" + +* Use the ``--set`` option, possibly repeatedly: + + .. code-block:: console + + $ zeek-client --set controller.host=mycontroller --set controller.port=21490 ... + +Other than the controller coordinates, the settings should rarely require +changing. If you're curious about their meaning, please consult the `source code +`_. + +Auto-complete +------------- + +On systems with an installed `argcomplete `_ +package, ``zeek-client`` features command-line auto-completion. For example: + +.. code-block:: console + + $ zeek-client --set controller. + controller.host=127.0.0.1 controller.port=2149 + +Common cluster management tasks +=============================== + +With a running controller and agent, it's time start using ``zeek-client`` for +actual cluster management tasks. By default, the client will connect to a +controller running on the local system. If that doesn't match your setting, +instruct the client to contact the controller via one of the approaches shown +:ref:`earlier `. + +Checking connected agents +------------------------- + +Use ``zeek-client get-instances`` to get a summary of agents currently peered +with the controller: + +.. code-block:: console + + $ zeek-client get-instances + { + "agent-testbox": { + "host": "127.0.0.1" + } + } + +For agents connecting to the controller you'll see the above output; for agents +the controller connected to you'll also see those agent's listening ports. + +Defining a cluster configuration +-------------------------------- + +For ``zeek-client``, cluster configurations are simple ``.ini`` files with two +types of sections: the special ``instances`` section defines the instances +involved in the cluster, represented by their agents. All other sections in the +file name individual cluster nodes and describe their roles and properties. + +Here's a full-featured configuration describing the available options, assuming +a single agent running on a machine "testbox" with default settings: + +.. literalinclude:: management/full-config.ini + :language: ini + +.. _simplification-instance-local: + +Simplification for instance-local deployment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In practice you can omit many of the settings. We already saw in the +:ref:`Quickstart ` section that a configuration +deployed locally in a :ref:`joint agent-controller setup ` need +not specify any instances at all. In that case, use of the local instance +``agent-`` is implied. If you use other agent naming or more complex +setups, every node needs to specify its instance. + +Simplification for agent-to-controller connectivity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In setups where agents connect to the controller, you may omit the ``instances`` +section if it would merely repeat the list of instances claimed by the nodes. + +Simplification for port selection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +All but the worker nodes in a Zeek cluster require a listening port, and you can +specify one for each node as shown in the above configuration. If you'd rather +not pick ports, the controller can auto-enumerate ports for you, as follows: + +* The :zeek:see:`Management::Controller::auto_assign_broker_ports` Boolean, which defaults to + ``T``, controls whether port auto-enumeration is active. Redefining to ``F`` + disables the feature. + +* :zeek:see:`Management::Controller::auto_assign_broker_start_port` defines the starting point + for port enumeration. This defaults to ``2200/tcp``. + +* Any nodes with explicitly configured ports will keep them. + +* For other nodes, the controller will assign ports first to the manager, then + logger(s), then proxies. Within each of those groups, it first groups nodes + in the same instance (to obtain locally sequential ports), and orders these + alphabetically by name before enumerating. It also avoids conflicts with + configured agent and controller ports. + +* The controller does not verify that selected ports are in fact unclaimed. + It's up to you to ensure an available pool of unclaimed listening ports from + the start port onward. + +By retrieving the deployed configuration from the controller (see the next two +sections) you can examine which ports the controller selected. + +Configuration of the Telemetry framework +---------------------------------------- + +By default, the framework will enable Prometheus metrics exposition ports, +including a service discovery endpoint on the manager (refer to the +:ref:`Telemetry Framework ` for details), and +auto-assign them for you. Specifically, the controller will enumerate ports +starting from +:zeek:see:`Management::Controller::auto_assign_metrics_start_port`, which +defaults to ``9000/tcp``. Any ports you define manually will be preserved. To +disable metrics port auto-assignment, redefine +:zeek:see:`Management::Controller::auto_assign_metrics_ports` to ``F``. + +Staging and deploying configurations +------------------------------------ + +The framework structures deployment of a cluster configuration into two +phases: + +#. First, the cluster configuration is *staged*: the client uploads it to the + controller, which validates its content, and --- upon successful validation + --- persists this configuration to disk. Restarting the controller at this + point will preserve this configuration in its staged state. Validation checks + the configuration for consistency and structural errors, such as doubly + defined nodes, port collisions, or inconsistent instance use. The controller + only ever stores a single staged configuration. + +#. Then, *deployment* applies needed finalization to the configuration (e.g. to + auto-enumerate ports) and, assuming all needed instances have peered, + distributes the configuration to their agents. Deployment replaces any + preexisting Zeek cluster, shutting down the existing node processes. The + controller also persists the deployed configuration to disk, alongside the + staged one. Deployment does *not* need to be successful to preserve a + deployed configuration: it's the attempt to deploy that matters. + +Internally, configurations bear an identifier string to allow tracking. The +client selects this identifier, which comes with no further assurances --- for +example, identical configurations need not bear the same identifier. + +To stage a configuration, use the following: + +.. code-block:: console + + $ zeek-client stage-config cluster.cfg + { + "errors": [], + "results": { + "id": "5e90197a-f850-11ec-a77f-7c10c94416bb" + } + } + +The ``errors`` array contains textual description of any validation problems +encountered, causing the client to exit with error. The reported ``id`` is the +configuration's identifier, as set by the client. + +Then, trigger deployment of the staged configuration: + +.. code-block:: console + + $ zeek-client deploy + { + "errors": [], + "results": { + "id": "5e90197a-f850-11ec-a77f-7c10c94416bb" + "nodes": { + "logger": { + "instance": "agent-testbox4", + "success": true + }, + "manager": { + "instance": "agent-testbox4", + "success": true + }, + "worker-01": { + "instance": "agent-testbox4", + "success": true + }, + "worker-02": { + "instance": "agent-testbox4", + "success": true + } + } + } + } + +Success! Note the matching identifiers. The errors array covers any internal +problems, and per-node summaries report the deployment outcome. In case of +launch errors in individual nodes, stdout/stderr is captured and hopefully +provides clues. Revisiting the quickstart example, let's introduce an error in +``cluster.cfg``: + +.. literalinclude:: management/mini-config-with-error.ini + :language: ini + +Since staging and deployment will frequently go hand-in-hand, the client +provides the ``deploy-config`` command to combine them into one. Let's use it: + +.. literalinclude:: management/mini-deployment-error.console + :language: console + +The client exits with error, the timeout error refers to the fact that one of +the launch commands timed out, and ``worker-02``'s stderr shows the problem. The +Supervisor will continue to try to launch the node with ever-increasing +reattempt delays, and keep failing. + +Retrieving configurations +------------------------- + +The client's ``get-config`` command lets you retrieve staged and deployed +configurations from the controller, in JSON or :file:`.ini` form. This is helpful for +examining the differences between the two. Following the successful deployment +shown above, we have: + +.. literalinclude:: management/mini-deployment-get-config-staged.console + :language: console + +You can see here how the client's :ref:`instance-local simplification +` filled in instances under the hood. + +The ``.ini`` output is reusable as deployable configuration. The same +configuration is available in JSON, showing more detail: + +.. literalinclude:: management/mini-deployment-get-config-staged-json.console + :language: console + +Finally, you can also retrieve the deployed configuration (in either format): + +.. literalinclude:: management/mini-deployment-get-config-deployed.console + :language: console + +Note the manager's and logger's auto-enumerated ports in this one. + +Showing the current instance nodes +---------------------------------- + +To see the current node status as visible to the Supervisors in each agent's +instance, use the ``get-nodes`` command: + +.. literalinclude:: management/mini-deployment-get-nodes.console + :language: console + +This groups nodes by instances, while also showing agents and controllers, so +``agent-testbox`` shows up twice in the above. Nodes can be in two states, +``PENDING`` upon launch and before the new node has checked in with the agent, +and ``RUNNING`` once that has happened. Nodes also have a role either in cluster +management (as ``AGENT`` or ``CONTROLLER``), or in the Zeek cluster. The +information shown per node essentially reflects the framework's +:zeek:see:`Management::NodeStatus` record. + +Showing current global identifier values +---------------------------------------- + +For troubleshooting scripts in production it can be very handy to verify the +contents of global variables in specific nodes. The client supports this via the +``get-id-value`` command. To use it, specify the name of a global identifier, as +well as any node names from which you'd like to retrieve it. The framework +renders the value to JSON directly in the queried cluster node, side-stepping +potential serialization issues for complex types, and integrates the result in +the response: + +.. literalinclude:: management/get-id-value-simple.console + :language: console + +.. literalinclude:: management/get-id-value-complex.console + :language: console + +Restarting cluster nodes +------------------------ + +The ``restart`` command allows you to restart specific cluster nodes, or the +entire cluster. Note that this refers only to the operational cluster (manager, +workers, etc) --- this will not restart any agents or a co-located controller. + +Here's the current manager: + +.. code-block:: console + + $ zeek-client get-nodes | jq '.results."agent-testbox".manager' + { + "cluster_role": "MANAGER", + "mgmt_role": null, + "pid": 54073, + "port": 2200, + "state": "RUNNING" + } + +Let's restart it: + +.. code-block:: console + + $ zeek-client restart manager + { + "errors": [], + "results": { + "manager": true + } + } + +It's back up and running (note the PID change): + +.. code-block:: console + + $ zeek-client get-nodes | jq '.results."agent-testbox".manager' + { + "cluster_role": "MANAGER", + "mgmt_role": null, + "pid": 68752, + "port": 2200, + "state": "RUNNING" + } diff --git a/doc/frameworks/management/full-config.ini b/doc/frameworks/management/full-config.ini new file mode 100644 index 0000000000..c4c3912d5e --- /dev/null +++ b/doc/frameworks/management/full-config.ini @@ -0,0 +1,88 @@ +# The instances section describes where you run Management agents +# and whether these agents connect to the controller, or the controller +# connects to them. Each instance (or, equivalently, the agent running +# on it) is identified by a unique name. The names in this configuration +# must match the names the agents use in the Zeek configuration. Without +# customization, that name is "agent-". +[instances] +# A value-less entry means this agent connects to the controller: +agent-testbox + +# An entry with a value of the form ":" means the controller will +# connect to them. +# +# agent-testbox = 12.34.56.78:1234 + +# All other sections identify Zeek cluster nodes. The section name sets +# the name of the node: +[manager] + +# Nodes typically state which instance they run on: +instance = agent-testbox + +# Every node needs to define its role. Possible values are "manager", +# "logger", "proxy", and "worker". +role = manager + +# For nodes that require a listening port (all roles but workers), +# you can choose to define a port. If you omit it, the framework will +# define ports for you. Only give a number; TCP is implied. +# +# port = 1234 + +# You can optionally specify explicit metrics exposition ports for each +# node. If you omit these, the framework (specifically, the controller) +# will define ports for you. Only give a number; TCP is implied. +# +# metrics_port = 9090 + +# You can provide additional scripts that a node should run. These scripts +# must be available on the instance. Space-separate multiple scripts. +# +# scripts = policy/tuning/json-logs policy/misc/loaded-scripts + +# You can define environment variables for the node. List them as =, +# space-separated if you provide multiple. If the value has whitespace, say +# ="' +# +# env = FOO=BAR + +# For workers, specify a sniffing interface as follows: +# +# interface = + +# To express CPU affinity, use the following: +# +# cpu_affinity = + +[logger] +instance = agent-testbox +role = logger + +[proxy1] +instance = agent-testbox +role = proxy + +[proxy2] +instance = agent-testbox +role = proxy + +[worker1] +instance = agent-testbox +role = worker +interface = eth0 + +[worker2] +instance = agent-testbox +role = worker +interface = eth1 + +[worker3] +instance = agent-testbox +role = worker +interface = eth2 + +[worker4] +instance = agent-testbox +role = worker +interface = eth3 diff --git a/doc/frameworks/management/get-id-value-complex.console b/doc/frameworks/management/get-id-value-complex.console new file mode 100644 index 0000000000..34657be5dc --- /dev/null +++ b/doc/frameworks/management/get-id-value-complex.console @@ -0,0 +1,31 @@ +$ zeek-client get-id-value Log::all_streams worker-01 +{ + "errors": [], + "results": { + "worker-01": { + "Broker::LOG": { + "columns": null, + "path": "broker", + "policy": "Broker::log_policy" + }, + "Cluster::LOG": { + "columns": null, + "path": "cluster", + "policy": "Cluster::log_policy" + }, + ... + "X509::LOG": { + "columns": null, + "ev": "X509::log_x509", + "path": "x509", + "policy": "X509::log_policy" + }, + "mysql::LOG": { + "columns": null, + "ev": "MySQL::log_mysql", + "path": "mysql", + "policy": "MySQL::log_policy" + } + } + } +} diff --git a/doc/frameworks/management/get-id-value-simple.console b/doc/frameworks/management/get-id-value-simple.console new file mode 100644 index 0000000000..e8ce2a69f1 --- /dev/null +++ b/doc/frameworks/management/get-id-value-simple.console @@ -0,0 +1,10 @@ +$ zeek-client get-id-value LogAscii::use_json +{ + "errors": [], + "results": { + "logger": false, + "manager": false, + "worker-01": false, + "worker-02": false + } +} diff --git a/doc/frameworks/management/mini-config-with-error.ini b/doc/frameworks/management/mini-config-with-error.ini new file mode 100644 index 0000000000..9f5f27c109 --- /dev/null +++ b/doc/frameworks/management/mini-config-with-error.ini @@ -0,0 +1,13 @@ +[manager] +role = manager + +[logger] +role = logger + +[worker-01] +role = worker +interface = lo + +[worker-02] +role = worker +interface = not-a-valid-interface diff --git a/doc/frameworks/management/mini-config.ini b/doc/frameworks/management/mini-config.ini new file mode 100644 index 0000000000..51bd5ad8d7 --- /dev/null +++ b/doc/frameworks/management/mini-config.ini @@ -0,0 +1,13 @@ +[manager] +role = manager + +[logger] +role = logger + +[worker-01] +role = worker +interface = lo + +[worker-02] +role = worker +interface = eth0 diff --git a/doc/frameworks/management/mini-deployment-error.console b/doc/frameworks/management/mini-deployment-error.console new file mode 100644 index 0000000000..6ced5e61ea --- /dev/null +++ b/doc/frameworks/management/mini-deployment-error.console @@ -0,0 +1,29 @@ +$ zeek-client deploy-config cluster.cfg +{ + "errors": [ + "request timed out" + ], + "results": { + "id": "eed87b02-f851-11ec-80e7-7c10c94416bb", + "nodes": { + "logger": { + "instance": "agent-testbox", + "success": true + }, + "manager": { + "instance": "agent-testbox", + "success": true + }, + "worker-01": { + "instance": "agent-testbox", + "success": true + }, + "worker-02": { + "instance": "agent-testbox", + "stderr": "fatal error: problem with interface not-a-valid-interface (pcap_error: No such device exists (pcap_activate))", + "stdout": "", + "success": false + } + } + } +} diff --git a/doc/frameworks/management/mini-deployment-get-config-deployed.console b/doc/frameworks/management/mini-deployment-get-config-deployed.console new file mode 100644 index 0000000000..4850b73dba --- /dev/null +++ b/doc/frameworks/management/mini-deployment-get-config-deployed.console @@ -0,0 +1,23 @@ +$ zeek-client get-config --deployed +[instances] +agent-testbox + +[logger] +instance = agent-testbox +role = LOGGER +port = 2201 + +[manager] +instance = agent-testbox +role = MANAGER +port = 2200 + +[worker-01] +instance = agent-testbox +role = WORKER +interface = lo + +[worker-02] +instance = agent-testbox +role = WORKER +interface = eth0 diff --git a/doc/frameworks/management/mini-deployment-get-config-staged-json.console b/doc/frameworks/management/mini-deployment-get-config-staged-json.console new file mode 100644 index 0000000000..8ce19a1853 --- /dev/null +++ b/doc/frameworks/management/mini-deployment-get-config-staged-json.console @@ -0,0 +1,55 @@ +$ zeek-client get-config --as-json +{ + "id": "5e90197a-f850-11ec-a77f-7c10c94416bb", + "instances": [ + { + "name": "agent-testbox" + } + ], + "nodes": [ + { + "cpu_affinity": null, + "env": {}, + "instance": "agent-testbox", + "interface": null, + "name": "logger", + "options": null, + "port": null, + "role": "LOGGER", + "scripts": null + }, + { + "cpu_affinity": null, + "env": {}, + "instance": "agent-testbox", + "interface": null, + "name": "manager", + "options": null, + "port": null, + "role": "MANAGER", + "scripts": null + }, + { + "cpu_affinity": null, + "env": {}, + "instance": "agent-testbox", + "interface": "lo", + "name": "worker-01", + "options": null, + "port": null, + "role": "WORKER", + "scripts": null + }, + { + "cpu_affinity": null, + "env": {}, + "instance": "agent-testbox", + "interface": "eth0", + "name": "worker-02", + "options": null, + "port": null, + "role": "WORKER", + "scripts": null + } + ] +} diff --git a/doc/frameworks/management/mini-deployment-get-config-staged.console b/doc/frameworks/management/mini-deployment-get-config-staged.console new file mode 100644 index 0000000000..f1f2595961 --- /dev/null +++ b/doc/frameworks/management/mini-deployment-get-config-staged.console @@ -0,0 +1,21 @@ +$ zeek-client get-config +[instances] +agent-testbox + +[logger] +instance = agent-testbox +role = LOGGER + +[manager] +instance = agent-testbox +role = MANAGER + +[worker-01] +instance = agent-testbox +role = WORKER +interface = lo + +[worker-02] +instance = agent-testbox +role = WORKER +interface = eth0 diff --git a/doc/frameworks/management/mini-deployment-get-nodes.console b/doc/frameworks/management/mini-deployment-get-nodes.console new file mode 100644 index 0000000000..cdd1776529 --- /dev/null +++ b/doc/frameworks/management/mini-deployment-get-nodes.console @@ -0,0 +1,47 @@ +$ zeek-client get-nodes +{ + "errors": [], + "results": { + "agent-testbox": { + "agent-testbox": { + "cluster_role": null, + "mgmt_role": "AGENT", + "pid": 52076, + "state": "RUNNING" + }, + "controller-testbox": { + "cluster_role": null, + "mgmt_role": "CONTROLLER", + "pid": 52075, + "port": 2151, + "state": "RUNNING" + }, + "logger": { + "cluster_role": "LOGGER", + "mgmt_role": null, + "pid": 54075, + "port": 2201, + "state": "RUNNING" + }, + "manager": { + "cluster_role": "MANAGER", + "mgmt_role": null, + "pid": 54073, + "port": 2200, + "state": "RUNNING" + }, + "worker-01": { + "cluster_role": "WORKER", + "mgmt_role": null, + "pid": 54074, + "state": "RUNNING" + }, + "worker-02": { + "cluster_role": "WORKER", + "mgmt_role": null, + "pid": 54072, + "state": "RUNNING" + } + } + } +} diff --git a/doc/frameworks/management/mini-deployment.console b/doc/frameworks/management/mini-deployment.console new file mode 100644 index 0000000000..90ea8f2490 --- /dev/null +++ b/doc/frameworks/management/mini-deployment.console @@ -0,0 +1,25 @@ +$ zeek-client deploy-config cluster.cfg +{ + "errors": [], + "results": { + "id": "9befc56c-f7e8-11ec-8626-7c10c94416bb", + "nodes": { + "logger": { + "instance": "agent-testbox", + "success": true + }, + "manager": { + "instance": "agent-testbox", + "success": true + }, + "worker-01": { + "instance": "agent-testbox", + "success": true + }, + "worker-02": { + "instance": "agent-testbox", + "success": true + } + } + } +} diff --git a/doc/frameworks/management/zeek-client-help.console b/doc/frameworks/management/zeek-client-help.console new file mode 100644 index 0000000000..cd3d56fd60 --- /dev/null +++ b/doc/frameworks/management/zeek-client-help.console @@ -0,0 +1,45 @@ +$ zeek-client --help +usage: zeek-client [-h] [-c FILE] [--controller HOST:PORT] + [--set SECTION.KEY=VAL] [--quiet | --verbose] [--version] + {deploy,deploy-config,get-config,get-id-value,get-instances,get-nodes,monitor,restart,stage-config,show-settings,test-timeout} + ... + +A Zeek management client + +options: + -h, --help show this help message and exit + -c FILE, --configfile FILE + Path to zeek-client config file. (Default: + /usr/local/zeek/etc/zeek-client.cfg) + --controller HOST:PORT + Address and port of the controller, either of which + may be omitted (default: 127.0.0.1:2149) + --set SECTION.KEY=VAL + Adjust a configuration setting. Can use repeatedly. + See show-settings. + --quiet, -q Suppress informational output to stderr. + --verbose, -v Increase informational output to stderr. Repeat for + more output (e.g. -vvv). + --version Show version number and exit. + +commands: + {deploy,deploy-config,get-config,get-id-value,get-instances,get-nodes,monitor,restart,stage-config,show-settings,test-timeout} + See `zeek-client -h` for per-command usage + info. + deploy Deploy a staged cluster configuration. + deploy-config Upload a cluster configuration and deploy it. + get-config Retrieve staged or deployed cluster configuration. + get-id-value Show the value of a given identifier in Zeek cluster + nodes. + get-instances Show instances connected to the controller. + get-nodes Show active Zeek nodes at each instance. + monitor For troubleshooting: do nothing, just report events. + restart Restart cluster nodes. + stage-config Upload a cluster configuration for later deployment. + show-settings Show zeek-client's own configuration. + test-timeout Send timeout test event. + +environment variables: + + ZEEK_CLIENT_CONFIG_FILE: Same as `--configfile` argument, but lower precedence. + ZEEK_CLIENT_CONFIG_SETTINGS: Same as a space-separated series of `--set` arguments, but lower precedence. diff --git a/doc/frameworks/management/zeek-client-show-settings.console b/doc/frameworks/management/zeek-client-show-settings.console new file mode 100644 index 0000000000..e87a42ada3 --- /dev/null +++ b/doc/frameworks/management/zeek-client-show-settings.console @@ -0,0 +1,14 @@ +$ zeek-client show-settings +[client] +request_timeout_secs = 20 +peer_retry_secs = 1 +peering_status_attempts = 10 +peering_status_retry_delay_secs = 0.5 +rich_logging_format = False +pretty_json = True +verbosity = 0 + +[controller] +host = 127.0.0.1 +port = 2150 + diff --git a/doc/frameworks/netcontrol-1-drop-with-debug.zeek b/doc/frameworks/netcontrol-1-drop-with-debug.zeek new file mode 100644 index 0000000000..d4bbcde042 --- /dev/null +++ b/doc/frameworks/netcontrol-1-drop-with-debug.zeek @@ -0,0 +1,10 @@ +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +event connection_established(c: connection) + { + NetControl::drop_connection(c$id, 20 secs); + } diff --git a/doc/frameworks/netcontrol-10-use-skeleton.zeek b/doc/frameworks/netcontrol-10-use-skeleton.zeek new file mode 100644 index 0000000000..4f683dfd83 --- /dev/null +++ b/doc/frameworks/netcontrol-10-use-skeleton.zeek @@ -0,0 +1,10 @@ +event NetControl::init() + { + local skeleton_plugin = NetControl::create_skeleton(""); + NetControl::activate(skeleton_plugin, 0); + } + +event connection_established(c: connection) + { + NetControl::drop_connection(c$id, 20 secs); + } diff --git a/doc/frameworks/netcontrol-2-ssh-guesser.zeek b/doc/frameworks/netcontrol-2-ssh-guesser.zeek new file mode 100644 index 0000000000..2b8757cdea --- /dev/null +++ b/doc/frameworks/netcontrol-2-ssh-guesser.zeek @@ -0,0 +1,16 @@ + +@load protocols/ssh/detect-bruteforcing + +redef SSH::password_guesses_limit=10; + +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +hook Notice::policy(n: Notice::Info) + { + if ( n$note == SSH::Password_Guessing ) + NetControl::drop_address(n$src, 60min); + } diff --git a/doc/frameworks/netcontrol-3-ssh-guesser.zeek b/doc/frameworks/netcontrol-3-ssh-guesser.zeek new file mode 100644 index 0000000000..6f6065350c --- /dev/null +++ b/doc/frameworks/netcontrol-3-ssh-guesser.zeek @@ -0,0 +1,16 @@ + +@load protocols/ssh/detect-bruteforcing + +redef SSH::password_guesses_limit=10; + +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +hook Notice::policy(n: Notice::Info) + { + if ( n$note == SSH::Password_Guessing ) + add n$actions[Notice::ACTION_DROP]; + } diff --git a/doc/frameworks/netcontrol-4-drop.zeek b/doc/frameworks/netcontrol-4-drop.zeek new file mode 100644 index 0000000000..b95822736d --- /dev/null +++ b/doc/frameworks/netcontrol-4-drop.zeek @@ -0,0 +1,26 @@ +function our_drop_connection(c: conn_id, t: interval) + { + # As a first step, create the NetControl::Entity that we want to block + local e = NetControl::Entity($ty=NetControl::CONNECTION, $conn=c); + # Then, use the entity to create the rule to drop the entity in the forward path + local r = NetControl::Rule($ty=NetControl::DROP, + $target=NetControl::FORWARD, $entity=e, $expire=t); + + # Add the rule + local id = NetControl::add_rule(r); + + if ( id == "" ) + print "Error while dropping"; + } + +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +event connection_established(c: connection) + { + our_drop_connection(c$id, 20 secs); + } + diff --git a/doc/frameworks/netcontrol-5-hook.zeek b/doc/frameworks/netcontrol-5-hook.zeek new file mode 100644 index 0000000000..dee8d5547a --- /dev/null +++ b/doc/frameworks/netcontrol-5-hook.zeek @@ -0,0 +1,22 @@ +hook NetControl::rule_policy(r: NetControl::Rule) + { + if ( r$ty == NetControl::DROP && + r$entity$ty == NetControl::CONNECTION && + r$entity$conn$orig_h in 192.168.0.0/16 ) + { + print "Ignored connection from", r$entity$conn$orig_h; + break; + } + } + +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +event connection_established(c: connection) + { + NetControl::drop_connection(c$id, 20 secs); + } + diff --git a/doc/frameworks/netcontrol-6-find.zeek b/doc/frameworks/netcontrol-6-find.zeek new file mode 100644 index 0000000000..9e7677dfac --- /dev/null +++ b/doc/frameworks/netcontrol-6-find.zeek @@ -0,0 +1,17 @@ +event NetControl::init() + { + local netcontrol_debug = NetControl::create_debug(T); + NetControl::activate(netcontrol_debug, 0); + } + +event connection_established(c: connection) + { + if ( |NetControl::find_rules_addr(c$id$orig_h)| > 0 ) + { + print "Rule already exists"; + return; + } + + NetControl::drop_connection(c$id, 20 secs); + print "Rule added"; + } diff --git a/doc/frameworks/netcontrol-7-catch-release.zeek b/doc/frameworks/netcontrol-7-catch-release.zeek new file mode 100644 index 0000000000..189a89e68d --- /dev/null +++ b/doc/frameworks/netcontrol-7-catch-release.zeek @@ -0,0 +1,10 @@ +event NetControl::init() + { + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + } + +event connection_established(c: connection) + { + NetControl::drop_address_catch_release(c$id$orig_h); + } diff --git a/doc/frameworks/netcontrol-8-multiple.zeek b/doc/frameworks/netcontrol-8-multiple.zeek new file mode 100644 index 0000000000..4d134a577c --- /dev/null +++ b/doc/frameworks/netcontrol-8-multiple.zeek @@ -0,0 +1,29 @@ +function our_openflow_check(p: NetControl::PluginState, r: NetControl::Rule): bool + { + if ( r$ty == NetControl::DROP && + r$entity$ty == NetControl::ADDRESS && + subnet_width(r$entity$ip) == 32 && + subnet_to_addr(r$entity$ip) in 192.168.17.0/24 ) + return F; + + return T; + } + +event NetControl::init() + { + # Add debug plugin with low priority + local debug_plugin = NetControl::create_debug(T); + NetControl::activate(debug_plugin, 0); + + # Instantiate OpenFlow debug plugin with higher priority + local of_controller = OpenFlow::log_new(42); + local netcontrol_of = NetControl::create_openflow(of_controller, [$check_pred=our_openflow_check]); + NetControl::activate(netcontrol_of, 10); + } + +event NetControl::init_done() + { + NetControl::drop_address(10.0.0.1, 1min); + NetControl::drop_address(192.168.17.2, 1min); + NetControl::drop_address(192.168.18.2, 1min); + } diff --git a/doc/frameworks/netcontrol-9-skeleton.zeek b/doc/frameworks/netcontrol-9-skeleton.zeek new file mode 100644 index 0000000000..f768ba8b0e --- /dev/null +++ b/doc/frameworks/netcontrol-9-skeleton.zeek @@ -0,0 +1,39 @@ +module NetControl; + +export { + ## Instantiates the plugin. + global create_skeleton: function(argument: string) : PluginState; +} + +function skeleton_name(p: PluginState) : string + { + return "NetControl skeleton plugin"; + } + +function skeleton_add_rule_fun(p: PluginState, r: Rule) : bool + { + print "add", r; + event NetControl::rule_added(r, p); + return T; + } + +function skeleton_remove_rule_fun(p: PluginState, r: Rule, reason: string &default="") : bool + { + print "remove", r; + event NetControl::rule_removed(r, p); + return T; + } + +global skeleton_plugin = Plugin( + $name = skeleton_name, + $can_expire = F, + $add_rule = skeleton_add_rule_fun, + $remove_rule = skeleton_remove_rule_fun + ); + +function create_skeleton(argument: string) : PluginState + { + local p = PluginState($plugin=skeleton_plugin); + + return p; + } diff --git a/doc/frameworks/netcontrol-architecture.graffle b/doc/frameworks/netcontrol-architecture.graffle new file mode 100644 index 0000000000000000000000000000000000000000..136cbdb2b037f87bdb8b5ff1772695e5f8817e2d GIT binary patch literal 322649 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 literal 0 HcmV?d00001 diff --git a/doc/frameworks/netcontrol-architecture.png b/doc/frameworks/netcontrol-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4f7b585c6660b9a05fe5a4e7709a2c9c0d36c27b GIT binary patch literal 102560 zcmeGEWmuG5_dbpTqLieBA}!tE&?zC(ASo%5LrV%0A`J>6-6h>HbSWX7L#NaLLo;;# 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

    )Omp+ZNdGzq`cMc>8a z-T7Iv;doM6PLto^Ma=-s(`|&n6IU+Iid_3;+2J^50RLu(0y9yq46&HK5enFk*$_W`4lqsbDt?8!aoDJq9>?$8TEaVT7*?d)LX z`pdh}xPvk5OuNoG1^Nj~T^klF>w6_XKE&dozUO(lvNxS09iE2F6;@N|)>jzKbW57f z>VYO&sO{hV?q~#e2drpKvs&{R1sb(GAgScMObam3k$tS~b#b&g-LChVhDrrUN;rfn z<21N$q5G+V4R4^z0vrMYwlxRzK+&oC3-DW46ZN2(tH*bY{=!UuflSRfXoc4bApuOwO2*h$IO(?4X&ip*Ju$DmM{n*L7iaRB?MJ6`nMgaim z+C*QD$337h-^}UxyM{nwufJvlq|n$0%t?;q+9OK*CLJM!J;khh_z$_is(-sqe z$u-ka!lkv+DJ}np;s1@(feC+6$*__>hH}YqB9-|WCIb9%%LwSqy5i^mae%*G`n{wF z1m!UIRB`EyP{NQvC|sp$q~psl<$q`PkCm-o04jPAiV!8hUHYO`I4X32uNU$4{*-{N zumPDYxy|q!J^}MvwEnkx%hV_h`2SqzZ-X+U0je*ZWR3!m9qq9Q-s;sh)sz2W?hIng z{#V$k-y(s-17!pNOaI#$$R1zwZ@8R{j^uw%2Lu*ZOJ3e;=+)Zqkm|lh6zMT?v zhA9cS!ZjBcI1L+C?cAj$xb0>@rvMPC(=O4gkDwIcKZ1>l|GiR$1j%a&)HrUh2BbiY z2aw_BfYD48IFOc7@cWL`D}Y#_0oGwiDg`u&-MW?80* zPskIMM}@{twdr_B%$`qzhQk5*0?66=^$pqpw^fTQF}*_b7JYA<->;{-UvVRx0($@} zk&F3lLh~8{4kKnO*eH%2V4jf*2djHA)lnnEA zs0pJlhiC-B;|IO-@{p^9fBpXavE6F6itB)?#5G7ukW#=t<^ApTsdr4FOk5zD(G-xp zJWFjROFfbcmrjkn4g#U|D_xQ909og($Wa|5QC7%xr+PS+&dl6yw#K!Oy-I1&wVEbc z#@MjPyf4lkPy${1I2&!PkG6r_zH@Y24Jd2&X&$hHaI5C4!@ic!Kp0BUcOKyD8>co_ z;^LDyUwt6a`2$cE)`VR)etDkm?g+cWiOJaF(|FCp07B|!-6i6pwVN)yj&DNuiPjjW zJMSZc{JUs!6mJ6_KebR=NP=V}`p8Y{*>E7GwzI{^roeFD*VK(2TCk)pfACq@P%;~E zfEkd74BbK4Fi2A43E=Ho*I%c{bcg?9!I<&KxwPb~-gg}i^w_%YJ%Cgec+-J-3SbiR$l#727}VP;LTkkF zUSO7kcfY>-sa%IEzo|UrTYEMdlXo%?aHmG)%2bndMw5o_hTh?tJr)&<=vbQk@#RKp z-Nx^h?z;DJ)Ybu#&Gb%XA7=p<4ID)kAzXJa9@u#rwNa$ResKczzy#r<-5+-#KaDa% z1~#jF^p?wA5%+N|Y`BxSCnzE*McB2Fj2&R)YoE4MJMb&WrA@ERCJfcfDI-&0G?ylA76amgNX8U+LGEGu-WAX)X`{0J1V1b zrzV+9mV^=zy=q}8PhB?D+yP zGLx(Pcrh5z>FYxuFkLty^~yb)+nejE^=6rx>dnO+aNsPXe+X93Q=%150I zE0!GQ3wVKt35YmG^0CaKUCs1QL$8BQ6}pmbAS5{h(qt`lX!?s@pbx`>EI}ISib0{q3D;Vm2O4u)#FbHL zDs<5xN^_^P4icw8cJ;&y%TEPF-76j+$&3W_qem)(@0$QAsIkTS@?w!pRu2CWZ-?&! za1vZ@-)9M_ZA~48Yn=3HbdkZFe#iSj0J9a$fiJN97?o&9RifMPCOg({{*|7_=uiiW zSjxIV#74_t+pv%rFd+->Gb&p4RtV9O~IMr2m41B8XCoJtevh{YY*C#$! zO>|m(SH@9EKvxUCY~?HbG<9;vgVUsDjg}QVL)MxCgF{pEYjhUkSM&^UyC&2!KcFcN!ukZl;FH;O=LrexCH@K-6fY_PrX} zWC$UR9^KOm*;WB5Iy}+lGafLA${b2;btv_a_Xi#lVogltvK8T@cwrk~<=uRK)@k6% zZq)**hkFi)f(O{Mi|R|~=M9d1tZ$0XZ4qADFOm_disDF5WJEp&DL=0we8(?WPI82M zJ;ga9a$)2u$0;yB4zKZ}# zFF{<@_*CDU^If1O-j}ipVQ<`T!|~R%a>}u59)mhAyvr{u>+os1fEUreQjxijLC>wA z84FJE8YRvwSV?-UN%#$4;;NiXXvK+038=%A(;3tSNR_4Qsl+_%07-bh`LLI57YH?M zOeyxY^KL>?7J?4#xB^GZWw|_I&lPqWkYG$n2xDJ1QEXp$Ab10snsd$%x>w)Y; zYZffxSNv6?G^Wx>>OsKFkJ@adMqG3aMGL^S6dBl~(_1dSX9=ZW&*VCDKL~0)6L14y_SUtq<8gTAEo#OkTu=Wf8 z?fZKyNZ_KJ0Ql*HmU1MCY6ntKA!_sZ|e@r~Pt8tQVSe_zz z3$gJwbJ{|KR>TNS7^0*^&T^)x=hLx8W(n|wDo*mET}xGc(2Qbt40A);xf{&W<}lC0 z*4q}~KDOg3l^4>BW}}$;*N0+;{f`=94K;@ipA=`8{{CA4Ns5{~mN&&7<%JNTly*{N zITp?M#fxqHn~35%;G#d}GLYb4)~>dsI*4rsw9{u)V)!BKH(t%?A>0_v32y|%+fWykIBt+woA)B-`R2dDN6wC|FW5eW}gaJj}+$ZdlHpj~vyByp#0jwhVS+i*66j&l9 z_iITvJ+y&?3xEo%13Hwt5#!5hVdb4P!(T96wx>n}Q@DZMb|zp1veT0HEi37;loGClULly3G_!Ts&DKMj~&d1{(W4#d$C> zRbS(yQOMv}n=H|lnde9z$qqvbfJ{=-!EEEf=L*n(-a11fOMl77>ue>Nr{ty7q$#7K z`AjK}QYsa?5G|R!T-^NbY7`A+c9}%&39f3s0g!KTkXU&7OhEx5@c@~Ux;L2tjTolC zWIOFJ&{Sk=+9vfj?rlVUi;W`9`0#0ZzyIf|06Jw7b=DCOX5teLu|9*`l?uMv)SJXl zv$mJ+UffZ;c9%q8bFxI^H%6q|Ms5QlcD^z7N+vrdvPE#nv`!oT@1v9m93_pG#v|Y; z1$=;sDRTZ)Pc20%eg#ny;|1Z)fBC@?X27{<^-N6`V|802j3-vUy9sD&`rV=O#UnNf z95MC{oXMC-C&PCnG4TA;!=uu+2=p1|9Y2aI42(=KwMQ-&l z1PRo4E*19x%#Jzse5@eo_AfpM#Scy}Op&E3n#pp<4$J0oW!d-wUp%-Ra{eMuDREg= zBDN=lrR6Niru31DbG(r!n4gj;jJJ6i_>o3rD99-35fG7J6$wLP!QDRW6ZVji=i;}p zWCu5JR2owLqo(rhAe1wkg{$WOj06(5#oa-mHI7RJ!^U77S77c7RGd=7WfzG@#q4-W zfVQXclDe#13kXBc?OD6SIjUcfl%z8jhQ^qyMXNI7p3>~#;L2mOUiP$UYiA9{<_~rP zJ>ROQd7^!0Ym$l}bZqaRuFSb>Z-k59wbZ@odlc{3@Xf<@);90W@58`}JPhw0HXi|p z0d;^{=Rq=nFXrO(?O#Q+3IdJW$OFUehcABi9VeSe&U7**M>-hKRS#GEezFA6lqnWU zU{a6@v|;i*t|-WtmwkS+x40PSA;Dk~)R_fB%hKUe7TEBL$${e_(pa%wyT8!dFL#9A z)EQA&Kg$VIDjEz9EFo_8xH{;v3@_pgEeu1`0&PQ8C3c8u^Y~dy?mm!iwZ8c31a#=R z0s$2x?QJ^Nc`}Oxt^nVO z{k5HD*by@z|Lwp|(fYvZT-(IUYqUI%4VlI-vgzNC3mNXhCxD$k@fLGNquaRu20BYtyc+S*n-Q-|!# zwLy|TK1-~)J(DqLL~s1LAF;+y6^`%PSQ9-TzlW7d{)VfpUk_rnG$@Kt$`fa1bpzn) zF^O6MLAnXoSrpHEdajj)U%)0KOGc&vQ9i;Q%HzQ zF3eS-NtiohZNK}N16%7&an`UI5lVaEKF}C>8m_R}xgd(L@_wixYa7y1j7)0#zkV2D z;zlLhNW$dw8eIqXm)fgF3V_}r7dPEY08IZvqJH{i)(a4+GQ**P&-t1W$U;p`w6)uMn4O_oe2mS+J^1TR}zN!-HP)< zGTdncN9%0#mC4dZ2Avi0lK+32w!&m3KNi5?_rtjd01<3jQ6Ak3DCkmT6gW;|Kv>*K zWCs8j4_#`CV4~I3B+MhT!ahU;%xo3OdLE?U>^7Cr#X6# zLJ_q5rYD-|k{_M|wB?Gjaq4*T-lb8KMoW5N95qU`O_Gypad9oQ6!2hfr#AlX2ly)u zsB=JlFo*C3o`{2h^8iD`Cy$r=+a?}KWiBd+@PSBB2 zjZ#p{t<_BV--9BblugS%$WRuA2QI_ykL(do29=O z7#J7k%`tAA>LYKU@*rU=tJ&ZVn%@T_-hjJHF?nPZPc8cQxt<|g%mlnIT#O;g$^7wek_jxbe@8Yzf=KEFO?S>p~l4}^I>;r;1V z<|sa)gKk%V zHp&$;TI)|cc>_qopDv@`J^22k<@HlLU5=vGi5E2EkOxj2dWEu6ZTnX-+PJk%0{zwF zqFG6MpoD;N=zs&>qtKF|VF}w7Lq-YXddHb`;Ey8syq=96aNV)%=W~B?wtL%{Q^q}c z9R0@je`g6C4kCawj-goxXge(i$Frs2##wu4jB4yG(8Rwtq3_V#i}Uh#ulW;5($knq0eD{!Ia=#g7I@p1 z!U_RXDT@Dnm}2KG;}jZqx@eaHu8O zzu&F5yg+sO^PwuhLr{VB;e3!G1ioWJ)Gc7(8zoEn7U;XMOZc3t^*`7C`y~h)jU8{C z+5Q3WK-T}q*IS2Gm9_uFil~G^W6+Iscd01doq{w-hqQ>aNO!6w#8*R~K)(RE<;iyXf^)(}g-i)MD#ufKadR>FIU1`(v5 z6=F>@6vi-qX{bO1^wAAgpWU_bI#6HLfzpvbI|i%_?md54N5~$?d(k9%!Lyc*3`00| zdL!okz3)bt5l=+TvBJ%2b<7=O^nj%}kMn8j{Ih-(14VEWo28?cOQ#Kg<5C&?G*GtRmZYPtH~-vsL_>q)>DudhHCV z%a*%1B6gBzqSi6o#rrJ@Q?rZDY%TZ5_cK|$}hv)2R`v%=>*c}A`bv=gpODI{{4D* z2*gpZ<>_M+BUv7yPenmYl1vb681MDES{JVS`_7A||3u|XaI)Om==P>Nna}g^Q*&;e zNhlM}-yBUwK1KQqG++kqr`KG9yC{ePaDTu}7)Nc;)rYuXTOhdm?++_FOa48U%c*|< z<<7|5{@U1DcZKYjaO}%n&qTp@zYrV$yC8V=cjS@EV0wK&%ozb}4gqPB%4l;eD@40= zle?ghxy4E9**n3lu33Lr;VMB!jI+cx`8$OyJqXL}%b5ea?24CZ`(|5@aM#Sy)}%Ru zbdlkjhnW&OoY4T+aM%cXNMz;)H7L=k_br3sfCil?_?iEBWqE< zmOcH)P4GFO`VPfmHA}Gj|wa=&PyuXfPNHfS z=slZsjxn;_wBs3ORI`$*V&(bvUOX~QU;$uoUu2;uAv@vVO|2U1X{$%U{^5dmBJG>n zalvrUZ%n)fq4wAs3kdoiz*Uh#4r@>JTRQ=N*= zlNew9d!hJqQ&J#1D{i^F)KANhi0Htqff;lj>!8Y8FY6UvhhgZ-{qgN}m@|$DJ{Nx* zkwZ0jD0_5g5WeX}!jDy9lJmXVMw3*R2a$x;MjUaQ~gK{&|WS4%k3 zjML*;fn(2^%*MyN@CUCKXiBIQUpA(qp^^QZBgT2$)z_O8urC%@x&3Bg+CzGQ3q5i% zNt$!e3Ge-NRQ35aW8uE~8rR}kCbj{=z$_dKQqI$6ovil0fUeGT{=GMu-fUO7$8pBu z7<41(YaNqav1A*|wmBARvkFpbcqQm$%f@D+)p(#p5JksxU&~H$PK^Ab2QCK}5QFTOH{Ta`5C$ekZqfW&{VQ2x z9Nk`l4Z*Y*-Y^~??!OZL{_dQdlldX+*2XQLfwmjGx*w-;2u28_u#0x8!%`eU<-v5v z;3_=kyRpy+^uW(oiT)43nA8yV%fHEIpV7GcF4n)eiv>LJ(hGpkI9d>)Ho_zDDCd%*~w*R+YOY_y0c8krQhmt zb8CGeJE=26rD$5&*h$JrbuL%tcJ}T(ju->G-+7i~dMFf}go1Kvv&Og}PwYp+LLxhv zdBuBrP1-|b(2#7x=_L8#{~5Fag0tvREN{0Xi;%W+{oT2%T|F#guf#D~p4^gB&Z?1U zJXZ4w%6gJQf4QsGQafXbscK?ok#pzz?j48cdY(Ija$6Ay@v~6=^2hpwL+_5_%ZBjd zZ$odAR>rGrMw|dj%GI`)TzY1lRU`i){D`ITh}~$>3Xw>XhUQ7ACM-y)raeWRw|t%h zb~^&4%!;+#k+j;>d-w4@ZI&LN_;eJySS;vtvyHVK<##o3OPvlM*{sFKOy;mhs41qF zmUVSnCr<5%Snu;J@!wxsrlJn_Pjary42ZWpc=F&OV~LH)edQa;I9I4Dx#pvDUciQy z9*yj0o0Hiae{I%(%t4EwClms{0N8nvCzKHjdsK%VsLW;izq3sJRPwOxfc^MzZ!bh} zKKX$F4pkW6!nL$FE%8*ftyylBlg{J3o!N-PqcP@Zo_I=RR*QwPR{O1PaKOdcV`}>G zt9k)d$l{`v!{Hzr5m8~zlcBO(Kkr9=NUp?@8J~9Fajnaz?oobwcgEX?*BKIvEWI=r z(*4_Ax~eJeKU8)!9Ssd~$WPOw<=+{gBc>%SP2pj`Zns}8Bg@;eg9t>)6s+0J!hdhW zzbglbU62vIv-FD|kaNuL?K%n%%vD|THE%f(Iic%6?rZK=um-pvLsH~Or0!vmAAwf; z{rpx}DTb%2m0zDG+Lzb+&CZ8K&zD2tH}Udka=F{=?7Uo|ray%c*L}0TjDswO#u{qE zs>#w%nu~h9LeXV=Vm*4JJx1f@Y;pW=mdy1Ggb@B!25bn!ueU;~!wotZywn_yin-#jsyRa8s#@w;Qcp7XawUGYo z>-nz65RBnyWflBi;Eu74>DRvp>-TkYu#qDAaH}FmNjz(M*M9U>h{akOdlEbKHv{s; zsWm7-O9ixA8qmikhO%SDSL0sY^ED6j6jnwxb=WGk)m?PcK5%mgN(^=zysemMtA?GE z(!Ix4#KfTdC8hr&y^hG6b!v`;V3|(fX6slrly zY7|+KJwdsYOH9gU_>54RIv$+Thr)08q>PK|H>H;OK0ci0cg5uCI%h0pH@duK&ZN`B z{vkQXAW5yT))jZHd5VKJE-krYRTOhPXF`ABbw}yZcaNnD!K{PHuj1mvIEGP_OR=c6 zD%H!E52|E@T3&{Q}2Z7EN#j-+IrHEnCs#`&YWT&D#XZgY3VA@t5up9@g%PZ`<}CkdSx&LFb9cAs-l`a zG8Z-Z-!zEDl8y<}G@zLyRbmU7!Z*@lL!Bi4|5@!sq0IesYwNAs&gR?eus{m{j;9;H zr=pm1$N!QY*mEoUMy=1=dk$THR9+OS( z;y2F*j5!VyJGYItrW1~HD}{KXOnzyI%#e25KQ{P(zGgIm5AcC9Ea1pi0!k#*iBOdE$>gvbRDD> z_F(mJxq>I2C=7R2?!&Qmg~dE@oBC_EpqOw(6wP&z`f*&6jQfc8Za&SHWv$3!GDcSc zmvTTQYn;Y)87!()VZ(;pn!6u8c1;`3#mv$63UqYr@xz9YEAmJ5i1xCT?ut%ZG({p{~#eGr?HApLjga~-iD~4J&z4Wwbnxp%4D)J=$lPlU|l$c{7v^L8F5rvuT)IE^R zNR#^2HseTF-)?RPa;y_E_N{{m#2LWUddqP&e%;v;=e04_U7@;^9TQgvbf4L-Q}&{( zQE0Wd7n;&Wb^|bOklQ)YZ?$waa+BJSP$)7j)h71Z6b59C;js`_9yD8&))Zf8Dyyf2I~oOt~Ik`q=)r)!p($QkC=-=eYOVkAq zdHIod;n{L^#n%QJ9>(1f)eLs3sU~Te#zVKiIOfmpYvlyoLe^)M5XeT!_X~~sy;%Q^ z==|CCWywG@oaN!Nbn~wkI_Dxvn#X2PT5R^MIBRG=Nt>X=-l|2iU(5r)6FEfp2%PA9 z?YF#z-|)2$X_^ve^O2W~k$(pf!<@|9SAGGpy4;K-x&p)P>LF?Y!{4_aObm-Yg)E^@ z;pj(Tm$wFK*2!rV+#r-yo%6{>G0_Gpt&E?x1tCJ>Bp1)~T|d zv{2E%BjS4W^G6|Y+I-zd5EN0CAGJvIAX^KyT*+NyP!}Ij2Cu_PRj8(`Dzx+rSI!ox z_jft9X`7ZXnSV_(a-5&gm`ws5HxCIl>sc}hkz;p*ayB1;Pd*r^smTdgC{#>YGMg$a zOCNQedc&Z}xx71j(Wq_;_N45S2NlvF6>)Y|`g^EhFR(Mxbuysqm`CU#FDQU&K(o@j zvoc&%J7`COIspvnvfooLQp5L^dN33xerOPrxkWfH;b7 za+-zLfy^V{-t9G=J2WG;K=-(;alHMm()`F%bJLZx}5%t>H+Fs%S9sA zS#&+fb$N4>%OZN*BL7XILhm;zdaQ7?A5h}O-d10tgxlASj%banfl7MwIfMp1Cs<9_ z{v-9IT^sRmd(a&BDQN2LZ;+76P}q55WWOY~3PHYbwMQ-}YyW)kq6N=(t7?rVYr_o7 zKU~UAOZLA=LrI6KfSrSw5!`{yo49b(N?}vx>?d9{iD!WUirg>M`VlED9=ZpBaY&0L zhcD~Cvpk>8^O-0MqysspX@U^%u?O!~i%8er!cIRQZXO(|s;1e3RLk=(BF_4>-i6P? zHpw)G@zQ1`2Xb}_+B9M`PEM4A z0{`i}1DRha?+tz*#A)LR+D*Rh)sd3dpoM&{ZP$YDuvt;ogu(E$9wx(t5cEas;dids zB_;{PQ^<2IE&+Klk-q3?JzSWg|7{sCj32VYGoD&GIKHAF7nP3jCn@`ftlg{_6-+nG z2vPRaVE=$Uwj5kOeV%})e6-pnSFl0lv~ob~5H}9M!sLQTB*C5d7J&wcU*$UBQ0gI~ zM9>Qgh{ry}q6>dQ(?0Q~-q>fJUhNzTJe@DxXG3}HEk2<*AEYJGB(|PU;<8*g*xT43 z@%Sz_T-{UsMhru0pd;ynK1ThE2n6KtK%K%_Zqk?PhG?zBzSnU6 zwS*vHJ21UV`itLXlo(n?q8;u?ens#HA@^NJ#CnIB_xu`L(=jX=JEIvF>>gd76@m{m z0T12+Jj?<-_Hz>1Xq=Y-TpelZFdy-`eT{`nzlDea#|N>b>vW&HaLE?bmO3>@9@lTg zdPCSnw15X#P+~hN&!L0{0r>K;R=XVk@8|BC59n84>x4nHiVAa4_$Bd%%^sFyJFHtJ z3mfsI1`UCHY9Xk7Cq;!I+f{970&k`Y^RkLVwjn;Q+3Kk`!@BOQNC#1N=qX9xxxcVf zPzW>Dt(MLoWbr98a0F$*M2_$OWG>!d{)MZCAfay`Q6=kt1v;S87IyB3nIY<#x;B8V z$whF2{iIPDuVB}-J8^ym5yI-5gK|{e=_1MFbnOQ|=lk+<>{8V%8v!*tw*6Mk&h-7| zw=@rKP>j1kT-W}tW&A!!r#;69dmu1~&u%!}fob`rK|FqfKi3z?b{eIC3DhwDcsBI- zWFS|05@}$IULTU(1AAX}AO$wG_D)qWy^u{;(B1205O^ip>BqJ{-zVLfN!G}*o*YN` z#7EHMdO3Zwo~*^!qMpwa6K%BALX~c`yehPf_2EbU`*39pn)D!U7Iu-|BkZl4-K6ZN z{Y3d^eL!LwBcOeXnP>4vt6~$Aclp$Y_1HUtbp(3sv>oV}`CP3K#vwDmzY&zDUQ*FN z1-oC?!kW~kIp2qDT6G|#DBDkL+(rUS0B+xNJ!s50eO*HAIv3$peF89VD#u2CD!Cyj z16GokuVxvXf?`#FM0Rp$u*|pFR{X&7M3ZR-|K$Eq>*>_M3$AIIXZI&v3;7#TTGurvWM#|^;Bx%-X>}UXV_Gn?5p*wYnEg?z{Nylz zgd>N*h97^I6TgLTh_hTSF#@qGYI3YY`~BJSd(3R|^PE*#9R!_2AZJDrkmlcbfihzq zsML1%`Vx|Gtis+vRP^r4fnw=b&?VYNXlAEI)oiS-IlViH@-O(DC)6pP(8S>Z>GvD^ z{TSnK-WFjbLiQ)Zr?5?GPOEH1x1DmRq@fN2BURXxx8tJ5(rMTq@)iWrd_A|~8lbkE zgjk=_eH>dvsQk-2CU`6&Re7Ifo3j@RaJ^;y=O*%UR1o8oOT?xQ(+NjzWoA^21&eDi zqWYV$b)UuNDUYUl?kZ(+Y)4AgFMjn`QIH;i9WI)M7B#Xhp7jdtc2G2|;)WhlVoOlE zH$SSGkM*((38v86ncoPcd||7um+K^r!EsrCDBM^)s{v&4dLxXhT}PQnal(=)RUa&i zeLHwtGAT|@kos$o{L2q06*o%#E%hMT#v0_+VJxZ!TEm~-(lt{JtOE+T4#Hn&=#g^2 zpCf(P?Do0o#?T*ko?U>D1F(RSxv zHRe^oB{!%VYeYtbK5B+dyrzpGVV(f`T)Fi0ZRh zW`ijNR*OGi$ufLxdFe)t<-h6u=*{DI9s*mjJ7cfz+5b2--H`cOm^dWT5PpfA{AF|` zTkQ>_RMo7T^bYLukX@*A>ml>)*4xjbrP+;Y7Z|Lcg+CW3$Dxj4oAGW4d3$PERMxwl zIxVy))VR1cn(}s7Z`LL4i|1}xnvZ+bX;lItbu&Y2NP4*1e04{ZOfUYrt{n-H81clk z-Tt0mT*T6P?u7F9Qd?uF1zfI%H0XCsU3uKseEj0$-ifxOgt71wyli7HA5I}`th0aq zbJ#P{IcllDGEDI6C@x#ERyFfaS)CmPdS7p_~5Hr*k#?#Co#<^(Z!IXOW# zOM_p&`w0L9<*^~w*AJWfsG|7MSqT_59*~}xbj2I!Hv7g~i`~R~4CIWSZTuE3^R~cR zc~t1|GWYsGZj`EZi{@p;tHxP3XG7UZGSEmxCC-wB6EbNT*-o|94qT-dy-lm3L>u*q zu!B28@2%ScFg8^aX3|7LJskcUH#%HzGiKo6J-X)Cmlo0;sRyEX5`6Z*957f_#82z=&UZHdkPm!8DJ`vu+<06uC;Dn z8Npe>wCST`=dULrb;5dAM<=}PHsYFb!}Gla31fnvpauT^!3#ViG7@w# zQA(i{Y@aUv)uvW-Jm*@pKV<<+#XUqr@Y=4)*N3zd2$UXnbse!Q5jo#keJVgt(v0Rr zTB}4ar}?4rWT(jNeh_8BhVA)1CMSt2;!5a-p_}0g!qtdQ-yHv$r060{!7i!u0c5O~d&>Ja_eU3ogXe%;P=<}_AO z&6T$H4~Fs0%GLIf?>aos+<(8)`U>;l!n=3~8OmQj=V@%Aav!R`&nQ`PcTS8c=I2#a;2B@2Cf2S=qKeb#tJ?*OQ!!7U_~OT2 zqw=snU$w_;oTnWS@D9{rA6j`YcStTbpEIj{CM`Dk)uHJb`mPU-rKWn|WvQWqgB@k} z*Est9@~AE6N{cw14qGxwGHEd^hdZL0wMTEsDV82cDZ5;nc{+2lrj^h{Bd749_Q&@e zUuxN`0Kr0*>(4;cfiwK30|!+hupUJB{tAQ|%UKR_-GtXV>=_&KM5CD)PDAR|PIReu zo-mw-H@9jR)8dS`H@A+zJnEvwB_25c{tn8D5~KXScDUS6_vaVS-&9K|7pMQ&*#z2x zaYBuyF^4enx#yO~%M5&zyC*_lAn4GcH?yAb=MPy=Y4xf!!`0y-n}FM2yhGk+_8mme zl=l_JFEIQ)e5&`(oG0lZnAp~?w7OpBX2@Fml*^oZrY@wvwc^S2H6ADRn)}z$GfHJ| zJAsq`E?#zdTPeGC3;oLr#acU)8H#jK#=I#M!4={09r%$9#;+xeLcs%&L>_UEta=C6 zg+ThVcv*K?NUM?M0DPJd_gk$%+%FFmf(IR zG#2W-yNRkF`5BxNzKNZj4DTAuY(0_Em3X<>EnN)^z*u!U-Cf0W`>S14R5N#KK60CV zBD;CZ&&V6}RkEXa)LHqw)Gz2u>PliA{o-8KrMVadkyI`1IJd{iwrSsS1tKTHv6u_7 zoHJCEv>S;rTu+(s^X*CR2lv}I-cC$Iiw=AT)u?fG4c;Bw4-%$>O3&FsMroND1$k?q zCQ0#Il2#S&ii@J&6-BkD{0=>=R+S50PIY99CL7M3u8QanGn`T16?`j9Xr|wXjARxP zfs(-=m2k8jzyX_w={3x~8uLb!My!kE?NyaTyte6{yxjwBP#vdox)iXM;ZKl4vqa!( zMlDQlfY$dB!3ftKA79~a_)4?hYSE$<8(^=laFT@~`*jF&H)#G=i@E6RsmOk)e+5CX zGNYVg{7;O7)1s79lGuqQyyN{a1ri~u8T#H^VF@bRjK#c6u?;A)>5Ovy9zvB9_R=d( z?~bnydm8#}x->NswmQ8(4t7UPrP0vIswGWtrkV)7nRqc@S&zGRMmxz~zv&^>iN<+lipAIW_#>w$*yggyHJmwyB(Cd22-dBWN9Y1Yo*N@};IdPSC%co!MTyJQJxhJ2A2z)kcbRKLqCn}Mc5_`zxP zF3^e$@n2a{nwp8IP98<;7|d19PDF^nOT_$~GybW0Z#Nd?-s(h$4amnh`a0yI#z_|3 z^2{V>({df@x;JB3*+=4MQTenb+;VLT_*fIG+RyiH8W-F-zc3SW^J=Vv-I1csB88yB zY-#VFG!C_>haMib6`eq!U5Bp=+f0)ob!w`SNL+XNa5&BVNw4hwquv2%j|A+Dwbn z9iu)i?N?83fF|R;`Qb;0YbB-UTIl`i&vaz)GG$iKI|SFc#LQIPA>U{$xT93h!)pk0 zRlxxD=-CZ?ZckbDUxStY9Q{FrH>97;aemm}T1~L>`bo_j5DV^MOlq629jijo?Ohg!J zkgw8?Pn{9DJ`F*zhyh6kudLJH3FD$MPf%U4**(n{kq*!khSK%)@1>VfC^(}oP@8bl zl!VGyDaMuD^`UY{(a3RG9{6aD(7cZVZyv+d&2aHvo!QwaB6`i(JeC}v)$p}&DAVUOA6a>6dA=V>>mUPZEgtrkI^ z(?7Rgl`B5?LT_kd#@WrbQv2O@1y1JCQAPFO*J)cY;%U1GG8z|eQ~A>b4}rUuN@$>E zXF6_QjZ#qX;N$Bf?iS$&z~KxzNDpTXGquggubA^|dOAgF5Xv0|$VY}3K)4RyRRt-+ z?qpi^tjh`+k?qe<12mo+%u{3gV30jw5SC1Hqv6(RI-usJm&L`xV0!Exeg=Evf}Y&W z%m!v`cCMk)VTa7^vtO}s&{#xkTrT1~K0c2zkWM76G5i5LUxP>RidsAs6=UW=E3D2_ z-qIiQliQ?rL+KYsEv#X06Q_JK|J=PS_oHaN;&X?o*|W+Nf3DeF2oW`$(Y3Peo0NX~ zh&hxUM_xDKY)D*M!t)C=2%p)S*t8dQh(a&?5#2H6icy zR9iiH2CtJe=+8oHAo>jYg-Q6f91xW);ZnUsY}bq}`9n1KnV}s#W$fS&C^3g@Os6eG zyY@bB2aL{A!Era1cCv4hWIqtK3Wv4 zENtuFnp;0SFOagd#jb8dA_)zo3l3@;83FA#(5w_Ff4iKQUw|^`U2~hlP~T3fQ6r@` zSb5!*P}ebnxKBO#0zr22T|0ho9BPMo|0E8VvRl@!^bZZLR!(Xp4z4c9Th$8g&#Pb6 zDo4XheFq|aBW74KGG2rMY?E}cLijQW(Cc>q^Yj>WhqXQ;3Fz2kY{rOkeVVZ ztcZ)*@<5@$Oy_;6-_I~Qju3h}H`gbZ*t?>-N%BQ_{3pJBek}{R@Upio6J@zaso2Hw zQn!_(F3w2YrxyIaALVnslRA2;rX7&6L}{nNZqX+jB5Z*{`p=V?38s)R3o05re`ZH5 z(6F9S_dwBw(y)4tMb0Yn2F|;XccIjBJk<>s)zY|@V%x>YP$`St*oAr;oxKFO{3HHKaXdxc8J&U6cjc@;J-yl;jW z;DHuBiym(K8X$N7i`Uf=MR8KfAX9(CpHIx36xq5#r>yX^K{~bc!gQIt36S|bp5e5z zJNa%>_~|ikzU(kRO-|f;nRb;mH#2Ps-{=+oZ|RPMYci2>6@ykv3sbp~d>Z}n z_fTAYyNB8;?VfvxvId1kC5HM~ZEq$5BULKXo4rLU;ZNc@9MYn}%AVM;Yi?4A67gBz zgO(?F`@`j*&@)L$eZ$U;o_<$F)S)1>*x#})vWTAR^J`#48GRruK`8gg#`{oPgCP4Z zf+UsIUToPRc0L+@aVScdTnG8+PbZ(JO;Adji7RD3pv=;yAr~lQL3ARK`LoG<4pu}O zjm&M&Xl%=HmHjQ9m~ZdST_NUwHV&9dqV!h%O6!ldiUCj79?o`Xq-2<{ZYCV`?>|PV z-o(W~$rMq02ni-8clSxBq%tYOW6#+570O!?auaG#U{Y8Fjwm^cBWjb zsD6kE| zeSWMxf|5g(1EL`~yt1@(zWu0fzxO!eTVnx&lb4w%sstR)0(%pS_b^%`%1C(6&pmg; z8VPL9Dp%MUpJfi}!>($3pzSoMdTb#sv{3b=(I1K%t*Y-<7xd~MmwcQz;7Sr!rR6xQ zvu`)sHopf-Do%i7A84&?bP46%i@|;@Sn`D==ut|uvy@>{@(7hUndl|k0v=tlAFe>2 z)rf0uY)$yJ1+dh&OH()4Zvl-Vr<7d#L)O>J8S)$+40{Pfvk-AN*s`F+|FRu!uF5N4 zdw9lPQ4fzAWbnQzi&MkI^_jsXBe+~r;6a{BwEk=qg8*Id3`AW`?*?$$b)pP^g!*Ir z!L&vjKr$p3;_mR6$Z|i#t2?z?5M``K%IEpM~6f-o`g>2Hf++U*~(t827>Ccj{qTv;BLO}gllRWN$C14_x*Xnl&=I+jozmc z_g2p{Al3i}6Cle^O%njPH;5N9B%#2a$ z4k#Jb&IdQUZW-F6RNk*o&J}c;*1GYl3!)S zmW>9Qwo3Eq^+XUYK}@Br;nSV;qzN=0d;J$+KFYXQm40OpN3T^EQaQvF=Q!l{10#E6 zrNqun9M#ZfD)nvhc!51hCb-dUK=HnKYyQXg5SxVU+MaQ>z~OLrEop$5h2!{|&13&? zLCnr>Uh?`g7*inTrnavI8PWyJR3*&Vdx);xNQ2}>(3}0Av)8hyF)>_7zS`Z4`vWD( zpn2zzVlyhg2Bop4Z#*E!yl)n#AZO6zPG5Ta_U!A;&1Zx$OV9XoBZ>N$dt}o#-w8w< z^ZsDcoL!z%T5#8S*CJmqzpHNDNIX$vF5-@|Q(Balh_wFSX?^y-xc4^1Y)>xOg;24H zRzAhYF7&f2g(!qXM3m_PpqXTL2`WDX85XQisU_#am}cJ?W;*@qdv(<}^>86-%PY&M zD)d(`mtKhdb)#})S+AeVP^h|B`0#Gx>oePa7pn-Ev_`_&A2YCC#LKE4p1mF4GnRIE z(Yggv{EE>HBW5;*AAf(Kz5b#_nhi(vfmp{KS`1y1Gw2^?+B9DivvhvvZ&!!Y5AZo) zr!RwaS@GJYJLm3Ewb}dC;Fi58Xz;NWu>oRD_aPj;(giHBb?@u?g_GyQ0SwJW&)v^xT#mm(B*w2ac$~(B{O+5nHOhnr%i{>G}?x& z2*j~_saJbc7i}K;D_op7t;v3Ior7kz6rSH_xczc+$n%RHcMG21@Csh$>jMDJ$0)Ps zATjZh=D`9VV0E#+!Z(L?$64H(Q^T?W;EoIGVvOb}(_(=aKS0V&5-(x5;T~xht>UNo!v>AHo2nr7 zLgmX3Aata4yx^II$V z-mte{qn)I+Q>}Sl*P*xkTB1eko>af%wxb-J^N3ooDU@9*P4)l~_gAeHoJ63$B$8)8`qacE$p`6W54T<&n#G_?%HYY<{t@ z&yW`9AvhiiX{)<>(H1H7>EpmsMakjPw1s*vtG_$P#{9zk<>dDDI1l`K)NWN6o;!tG zMY{(|$!do@qAP?xL}<3J14AhNrNwn*l2vr|VYifIlijGEy>jTxp?Y&BcbYqpVh~?s z_r_xIWTSxBgz(krYQLY%F9eHms;;Wv|8t61plBq2e}%r%1HH25p4-G?za*5Q1^8%t zXV^!xaO!U=7;es7cJabXM{L)tz6yB(tsp1ureU6Y-xubx5Ei0MD%A!Wu9jB3o!*OW zf`Kp3TzN(qSU?~30RLtj+X<*osvNe*9~yLe2HT!pp`KvsN0+j|k)HNX2=cD=!tk_) zNPc!CRX+6XqSoNSYh2 zODwdm%+%8*{R}(EDNbzSY!z-J9@ZJl|ZcS1x2zso%Tvzq|^(+8hVMd-uWtk^T>L~T2sa%$^(-(0J2&pI( z)=}9f^?f%urCMsePFs$XGwuskBlN$TWX0njhL#CIG3Lpop}ddeh4(X#-Q~KJ3fTKK zt5K&ePHdMvxmyz$ch>tI*$Oc0O&j0dHKl7E06v=h
    69= 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

    +Gn8xubz&+0owZ{4LnFc+Nt=h`uc3Jrhwi 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

    3oHvmQCJn;+ag?vdM&xG34D90}roiZxbM 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 DM|=T6 literal 0 HcmV?d00001 diff --git a/doc/frameworks/netcontrol-rules.png b/doc/frameworks/netcontrol-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..5141c81cebbcb6f63e3448185f1ff4c370b999f2 GIT binary patch literal 91598 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, ip=, mac=], expire=20.0 secs, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + + $ cat netcontrol.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol + #open 2018-12-14-18-50-53 + #fields ts rule_id category cmd state action target entity_type entity mod msg priority expire location plugin + #types time string enum string enum string enum string string string string int interval string string + 0.000000 - NetControl::MESSAGE - - - - - - - activating plugin with priority 0 - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - activation finished - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - plugin initialization done - - - - + 1398529018.678276 2 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::CONNECTION 192.168.18.50/56981<->74.125.239.97/443 - - 0 20.000000 - Debug-All + 1398529018.678276 2 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::CONNECTION 192.168.18.50/56981<->74.125.239.97/443 - - 0 20.000000 - Debug-All + #close 2018-12-14-18-50-53 + +In our case, :file:`netcontrol.log` contains several :zeek:see:`NetControl::MESSAGE` +entries, which show that the debug plugin has been initialized and added. +Afterwards, there are two :zeek:see:`NetControl::RULE` entries; the first shows +that the addition of a rule has been requested (state is +:zeek:see:`NetControl::REQUESTED`). The following line shows that the rule was +successfully added (the state is :zeek:see:`NetControl::SUCCEEDED`). The +remainder of the log line gives more information about the added rule, which in +our case applies to a specific 5-tuple. + +In addition to the :file:`netcontrol.log`, the drop commands also create a second, +additional log called :file:`netcontrol_drop.log`. This log file is much more succinct and +only contains information that is specific to drops that are enacted by +NetControl: + +.. code-block:: console + + $ cat netcontrol_drop.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol_drop + #open 2018-12-14-18-50-53 + #fields ts rule_id orig_h orig_p resp_h resp_p expire location + #types time string addr port addr port interval string + 1398529018.678276 2 192.168.18.50 56981 74.125.239.97 443 20.000000 - + #close 2018-12-14-18-50-53 + +While this example of blocking all connections is usually not very useful, the +high-level API gives an easy way to take action, for example when a host is +identified doing some harmful activity. To give a more realistic example, the +following code automatically blocks a recognized SSH guesser: + +.. literalinclude:: netcontrol-2-ssh-guesser.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r ssh/sshguess.pcap netcontrol-2-ssh-guesser.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::ADDRESS, conn=, flow=, ip=192.168.56.1/32, mac=], expire=1.0 hr, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + + $ cat netcontrol.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol + #open 2018-12-14-18-50-54 + #fields ts rule_id category cmd state action target entity_type entity mod msg priority expire location plugin + #types time string enum string enum string enum string string string string int interval string string + 0.000000 - NetControl::MESSAGE - - - - - - - activating plugin with priority 0 - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - activation finished - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - plugin initialization done - - - - + 1427726759.303199 2 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.56.1/32 - - 0 3600.000000 - Debug-All + 1427726759.303199 2 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.56.1/32 - - 0 3600.000000 - Debug-All + #close 2018-12-14-18-50-54 + +Note that in this case, instead of calling NetControl directly, we also can use +the :zeek:see:`Notice::ACTION_DROP` action of the notice framework: + +.. literalinclude:: netcontrol-3-ssh-guesser.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r ssh/sshguess.pcap netcontrol-3-ssh-guesser.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::ADDRESS, conn=, flow=, ip=192.168.56.1/32, mac=], expire=10.0 mins, priority=0, location=ACTION_DROP: T, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + + $ cat netcontrol.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol + #open 2018-12-14-18-50-55 + #fields ts rule_id category cmd state action target entity_type entity mod msg priority expire location plugin + #types time string enum string enum string enum string string string string int interval string string + 0.000000 - NetControl::MESSAGE - - - - - - - activating plugin with priority 0 - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - activation finished - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - plugin initialization done - - - - + 1427726759.303199 2 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.56.1/32 - - 0 600.000000 ACTION_DROP: T Debug-All + 1427726759.303199 2 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.56.1/32 - - 0 600.000000 ACTION_DROP: T Debug-All + #close 2018-12-14-18-50-55 + +Using the :zeek:see:`Notice::ACTION_DROP` action of the notice framework also +will cause the ``dropped`` column in :file:`notice.log` to be set to true each time that +the NetControl framework enacts a block: + +.. code-block:: console + + $ cat notice.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path notice + #open 2018-12-14-18-50-55 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p fuid file_mime_type file_desc proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude + #types time string addr port addr port string string string enum enum string string addr addr port count string set[enum] interval bool string string string double double + 1427726759.303199 - - - - - - - - - SSH::Password_Guessing 192.168.56.1 appears to be guessing SSH passwords (seen in 10 connections). Sampled servers: 192.168.56.103, 192.168.56.103, 192.168.56.103, 192.168.56.103, 192.168.56.103 192.168.56.1 - - - - Notice::ACTION_DROP,Notice::ACTION_LOG 3600.000000 F - - - - - + #close 2018-12-14-18-50-55 + +Rule API +-------- + +As already mentioned in the last section, in addition to the high-level API, the +NetControl framework also supports a Rule based API which allows greater +flexibility while adding rules. Actually, all the high-level functions are +implemented using this lower-level rule API; the high-level functions simply +convert their arguments into the lower-level rules and then add the rules +directly to the NetControl framework (by calling :zeek:see:`NetControl::add_rule`). + +The following figure shows the main components of NetControl rules: + +.. figure:: netcontrol-rules.png + :width: 600 + :align: center + :alt: NetControl rule overview + :target: ../_images/netcontrol-rules.png + + NetControl Rule overview (click to enlarge). + +The types that are used to make up a rule are defined in +:doc:`/scripts/base/frameworks/netcontrol/types.zeek`. + +Rules are defined as a :zeek:see:`NetControl::Rule` record. Rules have a *type*, +which specifies what kind of action is taken. The possible actions are to +**drop** packets, to **modify** them, to **redirect** or to **whitelist** them. +The *target* of a rule specifies if the rule is applied in the *forward path*, +and affects packets as they are forwarded through the network, or if it affects +the *monitor path* and only affects the packets that are sent to Zeek, but not +the packets that traverse the network. The *entity* specifies the address, +connection, etc. that the rule applies to. In addition, each rule has a +*timeout* (which can be left empty), a *priority* (with higher priority rules +overriding lower priority rules). Furthermore, a *location* string with more +text information about each rule can be provided. + +There are a couple more fields that are only needed for some rule types. For +example, when you insert a redirect rule, you have to specify the port that +packets should be redirected to. All these fields are shown in the +:zeek:see:`NetControl::Rule` documentation. + +To give an example on how to construct your own rule, we are going to write +our own version of the :zeek:see:`NetControl::drop_connection` function. The only +difference between our function and the one provided by NetControl is the fact +that the NetControl function has additional functionality, e.g. for logging. + +Once again, we are going to test our function with a simple example that simply +drops all connections on the network: + +.. literalinclude:: netcontrol-4-drop.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r tls/ecdhe.pcap netcontrol-4-drop.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::CONNECTION, conn=[orig_h=192.168.18.50, orig_p=56981/tcp, resp_h=74.125.239.97, resp_p=443/tcp], flow=, ip=, mac=], expire=20.0 secs, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + + $ cat netcontrol.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol + #open 2018-12-14-18-50-55 + #fields ts rule_id category cmd state action target entity_type entity mod msg priority expire location plugin + #types time string enum string enum string enum string string string string int interval string string + 0.000000 - NetControl::MESSAGE - - - - - - - activating plugin with priority 0 - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - activation finished - - - Debug-All + 0.000000 - NetControl::MESSAGE - - - - - - - plugin initialization done - - - - + 1398529018.678276 2 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::CONNECTION 192.168.18.50/56981<->74.125.239.97/443 - - 0 20.000000 - Debug-All + 1398529018.678276 2 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::CONNECTION 192.168.18.50/56981<->74.125.239.97/443 - - 0 20.000000 - Debug-All + #close 2018-12-14-18-50-55 + +The last example shows that :zeek:see:`NetControl::add_rule` returns a string +identifier that is unique for each rule (uniqueness is not preserved across +restarts of Zeek). This rule id can be used to later remove rules manually using +:zeek:see:`NetControl::remove_rule`. + +Similar to :zeek:see:`NetControl::add_rule`, all the high-level functions also +return their rule IDs, which can be removed in the same way. + +Interacting with Rules +---------------------- + +The NetControl framework offers a number of different ways to interact with +rules. Before a rule is applied by the framework, a number of different hooks +allow you to either modify or discard rules before they are added. Furthermore, +a number of events can be used to track the lifecycle of a rule while it is +being managed by the NetControl framework. It is also possible to query and +access the current set of active rules. + +Rule Policy +*********** + +The hook :zeek:see:`NetControl::rule_policy` provides the mechanism for modifying +or discarding a rule before it is sent onwards to the backends. Hooks can be +thought of as multi-bodied functions and using them looks very similar to +handling events. In contrast to events, they are processed immediately. Like +events, hooks can have priorities to sort the order in which they are applied. +Hooks can use the ``break`` keyword to show that processing should be aborted; +if any :zeek:see:`NetControl::rule_policy` hook uses ``break``, the rule will be +discarded before further processing. + +Here is a simple example which tells Zeek to discard all rules for connections +originating from the 192.168.* network: + +.. literalinclude:: netcontrol-5-hook.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r tls/ecdhe.pcap netcontrol-5-hook.zeek + netcontrol debug (Debug-All): init + Ignored connection from, 192.168.18.50 + +NetControl Events +***************** + +In addition to the hooks, the NetControl framework offers a variety of events +that are raised by the framework to allow users to track rules, as well as the +state of the framework. + +We already encountered and used one event of the NetControl framework, +:zeek:see:`NetControl::init`, which is used to initialize the framework. After +the framework has finished initialization and will start accepting rules, the +:zeek:see:`NetControl::init_done` event will be raised. + +When rules are added to the framework, the following events will be called in +this order: + +.. list-table:: + :widths: 20 80 + :header-rows: 1 + + * - Event + - Description + + * - :zeek:see:`NetControl::rule_new` + - Signals that a new rule is created by the NetControl framework due to + :zeek:see:`NetControl::add_rule`. At this point, the rule has not + yet been added to any backend. + + * - :zeek:see:`NetControl::rule_added` + - Signals that a new rule has successfully been added by a backend. + + * - :zeek:see:`NetControl::rule_exists` + - This event is raised instead of :zeek:see:`NetControl::rule_added` when a + backend reports that a rule was already existing. + + * - :zeek:see:`NetControl::rule_timeout` + - Signals that a rule timeout was reached. If the hardware does not support + automatic timeouts, the NetControl framework will automatically call + :zeek:see:`NetControl::remove_rule`. + + * - :zeek:see:`NetControl::rule_removed` + - Signals that a new rule has successfully been removed a backend. + + * - :zeek:see:`NetControl::rule_destroyed` + - This event is the pendant to :zeek:see:`NetControl::rule_added`, and + reports that a rule is no longer being tracked by the NetControl framework. + This happens, for example, when a rule was removed from all backends. + + * - :zeek:see:`NetControl::rule_error` + - This event is raised whenever an error occurs during any rule operation. + +Finding active rules +******************** + +The NetControl framework provides two functions for finding currently active +rules: :zeek:see:`NetControl::find_rules_addr` finds all rules that affect a +certain IP address and :zeek:see:`NetControl::find_rules_subnet` finds all rules +that affect a specified subnet. + +Consider, for example, the case where a Zeek instance monitors the traffic at the +border, before any firewall or switch rules were applied. In this case, Zeek will +still be able to see connection attempts of already blocked IP addresses. In this +case, :zeek:see:`NetControl::find_rules_addr` could be used to check if an +address already was blocked in the past. + +Here is a simple example, which uses a trace that contains two connections from +the same IP address. After the first connection, the script recognizes that the +address is already blocked in the second connection. + +.. literalinclude:: netcontrol-6-find.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r tls/google-duplicate.trace netcontrol-6-find.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::CONNECTION, conn=[orig_h=192.168.4.149, orig_p=60623/tcp, resp_h=74.125.239.129, resp_p=443/tcp], flow=, ip=, mac=], expire=20.0 secs, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + Rule added + Rule already exists + +Notice that the functions return vectors because it is possible that several +rules exist simultaneously that affect one IP; either there could be +rules with different priorities, or rules for the subnet that an IP address is +part of. + + + +.. _framework-netcontrol-catchrelease: + +Catch and Release +----------------- + +We already mentioned earlier that in addition to the +:zeek:see:`NetControl::drop_connection` and :zeek:see:`NetControl::drop_address` +functions, which drop a connection or address for a specified amount of time, +NetControl also comes with a blocking function that uses an approach called +*catch and release*. + +Catch and release is a blocking scheme that conserves valuable rule space in +your hardware. Instead of using long-lasting blocks, catch and release first +only installs blocks for a short amount of time (typically a few minutes). After +these minutes pass, the block is lifted, but the IP address is added to a +watchlist and the IP address will immediately be re-blocked again (for a longer +amount of time), if it is seen reappearing in any traffic, no matter if the new +traffic triggers any alert or not. + +This makes catch and release blocks similar to normal, longer duration blocks, +while only requiring a small amount of space for the currently active rules. IP +addresses that only are seen once for a short time are only blocked for a few +minutes, monitored for a while and then forgotten. IP addresses that keep +appearing will get re-blocked for longer amounts of time. + +In contrast to the other high-level functions that we have documented so far, the +catch and release functionality is much more complex and adds a number of +different specialized functions to NetControl. The documentation for catch and +release is contained in the file +:doc:`/scripts/policy/frameworks/netcontrol/catch-and-release.zeek`. + +Using catch and release in your scripts is easy; just use +:zeek:see:`NetControl::drop_address_catch_release` like in this example: + +.. literalinclude:: netcontrol-7-catch-release.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r tls/ecdhe.pcap netcontrol-7-catch-release.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::ADDRESS, conn=, flow=, ip=192.168.18.50/32, mac=], expire=10.0 mins, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + +Note that you do not have to provide the block time for catch and release; +instead, catch and release uses the time intervals specified in +:zeek:see:`NetControl::catch_release_intervals` (by default 10 minutes, 1 hour, +24 hours, 7 days). That means when an address is first blocked, it is blocked +for 10 minutes and monitored for 1 hour. If the address reappears after the +first 10 minutes, it is blocked for 1 hour and then monitored for 24 hours, etc. + +Catch and release adds its own new logfile in addition to the already existing +ones (:file:`netcontrol_catch_release.log`): + +.. code-block:: console + + $ cat netcontrol_catch_release.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol_catch_release + #open 2018-12-14-18-50-58 + #fields ts rule_id ip action block_interval watch_interval blocked_until watched_until num_blocked location message + #types time string addr enum interval interval time time count string string + 1398529018.678276 2 192.168.18.50 NetControl::DROP 600.000000 3600.000000 1398529618.678276 1398532618.678276 1 - - + 1398529018.678276 2 192.168.18.50 NetControl::DROPPED 600.000000 3600.000000 1398529618.678276 1398532618.678276 1 - - + #close 2018-12-14-18-50-58 + +In addition to the blocking function, catch and release comes with the +:zeek:see:`NetControl::get_catch_release_info` function to +check if an address is already blocked by catch and release (and get information +about the block). The :zeek:see:`NetControl::unblock_address_catch_release` +function can be used to unblock addresses from catch and release. + +.. note:: + + Since catch and release does its own connection tracking in addition to the + tracking used by the NetControl framework, it is not sufficient to remove + rules that were added by catch and release using :zeek:see:`NetControl::remove_rule`. + You have to use :zeek:see:`NetControl::unblock_address_catch_release` in this + case. + +.. _framework-netcontrol-plugins: + +NetControl Plugins +================== + +Using the existing plugins +-------------------------- + +In the API part of the documentation, we exclusively used the debug plugin, +which simply outputs its actions to the screen. In addition to this debugging +plugin, Zeek ships with a small number of plugins that can be used to interface +the NetControl framework with your networking hard- and software. + +The plugins that currently ship with NetControl are: + +.. list-table:: + :widths: 15 55 + :header-rows: 1 + + * - Plugin name + - Description + + * - OpenFlow plugin + - This is the most fully featured plugin which allows the NetControl + framework to be interfaced with OpenFlow switches. The source of this + plugin is contained in :doc:`/scripts/base/frameworks/netcontrol/plugins/openflow.zeek`. + + * - Broker plugin + - This plugin provides a generic way to send NetControl commands using the + new Zeek communication library (Broker). External programs can receive + the rules and take action; we provide an example script that calls + command-line programs triggered by NetControl. The source of this + plugin is contained in :doc:`/scripts/base/frameworks/netcontrol/plugins/broker.zeek`. + + * - acld plugin + - This plugin adds support for the acld daemon, which can interface with + several switches and routers. The current version of acld is available + from the `LBL ftp server `_. The source of this + plugin is contained in :doc:`/scripts/base/frameworks/netcontrol/plugins/acld.zeek`. + + * - PacketFilter plugin + - This plugin uses the Zeek process-level packet filter (see + :zeek:see:`install_src_net_filter` and + :zeek:see:`install_dst_net_filter`). Since the functionality of the + PacketFilter is limited, this plugin is mostly for demonstration purposes. The source of this + plugin is contained in :doc:`/scripts/base/frameworks/netcontrol/plugins/packetfilter.zeek`. + + * - Debug plugin + - The debug plugin simply outputs its action to the standard output. The source of this + plugin is contained in :doc:`/scripts/base/frameworks/netcontrol/plugins/debug.zeek`. + +Activating plugins +****************** + +In the API reference we already used the debug plugin. +We first had to instantiate it by calling +:zeek:see:`NetControl::create_debug` and then add it to NetControl by +calling :zeek:see:`NetControl::activate`. + +As we already hinted before, NetControl supports having several plugins that are +active at the same time. The second argument to the :zeek:see:`NetControl::activate` +function is the priority of the backend that was just added. Each rule is sent +to all plugins in order, from highest priority to lowest priority. The backend +can then choose if it accepts the rule and pushes it out to the hardware that it +manages. Or, it can opt to reject the rule. In this case, the NetControl +framework will try to apply the rule to the backend with the next lower +priority. If no backend accepts a rule, the rule insertion is marked as failed. + +The choice if a rule is accepted or rejected stays completely with each plugin. +The debug plugin we used so far just accepts all rules. However, for other +plugins you can specify what rules they will accept. Consider, for example, a +network with two OpenFlow switches. The first switch forwards packets from the +network to the external world, the second switch sits in front of your Zeek +cluster to provide packet shunting. In this case, you can add two OpenFlow +backends to NetControl. When you create the instances using +:zeek:see:`NetControl::create_openflow`, you set the ``monitor`` and ``forward`` +attributes of the configuration in :zeek:see:`NetControl::OfConfig` +appropriately. Afterwards, one of the backends will only accept rules for the +monitor path; the other backend will only accept rules for the forward path. + +Commonly, plugins also support predicate functions, that allow the user to +specify restrictions on the rules that they will accept. This can for example be +used if you have a network where certain switches are responsible for specified +subnets. The predicate can examine the subnet of the rule and only accept the +rule if the rule matches the subnet that the specific switch is responsible for. + +To give an example, the following script adds two backends to NetControl. One +backend is the NetControl debug backend, which just outputs the rules to the +console. The second backend is an OpenFlow backend, which uses the OpenFlow +debug mode that outputs the openflow rules to :file:`openflow.log`. The OpenFlow +backend uses a predicate function to only accept rules with a source address in +the 192.168.17.0/24 network; all other rules will be passed on to the debug +plugin. We manually block a few addresses in the +:zeek:see:`NetControl::init_done` event to verify the correct functionality. + +.. literalinclude:: netcontrol-8-multiple.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek netcontrol-8-multiple.zeek + netcontrol debug (Debug-All): init + netcontrol debug (Debug-All): add_rule: [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::ADDRESS, conn=, flow=, ip=192.168.17.2/32, mac=], expire=1.0 min, priority=0, location=, out_port=, mod=, id=3, cid=3, _plugin_ids={\x0a\x0a}, _active_plugin_ids={\x0a\x0a}, _no_expire_plugins={\x0a\x0a}, _added=F] + +As you can see, only the single block affecting the 192.168.17.0/24 network is +output to the command line. The other two lines are handled by the OpenFlow +plugin. We can verify this by looking at :file:`netcontrol.log`. The plugin column shows +which plugin handled a rule and reveals that two rules were handled by OpenFlow: + +.. code-block:: console + + $ cat netcontrol.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path netcontrol + #open 2018-12-14-18-50-58 + #fields ts rule_id category cmd state action target entity_type entity mod msg priority expire location plugin + #types time string enum string enum string enum string string string string int interval string string + 1544813458.913148 - NetControl::MESSAGE - - - - - - - activating plugin with priority 0 - - - Debug-All + 1544813458.913148 - NetControl::MESSAGE - - - - - - - activation finished - - - Debug-All + 1544813458.913148 - NetControl::MESSAGE - - - - - - - activating plugin with priority 10 - - - Openflow-Log-42 + 1544813458.913148 - NetControl::MESSAGE - - - - - - - activation finished - - - Openflow-Log-42 + 1544813458.913148 - NetControl::MESSAGE - - - - - - - plugin initialization done - - - - + 1544813458.913148 2 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 10.0.0.1/32 - - 0 60.000000 - Openflow-Log-42 + 1544813458.913148 3 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.17.2/32 - - 0 60.000000 - Debug-All + 1544813458.913148 4 NetControl::RULE ADD NetControl::REQUESTED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.18.2/32 - - 0 60.000000 - Openflow-Log-42 + 1544813458.913148 3 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.17.2/32 - - 0 60.000000 - Debug-All + 1544813458.913148 2 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 10.0.0.1/32 - - 0 60.000000 - Openflow-Log-42 + 1544813458.913148 4 NetControl::RULE ADD NetControl::SUCCEEDED NetControl::DROP NetControl::FORWARD NetControl::ADDRESS 192.168.18.2/32 - - 0 60.000000 - Openflow-Log-42 + #close 2018-12-14-18-50-58 + +Furthermore, :file:`openflow.log` also shows the two added rules, converted to OpenFlow +flow mods: + +.. code-block:: console + + $ cat openflow.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path openflow + #open 2018-12-14-18-50-58 + #fields ts dpid match.in_port match.dl_src match.dl_dst match.dl_vlan match.dl_vlan_pcp match.dl_type match.nw_tos match.nw_proto match.nw_src match.nw_dst match.tp_src match.tp_dst flow_mod.cookie flow_mod.table_id flow_mod.command flow_mod.idle_timeout flow_mod.hard_timeout flow_mod.priority flow_mod.out_port flow_mod.out_group flow_mod.flags flow_mod.actions.out_ports flow_mod.actions.vlan_vid flow_mod.actions.vlan_pcp flow_mod.actions.vlan_strip flow_mod.actions.dl_src flow_mod.actions.dl_dst flow_mod.actions.nw_tos flow_mod.actions.nw_src flow_mod.actions.nw_dst flow_mod.actions.tp_src flow_mod.actions.tp_dst + #types time count count string string count count count count count subnet subnet count count count count enum count count count count count count vector[count] count count bool string string count addr addr count count + 1544813458.913148 42 - - - - - 2048 - - 10.0.0.1/32 - - - 4398046511108 - OpenFlow::OFPFC_ADD 0 60 0 - - 1 (empty) - - F - - - - - - - + 1544813458.913148 42 - - - - - 2048 - - - 10.0.0.1/32 - - 4398046511109 - OpenFlow::OFPFC_ADD 0 60 0 - - 1 (empty) - - F - - - - - - - + 1544813458.913148 42 - - - - - 2048 - - 192.168.18.2/32 - - - 4398046511112 - OpenFlow::OFPFC_ADD 0 60 0 - - 1 (empty) - - F - - - - - - - + 1544813458.913148 42 - - - - - 2048 - - - 192.168.18.2/32 - - 4398046511113 - OpenFlow::OFPFC_ADD 0 60 0 - - 1 (empty) - - F - - - - - - - + #close 2018-12-14-18-50-58 + +.. note:: + + You might have asked yourself what happens when you add two or more with the + same priority. In this case, the rule is sent to all the backends + simultaneously. This can be useful, for example when you have redundant + switches that should keep the same rule state. + +Interfacing with external hardware +********************************** + +Now that we know which plugins exist, and how they can be added to NetControl, +it is time to discuss how we can interface Zeek with actual hardware. The typical +way to accomplish this is to use the Zeek communication library (Broker), which +can be used to exchange Zeek events with external programs and scripts. The +NetControl plugins can use Broker to send events to external programs, which can +then take action depending on these events. + +The following figure shows this architecture with the example of the OpenFlow +plugin. The OpenFlow plugin uses Broker to send events to an external Python +script, which uses the `Ryu SDN controller `_ to +communicate with the Switch. + +.. figure:: netcontrol-openflow.png + :width: 600 + :align: center + :alt: NetControl and OpenFlow architecture. + :target: ../_images/netcontrol-openflow.png + + NetControl and OpenFlow architecture (click to enlarge). + +The Python scripts that are used to interface with the available NetControl +plugins are contained in the ``zeek-netcontrol`` repository (`github link `_). +The repository contains scripts for the OpenFlow as well as the acld plugin. +Furthermore, it contains a script for the broker plugin which can be used to +call configurable command-line programs when used with the broker plugin. + +The repository also contains documentation on how to install these connectors. +The ``netcontrol`` directory contains an API that allows you to write your own +connectors to the broker plugin. + +Writing plugins +--------------- + +In addition to using the plugins that are part of NetControl, you can write your +own plugins to interface with hard- or software that we currently do not support +out of the box. + +Creating your own plugin is easy; besides a bit of boilerplate, you only need to +create two functions: one that is called when a rule is added, and one that is +called when a rule is removed. The following script creates a minimal plugin +that just outputs a rule when it is added or removed. Note that you have to +raise the :zeek:see:`NetControl::rule_added` and +:zeek:see:`NetControl::rule_removed` events in your plugin to let NetControl know +when a rule was added and removed successfully. + +.. literalinclude:: netcontrol-9-skeleton.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +This example is already fully functional and we can use it with a script similar +to our very first example: + +.. literalinclude:: netcontrol-10-use-skeleton.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ zeek -C -r tls/ecdhe.pcap netcontrol-10-use-skeleton.zeek + add, [ty=NetControl::DROP, target=NetControl::FORWARD, entity=[ty=NetControl::CONNECTION, conn=[orig_h=192.168.18.50, orig_p=56981/tcp, resp_h=74.125.239.97, resp_p=443/tcp], flow=, ip=, mac=], expire=20.0 secs, priority=0, location=, out_port=, mod=, id=2, cid=2, _plugin_ids={ + + }, _active_plugin_ids={ + + }, _no_expire_plugins={ + + }, _added=F] + +If you want to write your own plugins, it will be worthwhile to look at the +plugins that ship with the NetControl framework to see how they define the +predicates and interact with Broker. diff --git a/doc/frameworks/notice.rst b/doc/frameworks/notice.rst new file mode 100644 index 0000000000..cd8bc6e73f --- /dev/null +++ b/doc/frameworks/notice.rst @@ -0,0 +1,434 @@ + +.. _notice-framework: + +================ +Notice Framework +================ + +One of the easiest ways to customize Zeek is writing a local notice policy. +Zeek can detect a large number of potentially interesting situations, and the +notice policy hook identifies which of them the user wants to be acted upon in +some manner. In particular, the notice policy can specify actions to be taken, +such as sending an email or compiling regular alarm emails. This page gives an +introduction into writing such a notice policy. + +Overview +======== + +Let’s start with a little bit of background on Zeek’s philosophy on reporting +things. Zeek ships with a large number of policy scripts which perform a wide +variety of analyses. Most of these scripts monitor for activity which might be +of interest for the user. However, none of these scripts determines the +importance of what it finds itself. Instead, the scripts only flag situations +as *potentially* interesting, leaving it to the local configuration to define +which of them are in fact actionable. This decoupling of detection and +reporting allows Zeek to address the different needs that different sites have. +Definitions of what constitutes an attack or even a compromise differ quite a +bit between environments, and activity deemed malicious at one site might be +fully acceptable at another. + +Whenever one of Zeek’s analysis scripts sees something potentially interesting +it flags the situation by calling the :zeek:see:`NOTICE` function and giving it +a single :zeek:see:`Notice::Info` record. A Notice has a +:zeek:see:`Notice::Type`, which reflects the kind of activity that has been +seen, and it is usually also augmented with further context about the +situation. + +More information about raising notices can be found in the :ref:`Raising +Notices ` section. + +Once a notice is raised, it can have any number of actions applied to it by +writing :zeek:see:`Notice::policy` hooks which are described in the +:ref:`Notice Policy ` section below. Such actions can for +example send email to configured address(es), or simply ignore the +notice. Currently, the following actions are defined: + +.. list-table:: + :header-rows: 1 + + * - Action + - Description + + * - :zeek:see:`Notice::ACTION_LOG` + - Write the notice to the :zeek:see:`Notice::LOG` logging stream. + + * - :zeek:see:`Notice::ACTION_ALARM` + - Log into the :zeek:see:`Notice::ALARM_LOG` stream which will rotate + hourly and email the contents to the email address or addresses in the + :zeek:field:`Notice::Info$email_dest` field of that notice's :zeek:see:`Notice::Info` record. + + * - :zeek:see:`Notice::ACTION_EMAIL` + - Send the notice in an email to the email address or addresses in the + :zeek:field:`Notice::Info$email_dest` field of that notice's :zeek:see:`Notice::Info` record. + + * - :zeek:see:`Notice::ACTION_PAGE` + - Send an email to the email address or addresses in the + :zeek:field:`Notice::Info$email_dest` field of that notice's :zeek:see:`Notice::Info` record. + +How these notice actions are applied to notices is discussed in the +:ref:`Notice Policy ` and :ref:`Notice Policy Shortcuts +` sections. + +Processing Notices +================== + +.. _notice-policy: + +Notice Policy +------------- + +The hook :zeek:see:`Notice::policy` provides the mechanism for applying actions +and generally modifying the notice before it’s sent onward to the action +plugins. Hooks can be thought of as multi-bodied functions and using them +looks very similar to handling events. The difference is that they don’t go +through the event queue like events. Users can alter notice processing by +directly modifying fields in the :zeek:see:`Notice::Info` record given as the +argument to the hook. + +Here’s a simple example which tells Zeek to send an email for all notices of +type :zeek:see:`SSH::Password_Guessing` if the guesser attempted to log in to +the server at ``192.168.56.103``: + +.. code-block:: zeek + :caption: notice_ssh_guesser.zeek + + @load protocols/ssh/detect-bruteforcing + + redef SSH::password_guesses_limit=10; + + hook Notice::policy(n: Notice::Info) + { + if ( n$note == SSH::Password_Guessing && /192\.168\.56\.103/ in n$sub ) + { + add n$actions[Notice::ACTION_EMAIL]; + n$email_dest = "ssh_alerts@example.net"; + } + } + +.. code-block:: console + + $ zeek -C -r ssh/sshguess.pcap notice_ssh_guesser.zeek + $ cat notice.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path notice + #open 2018-12-13-22-56-35 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p fuid file_mime_type file_desc proto note msg sub src dst p n peer_descr actions email-dest suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude + #types time string addr port addr port string string string enum enum string string addr addr port count string set[enum] set[string] interval bool string string string double double + 1427726759.303199 - - - - - - - - - SSH::Password_Guessing 192.168.56.1 appears to be guessing SSH passwords (seen in 10 connections). Sampled servers: 192.168.56.103, 192.168.56.103, 192.168.56.103, 192.168.56.103, 192.168.56.103 192.168.56.1 - - - - Notice::ACTION_EMAIL,Notice::ACTION_LOG ssh_alerts@example.net 3600.000000 F - - - - - + #close 2018-12-13-22-56-35 + +.. note:: + + Keep in mind that the semantics of the :zeek:see:`SSH::Password_Guessing` + notice are such that it is only raised when Zeek heuristically detects a + failed login. + +Hooks can also have priorities applied to order their execution like events +with a default priority of 0. Greater values are executed first. Setting a hook +body to run before default hook bodies might look like this: + +.. code-block:: zeek + + hook Notice::policy(n: Notice::Info) &priority=5 + { + # Insert your code here. + } + +Hooks can also abort later hook bodies with the :zeek:see:`break` keyword. This +is primarily useful if one wants to completely preempt processing by lower +priority :zeek:see:`Notice::policy` hooks. + +.. _notice-policy-shortcuts: + +Notice Policy Shortcuts +----------------------- + +Although the notice framework provides a great deal of flexibility and +configurability there are many times that the full expressiveness isn’t needed +and actually becomes a hindrance to achieving results. The framework provides a +default :zeek:see:`Notice::policy` hook body as a way of giving users the +shortcuts to easily apply many common actions to notices. + +These are implemented as sets and tables indexed with a +:zeek:see:`Notice::Type` enum value. The following table shows and describes +all of the variables available for shortcut configuration of the notice +framework. + +.. list-table:: + :header-rows: 1 + + * - Variable name + - Description + + * - :zeek:see:`Notice::ignored_types` + - Adding a :zeek:see:`Notice::Type` to this set results in the notice being + ignored. It won’t have any other action applied to it, not even + :zeek:see:`Notice::ACTION_LOG`. + + * - :zeek:see:`Notice::emailed_types` + - Adding a :zeek:see:`Notice::Type` to this set results in + :zeek:see:`Notice::ACTION_EMAIL` being applied to the notices of that + type. + + * - :zeek:see:`Notice::alarmed_types` + - Adding a :zeek:see:`Notice::Type` to this set results in + :zeek:see:`Notice::ACTION_ALARM` being applied to the notices of that + type. + + * - :zeek:see:`Notice::not_suppressed_types` + - Adding a :zeek:see:`Notice::Type` to this set results in that notice no + longer undergoing the normal notice suppression that would take place. Be + careful when using this in production it could result in a dramatic + increase in the number of notices being processed. + + * - :zeek:see:`Notice::type_suppression_intervals` + - This is a table indexed on :zeek:see:`Notice::Type` and yielding an + interval. It can be used as an easy way to extend the default suppression + interval for an entire :zeek:see:`Notice::Type` without having to create + a whole :zeek:see:`Notice::policy` entry and setting the + ``$suppress_for`` field. + +.. _raising-notices: + +Raising Notices +=============== + +A script should raise a notice for any occurrence that a user may want to be +notified about or take action on. For example, whenever the base SSH analysis +script sees enough failed logins to a given host, it raises a notice of the +type :zeek:see:`SSH::Password_Guessing`. The code in the base SSH analysis +script which raises the notice looks like this: + +.. code-block:: zeek + + NOTICE([$note=Password_Guessing, + $msg=fmt("%s appears to be guessing SSH passwords (seen in %d connections).", key$host, r$num), + $src=key$host, + $identifier=cat(key$host)]); + +:zeek:see:`NOTICE` is a normal function in the global namespace which wraps a +function within the Notice namespace. It takes a single argument of the +:zeek:see:`Notice::Info` record type. The most common fields used when raising +notices are described in the following table: + +.. list-table:: + :header-rows: 1 + + * - Field name + - Description + + * - :zeek:field:`note` + - This field is required and is an enum value which represents the notice + type. + + * - :zeek:field:`msg` + - This is a human readable message which is meant to provide more + information about this particular instance of the notice type. + + * - :zeek:field:`sub` + - This is a sub-message meant for human readability but will frequently + also be used to contain data meant to be matched with the + :zeek:see:`Notice::policy`. + + * - :zeek:field:`conn` + - If a connection record is available when the notice is being raised and + the notice represents some attribute of the connection, then the + connection record can be given here. Other fields such as :zeek:field:`id` and :zeek:field:`src` + will automatically be populated from this value. + + * - :zeek:field:`id` + - If a :zeek:see:`conn_id` record is available when the notice is being + raised and the notice represents some attribute of the connection, then + the connection can be given here. Other fields such as :zeek:field:`src` will + automatically be populated from this value. + + * - :zeek:field:`src` + - If the notice represents an attribute of a single host then it’s possible + that only this field should be filled out to represent the host that is + being “noticed”. + + * - :zeek:field:`n` + - This normally represents a number if the notice has to do with some + number. It’s most frequently used for numeric tests in the + :zeek:see:`Notice::policy` for making policy decisions. + + * - :zeek:field:`identifier` + - This represents a unique identifier for this notice. This field is + described in more detail in the :ref:`Automated Suppression + ` section. + + * - :zeek:field:`suppress_for` + - This field can be set if there is a natural suppression interval for the + notice that may be different than the default value. The value set to + this field can also be modified by a user’s :zeek:see:`Notice::policy` so + the value is not set permanently and unchangeably. + +When writing Zeek scripts that raise notices, some thought should be given to +what the notice represents and what data should be provided to give a consumer +of the notice the best information about the notice. If the notice is +representative of many connections and is an attribute of a host (e.g., a +scanning host) it probably makes most sense to fill out the :zeek:field:`src` field and +not give a connection or :zeek:see:`conn_id`. If a notice is representative of +a connection attribute (e.g. an apparent SSH login) then it makes sense to fill +out either :zeek:field:`Notice::Info$conn` or :zeek:field:`Notice::Info$id` +based on the data that is available when the notice is raised. + +Using care when inserting data into a notice will make later analysis easier +when only the data to fully represent the occurrence that raised the notice is +available. If complete connection information is included when an SSL server +certificate is expiring, for example, the logs will be very confusing because +the connection that the certificate was detected on is a side topic to the fact +that an expired certificate was detected. It’s possible in many cases that two +or more separate notices may need to be generated. As an example, one could be +for the detection of the expired SSL certificate and another could be for if +the client decided to go ahead with the connection neglecting the expired +certificate. + +.. _automated-notice-suppression: + +Automated Suppression +===================== + +The notice framework supports suppression for notices if the author of the +script that is generating the notice has indicated to the notice framework how +to identify notices that are intrinsically the same. Identification of these +“intrinsically duplicate” notices is implemented with an optional field in +:zeek:see:`Notice::Info` records named :zeek:field:`Notice::Info$identifier` +which is a simple string. If the :zeek:field:`Notice::Info$identifier` and +:zeek:field:`Notice::Info$note` fields are the same for two notices, the notice +framework actually considers them to be the same thing and +can use that information to suppress duplicates for a configurable period of +time. + +.. note:: + + If the :zeek:field:`identifier` is left out of a notice, no notice suppression takes + place due to the framework’s inability to identify duplicates. This could be + completely legitimate usage if no notices could ever be considered to be + duplicates. + +The :zeek:field:`Notice::Info$identifier` field typically comprises several pieces of data related to +the notice that when combined represent a unique instance of that notice. Here +is an example of the script +:doc:`/scripts/policy/protocols/ssl/validate-certs.zeek` raising a notice for +session negotiations where the certificate or certificate chain did not +validate successfully against the available certificate authority certificates. + +.. code-block:: zeek + + NOTICE([$note=SSL::Invalid_Server_Cert, + $msg=fmt("SSL certificate validation failed with (%s)", c$ssl$validation_status), + $sub=c$ssl$subject, + $conn=c, + $identifier=cat(c$id$resp_h,c$id$resp_p,c$ssl$validation_status,c$ssl$cert_hash)]); + +In the above example you can see that the :zeek:field:`identifier` field contains a +string that is built from the responder IP address and port, the validation +status message, and the MD5 sum of the server certificate. Those fields in +particular are chosen because different SSL certificates could be seen on any +port of a host, certificates could fail validation for different reasons, and +multiple server certificates could be used on that combination of IP address +and port with the server_name SSL extension (explaining the addition of the MD5 +sum of the certificate). The result is that if a certificate fails validation +and all four pieces of data match (IP address, port, validation status, and +certificate hash) that particular notice won’t be raised again for the default +suppression period. + +Setting the :zeek:field:`Notice::Info$identifier` field is left to those raising notices because it’s +assumed that the script author who is raising the notice understands the full +problem set and edge cases of the notice which may not be readily apparent to +users. If users don’t want the suppression to take place or simply want a +different interval, they can set a notice’s suppression interval to ``0secs`` +or delete the value from the :zeek:field:`identifier` field in a +:zeek:see:`Notice::policy` hook. + +Extending Notice Framework +========================== + +There are a couple of mechanisms for extending the notice framework and adding +new capabilities. + +Configuring Notice Emails +------------------------- + +If :zeek:see:`Notice::mail_dest` is set, notices with an associated +e-mail action will be sent to that address. For additional +customization, users can use the :zeek:see:`Notice::policy` hook to +modify the :zeek:field:`Notice::Info$email_dest` field. The following example would result in three +separate e-mails: + +.. code-block:: zeek + + hook Notice::policy(n: Notice::Info) + { + n$email_dest = set( + "snow.white@example.net", + "doc@example.net", + "happy@example.net,sleepy@example.net,bashful@example.net" + ); + } + +You can also use :zeek:see:`Notice::policy` hooks to add extra information to +emails. The :zeek:see:`Notice::Info` record contains a vector of strings named +:zeek:field:`Notice::Info$email_body_sections` which Zeek will include verbatim when sending email. +An example of including some information from an HTTP request is included below. + +.. code-block:: zeek + + hook Notice::policy(n: Notice::Info) + { + if ( n?$conn && n$conn?$http && n$conn$http?$host ) + n$email_body_sections[|n$email_body_sections|] = fmt("HTTP host header: %s", n$conn$http$host); + } + +Cluster Considerations +====================== + +When running Zeek in a cluster, most of the information above stays the same. +Notices are generated, the :zeek:see:`Notice::policy` hook is evaluated, and +any actions are run on the node which generated the notice (most often a worker +node). Of note to users/developers of Zeek is that any files or access needed +to run the notice actions must be available to the respective node(s). + +The role of the manager is to receive and distribute notice suppression +information, so that duplicate notices do not get generated. Bear in mind that +some amount of latency is intrinsic in this synchronization, so it’s +possible that rapidly-generating notices will be duplicates. In this case, any +actions will also execute multiple times, once by each notice-generating +node. + +The Weird Log +============= + +A wide range of “weird” activity detected by Zeek can trigger corresponding +events that inform the script layer of this activity. These events exist at +various granularities, including :zeek:see:`conn_weird`, +:zeek:see:`flow_weird`, :zeek:see:`net_weird`, :zeek:see:`file_weird`, and +others. Built atop the notice framework, the :doc:`Weird +` module implements event handlers +that funnel the various “weirds” into the usual notice framework handlers. To +get an idea of the available weird-types, take a look at the +:zeek:see:`Weird::actions` table, which defines default actions for the various +types of activity. Weirds generally do not indicate security-relevant activity +— they’re just, well, weird things that you generally wouldn’t expect to +happen, such as odd TCP state machine violations, unexpected HTTP header +constellations, or DNS message properties that fall outside of the relevant RFC +specifications. That is, don’t consider them actionable detections in an IDS +sense, though they might well provide meaningful additional clues for a +security incident. + +The notice type for weirds is :zeek:see:`Weird::Activity`. You have a wide range of actions at +your disposal for how to handle weirds: you can ignore them, log them, or have +them trigger notice, all at various reduction/filtering granularities (see the +:zeek:see:`Weird::Action` enum values for details). For dynamic filtering, the +:zeek:see:`Weird::ignore_hosts` and :zeek:see:`Weird::weird_ignore` sets allow +exclusion of activity from reporting. + +The framework provides a few additional tuning knobs. See +:doc:`/scripts/base/frameworks/notice/weird.zeek` for details. diff --git a/doc/frameworks/notice_ssh_guesser.zeek b/doc/frameworks/notice_ssh_guesser.zeek new file mode 100644 index 0000000000..34ffe2e95e --- /dev/null +++ b/doc/frameworks/notice_ssh_guesser.zeek @@ -0,0 +1,10 @@ + +@load protocols/ssh/detect-bruteforcing + +redef SSH::password_guesses_limit=10; + +hook Notice::policy(n: Notice::Info) + { + if ( n$note == SSH::Password_Guessing && /192\.168\.56\.103/ in n$sub ) + add n$actions[Notice::ACTION_EMAIL]; + } diff --git a/doc/frameworks/packet-analysis-1-ethernet.zeek b/doc/frameworks/packet-analysis-1-ethernet.zeek new file mode 100644 index 0000000000..bea6014bcd --- /dev/null +++ b/doc/frameworks/packet-analysis-1-ethernet.zeek @@ -0,0 +1,26 @@ +module PacketAnalyzer::ETHERNET; + +export { + ## Default analyzer + const default_analyzer: PacketAnalyzer::Tag = PacketAnalyzer::ANALYZER_IP &redef; + + ## IEEE 802.2 SNAP analyzer + global snap_analyzer: PacketAnalyzer::Tag &redef; + ## Novell raw IEEE 802.3 analyzer + global novell_raw_analyzer: PacketAnalyzer::Tag &redef; + ## IEEE 802.2 LLC analyzer + global llc_analyzer: PacketAnalyzer::Tag &redef; +} + +event zeek_init() &priority=20 + { + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x8847, PacketAnalyzer::ANALYZER_MPLS); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x0800, PacketAnalyzer::ANALYZER_IP); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x86DD, PacketAnalyzer::ANALYZER_IP); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x0806, PacketAnalyzer::ANALYZER_ARP); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x8035, PacketAnalyzer::ANALYZER_ARP); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x8100, PacketAnalyzer::ANALYZER_VLAN); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x88A8, PacketAnalyzer::ANALYZER_VLAN); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x9100, PacketAnalyzer::ANALYZER_VLAN); + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ETHERNET, 0x8864, PacketAnalyzer::ANALYZER_PPPOE); + } diff --git a/doc/frameworks/packet-analysis-2-llc.cc b/doc/frameworks/packet-analysis-2-llc.cc new file mode 100644 index 0000000000..4d72b7cf9e --- /dev/null +++ b/doc/frameworks/packet-analysis-2-llc.cc @@ -0,0 +1,23 @@ +bool LLCDemo::AnalyzePacket(size_t len, const uint8_t* data, Packet* packet) + { + // Rudimentary parsing of 802.2 LLC + if ( 17 >= len ) + { + packet->Weird("truncated_llc_header"); + return false; + } + + if ( ! llc_demo_message ) + return true; + + auto dsap = data[14]; + auto ssap = data[15]; + auto control = data[16]; + + event_mgr.Enqueue(llc_demo_message, + val_mgr->Count(dsap), + val_mgr->Count(ssap), + val_mgr->Count(control)); + + return true; + } diff --git a/doc/frameworks/packet-analysis-pdu.svg b/doc/frameworks/packet-analysis-pdu.svg new file mode 100644 index 0000000000..65c5ed7c74 --- /dev/null +++ b/doc/frameworks/packet-analysis-pdu.svg @@ -0,0 +1 @@ +Layer1PDULayer2PDULayer1PayloadLayer2PayloadIDID \ No newline at end of file diff --git a/doc/frameworks/packet-analysis.rst b/doc/frameworks/packet-analysis.rst new file mode 100644 index 0000000000..b77ef607a4 --- /dev/null +++ b/doc/frameworks/packet-analysis.rst @@ -0,0 +1,170 @@ + +.. _packet-analysis: + +=============== +Packet Analysis +=============== + +.. TODO: integrate BoZ revisions + +.. rst-class:: opening + + The Packet Analysis plugin architecture handles parsing of packet headers at + layers below Zeek's existing Session analysis. In particular, this allows to + add new link and network layer protocols to Zeek. + This section provides an overview of the underlying architecture as well as + an example-based walk-through. For further details, consider to take a look + at the built-in packet analyzers as well as the packet analyzer tests. + +The Flow of Packets +=================== + +The basic packet flow through Zeek is as follows. First, an ``IOSource`` deals with +getting the packets into Zeek. While an ``IOSource`` can be used to interface all +sorts of capturing mechanisms, the default source makes use of libpcap to either +read PCAP files or sniff an interface. Once acquired, a packet is handed into +the packet analysis and processed layer by layer. + +.. figure:: packet-analysis-pdu.svg + :width: 600 + :align: center + :alt: Nesting of Protocol Data Units (PDUs) + :target: ../_images/netcontrol-openflow.png + + Nesting of Protocol Data Units (PDUs). + +At the lower layers, Protocol Data Units (PDUs) typically consist of a header +and a payload, where the payload is the next layer's PDU and the header carries +a numeric identifier that determines the encapsulated protocol (see figure +above, where "ID" denotes the location of such a numeric protocol identifier +within the header). + +Each packet analyzer parses the packet's header according to the implemented +protocol, determines a suitable analyzer for the encapsulated protocol and hands its +payload to that next analyzer. Once the IP layer is reached, packet analysis is +finished and Zeek continues by constructing a session for the observed +connection. After session analysis, which includes processing of TCP and UDP, +the packet continues its journey into the land of application layer analyzers. +There, Dynamic Protocol Detection is used to determine the application layer +protocol and continue the analysis. + +Packet Analyzer Configuration +============================= + +The following script shows an example configuration of the Ethernet packet +analyzer: + +.. literalinclude:: packet-analysis-1-ethernet.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +Within :zeek:see:`zeek_init`, various EtherType-to-PacketAnalyzer mappings are +registered by using :zeek:see:`PacketAnalyzer::register_packet_analyzer`. For +example, for EtherType ``0x8864``, the packet's payload is passed to the PPPoE +analyzer. + +The ``default_analyzer`` analyzer specifies which packet analyzer to use if +none of the mappings matched. In case of Ethernet, we try to fall back to IP. + +Furthermore, Ethernet needs to handle different types of frames, with three of +them identified using the first payload bytes (see `Wikipedia +`_). +As the EtherType needs to be interpreted with respect to the frame type in these +cases, the Ethernet analyzer provides three additional configuration parameters, +``snap_analyzer``, ``novell_raw_analyzer``, and ``llc_analyzer``. +to configure analyzers that handle the different frame types. + +.. note:: + + There are a few conventions involved here: + + * The name of the module is expected to be ``PacketAnalyzer::``. + * The default analyzer is expected to be named ``default_analyzer``. + +Packet analysis starts at a root analyzer that dispatches based on the link +types obtained from the ``IOSource``. Accordingly +:doc:`/scripts/base/packet-protocols/root/main.zeek` contains the following +call to integrate the Ethernet analyzer: + +.. code-block:: zeek + + PacketAnalyzer::register_packet_analyzer(PacketAnalyzer::ANALYZER_ROOT, DLT_EN10MB, PacketAnalyzer::ANALYZER_ETHERNET); + +Packet Analyzer API +=================== + +Just like for other parts of Zeek, a plugin may provide a packet analyzer by +adding a packet analysis component that instantiates an analyzer. The packet +analyzer itself is implemented by inheriting from +``zeek::packet_analysis::Analyzer`` and overriding the ``AnalyzePacket()`` +method. The following is an excerpt from a test case that shows the exemplary +analysis of LLC: + +.. literalinclude:: packet-analysis-2-llc.cc + :caption: + :language: C++ + :linenos: + :tab-width: 4 + +First, we verify that the size of the packet matches what we expect. If that is +not the case, we create a weird using the ``Packet`` object that is passed along +the chain of analyzers. To signal that the analysis failed, the method returns +``false``. For valid packets, we just read some protocol-specific values. As of +now, there is no mechanism to pass extracted meta data on to other analyzers. +While it is possible to trigger events that receive these values as parameters, +keep in mind that handling events for every packet can be *extremely +expensive*. However, for our test case we defined an event as follows in a +separate ``.bif`` file: + +.. code-block:: zeek + + event llc_demo_message%(dsap: count, ssap: count, control: count%); + +Before we can expect the event to be generated, we need to integrate the +analyzer. The configuration might be included in the scripts that are shipped +with the packet analyzer. For example, one could add a new EtherType by +adding a call to :zeek:see:`PacketAnalyzer::register_packet_analyzer` from +within a :zeek:see:`zeek_init` event handler. +For the LLC example we redefine one of the additional constants: + +.. code-block:: zeek + + redef PacketAnalyzer::ETHERNET::llc_analyzer = PacketAnalyzer::ANALYZER_LLC_DEMO; + +In this example, packet analysis as well as all further analysis ends with the +LLC analyzer. The ``ForwardPacket()`` method can be used to pass data to another +packet analyzer. The method takes a pointer to the beginning of the data to +process (usually the start of the payload in the current context), the length of +the data to process, a pointer to the ``Packet`` object and an identifier. The +identifier would be used to lookup the next analyzer based on which other +analyzers were previously associated with LLC as a parent analyzer in a call to +:zeek:see:`PacketAnalyzer::register_packet_analyzer`. If there is no +previously-registered analyzer that matches the identifier, it will fall back +to the ``default_analyzer`` if available. + +In case a packet analyzer requires initialization, e.g., reading additional +configuration values from script-land, this can be implemented by overriding +the ``Initialize()`` method. When overriding this method, always make sure to +call the base-class version to ensure proper initialization. + +With the addition of the transport-layer analyzer to the packet analysis framework, +it's now possible to register for ports as the identifier. This is natural, given +that a port number is just another numeric identifier for moving from one +protocol to another. Packet analyzers should call +``PacketAnalyzer::register_for_port`` or ``PacketAnalyzer::register_for_ports`` +to ensure that the ports are also stored in the global ``Analyzer::ports`` table for +use with BPF filters. + +The packet analysis framework also provides a ``register_protocol_detection`` +method that is used to register a packet analyzer to use protocol detection +instead of using a numeric identifier. Analyzers can use this method and then +override ``Analyzer::DetectProtocol`` to search the packet data for byte strings +or other markers to detect whether a protocol exists in the data. This is similar +to how DPD works for non-packet analyzers, but is not limited to pattern matching. + +.. note:: + + When writing your own packet analyzer, take a look into the existing code to + identify idiomatic ways to handle tasks like looking up configuration values. diff --git a/doc/frameworks/signatures.rst b/doc/frameworks/signatures.rst new file mode 100644 index 0000000000..c1dc8dbd18 --- /dev/null +++ b/doc/frameworks/signatures.rst @@ -0,0 +1,486 @@ + +=================== +Signature Framework +=================== + +.. rst-class:: opening + + Zeek relies primarily on its extensive scripting language for + defining and analyzing detection policies, but it also + provides an independent *signature language* for doing + low-level, Snort-style pattern matching. While signatures are + *not* Zeek's preferred detection tool, they sometimes come in handy + and are closer to what many people are familiar with from using + other NIDS. This page gives a brief overview on Zeek's signatures + and covers some of their technical subtleties. + +Basics +====== + +Let's look at an example signature first:: + + signature my-first-sig { + ip-proto == tcp + dst-port == 80 + payload /.*root/ + event "Found root!" + } + +This signature asks Zeek to match the regular expression ``.*root`` on +all TCP connections going to port 80. When the signature triggers, Zeek +will raise an event :zeek:id:`signature_match` of the form: + +.. code-block:: zeek + + event signature_match(state: signature_state, msg: string, data: string) + +Here, ``state`` contains more information on the connection that +triggered the match, ``msg`` is the string specified by the +signature's event statement (``Found root!``), and data is the last +piece of payload which triggered the pattern match. + +.. versionadded:: 7.1 + +An alternative form of :zeek:id:`signature_match` has an additional ``end_of_match`` parameter. + +.. code-block:: zeek + + event signature_match(state: signature_state, msg: string, data: string, end_of_match: count) + +The ``end_of_match`` parameter represents the offset into ``data`` where +the match ended, or said differently, the length of the matching data within ``data``. +If a signature matches across packet boundaries, ``data`` contains just the +payload of the packet where a signature match triggered. + +To turn such :zeek:id:`signature_match` events into actual alarms, you can +load Zeek's :doc:`/scripts/base/frameworks/signatures/main.zeek` script. +This script contains a default event handler that raises +:zeek:enum:`Signatures::Sensitive_Signature` :doc:`Notices ` +(as well as others; see the beginning of the script). + +As documented in :ref:`signatures-actions`, it's possible to use a custom +event instead of :zeek:id:`signature_match`. + +As signatures are independent of Zeek's scripts, they are put into +their own file(s). There are three ways to specify which files contain +signatures: By using the ``-s`` flag when you invoke Zeek, or by +extending the Zeek variable :zeek:id:`signature_files` using the ``+=`` +operator, or by using the ``@load-sigs`` directive inside a Zeek script. +If a signature file is given without a full path, it is searched for +along the normal ``ZEEKPATH``. Additionally, the ``@load-sigs`` +directive can be used to load signature files in a path relative to the +Zeek script in which it's placed, e.g. ``@load-sigs ./mysigs.sig`` will +expect that signature file in the same directory as the Zeek script. The +default extension of the file name is ``.sig``, and Zeek appends that +automatically when necessary. + +Signature Language for Network Traffic +====================================== + +Let's look at the format of a signature more closely. Each individual +signature has the format ``signature { }``, where ```` +is a unique label for the signature. There are two types of +attributes: *conditions* and *actions*. The conditions define when the +signature matches, while the actions declare what to do in the case of +a match. Conditions can be further divided into four types: *header*, +*content*, *dependency*, and *context*. We discuss these all in more +detail in the following. + +Conditions +---------- + +Header Conditions +~~~~~~~~~~~~~~~~~ + +Header conditions limit the applicability of the signature to a subset +of traffic that contains matching packet headers. This type of matching +is performed only for the first packet of a connection. + +There are pre-defined header conditions for some of the most used +header fields. All of them generally have the format `` +``, where ```` names the header field; ``cmp`` is +one of ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``; and +```` is a list of comma-separated values or value-ranges to +compare against (e.g. ``5,7-10`` for numbers 5 to 10, excluding 6). +The following keywords are defined: + +``src-ip``/``dst-ip `` + Source and destination address, respectively. Addresses can be given + as IPv4 or IPv6 addresses or CIDR masks. For IPv6 addresses/masks + the colon-hexadecimal representation of the address must be enclosed + in square brackets (e.g. ``[fe80::1]`` or ``[fe80::0]/16``). + +``src-port``/``dst-port `` + Source and destination port, respectively. + +``ip-proto tcp|udp|icmp|icmp6|ip|ip6`` + IPv4 header's Protocol field or the Next Header field of the final + IPv6 header (i.e. either Next Header field in the fixed IPv6 header + if no extension headers are present or that field from the last + extension header in the chain). Note that the IP-in-IP forms of + tunneling are automatically decapsulated by default and signatures + apply to only the inner-most packet, so specifying ``ip`` or ``ip6`` + is a no-op. + +For lists of multiple values, they are sequentially compared against +the corresponding header field. If at least one of the comparisons +evaluates to true, the whole header condition matches (exception: with +``!=``, the header condition only matches if all values differ). + +In addition to these pre-defined header keywords, a general header +condition can be defined either as:: + + header [:] [& ] + +This compares the value found at the given position of the packet header +with a list of values. ``offset`` defines the position of the value +within the header of the protocol defined by ``proto`` (which can be +``ip``, ``ip6``, ``tcp``, ``udp``, ``icmp`` or ``icmp6``). ``size`` is +either 1, 2, or 4 and specifies the value to have a size of this many +bytes. If the optional ``& `` is given, the packet's value is +first masked with the integer before it is compared to the value-list. +``cmp`` is one of ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``. +``value-list`` is a list of comma-separated integers or integer-ranges +similar to those described above. The integers within the list may be +followed by an additional ``/ mask`` where ``mask`` is a value from 0 to 32. +This corresponds to the CIDR notation for netmasks and is translated into a +corresponding bitmask applied to the packet's value prior to the +comparison (similar to the optional ``& integer``). IPv6 address values +are not allowed in the value-list, though you can still inspect any 1, +2, or 4 byte section of an IPv6 header using this keyword. + +Putting it all together, this is an example condition that is +equivalent to ``dst-ip == 1.2.3.4/16, 5.6.7.8/24``:: + + header ip[16:4] == 1.2.3.4/16, 5.6.7.8/24 + +Note that the analogous example for IPv6 isn't currently possible since +4 bytes is the max width of a value that can be compared. + +Content Conditions +~~~~~~~~~~~~~~~~~~ + +Content conditions are defined by regular expressions. We +differentiate two kinds of content conditions: first, the expression +may be declared with the ``payload`` statement, in which case it is +matched against the raw payload of a connection (for reassembled TCP +streams) or of each packet (for ICMP, UDP, and non-reassembled TCP). +Second, it may be prefixed with an analyzer-specific label, in which +case the expression is matched against the data as extracted by the +corresponding analyzer. + +A ``payload`` condition has the form:: + + payload // + +Currently, the following analyzer-specific content conditions are +defined (note that the corresponding analyzer has to be activated by +loading its policy script): + +``http-request //`` + The regular expression is matched against decoded URIs of HTTP + requests. Obsolete alias: ``http``. + +``http-request-header //`` + The regular expression is matched against client-side HTTP headers. + +``http-request-body //`` + The regular expression is matched against client-side bodys of + HTTP requests. + +``http-reply-header //`` + The regular expression is matched against server-side HTTP headers. + +``http-reply-body //`` + The regular expression is matched against server-side bodys of + HTTP replies. + +``ftp //`` + The regular expression is matched against the command line input + of FTP sessions. + +``finger //`` + The regular expression is matched against finger requests. + +For example, ``http-request /.*(etc/(passwd|shadow)/`` matches any URI +containing either ``etc/passwd`` or ``etc/shadow``. To filter on request +types, e.g. ``GET``, use ``payload /GET /``. + +Note that HTTP pipelining (that is, multiple HTTP transactions in a +single TCP connection) has some side effects on signature matches. If +multiple conditions are specified within a single signature, this +signature matches if all conditions are met by any HTTP transaction +(not necessarily always the same!) in a pipelined connection. + +Dependency Conditions +~~~~~~~~~~~~~~~~~~~~~ + +To define dependencies between signatures, there are two conditions: + + +``requires-signature [!] `` + Defines the current signature to match only if the signature given + by ``id`` matches for the same connection. Using ``!`` negates the + condition: The current signature only matches if ``id`` does not + match for the same connection (using this defers the match + decision until the connection terminates). + +``requires-reverse-signature [!] `` + Similar to ``requires-signature``, but ``id`` has to match for the + opposite direction of the same connection, compared to the current + signature. This allows to model the notion of requests and + replies. + +Context Conditions +~~~~~~~~~~~~~~~~~~ + +Context conditions pass the match decision on to other components of +Zeek. They are only evaluated if all other conditions have already +matched. The following context conditions are defined: + +``eval `` + The given policy function is called and has to return a boolean + confirming the match. If false is returned, no signature match is + going to be triggered. The function has to be of type ``function + cond(state: signature_state, data: string): bool``. Here, + ``data`` may contain the most recent content chunk available at + the time the signature was matched. If no such chunk is available, + ``data`` will be the empty string. See :zeek:type:`signature_state` + for its definition. + +``payload-size `` + Compares the integer to the size of the payload of a packet. For + reassembled TCP streams, the integer is compared to the size of + the first in-order payload chunk. Note that the latter is not very + well defined. + +``same-ip`` + Evaluates to true if the source address of the IP packets equals + its destination address. + +``tcp-state `` + Imposes restrictions on the current TCP state of the connection. + ``state-list`` is a comma-separated list of the keywords + ``established`` (the three-way handshake has already been + performed), ``originator`` (the current data is send by the + originator of the connection), and ``responder`` (the current data + is send by the responder of the connection). + +``udp-state `` + Imposes restrictions on which UDP flow direction to match. ``state-list`` + is a comma-separated list of either ``originator`` (the current data is + send by the originator of the connection) or ``responder`` (the current + data is send by the responder of the connection). The ``established`` + state is rejected as an error in the signature since it does not have a + useful meaning like it does for TCP. + +.. _signatures-actions: + +Actions +------- + +Actions define what to do if a signature matches. Currently, there are +two actions defined, ``event`` and ``enable``. + +``event `` + Raises a :zeek:id:`signature_match` event. The event handler has either + of the following types: + + .. code-block:: zeek + + event signature_match(state: signature_state, msg: string, data: string) + + event signature_match(state: signature_state, msg: string, data: string, end_of_match: count) + + The given string is passed in as ``msg``, and data is the current + part of the payload that has eventually lead to the signature + match (this may be empty for signatures without content + conditions). The ``end_of_match`` parameter represents the length of + the matching payload in ``data``. + +``event event_name [string]`` + + .. versionadded:: 6.2 + + To raise a custom event, the event's name can be inserted before the string:: + + event my_signature_match "Found root!" + + Instead of :zeek:id:`signature_match`, this raises ``my_signature_match``. + The parameters for the ``my_signature_match`` event are expected to be the + same as for :zeek:id:`signature_match`. + + It is further possible to omit the string altogether:: + + event found_root + + In this case, the type of the ``found_root`` event handler does not have + a ``msg`` parameter: + + .. code-block:: zeek + + event found_root(state: signature_state, data: string) + + Like the :zeek:id:`signature_match` event, custom events can have an additional + ``end_of_match`` parameter. + + .. code-block:: zeek + + event found_root(state: signature_state, data: string, end_of_match: count) + + .. note:: + + Matches for signatures that use custom events do not appear + in :file:`signatures.log`. + + +``enable `` + Enables the protocol analyzer ```` for the matching + connection (``"http"``, ``"ftp"``, etc.). This is used by Zeek's + dynamic protocol detection to activate analyzers on the fly. + +Signature Language for File Content +=================================== + +The signature framework can also be used to identify MIME types of files +irrespective of the network protocol/connection over which the file is +transferred. A special type of signature can be written for this +purpose and will be used automatically by the :doc:`Files Framework +` or by Zeek scripts that use the :zeek:see:`file_magic` +built-in function. + +Conditions +---------- + +File signatures use a single type of content condition in the form of a +regular expression: + +``file-magic //`` + +This is analogous to the ``payload`` content condition for the network +traffic signature language described above. The difference is that +``payload`` signatures are applied to payloads of network connections, +but ``file-magic`` can be applied to any arbitrary data, it does not +have to be tied to a network protocol/connection. + +Actions +------- + +Upon matching a chunk of data, file signatures use the following action +to get information about that data's MIME type: + +``file-mime [, ]`` + +The arguments include the MIME type string associated with the file +magic regular expression and an optional "strength" as a signed integer. +Since multiple file magic signatures may match against a given chunk of +data, the strength value may be used to help choose a "winner". Higher +values are considered stronger. + +Things to keep in mind when writing signatures +============================================== + +* Each signature is reported at most once for every connection, + further matches of the same signature are ignored. + +* The content conditions perform pattern matching on elements + extracted from an application protocol dialogue. For example, ``http + /.*passwd/`` scans URLs requested within HTTP sessions. The thing to + keep in mind here is that these conditions only perform any matching + when the corresponding application analyzer is actually *active* for + a connection. Note that by default, analyzers are not enabled if the + corresponding Zeek script has not been loaded. A good way to + double-check whether an analyzer "sees" a connection is checking its + log file for corresponding entries. If you cannot find the + connection in the analyzer's log, very likely the signature engine + has also not seen any application data. + +* As the name indicates, the ``payload`` keyword matches on packet + *payload* only. You cannot use it to match on packet headers; use + the header conditions for that. + +* For TCP connections, header conditions are only evaluated for the + *first packet from each endpoint*. If a header condition does not + match the initial packets, the signature will not trigger. Zeek + optimizes for the most common application here, which is header + conditions selecting the connections to be examined more closely + with payload statements. + +* For UDP and ICMP flows, the payload matching is done on a per-packet + basis; i.e., any content crossing packet boundaries will not be + found. For TCP connections, the matching semantics depend on whether + Zeek is *reassembling* the connection (i.e., putting all of a + connection's packets in sequence). By default, Zeek is reassembling + the first 1K of every TCP connection, which means that within this + window, matches will be found without regards to packet order or + boundaries (i.e., *stream-wise matching*). + +* For performance reasons, by default Zeek *stops matching* on a + connection after seeing 1K of payload; see the section on options + below for how to change this behaviour. The default was chosen with + Zeek's main user of signatures in mind: dynamic protocol detection + works well even when examining just connection heads. + +* Regular expressions are implicitly anchored, i.e., they work as if + prefixed with the ``^`` operator. For reassembled TCP connections, + they are anchored at the first byte of the payload *stream*. For all + other connections, they are anchored at the first payload byte of + each packet. To match at arbitrary positions, you can prefix the + regular expression with ``.*``, as done in the examples above. + +* To match on non-ASCII characters, Zeek's regular expressions support + the ``\x`` operator. CRs/LFs are not treated specially by the + signature engine and can be matched with ``\r`` and ``\n``, + respectively. Generally, Zeek follows `flex's regular expression + syntax + `_. + See the DPD signatures in ``base/frameworks/dpd/dpd.sig`` for some examples + of fairly complex payload patterns. + +* The data argument of the :zeek:id:`signature_match` handler might not carry + the full text matched by the regular expression. Zeek performs the + matching incrementally as packets come in; when the signature + eventually fires, it can only pass on the most recent chunk of data. + + +Options +======= + +The following options control details of Zeek's matching process: + +* :zeek:see:`dpd_reassemble_first_packets` + + If true, Zeek reassembles the beginning of every TCP connection (of + up to :zeek:see:`dpd_buffer_size` bytes, see below also), to facilitate + reliable matching across packet boundaries. If false, only + connections are reassembled for which an application-layer + analyzer gets activated (e.g., by Zeek's dynamic protocol + detection). + +* :zeek:see:`dpd_match_only_beginning` + + If true, Zeek performs packet matching only within the initial payload + window of :zeek:see:`dpd_buffer_size`. If false, it keeps matching + on subsequent payload as well. + +* :zeek:see:`dpd_buffer_size` + + Defines the buffer size for the two preceding options. In + addition, this value determines the amount of bytes Zeek buffers + for each connection in order to activate application analyzers + even after parts of the payload have already passed through. This + is needed by the dynamic protocol detection capability to defer + the decision of which analyzers to use. + +So, how about using Snort signatures with Zeek? +=============================================== + +There was once a script, ``snort2bro``, that converted Snort signatures +automatically into Zeek's (then called "Bro") signature syntax. +However, in our experience this didn't turn out to be a very useful +thing to do because by simply using Snort signatures, one can't benefit +from the additional capabilities that Zeek provides; the approaches of +the two systems are just too different. We therefore stopped maintaining +the ``snort2bro`` script, and there are now many newer Snort options +which it doesn't support. The script is now no longer part of the Zeek +distribution. diff --git a/doc/frameworks/sqlite-conn-filter.zeek b/doc/frameworks/sqlite-conn-filter.zeek new file mode 100644 index 0000000000..2e4a455f3e --- /dev/null +++ b/doc/frameworks/sqlite-conn-filter.zeek @@ -0,0 +1,12 @@ +event zeek_init() + { + local filter: Log::Filter = + [ + $name="sqlite", + $path="/var/db/conn", + $config=table(["tablename"] = "conn"), + $writer=Log::WRITER_SQLITE + ]; + + Log::add_filter(Conn::LOG, filter); + } diff --git a/doc/frameworks/sqlite-read-events.zeek b/doc/frameworks/sqlite-read-events.zeek new file mode 100644 index 0000000000..f14513e0cb --- /dev/null +++ b/doc/frameworks/sqlite-read-events.zeek @@ -0,0 +1,40 @@ +@load frameworks/files/hash-all-files + +type Val: record { + hash: string; + description: string; +}; + +event line(description: Input::EventDescription, tpe: Input::Event, r: Val) + { + print fmt("malware-hit with hash %s, description %s", r$hash, r$description); + } + +global malware_source = "/var/db/malware"; + +event file_hash(f: fa_file, kind: string, hash: string) + { + + # check all sha1 hashes + if ( kind=="sha1" ) + { + Input::add_event( + [ + $source=malware_source, + $name=hash, + $fields=Val, + $ev=line, + $want_record=T, + $config=table( + ["query"] = fmt("select * from malware_hashes where hash='%s';", hash) + ), + $reader=Input::READER_SQLITE + ]); + } + } + +event Input::end_of_data(name: string, source:string) + { + if ( source == malware_source ) + Input::remove(name); + } diff --git a/doc/frameworks/sqlite-read-table.zeek b/doc/frameworks/sqlite-read-table.zeek new file mode 100644 index 0000000000..12499f0c4d --- /dev/null +++ b/doc/frameworks/sqlite-read-table.zeek @@ -0,0 +1,35 @@ +type Idx: record { + host: addr; +}; + +type Val: record { + users: set[string]; +}; + +global hostslist: table[addr] of Val = table(); + +event zeek_init() + { + Input::add_table([$source="/var/db/hosts", + $name="hosts", + $idx=Idx, + $val=Val, + $destination=hostslist, + $reader=Input::READER_SQLITE, + $config=table(["query"] = "select * from machines_to_users;") + ]); + + Input::remove("hosts"); + } + +event Input::end_of_data(name: string, source: string) + { + if ( name != "hosts" ) + return; + + # now all data is in the table + print "Hosts list has been successfully imported"; + + # List the users of one host. + print hostslist[192.168.17.1]$users; + } diff --git a/doc/frameworks/storage.rst b/doc/frameworks/storage.rst new file mode 100644 index 0000000000..98fc5c7688 --- /dev/null +++ b/doc/frameworks/storage.rst @@ -0,0 +1,216 @@ +.. _framework-storage: + +.. versionadded:: 7.2 + +================= +Storage Framework +================= + +The storage framework provides a plugin-based system for short- and long-term storage of +data, accessible from Zeek script-land. This is not packet data itself, but data artifacts +generated from the packet data. It has interchangeable asynchronous and synchronous +modes. The framework provides just a simple key-value store, using Zeek values as the keys +to store and lookup data. + +This chapter gives an overview of the storage framework, plus examples of using it. For +more examples, see the test cases in ``testing/btest/scripts/base/frameworks/storage`` and +an example storage plugin in ``testing/btest/plugin/storage-src``. + +Terminology +=========== + +Zeek's storage framework uses two main components: + + Backend + A backend plugin provides access to a storage system. Backends can be network-based + storage systems such as Redis, on-disk database systems such as SQLite, etc. Backend + plugins can define script-level records for configuring them when they're opened. Zeek + provides backends for Redis and SQLite by default, but others may be implemented as + external packages. + + Serializer + A serializer plugin provides a mechanism for converting data from Zeek scripts into + formats that backends can use. Serializers are intended to be agnostic to + backends. They convert between Zeek values and opaque byte buffers, and backends + should be able to handle the result of any individual serializer. Zeek provides a JSON + serializer by default, but others may be implemented as external packages. + +Asynchronous Mode vs Synchronous Mode +===================================== + +Storage backends support both asynchronous and synchronous modes. The difference between +using the two modes is that asynchronous calls must be used as part of :zeek:see:`when` +statements, whereas synchronous calls can be used either with ``when`` statements or +called directly. Synchronous functions will block until the backend returns +data. Otherwise, all of the arguments and return values are the same between them. They +are split between two script-level modules: :zeek:see:`Storage::Async` loaded from +``base/frameworks/storage/async`` and :zeek:see:`Storage::Sync` loaded from +``base/frameworks/storage/sync``. + +When reading pcap data via the ``-r`` Zeek argument, all backends operate in a synchronous +manner internally to ensure that Zeek's timers run correctly. Regardless of this behavior, +asynchronous functions are required to be used with the ``when`` statement, but they'll +essentially be translated to synchronous calls. + +Using the Storage Framework +=========================== + +All of the examples below use the SQLite backend. Usage of other backends follows the same +model. Switching the examples to a different backend involves only using a different tag +and options record with the :zeek:see:`Storage::Async::open_backend`/ +:zeek:see:`Storage::Sync::open_backend` functions. + +Operation Return Values +----------------------- + +All backend methods return a record of type :zeek:see:`Storage::OperationResult`. This +record contains a code that indicates the result of the operation. For failures, backends +may provide more details in the optional error message. The record will also contain data +for operations that return values, namely ``open_backend`` or ``get``. +:zeek:see:`Storage::ReturnCode` contains all of the codes that can be returned from the +various operations. Not all codes are valid for all operations. +:zeek:see:`Storage::ReturnCode` can be redefined by backends to add new backend-specific +statuscodes as needed. + +.. _storage-opening-closing: + +Opening and Closing a Backend +----------------------------- + +Opening a backend starts with defining a set of options for that backend. The +:zeek:see:`Storage::BackendOptions` is defined with some fields by default, but loading a +policy for a specific backend type may add new fields to it. In the example below, we +loaded the SQLite policy, which adds a new ``sqlite`` field with additional options. These +options are filled in to denote where to store the sqlite database file and what table to +use. This allows users to separate different instances of a backend from each other in a +single database file. + +The script then sets a serializer. The storage framework sets this to the JSON +(:zeek:see:`Storage::STORAGE_SERIALIZER_JSON`) serializer by default, but setting it +explicitly is included below as an example. + +Calling :zeek:see:`Storage::Sync::open_backend` instantiates a backend connection. As +described above, ``open_backend`` returns a :zeek:see:`Storage::OperationResult`. On +success, it stores the handle to the backend in the ``value`` field of the result +record. We check the ``code`` field as well to make sure the operation succeeded. Backend +handles can be stored in global values just like any other value. They can be opened +during startup, such as in a :zeek:see:`zeek_init` event handler, and reused throughout +the runtime of Zeek. When a backend is successfully opened, a +:zeek:see:`Storage::backend_opened` event will be emitted. + +The two type arguments to ``open_backend`` define the script-level types for keys and +values. Attempting to use other types with the backend results in +:zeek:see:`Storage::KEY_TYPE_MISMATCH` errors. + +Lastly, we call :zeek:see:`Storage::Sync::close_backend` to close the backend before +exiting. When a backend is successfully closed, a :zeek:see:`Storage::backend_lost` event +will be emitted. + +.. code-block:: zeek + + @load base/frameworks/storage/sync + @load policy/frameworks/storage/backend/sqlite + + local backend_opts: Storage::BackendOptions; + local backend: Storage::BackendHandle; + + # Loading the sqlite policy adds this field to the options record. + opts$sqlite = [$database_path="test.sqlite", $table_name="testing"]; + + # This is the default, but is shown here for how to set it. + opts$serializer = Storage::STORAGE_SERIALIZER_JSON; + + local res = Storage::Sync::open_backend(Storage::STORAGE_BACKEND_SQLITE, opts, string, string); + if ( res$code == Storage::SUCCESS ) + backend = res$value; + + res = Storage::Sync::close_backend(backend); + +Storing, Retrieving, and Erasing Data +------------------------------------- + +The true point of the storage framework is to store and retrieve data. This example shows +making synchronous calls to add a new key/value pair to a backend, retrieve it, and erase +the entry associated with the key. This assumes that the ``backend`` variable used below +points to an opened backend handle. The idea is that users do not need to worry about the +underlying backend implementation. In terms of Zeek's script-layer API, SQLite, Redis, or +other backends should behave identically. + +First, we make a call to :zeek:see:`Storage::Sync::put`, passing a key and a value to be +stored. These must be of the same types that were passed in the arguments to +``open_backend``, as described in the :ref:`earlier section `. +The arguments passed into ``put`` are contained in a record of type +:zeek:see:`Storage::PutArgs`. See the documentation for that type for descriptions of the +fields available. In this case, we specify a key and a value plus an expiration time. This +expiration time indicates when the data should be automatically removed from the +backend. We check the result value, and print the error string and return if the operation +failed. + +Next, we attempt to retrieve the same key from the backend. Assuming that the key hasn't +been erased, either manually or via expiration, the value is returned in the ``value`` +field of the result record. If the key has been removed already, the backend should return +a :zeek:see:`Storage::KEY_NOT_FOUND` code. + +Finally, we manually attempt to erase the key. This will remove the key/value pair from +the store, assuming that it hasn't already been removed manually or via expiration. Same +as with ``get``, :zeek:see:`Storage::KEY_NOT_FOUND` should be returned if the key doesn't +exist. + +.. code-block:: zeek + + local res = Storage::Sync::put(backend, [$key="abc", $value="def", $expire_time=45sec]); + if ( res$code != Storage::SUCCESS ) + { + print(res$error_str); + return; + } + + res = Storage::Sync::get(backend, "abc"); + if ( res$code != Storage::SUCCESS ) + { + print(res$error_str); + return; + } + + res = Storage:Sync::erase(backend, "abc"); + if ( res$code != Storage::SUCCESS ) + { + print(res$error_str); + return; + } + +Events +====== + +Two events exist for the storage framework: :zeek:see:`Storage::backend_lost` and +:zeek:see:`Storage::backend_opened`. Both events were mentioned in the :ref:`example of +opening and closing a backend `, but an additional point needs to +be made about the :zeek:see:`Storage::backend_lost` event. This event is also raised when +a connection is lost unexpectedly. This gives users information about connection failures, +as well an opportunity to handle those failures by reconnecting. + +Notes for Built-in Backends +=========================== + +Redis +----- + +- The Redis backend requires the ``hiredis`` library to installed on the system in order + to build. At least version 1.1.0 (Released Nov 2022) is required. + +- Redis server version 6.2.0 or later (or a third-party server implementing the equivalent + level of the Redis API) is required. This is due to some API features the backend uses + not being implemented until that version. + +SQLite +------ + +- The default batch of pragmas in :zeek:see:`Storage::Backend::SQLite::Options` set + ``journal_mode`` to ``WAL``. ``WAL`` mode does not work over network filesystems. If + this mode is used, the database file must be stored on the same computer as all of the + Zeek processes opening it. See the documentation in https://www.sqlite.org/wal.html for + more information. + +- Usage of in-memory databases (i.e. passing ``:memory:`` as the database path) will + result in data not being synced between nodes. Each process will open its own database + within that process's memory space. diff --git a/doc/frameworks/sumstats-countconns.zeek b/doc/frameworks/sumstats-countconns.zeek new file mode 100644 index 0000000000..5d899f9dd2 --- /dev/null +++ b/doc/frameworks/sumstats-countconns.zeek @@ -0,0 +1,36 @@ +@load base/frameworks/sumstats + +event connection_established(c: connection) + { + # Make an observation! + # This observation is global so the key is empty. + # Each established connection counts as one so the observation is always 1. + SumStats::observe("conn established", + SumStats::Key(), + SumStats::Observation($num=1)); + } + +event zeek_init() + { + # Create the reducer. + # The reducer attaches to the "conn established" observation stream + # and uses the summing calculation on the observations. + local r1 = SumStats::Reducer($stream="conn established", + $apply=set(SumStats::SUM)); + + # Create the final sumstat. + # We give it an arbitrary name and make it collect data every minute. + # The reducer is then attached and a $epoch_result callback is given + # to finally do something with the data collected. + SumStats::create([$name = "counting connections", + $epoch = 1min, + $reducers = set(r1), + $epoch_result(ts: time, key: SumStats::Key, result: SumStats::Result) = + { + # This is the body of the callback that is called when a single + # result has been collected. We are just printing the total number + # of connections that were seen. The $sum field is provided as a + # double type value so we need to use %f as the format specifier. + print fmt("Number of connections established: %.0f", result["conn established"]$sum); + }]); + } diff --git a/doc/frameworks/sumstats-toy-scan.zeek b/doc/frameworks/sumstats-toy-scan.zeek new file mode 100644 index 0000000000..ba0e496603 --- /dev/null +++ b/doc/frameworks/sumstats-toy-scan.zeek @@ -0,0 +1,45 @@ +@load base/frameworks/sumstats + +# We use the connection_attempt event to limit our observations to those +# which were attempted and not successful. +event connection_attempt(c: connection) + { + # Make an observation! + # This observation is about the host attempting the connection. + # Each established connection counts as one so the observation is always 1. + SumStats::observe("conn attempted", + SumStats::Key($host=c$id$orig_h), + SumStats::Observation($num=1)); + } + +event zeek_init() + { + # Create the reducer. + # The reducer attaches to the "conn attempted" observation stream + # and uses the summing calculation on the observations. Keep + # in mind that there will be one result per key (connection originator). + local r1 = SumStats::Reducer($stream="conn attempted", + $apply=set(SumStats::SUM)); + + # Create the final sumstat. + # This is slightly different from the last example since we're providing + # a callback to calculate a value to check against the threshold with + # $threshold_val. The actual threshold itself is provided with $threshold. + # Another callback is provided for when a key crosses the threshold. + SumStats::create([$name = "finding scanners", + $epoch = 5min, + $reducers = set(r1), + # Provide a threshold. + $threshold = 5.0, + # Provide a callback to calculate a value from the result + # to check against the threshold field. + $threshold_val(key: SumStats::Key, result: SumStats::Result) = + { + return result["conn attempted"]$sum; + }, + # Provide a callback for when a key crosses the threshold. + $threshold_crossed(key: SumStats::Key, result: SumStats::Result) = + { + print fmt("%s attempted %.0f or more connections", key$host, result["conn attempted"]$sum); + }]); + } diff --git a/doc/frameworks/sumstats.rst b/doc/frameworks/sumstats.rst new file mode 100644 index 0000000000..30b637de8b --- /dev/null +++ b/doc/frameworks/sumstats.rst @@ -0,0 +1,112 @@ + +.. _sumstats-framework: + +================== +Summary Statistics +================== + +.. TODO: integrate BoZ revisions + +.. rst-class:: opening + + Measuring aspects of network traffic is an extremely common task in Zeek. + Zeek provides data structures which make this very easy as well in + simplistic cases such as size limited trace file processing. In + real-world deployments though, there are difficulties that arise from + clusterization (many processes sniffing traffic) and unbounded data sets + (traffic never stops). The Summary Statistics (otherwise referred to as + SumStats) framework aims to define a mechanism for consuming unbounded + data sets and making them measurable in practice on large clustered and + non-clustered Zeek deployments. + +Overview +======== + +The Sumstat processing flow is broken into three pieces. Observations, where +some aspect of an event is observed and fed into the Sumstats framework. +Reducers, where observations are collected and measured, typically by taking +some sort of summary statistic measurement like average or variance (among +others). Sumstats, where reducers have an epoch (time interval) that their +measurements are performed over along with callbacks for monitoring thresholds +or viewing the collected and measured data. + +Terminology +=========== + + Observation + + A single point of data. Observations have a few components of their + own. They are part of an arbitrarily named observation stream, they + have a key that is something the observation is about, and the actual + observation itself. + + Reducer + + Calculations are applied to an observation stream here to reduce the + full unbounded set of observations down to a smaller representation. + Results are collected within each reducer per-key so care must be + taken to keep the total number of keys tracked down to a reasonable + level. + + Sumstat + + The final definition of a Sumstat where one or more reducers is + collected over an interval, also known as an epoch. Thresholding can + be applied here along with a callback in the event that a threshold is + crossed. Additionally, a callback can be provided to access each + result (per-key) at the end of each epoch. + +Examples +======== + +These examples may seem very simple to an experienced Zeek script developer and +they're intended to look that way. Keep in mind that these scripts will work +on small single process Zeek instances as well as large many-worker clusters. +The complications from dealing with flow based load balancing can be ignored +by developers writing scripts that use Sumstats due to its built-in cluster +transparency. + +Printing the number of connections +---------------------------------- + +Sumstats provides a simple way of approaching the problem of trying to count +the number of connections over a given time interval. Here is a script with +inline documentation that does this with the Sumstats framework: + +.. literalinclude:: sumstats-countconns.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +When run on a sample PCAP file from the Zeek test suite, the following output +is created: + +.. code-block:: console + + $ zeek -r workshop_2011_browse.trace sumstats-countconns.zeek + Number of connections established: 6 + +Toy scan detection +------------------ + +Taking the previous example even further, we can implement a simple detection +to demonstrate the thresholding functionality. This example is a toy to +demonstrate how thresholding works in Sumstats and is not meant to be a +real-world functional example. + +.. literalinclude:: sumstats-toy-scan.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +Let's see if there are any hosts that crossed the threshold in a PCAP file +containing a host running nmap: + +.. code-block:: console + + $ zeek -r nmap-vsn.trace sumstats-toy-scan.zeek + 192.168.1.71 attempted 5 or more connections + +It seems the host running nmap was detected! diff --git a/doc/frameworks/supervisor.rst b/doc/frameworks/supervisor.rst new file mode 100644 index 0000000000..9fa055519d --- /dev/null +++ b/doc/frameworks/supervisor.rst @@ -0,0 +1,162 @@ + +.. _framework-supervisor: + +==================== +Supervisor Framework +==================== + +.. rst-class:: opening + + The Supervisor framework enables an entirely new mode for Zeek, one that + supervises a set of Zeek processes that are meant to be persistent. A + Supervisor automatically revives any process that dies or exits prematurely + and also arranges for an ordered shutdown of the entire process tree upon + its own termination. This Supervisor mode for Zeek provides the basic + foundation for process configuration/management that could be used to + deploy a Zeek cluster similar to what ZeekControl does, but is also simpler + to integrate as a standard system service. + +Simple Example +============== + +A simple example of using the Supervisor to monitor one Zeek process +sniffing packets from an interface looks like the following: + +.. code-block:: console + + $ zeek -j simple-supervisor.zeek + +.. literalinclude:: supervisor/simple-supervisor.zeek + :caption: simple-supervisor.zeek + :language: zeek + :linenos: + :tab-width: 4 + +The command-line argument of ``-j`` toggles Zeek to run in "Supervisor mode" to +allow for creation and management of child processes. If you're going to test +this locally, be sure to change ``en0`` to a real interface name you can sniff. + +Notice that the ``simple-supervisor.zeek`` script is loaded and executed by +both the main Supervisor process and also the child Zeek process that it spawns +via :zeek:see:`Supervisor::create` with :zeek:see:`Supervisor::is_supervisor` +or :zeek:see:`Supervisor::is_supervised` being able to distinguish the +Supervisor process from the supervised child process, respectively. +You can also distinguish between multiple supervised child processes by +inspecting the contents of :zeek:see:`Supervisor::node` (e.g. comparing node +names). + +If you happened to be running this locally on an interface with checksum +offloading and want Zeek to ignore checksums, instead simply run with the +``-C`` command-line argument like: + +.. code-block:: console + + $ zeek -j -C simple-supervisor.zeek + +Most command-line arguments to Zeek are automatically inherited by any +supervised child processes that get created. The notable ones that are *not* +inherited are the options to read pcap files and live interfaces, ``-r`` and +``-i``, respectively. + +For node-specific configuration options, see :zeek:see:`Supervisor::NodeConfig` +which gets passed as argument to :zeek:see:`Supervisor::create`. + +Supervised Cluster Example +========================== + +To run a full Zeek cluster similar to what you may already know, try the +following script: + +.. code-block:: console + + $ zeek -j cluster-supervisor.zeek + +.. literalinclude:: supervisor/cluster-supervisor.zeek + :caption: cluster-supervisor.zeek + :language: zeek + :linenos: + :tab-width: 4 + +This script now spawns four nodes: a cluster manager, logger, worker, and +proxy. It also configures each node to use a separate working directory +corresponding to the node's name within the current working directory of the +Supervisor process. Any stdout/stderr output of the nodes is automatically +redirected through the Supervisor process and prefixes with relevant +information, like the node name that the output came from. + +The Supervisor process also listens on a port of its own for further +instructions from other external/remote processes via +:zeek:see:`Broker::listen`. For example, you could use this other script to +tell the Supervisor to restart all processes, perhaps to re-load Zeek scripts +you've changed in the meantime: + +.. code-block:: console + + $ zeek supervisor-control.zeek + +.. literalinclude:: supervisor/supervisor-control.zeek + :caption: supervisor-control.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Any Supervisor instruction you can perform via an API call in a local script +can also be triggered via an associated external event. + +For further details, consult the ``Supervisor`` API at +:doc:`/scripts/base/frameworks/supervisor/api.zeek` and +``SupervisorControl`` API (for remote management) at +:doc:`/scripts/base/frameworks/supervisor/control.zeek`. + +Internal Architecture +===================== + +The following details aren't necessarily important for most users, but instead +aim to give developers a high-level overview of how the process supervision +framework is implemented. The process tree in "supervisor" mode looks like: + +.. figure:: supervisor/zeek-supervisor-architecture.png + +The top-level "Supervisor" process does not directly manage any of the +supervised nodes that are created. Instead, it spawns in intermediate process, +called "Stem", to manage the lifetime of supervised nodes. This is done for +two reasons: + +1. Avoids the need to ``exec()`` the supervised processes which requires + executing whatever version of the ``zeek`` binary happens to exist on + the filesystem at the time of call and it may have changed in the meantime. + This can help avoid potential incompatibility or race-condition pitfalls + associated with system maintenance/upgrades. The one situation that does + still require an ``exec()`` is if the Stem process dies prematurely, but + that is expected to be a rare scenario. +2. Zeek run-time operation generally taints global state, so creating an early + ``fork()`` for use as the Stem process provides a pure baseline image to use + for supervised processes. + +Ultimately, there are two tiers of process supervision happening: the +Supervisor will revive the Stem process if needed and the Stem process will +revive any of its children when needed. + +Also, either the Stem or any of its supervised children processes will +automatically detect if they are orphaned from their parent process and +self-terminate. The Stem checks for orphaning simply by waking up every second +from its ``poll()`` loop to look if its parent PID changed. A supervised node +checks for orphaning similarly, but instead does so from a recurring ``Timer``. +Other than the orphaning-check and how it establishes the desired +configuration from a combination of inheriting command-line arguments and +inspecting Supervisor-specific options, a supervised node does not operate +differently at run-time from a traditional Zeek process. + +Node Revival +============ + +The Supervisor framework assumes that supervised nodes run until something asks +the Supervisor to stop them. When a supervised node exits unexpectedly, the Stem +attempts to revive it during its periodic polling routine. This revival +procedure implements exponential delay, as follows: starting from a delay of one +second, the Stem revives the node up to 3 times. At that point, it doubles the +revival delay, and again tries up to 3 times. This continues indefinitely: the +Stem never gives up on a node, while the revival delay keeps growing. Once a +supervised node has remained up for at least 30 seconds, the revival state +clears and will start from scratch as just described, should the node exit +again. The Supervisor codebase currently hard-wires these thresholds and delays. diff --git a/doc/frameworks/supervisor/cluster-supervisor.zeek b/doc/frameworks/supervisor/cluster-supervisor.zeek new file mode 100644 index 0000000000..0a920586ed --- /dev/null +++ b/doc/frameworks/supervisor/cluster-supervisor.zeek @@ -0,0 +1,28 @@ +event zeek_init() + { + if ( ! Supervisor::is_supervisor() ) + return; + + Broker::listen("127.0.0.1", 9999/tcp); + + local cluster: table[string] of Supervisor::ClusterEndpoint; + cluster["manager"] = [$role=Supervisor::MANAGER, $host=127.0.0.1, $p=10000/tcp]; + cluster["logger"] = [$role=Supervisor::LOGGER, $host=127.0.0.1, $p=10001/tcp]; + cluster["proxy"] = [$role=Supervisor::PROXY, $host=127.0.0.1, $p=10002/tcp]; + cluster["worker"] = [$role=Supervisor::WORKER, $host=127.0.0.1, $p=10003/tcp, $interface="en0"]; + + for ( n, ep in cluster ) + { + local sn = Supervisor::NodeConfig($name=n); + sn$cluster = cluster; + sn$directory = n; + + if ( ep?$interface ) + sn$interface = ep$interface; + + local res = Supervisor::create(sn); + + if ( res != "" ) + print fmt("supervisor failed to create node '%s': %s", n, res); + } + } diff --git a/doc/frameworks/supervisor/simple-supervisor.zeek b/doc/frameworks/supervisor/simple-supervisor.zeek new file mode 100644 index 0000000000..f90c98fbad --- /dev/null +++ b/doc/frameworks/supervisor/simple-supervisor.zeek @@ -0,0 +1,23 @@ +event zeek_init() + { + if ( Supervisor::is_supervisor() ) + { + local sn = Supervisor::NodeConfig($name="foo", $interface="en0"); + local res = Supervisor::create(sn); + + if ( res == "" ) + print "supervisor created a new node"; + else + print "supervisor failed to create node", res; + } + else + print fmt("supervised node '%s' zeek_init()", Supervisor::node()$name); + } + +event zeek_done() + { + if ( Supervisor::is_supervised() ) + print fmt("supervised node '%s' zeek_done()", Supervisor::node()$name); + else + print "supervisor zeek_done()"; + } diff --git a/doc/frameworks/supervisor/supervisor-control.zeek b/doc/frameworks/supervisor/supervisor-control.zeek new file mode 100644 index 0000000000..596c974bf7 --- /dev/null +++ b/doc/frameworks/supervisor/supervisor-control.zeek @@ -0,0 +1,15 @@ +event zeek_init() + { + Broker::peer("127.0.0.1", 9999/tcp, 1sec); + } + +event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string) + { + Broker::publish(SupervisorControl::topic_prefix, SupervisorControl::restart_request, "", ""); + } + +event SupervisorControl::restart_response(reqid: string, result: bool) + { + print fmt("got result of supervisor restart request: %s", result); + terminate(); + } diff --git a/doc/frameworks/supervisor/zeek-supervisor-architecture.png b/doc/frameworks/supervisor/zeek-supervisor-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..250dba974e2dd9f4a8d82468c00f96b07c51f4aa GIT binary patch literal 79160 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%0AyTS zg)Wd5d@C{8APD0(Z2}ZmZBllUZISp>d#@rj4eGD!fBa})ntXA1XbdYiCdEY=82sX` zY1~Nv7TyTaP4df)3Cakxmw5n;a2@5*c%LkWX{6+t%qO(i1!or7yK!rs;44!j91+h6 z>MJZhE(j{*`l#DwDT%Ri=VX@=90_iY76k${=%FRIT(_}7TZ~vhId)s|bthGeN#%_E zAI;l-%gR5=&4?0m?_{LiO$aC5jt3_wwH+3DQe56+;{pV2U3@J${ANtF@IJ5-Ln`M- zkGFqv&_7uB;e}D+nJ573EufD5XXRo@Zxfx>;AB`Nq!@U0^&M|V$78^gqnX z-(zwBtkmfPmsw#zC8&1~s3@(o-WW73WIT-@#JIA>7c;J^9!;6r1&-ST`2A)^ePS z9I?j=lh%;OdaL4@^E)Fr-YdGpZe0;W0y&oztHp30OewRDuo zjl-FS$yX&fy(s-?*ClW2ZGSxh&v9k^S#Uux+~nYw`!4X%SEiQKx{3qLMs$2#0se$@FPidV%NBrtqcNqAv@4SSYJ>M7bo}`%{a}rX|;}2*!cv z!d{k2@lJ5KlmR~n(7;vfK-prWhQA~nRWnvU1gc)G zx<}A6&pWq)v?lm-nvrLT8hWAw^7W6O-*q;Rhab9js}xA%hF?D{MDzCs62B;nR7a8F z%|~crf(oK|xuwdRf}Ee``d1pbslXdTjEc|S94yeifBYSI##kRpZCfEWgF+DbM-RlF zF{9-#Kmyh;{whhSmodFK0%Dj=e?I*6`Ikgh>xpey6$xdDz&4Yx401V*EktiiH);J; YI{asOV0b|4QwX>Smi87^=49Ic0JWw-!vFvP literal 0 HcmV?d00001 diff --git a/doc/frameworks/telemetry.rst b/doc/frameworks/telemetry.rst new file mode 100644 index 0000000000..6af4660e98 --- /dev/null +++ b/doc/frameworks/telemetry.rst @@ -0,0 +1,441 @@ +.. _histogram_quantile(): https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram_quantile +.. _Prometheus: https://prometheus.io +.. _Prometheus Getting Started Guide: https://prometheus.io/docs/prometheus/latest/getting_started/ +.. _Prometheus Metric Types: https://prometheus.io/docs/concepts/metric_types/ +.. _Prometheus HTTP Service Discovery: https://prometheus.io/docs/prometheus/latest/http_sd/ +.. _prometheus-cpp: https://github.com/jupp0r/prometheus-cpp + +.. _framework-telemetry: + +=================== +Telemetry Framework +=================== + +.. note:: + + This framework changed considerably with Zeek 7, and is not API-compatible + with earlier versions. While earlier versions relied on an implementation + in :ref:`Broker `, Zeek now maintains its + own implementation, building on `prometheus-cpp`_, with Broker adding its + telemetry to Zeek's internal registry of metrics. + +The telemetry framework continuously collects metrics during Zeek's operation, +and provides ways to export this telemetry to third-party consumers. Zeek ships +with a pre-defined set of metrics and allows you to add your own, via +script-layer and in-core APIs you use to instrument relevant parts of the +code. Metrics target Zeek's operational behavior, or track characteristics of +monitored traffic. Metrics are not an additional export vehicle for Zeek's +various regular logs. Zeek's telemetry data model closely resembles that of +`Prometheus`_, and supports its text-based exposition format for scraping by +third-party collectors. + +This section outlines usage examples, and gives brief API examples for +composing your own metrics. Head to the :zeek:see:`Telemetry` API documentation +for more details. + +Metric Types +============ + +Zeek supports the following metric types: + + Counter + A continuously increasing value, resetting on process restart. + Examples of counters are the number of log writes since process start, + packets processed, or ``process_seconds`` representing CPU usage. + + Gauge + A gauge metric is a numerical value that can increase and decrease + over time. Examples are table sizes or the :zeek:see:`val_footprint` + of Zeek script values over the lifetime of the process. More general + examples include a temperature or memory usage. + + Histogram + Pre-configured buckets of observations with corresponding counts. + Examples of histograms are connection durations, delays, or transfer + sizes. Generally, it is useful to know the expected range and distribution + of such values, as the bounds of a histogram's buckets are defined when + this metric gets created. + +Zeek uses :zeek:type:`double` throughout to track metric values. Since +terminology around telemetry can be complex, it helps to know a few additional +terms: + + Labels + A given metric sometimes doesn't exist in isolation, but comes with + additional labeling to disambiguate related observations. For example, Zeek + ships with gauge called ``zeek_active_sessions`` that labels counts for TCP, + UDP, and other transport protocols separately. Labels have a name (for + example, "protocol") to refer to value (such as "tcp"). A metric can have + multiple labels. Labels are thus a way to associate textual information with + the numerical values of metrics. + + Family + The set of such metrics, differing only by their labeling, is a known as a + Family. Zeek's script-layer metrics API lets you operate on individual + metrics and families. + +Zeek has no equivalent to Prometheus's Summary type. A good reference to +consult for more details is the official `Prometheus Metric Types`_ +documentation. + +Cluster Considerations +====================== + +When running Zeek as a cluster, every node maintains its own metrics registry, +independently of the other nodes. Zeek does not automatically synchronize, +centralize, or aggregate metrics across the cluster. Instead, it adds the name +of the node a particular metric originated from at collection time, leaving any +aggregation to post-processing where desired. + +.. note:: + + This is a departure from the design in earlier versions of Zeek, which could + (either by default, or after activation) centralize metrics in the cluster's + manager node. + +Accordingly, the :zeek:see:`Telemetry::collect_metrics` and +:zeek:see:`Telemetry::collect_histogram_metrics` functions only return +node-local metrics. + +Metrics Export +============== + +Zeek supports two mechanisms for exporting telemetry: traditional logs, and +Prometheus-compatible endpoints for scraping by a third-party service. We cover +them in turn. + +Zeek Logs +--------- + +Zeek can export current metrics continuously via :file:`telemetry.log` and +:file:`telemetry_histogram.log`. It does not do so by default. To enable, load the +policy script ``frameworks/telemetry/log`` on the command line, or via +``local.zeek``. + +The :zeek:see:`Telemetry::Info` and :zeek:see:`Telemetry::HistogramInfo` records +define the logs. Both records include a ``peer`` field that conveys the +cluster node the metric originated from. + +By default, Zeek reports current telemetry every 60 seconds, as defined by the +:zeek:see:`Telemetry::log_interval`, which you're free to adjust. + +Also, by default only metrics with the ``prefix`` (namespace) ``zeek`` and +``process`` are included in above logs. If you add new metrics with your own +prefix and expect these to be included, redefine the +:zeek:see:`Telemetry::log_prefixes` option:: + + @load frameworks/telemetry/log + + redef Telemetry::log_prefixes += { "my_prefix" }; + +Clearing the set will cause all metrics to be logged. As with any logs, you may +employ :ref:`policy hooks `, +:zeek:see:`Telemetry::log_policy` and +:zeek:see:`Telemetry::log_policy_histogram`, to define potentially more granular +filtering. + +Native Prometheus Export +------------------------ + +Every Zeek process, regardless of whether it's running long-term standalone or +as part of a cluster, can run an HTTP server that renders current telemetry in +Prometheus's `text-based exposition format +`_. + +The :zeek:see:`Telemetry::metrics_port` variable controls this behavior. Its +default of ``0/unknown`` disables exposing the port; setting it to another TCP +port will enable it. In clusterized operation, the cluster topology can specify +each node's metrics port via the corresponding :zeek:see:`Cluster::Node` field, +and the framework will adjust ``Telemetry::metrics_port`` accordingly. Both +zeekctl and the management framework let you define specific ports and can also +auto-populate their values, similarly to Broker's listening ports. + +To query a node's telemetry, point an HTTP client or Prometheus scraper at the +node's metrics port:: + + $ curl -s http://:/metrics + # HELP exposer_transferred_bytes_total Transferred bytes to metrics services + # TYPE exposer_transferred_bytes_total counter + exposer_transferred_bytes_total 0 + ... + # HELP zeek_event_handler_invocations_total Number of times the given event handler was called + # TYPE zeek_event_handler_invocations_total counter + zeek_event_handler_invocations_total{endpoint="manager",name="run_sync_hook"} 2 + ... + +To simplify telemetry collection from all nodes in a cluster, Zeek supports +`Prometheus HTTP Service Discovery`_ on the manager node. Using this approach, the +endpoint ``http://:/services.json`` returns a +JSON data structure that itemizes all metrics endpoints in the +cluster. Prometheus scrapers supporting service discovery then proceed to +collect telemetry from the listed endpoints in turn. + +The following is an example service discovery scrape config entry within +Prometheus server's ``prometheus.yml`` configuration file:: + + ... + scrape_configs: + - job_name: zeek-discovery + scrape_interval: 5s + http_sd_configs: + - url: http://localhost:9991/services.json + refresh_interval: 10s + +See the `Prometheus Getting Started Guide`_ for additional information. + +.. note:: + + .. versionchanged:: 7.0 + + The built-in aggregation for Zeek telemetry to the manager node has been + removed, in favor of the Prometheus-compatible service discovery + endpoint. The new approach requires cluster administrators to manage access + to the additional ports. However, it allows Prometheus to conduct the + aggregation, instead of burdening the Zeek manager with it, which has + historically proved expensive. + +If these setups aren't right for your environment, there's the possibility to +redefine the options in ``local.zeek`` to something more suitable. For example, +the following snippet selects the metrics port of each Zeek process relative +to the cluster port used in ``cluster-layout.zeek``:: + + @load base/frameworks/cluster + + global my_node = Cluster::nodes[Cluster::node]; + global my_metrics_port = count_to_port(port_to_count(my_node$p) - 1000, tcp); + + redef Telemetry::metrics_port = my_metrics_port; + + +Examples of Metrics Application +=============================== + +Counting Log Writes per Stream +------------------------------ + +In combination with the :zeek:see:`Log::log_stream_policy` hook, it is +straightforward to record :zeek:see:`Log::write` invocations over the dimension +of the :zeek:see:`Log::ID` value. This section shows three different approaches +to do this. Which approach is most applicable depends mostly on the expected +script layer performance overhead for updating the metric. For example, calling +:zeek:see:`Telemetry::counter_with` and :zeek:see:`Telemetry::counter_inc` +within a handler of a high-frequency event may be prohibitive, while for a +low-frequency event it's unlikely to matter. + +Assuming a :zeek:see:`Telemetry::metrics_port` of 9090, querying the Prometheus +endpoint using ``curl`` provides output resembling the following for each of +the three approaches. + +.. code-block:: + + $ curl -s localhost:9090/metrics | grep log_writes + # HELP zeek_log_writes_total Number of log writes per stream + # TYPE zeek_log_writes_total counter + zeek_log_writes_total{endpoint="zeek",log_id="packetfilter_log"} 1 + zeek_log_writes_total{endpoint="zeek",log_id="loadedscripts_log"} 477 + zeek_log_writes_total{endpoint="zeek",log_id="stats_log"} 1 + zeek_log_writes_total{endpoint="zeek",log_id="dns_log"} 200 + zeek_log_writes_total{endpoint="zeek",log_id="ssl_log"} 9 + zeek_log_writes_total{endpoint="zeek",log_id="conn_log"} 215 + zeek_log_writes_total{endpoint="zeek",log_id="captureloss_log"} 1 + +The above shows a family of 7 ``zeek_log_writes_total`` metrics, each with an +``endpoint`` label (here, ``zeek``, which would be a cluster node name if +scraped from a Zeek cluster) and a ``log_id`` one. + +Immediate +^^^^^^^^^ + +The following example creates a global counter family object and uses +the :zeek:see:`Telemetry::counter_family_inc` helper to increment the +counter metric associated with a string representation of the :zeek:see:`Log::ID` +value. + + +.. literalinclude:: telemetry/log-writes-immediate.zeek + :caption: log-writes-immediate.zeek + :language: zeek + :linenos: + :tab-width: 4 + +With a few lines of scripting code, Zeek now track log writes per stream +ready to be scraped by a Prometheus server. + + +Cached +^^^^^^ + +For cases where creating the label value (stringification, :zeek:see:`gsub` and :zeek:see:`to_lower`) +and instantiating the label vector as well as invoking the +:zeek:see:`Telemetry::counter_family_inc` methods cause too much +performance overhead, the counter instances can also be cached in a lookup table. +The counters can then be incremented with :zeek:see:`Telemetry::counter_inc` +directly. + +.. literalinclude:: telemetry/log-writes-cached.zeek + :caption: log-writes-cached.zeek + :language: zeek + :linenos: + :tab-width: 4 + + +For metrics without labels, the metric instances can also be cached as global +variables directly. The following example counts the number of http requests. + +.. literalinclude:: telemetry/global-http-counter.zeek + :caption: global-http-counter.zeek + :language: zeek + :linenos: + :tab-width: 4 + + +Sync +^^^^ + +In case the scripting overhead of the previous approach is still too high, +individual writes (or events) can be tracked in a table or global variable +and then synchronized / mirrored to concrete counter and gauge instances +during execution of the :zeek:see:`Telemetry::sync` hook. + +.. literalinclude:: telemetry/log-writes-sync.zeek + :caption: log-writes-sync.zeek + :language: zeek + :linenos: + :tab-width: 4 + +For tracking log writes, this is unlikely to be required (and Zeek exposes +various logging natively through the framework already), but for updating +metrics within high frequency events that otherwise have low script processing +overhead, it's a valuable approach. + + +.. versionchanged:: 7.1 + +The :zeek:see:`Telemetry::sync` hook is invoked on-demand only. Either when +one of the :zeek:see:`Telemetry::collect_metrics` +or :zeek:see:`Telemetry::collect_histogram_metrics` functions is invoked, or +when querying Prometheus endpoint. It's an error to call either of the +collection BiFs within the :zeek:see:`Telemetry::sync` hook and results +in a reporter warning. + + +.. note:: + + In versions before Zeek 7.1, :zeek:see:`Telemetry::sync` was invoked on a + fixed schedule, potentially resulting in stale metrics at collection time, + as well as generating small runtime overhead when metrics are not collected. + +Table Sizes +----------- + +It can be useful to expose the size of tables as metrics, as they often +indicate the approximate amount of state maintained in memory. +As table sizes may increase and decrease, a :zeek:see:`Telemetry::Gauge` +is appropriate for this purpose. + +The following example records the size of the :zeek:see:`Tunnel::active` table +and its footprint with two gauges. The gauges are updated during the +:zeek:see:`Telemetry::sync` hook. Note, there are no labels in use, both +gauge instances are simple globals. + +.. literalinclude:: telemetry/table-size-tracking.zeek + :caption: log-writes-sync.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Example representation of these metrics when querying the Prometheus endpoint: + +.. code-block:: + + $ curl -s localhost:9090/metrics | grep tunnel + # HELP zeek_monitored_tunnels_active_footprint Footprint of the Tunnel::active table + # TYPE zeek_monitored_tunnels_active_footprint gauge + zeek_monitored_tunnels_active_footprint{endpoint="zeek"} 324 + # HELP zeek_monitored_tunnels_active Number of currently active tunnels as tracked in Tunnel::active + # TYPE zeek_monitored_tunnels_active gauge + zeek_monitored_tunnels_active{endpoint="zeek"} 12 + + +Instead of tracking footprints per variable, :zeek:see:`global_container_footprints`, +could be leveraged to track all global containers at once, using the variable +name as label. + +Connection Durations as Histogram +--------------------------------- + +To track the distribution of certain measurements, a :zeek:see:`Telemetry::Histogram` +can be used. The histogram's buckets have to be preconfigured. + +The following example observes the duration of each connection that Zeek has +monitored. + +.. literalinclude:: telemetry/connection-durations.zeek + :caption: connection-durations.zeek + :language: zeek + :linenos: + :tab-width: 4 + +Due to the way Prometheus represents histograms and the fact that durations +are broken down by protocol and service in the given example, the resulting +representation becomes rather verbose. + +.. code-block:: + + $ curl -s localhost:9090/metrics | grep monitored_connection_duration + # HELP zeek_monitored_connection_duration_seconds Duration of monitored connections + # TYPE zeek_monitored_connection_duration_seconds histogram + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="0.1"} 970 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="1"} 998 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="10"} 1067 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="30"} 1108 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="60"} 1109 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="udp",service="dns",le="+Inf"} 1109 + zeek_monitored_connection_duration_seconds_sum{endpoint="zeek",proto="udp",service="dns"} 1263.085691 + zeek_monitored_connection_duration_seconds_count{endpoint="zeek",proto="udp",service="dns"} 1109 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="0.1"} 16 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="1"} 54 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="10"} 56 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="30"} 57 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="60"} 57 + zeek_monitored_connection_duration_seconds_bucket{endpoint="zeek",proto="tcp",service="http",le="+Inf"} 57 + + +To work with histogram data, Prometheus provides specialized query functions. +For example `histogram_quantile()`_. + +Note, when using data from :file:`conn.log` and post-processing, a proper +histogram of connection durations can be calculated and possibly preferred. +The above example is meant for demonstration purposes. Histograms may be +primarily be useful for Zeek operational metrics such as processing times +or queueing delays, response times to external systems, etc. + + +Exporting the Zeek Version +-------------------------- + +A common pattern in the Prometheus ecosystem is to expose the version +information of the running process as gauge metric with a value of 1. + +The following example does just that with a Zeek script: + +.. literalinclude:: telemetry/version.zeek + :caption: version.zeek + :language: zeek + :linenos: + :tab-width: 4 + +In Prometheus's exposition format, this turns into the following: + +.. code-block:: + + $ curl -s localhost:9090/metrics | grep version + # HELP zeek_version_info The Zeek version + # TYPE zeek_version_info gauge + zeek_version_info{beta="true",commit="0",debug="true",major="7",minor="0",patch="0",version_number="70000",version_string="7.0.0-rc4-debug"} 1 + zeek_version_info{beta="false",commit="289",debug="true",endpoint="zeek",major="5",minor="1",patch="0",version_number="50100",version_string="5.1.0-dev.289-debug"} 1.000000 + + +Zeek already ships with this gauge, via +:doc:`/scripts/base/frameworks/telemetry/main.zeek`. There is no need to add +above snippet to your site. diff --git a/doc/frameworks/telemetry/connection-durations.zeek b/doc/frameworks/telemetry/connection-durations.zeek new file mode 100644 index 0000000000..d05532e203 --- /dev/null +++ b/doc/frameworks/telemetry/connection-durations.zeek @@ -0,0 +1,23 @@ +global conn_durations_hf = Telemetry::register_histogram_family([ + $prefix="zeek", + $name="monitored_connection_duration", + $unit="seconds", + $help_text="Duration of monitored connections", + $bounds=vector(0.1, 1.0, 10.0, 30.0, 60.0), + $label_names=vector("proto", "service") +]); + +event connection_state_remove(c: connection) + { + local proto = cat(c$conn$proto); + local service: set[string] = {"unknown"}; + + if ( |c$service| != 0 ) + service = c$service; + + for (s in service ) + { + local h = Telemetry::histogram_with(conn_durations_hf, vector(proto, to_lower(s))); + Telemetry::histogram_observe(h, interval_to_double(c$duration)); + } + } diff --git a/doc/frameworks/telemetry/global-http-counter.zeek b/doc/frameworks/telemetry/global-http-counter.zeek new file mode 100644 index 0000000000..2e030200f5 --- /dev/null +++ b/doc/frameworks/telemetry/global-http-counter.zeek @@ -0,0 +1,14 @@ +global http_counter_cf = Telemetry::register_counter_family([ + $prefix="zeek", + $name="monitored_http_requests", + $unit="1", + $help_text="Number of http requests observed" +]); + +global http_counter = Telemetry::counter_with(http_counter_cf); + +event http_request(c: connection, method: string, original_URI: string, + unescaped_URI: string, version: string) + { + Telemetry::counter_inc(http_counter); + } diff --git a/doc/frameworks/telemetry/log-writes-cached.zeek b/doc/frameworks/telemetry/log-writes-cached.zeek new file mode 100644 index 0000000000..fce51612a4 --- /dev/null +++ b/doc/frameworks/telemetry/log-writes-cached.zeek @@ -0,0 +1,22 @@ +global log_writes_cf = Telemetry::register_counter_family([ + $prefix="zeek", + $name="log_writes", + $unit="1", + $help_text="Number of log writes per stream", + $label_names=vector("log_id") +]); + +# Cache for the Telemetry::Counter instances. +global log_write_counters: table[Log::ID] of Telemetry::Counter; + +hook Log::log_stream_policy(rec: any, id: Log::ID) + { + if ( id !in log_write_counters ) + { + local log_id = to_lower(gsub(cat(id), /:+/, "_")); + log_write_counters[id] = Telemetry::counter_with(log_writes_cf, + vector(log_id)); + } + + Telemetry::counter_inc(log_write_counters[id]); + } diff --git a/doc/frameworks/telemetry/log-writes-immediate.zeek b/doc/frameworks/telemetry/log-writes-immediate.zeek new file mode 100644 index 0000000000..d7066f6b99 --- /dev/null +++ b/doc/frameworks/telemetry/log-writes-immediate.zeek @@ -0,0 +1,13 @@ +global log_writes_cf = Telemetry::register_counter_family([ + $prefix="zeek", + $name="log_writes", + $unit="1", + $help_text="Number of log writes per stream", + $label_names=vector("log_id") +]); + +hook Log::log_stream_policy(rec: any, id: Log::ID) + { + local log_id = to_lower(gsub(cat(id), /:+/, "_")); + Telemetry::counter_family_inc(log_writes_cf, vector(log_id)); + } diff --git a/doc/frameworks/telemetry/log-writes-sync.zeek b/doc/frameworks/telemetry/log-writes-sync.zeek new file mode 100644 index 0000000000..e6d7937f1a --- /dev/null +++ b/doc/frameworks/telemetry/log-writes-sync.zeek @@ -0,0 +1,23 @@ +global log_writes_cf = Telemetry::register_counter_family([ + $prefix="zeek", + $name="log_writes", + $unit="1", + $help_text="Number of log writes per stream", + $label_names=vector("log_id") +]); + +global log_writes: table[Log::ID] of count &default=0; + +hook Log::log_stream_policy(rec: any, id: Log::ID) + { + ++log_writes[id]; + } + +hook Telemetry::sync() + { + for ( id, v in log_writes ) + { + local log_id = to_lower(gsub(cat(id), /:+/, "_")); + Telemetry::counter_family_inc(log_writes_cf, vector(log_id)); + } + } diff --git a/doc/frameworks/telemetry/table-size-tracking.zeek b/doc/frameworks/telemetry/table-size-tracking.zeek new file mode 100644 index 0000000000..106c13519b --- /dev/null +++ b/doc/frameworks/telemetry/table-size-tracking.zeek @@ -0,0 +1,25 @@ +module Tunnel; + +global tunnels_active_size_gf = Telemetry::register_gauge_family([ + $prefix="zeek", + $name="monitored_tunnels_active", + $unit="1", + $help_text="Number of currently active tunnels as tracked in Tunnel::active" +]); + +global tunnels_active_size_gauge = Telemetry::gauge_with(tunnels_active_size_gf); + +global tunnels_active_footprint_gf = Telemetry::register_gauge_family([ + $prefix="zeek", + $name="monitored_tunnels_active_footprint", + $unit="1", + $help_text="Footprint of the Tunnel::active table" +]); + +global tunnels_active_footprint_gauge = Telemetry::gauge_with(tunnels_active_footprint_gf); + +hook Telemetry::sync() { + + Telemetry::gauge_set(tunnels_active_size_gauge, |Tunnel::active|); + Telemetry::gauge_set(tunnels_active_footprint_gauge, val_footprint(Tunnel::active)); +} diff --git a/doc/frameworks/telemetry/version.zeek b/doc/frameworks/telemetry/version.zeek new file mode 100644 index 0000000000..731f1bb5b8 --- /dev/null +++ b/doc/frameworks/telemetry/version.zeek @@ -0,0 +1,19 @@ +global version_gf = Telemetry::register_gauge_family([ + $prefix="zeek", + $name="version_info", + $unit="1", + $help_text="The Zeek version", + $label_names=vector("version_number", "major", "minor", "patch", "commit", "beta", "debug","version_string") +]); + +event zeek_init() + { + local v = Version::info; + local labels = vector(cat(v$version_number), + cat(v$major), cat(v$minor), cat (v$patch), + cat(v$commit), + v$beta ? "true" : "false", + v$debug ? "true" : "false", + v$version_string); + Telemetry::gauge_family_set(version_gf, labels, 1.0); + } diff --git a/doc/frameworks/tls-decryption.rst b/doc/frameworks/tls-decryption.rst new file mode 100644 index 0000000000..29e37ffcfe --- /dev/null +++ b/doc/frameworks/tls-decryption.rst @@ -0,0 +1,165 @@ + +.. _framework-tls-decryption: + +============== +TLS Decryption +============== + +.. rst-class:: opening + + + Zeek has limited support for decrypting TLS connections, if the necessary key material is + available. If decryption is possible, Zeek can forward the decrypted data to other analyzers - like + the HTTP analyzer. + + Note that this support is currently limited to a single version of TLS and a single cipher suite. + Zeek can currently only decrypt TLS 1.2 connections that use the TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + cipher. Any other TLS version or cipher will not be decrypted. We do not currently plan to extend + this support to other versions of TLS, or to other ciphersuites. + +Capturing and decrypting a trace file +===================================== + +The most common use-case for TLS decryption is to capture a trace file together with the necessary key material +to allow Zeek to decrypt it. In principle, it is possible to allow Zeek to decrypt TLS connections in live traffic. +However, this kind of setup is much more complex and will require the user to set up a way to transport the +key material to Zeek in real-time. We will talk a bit about the possibility of this below. + +Capturing a trace file with keys +-------------------------------- + +To be able to decrypt the TLS connections contained in a trace file, we need access to the symmetric keys that +were used to encrypt the connection. Specifically, for our supported version of TLS, we need the pre-master secret +for the TLS connection. + +Firefox and Chrome allow users to capture the key material of all TLS connections that they perform by setting +the ``SSLKEYLOGFILE`` environment variable. For example, on Mac OS, you can instruct Firefox to record the TLS +key material by starting it in the following way: + +.. code-block:: console + + export SSLKEYLOGFILE=$HOME/keylogfile.txt + open -a firefox + +After running Firefox like this, and accessing some web pages, you should end up with the file ``keylogfile.txt`` +in your home directory that contains lines like this:: + + # SSL/TLS secrets log file, generated by NSS + CLIENT_RANDOM 47d1becb619e0851ee363c2cf37187228227ca4e680f9a7c0bd15069aa7a5970 ad03ceda4890fa581e989f5e3862023e2a4e3e8ad81325238d908066e1d35cc875979e34c08e6fdfd9d8c6f356e385c1 + CLIENT_RANDOM 2095006fcb3f93d255cbb6562587f0dd010212fdee9d233aff64e6ed36cd5c45 0d36faaa2eadbda2a8095f951de1cbac46b81b008fbf391d91951b3485476bab73288a1e17cd0ce80e0fc0401dbe9e3f + CLIENT_RANDOM 8f58b32bf97e7d3856e2fccbbe80798ec2e3f515251082ad63bbc7c231d8bee0 9a7cf946a04718a19f4d20c3f80c1cf8c823c3e2b1c337ef64322d751b410543315f6ecf7dbf45ec9be194a3cc7c1a0f + +These log lines contain the pre-master secrets for the connections that your browser established. The secrets +are indexed with the client random of the connections. This allows applications (like Zeek) to identify which +secret to use to decrypt a connection. + +If you capture this key log file together with a trace-file, you will be able to decrypt the sessions using Zeek +(assuming they use a supported TLS version and ciphersuite). + +Decrypting a trace file +----------------------- + +The next step is to convert the keylogfile into a format that can be ingested by the Zeek. This bash-script +will perform the conversion: + +.. code-block:: bash + + #!/usr/bin/env bash + + if [ $# -ne 1 ]; then + echo "Script expects one argument (key log filename)" >/dev/stderr + exit -1 + fi + + FILE=$1 + + if [ ! -f ${FILE} ]; then + echo "${FILE} does not exist or is not readable" >/dev/stderr + exit -1 + fi + + echo "#fields client_random secret" + grep CLIENT_RANDOM ${FILE} | sed 's/^CLIENT_RANDOM ........\(.*\) \(.*\)$/\1 \2/' | sed 's/[A-Za-z0-9][A-Za-z0-9]/\\x&/g' + +Note that the script just converts the keylog file in a standard Zeek tsv-file. Furthermore, it removes +the first 16 characters of the CLIENT_RANDOM; this is needed due to a design-choice of Zeek that makes accessing +the first 8 bytes (equivalent to 16 hex-characters) of the client random inconvenient - thus these bytes are not +used for matching. + +If you run the bash script on the ``keylogfile.txt`` you created earlier, you will get a Zeek tsv-file. + +.. code-block:: console + + ./convert-keylog.sh ~/keylogfile.txt > ~/keylogfile.log + + cat ~/keylogfile.log + #fields client_random secret + \x0e\x78\x2d\x35\x63\x95\x5d\x8a\x30\xa9\xcf\xb6\x4f\x47\xf3\x96\x34\x8a\x1e\x79\x1a\xa2\x32\x55\xe2\x2f\xc5\x7a \x34\x4f\x12\x65\xbf\x43\x40\xb3\x61\x6b\xa0\x16\x5d\x2b\x4d\xb9\xb1\xe8\x4a\x3d\xa2\x42\x0e\x38\xab\x01\x50\x62\x84\xcc\x34\xcd\xe0\x34\x10\xfe\x1a\x02\x30\x49\x74\x6c\x46\x43\xa7\x0c\x67\x0d + \x24\x8c\x7e\x24\xee\xfb\x13\xcd\xee\xde\xb1\xf4\xb6\xd6\xd5\xee\x67\x8d\xd3\xff\xc7\xe7\x39\x23\x18\x3f\x99\xb4 \xe7\xed\x24\x26\x0d\x25\xd9\xfd\xf5\x0f\xc0\xf4\x56\x51\x0e\x4e\xec\x7f\x58\x9c\xaf\x39\x25\x14\x16\xa6\x71\xdd\xea\xfe\xe9\xc0\x93\xbe\x89\x4c\xab\xcc\xff\xb2\xf0\x9a\xea\x98\xf5\xb2\x53\x1e + \x57\xd7\xc7\x7a\x2d\x5e\x35\x29\x2c\xd7\xe7\x94\xee\xf8\x6f\x31\x45\xf6\xbe\x25\x08\xed\x1d\x92\xd2\x0b\x9b\x04 \xc1\x93\x17\x93\xd9\x7d\xd2\x98\xb3\xe0\xdb\x2c\x5d\xbe\x71\x31\xa7\x9a\xf5\x91\xf9\x87\x90\xee\xb7\x79\x9f\x6b\xb4\x1f\x47\xa7\x69\x62\x4b\xa3\x99\x0c\xa9\x43\xf9\xea\x3b\x4d\x5f\x2f\xfe\xfb + +Now we can run Zeek on the trace-file that we recorded. We need a small additional script for this, which +stops processing while the TLS keylog file is loaded. It also loads the required policy script. + +.. literalinclude:: tls_decryption-1-suspend-processing.zeek + :caption: + :language: zeek + :linenos: + :tab-width: 4 + +.. code-block:: console + + $ export ZEEK_TLS_KEYLOG_FILE=~/keylogfile.log + $ zeek -C -r tls/tls-1.2-stream-keylog.pcap tls_decryption-1-suspend-processing.zeek + + $ cat conn.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path conn + #open 2022-03-01-16-57-26 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig local_resp missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents + #types time string addr port addr port enum string interval count count string bool bool count string count count count count set[string] + 1646150638.631834 CTy5Us4OUaTOcyrPvc 192.168.20.12 60679 193.99.144.85 443 tcp http,ssl 7.246461 10853 151695 SF - - 0 ShADadFf 98 15961 139 158931 - + #close 2022-03-01-16-57-26 + + $ cat http.log + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path http + #open 2022-03-01-16-57-25 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer version user_agent origin request_body_len response_body_len status_code status_msg info_code info_msg tags username password proxied orig_fuids orig_filenames orig_mime_types resp_fuids resp_filenames resp_mime_types + #types time string addr port addr port count string string string string string string string count count count string count string set[enum] string string set[string] vector[string] vector[string] vector[string] vector[string] vector[string] vector[string] + 1646150638.735969 CTy5Us4OUaTOcyrPvc 192.168.20.12 60679 193.99.144.85 443 1 GET www.heise.de /assets/akwa/v24/js/akwa.js?.ltc.c61e84978682308f631c https://www.heise.de/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0 - 0 375340 200 OK - - (empty) - - - - - - FSJiWr34wfIujxxtm3 - text/plain + 1646150638.944774 CTy5Us4OUaTOcyrPvc 192.168.20.12 60679 193.99.144.85 443 2 GET www.heise.de /assets/heise/images/mit_technology_review_singleline.b768.ltc.svg https://www.heise.de/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0 - 0 3430 200 OK - - (empty) - - - - - - FgivhC1pvnYeQS4u18 - text/plain + 1646150638.976118 CTy5Us4OUaTOcyrPvc 192.168.20.12 60679 193.99.144.85 443 3 GET www.heise.de /assets/heise/hobell/css/hobell.css?.ltc.3746e7e49abafa23b5fb https://www.heise.de/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0 - 0 85280 200 OK - - (empty) - - - - - - FyvBkl2nwRXf0hkDO1 - text/plain + ... + +Now :file:`conn.log` shows that the HTTP as well as the SSL analyzers were attached. :file:`http.log` shows the +information from the decrypted HTTP session. + +If you try this yourself note that today a lot of encrypted Internet traffic uses HTTP/2. Zeek currently does not +ship with an HTTP/2 parser by default. If you capture your own traffic make sure that your browser uses +HTTP/1. Alternatively, you can add an HTTP/2 analyzer to Zeek, e.g. using a package. + +Decrypting live traffic +======================= + +In principle, it is possible to decrypt live traffic using this approach. When you want to do this, you have to supply the secrets +to Zeek as the connections are happening. Note that there are timing constraints here - the secrets should arrive at the Zeek instance +that will decrypt the traffic before encrypted application data is exchanged. + +The :doc:`/scripts/policy/protocols/ssl/decryption.zeek` policy script sets up a two events for this purpose. You can send key material +to the Zeek worker in question via Broker, using the ``/zeek/tls/decryption`` topic. The two events used for this are +:zeek:see:`SSL::add_keys` and :zeek:see:`SSL::add_secret`. + +TLS Decryption API +================== + +If the policy script does not suit your use-case, you can use the TLS decryption API directly to decrypt a connection. You can use either the +:zeek:see:`set_secret` or the :zeek:see:`set_keys` functions to provide the decryption keys for an ongoing SSL connection. + +Note that you will have to make sure to set :zeek:see:`SSL::disable_analyzer_after_detection` to false if you use this functionality directly. diff --git a/doc/frameworks/tls_decryption-1-suspend-processing.zeek b/doc/frameworks/tls_decryption-1-suspend-processing.zeek new file mode 100644 index 0000000000..6b6b26ee1a --- /dev/null +++ b/doc/frameworks/tls_decryption-1-suspend-processing.zeek @@ -0,0 +1,13 @@ +@load protocols/ssl/decryption +@load base/protocols/http + +event zeek_init() + { + suspend_processing(); + } + +event Input::end_of_data(name: string, source: string) + { + if ( name == "tls-keylog-file" ) + continue_processing(); + } diff --git a/doc/get-started.rst b/doc/get-started.rst new file mode 100644 index 0000000000..fb37934e3c --- /dev/null +++ b/doc/get-started.rst @@ -0,0 +1,11 @@ +=========== +Get Started +=========== + +.. toctree:: + :maxdepth: 2 + + install + quickstart + cluster-setup + building-from-source diff --git a/doc/images/architecture.png b/doc/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..fc775160caafef9e83baccb49b1889f57ba9d87f GIT binary patch literal 139697 zcmeEu`yYmC+@DPF%P#WHwz03&&?Y~ z_gGlirCC_m9v`P0F7T9(9NIn(IxC}+`Ov$@l!J*7?5CEDSP^zB`% zvrbvYzAY}z!JK=ORwVQ~*ChT|<Rq2dM83#okrCzaa-x6z9;67h%oNU6(o)2*{D z!3pC(GbwM%iW4#56wOq_!A|kZ+hC` zNb(PbMZuE8O`Lj7BhD(d4)*LK-DxwHUSbVroKq`HUOD(;W>ivqYSs4nlo5U#OSTaY zce6j#gX;L=CKb2tH^&)Zt2e|~Z%FA0NZxWY^74EksC*Dj^|yl3N^@2{o$cpLolPW1`h>iW4L3omgFb~!ON!qJ#3JoXYf@oVWhr%2F< zL6eROfm0l3J9N*nrl8gMkCD+?Q=tovzdzm5eSbIi;_HrY*ERKIE_O#owf8xwoiY1$ z(qke>I|Yx5O#CYR?Lxl!2VGQ|cS}#jLj#LZR+^M!<&vtH3;+9azzAaL@a;C8HeL>H zUr!xDg~3qyO>&c&-+dt+)4S`m%c1hI=IGHC(Vc-5dURI#ZN-hVWf~Oz-7`r!CQSjj}HT=g}**1f2VE?cBnIE6&`Sed-AMHO14^8R1 zMV`_vJQu1Es<FWO>3fk)e|chsJE9)E1LVZx^!e~;MktTH<9Pum2M{0As5yTiCp57;mqO0 zcHQrcEPgKZ2!~87yrp>n_^< zHjWV-xFm>~m)8ua`}RGd;9PUWndCoLCU={!`A;14T(&lf+5fJ)_~4oKNB&UK@y!;| zvFKG(C_z0xforqj+bpr*#vEs=g--d@uEfIa*@@@1KLf+IEirONx>5kq{ZfFauKk&P zp`T7O?$-|9vojf5-jbfd8((|I^a{`I10g z5I9rE{GVghdgZ+L@_0Rn{B0&$ESVG{j!Nqf6^D@q|Iw2-m3u=`I=#%+xQ2NWy=4Wb z2~%P$wYCOJ4t#?dyY4NDf*p0!b)=og#O8a;5>x*U)8hzc_tnc8D?T{c>SbZzjm(cY z$lmKBJtuOkv7V!$K5ilxuWb3nR;0$LTV zmw?Q&lFr?#Dsr71+93L%`qzAcU9MJ3iJ=!DQW18I|3Ze16I13l9G-Ot!+A|uHCdFa zh=~2h9xid5{h@@|nod1FHlG5Z&Rv&)Q%AvD`R7(sgf!K#V;H&-z=xok1 zg-D9@9Qj9xE397h^OJ|}R-Rbp4BIhJ2_8a!dV<_*3RivW6ToR@x~t`EU!O8Nv~}?K z<8b$~%iznU-@0=04rH<@X@!yvz%0v6WYcfGYl$v;AUXI_)75Y!;7kWbEHx)QZS5Sy z>{7$%KPoIYW-R~JxI)+Rz&nb}S;1@{zlEqd#s@21IYA1Y zw}ULe{`EtcAOqK7o68;tQ)cUM5O~7uS@U51AW8MQ$=%6qNl#J8enm>?Qs8{YTGu%D z*v|?i-e%?OHm{DS+drf-62bP3bu^;;UqTuD!h&GwZ8|k=U7EYMVw?DvakbPqb}l@WlMR*gVrpyp`T6N2)-Qn^5zY3e^K$z#N zIl8wGr04n+Hl=e-KfPe767!}erPt^6-Yv2p^gkwNQaSATveJRc#Ut4!pY;Q%UKsvz z&(c#x@cPaQ^+KF_p(kWOYft%KPb;!#cv?2yedyQ$TGSPCQ@TP+Lm?~RihRZwzZR(s-9q}T2Edc6Cp34piWaqFLO;3e&d=pm{AZeSICH1)0bS6+Zi=plQwdW5 zdTD+AcAGOunM`O0CL+~B^#G-AI#7r?e? zb(^3z2Fb>uaz5@6gS%SZ)~EDU?EM?GmFBYTad-b7{F-|3ftEZ+-Aqxx28l|5FJsaw zF?v9-(QqAPsZ`C|-$5HA4#p|NJsMYu6t921DEkX@f}X!qqX&l5GUupsAPRE2Ngek^ zAogsLtZTAiW6cn8&F$YKKHrJ&eOKNM7XFKB`saU?g)QCuV|s8#TJz+mc{&?%sb#2f zWTW`fDWH_d@B2YB?2q1~oFsQOBc`|e#FA-HBVr6S?YsEhEh zhx%L3(h7{{HfhT5U;QlHdk2s%S`5B~I9T1(C|vPdxZI>ulGCpF<`}$7N5Q!ULwEl& zT88_NPZ~0PGI{Zb(*KTd7q2pLQ8>L`?q7iYuUIUbmt)7e+!W>aOz7WPT<(N#PN`@w zZxCuD-_}p}ray}HH;3zG_RW$)0(FTQ>`slz?=fQ1@gQy!c(KkJq#_vN^7iJKz2g+c%d1 z>|R1-ii3Uese~)I7|^9*U}A~qVl%#C<$DJ~Bt>f8{R@7m%VxKfgmyJZDI-a)G#n_k z&+?rCyKjB3pAAECHdfr;>IAWivdh3tQtec8&`7&vP0-9yd#xoQm#xZ@#p0r{vN*qH z292XMrW+_@Pwb_VsRS^cFdz(V6ZW9b+tZyoM1>2t8t>{8{c@4C9^^Q5Mi@3j;M-s2 ztM%Rg!MFE=zyMMV;f+1@4FJBs4R4_$_o-4;efnC8feKb<-{-Y8*#@KvB!AfFH(2BU zHJw8LlTxF#6tB-4vvrVuOkd?5KW?T+RG#|*I#9dK3U|L*npa~p8LbOYp}tZ%9|zlV zf%}tlSE#veWpMYVW#sF^#z0kJuNx~3i=`zI^*$r?efreCSk?Zz%DyjT&;+nhM(R&_BW-j=!#ms5`z*ynAl;xVGHT7h14|woD2YfcM8EeJC}aEpicPqUHG~`xw1D& z;F+A}@o(0t5PT?MzzHJ;z+A{6gDnsuATTCiqzM($6yr7R6I5*#Qa#YJzuN+CrZ2X@ z$gapO*ZANc5t3C7?6d2&@ZDO33y_?N;M*~g!3ZueXL70( zH5CyMiVcu}jzI5D?(a?6BeXPiC!x?^a-pv@WmL9(Rch5@%;wfh=@BE2X|=rD3h*2P)@kG4neDY3(As-9oWWbp*8V9NdKZOkuumR9!In^7 zUX3J831&P2XxX%G`4G6MfL#R%S-&W1{m8CnWh?=;Z7V!VSQ9z(Yoco}I36FSu}sr7C8UN)G{ zVh$pG0ZCsFr!f6KRN3oeZTSMoMcjZEcUDsT68o+rhZIyrCZOq+x3X8(8v~%B&$1MK zMhd-$H=q{;(wL^Nr>Ih=cM1%43W$@-q)D$07yCeK)Cvu~q9+VC`=vKaKGVLuR?ith zMQhgLFIdjbW=pM~mhxT3!bn*Eoi3MXbSKfYO9T?8i((wQ-D8avwkYeKE{znPp;Qf5ZP6Yksn~1%!eql4@OTp&xF<5VBSrM_tw5O{ zFqQ+8?mH?$=?4U?TzFZpda<@<$fx~%`wBwt?KTxe1fV35?n_J{0s`4vxx%OysFldQ zB_4209&|K4G;>lma;1#cTjsGGGPT=_UWhY;=EM5*j{Oe&lpcJ3k3d^&US8bLJlk(T zi7=?6B3h`30nFYwhG#ov=VQv)Y^R=lX$+oK18Op?gTc;Un4G0DujahTNTLjb z*Wy{gslGFo>~^8kwcE6}$nQk;I$k&p1#hC}tL&U<{42-`r4BS7ZEnh+wz`;;v2~S-{1KJ^o+EGeZh8WQ6Z=GvsI{?}~ zu(D5I5p(8m;lP^M(l~82y$(@>M*@P20>+@LT=4SdzgYAd!ky~N{|Dg#++Af7pqQpC zc((@JNL`cK_o+|AK{Jk$sD)rJvHeR}!tH@JXq``CZrM>JBrpvSl&1EEd0dBaAAcl@ zg``^rf3SM>wn;GIJ0Z+xGPu)Zn+T^9!Lz@QCGE9I(ZW^h7Pf11!~1YZJG_P+h-|;V zX}_+{OPl>2>3}Ef?=jZzNFO*ee-=1!yfKSwTCkhN`z^W8IIyn`_d) z$KjuLw?IhdjXVjktDxLVPL%ER87#EZ2O@WUES=hfk3!()IB5AL5~ z5j;{+Ex%8K#nOOlHPWN2_~8DQ9^%+z2&lZG;N?*?aZNjUvvCVB2}J9(3Gp-Up~!4$+%GZ)UEn zsnj+9hDW&Bh}8gi$BepRw*NeItG#)M4EpU4+`TeGR#>4VuV|H@+P?nB&wksl76v4^ z7fl116z2EgGW_VUpI?2*SEjZ;aeEgSWr8!FK`Q&e!RN;_eif~ffb?N0_#mGcOUq6h zxTRhVu_k_75AZ!Ds2}vqEuw9zdb-eCna)FPZ0c*w26QFKfpzoC&4VcIQl(SR+c`Xh zy=R`3)=1sr2@qa%LA3ncGBnsQM1d!$(whZRd(Wa)g+7$+d@d6$<6U#($42sHS_FQG zdy(X51H-QX8Gi>gu0D|UpzM$=njFIjBb4JhQSQ#;lshlm0pst;#z#UuspVQQ8!7v< zz7$J7--=Vyzt!pJ!)3i%{$bZ6to-}?#GEIUW0Ss5mF6}56#JICzUGGT0TLlV7w?xA z*T~?CtWg@K9dms~)0l3;UHoMrNrKSFMP2Xy}k(mire!ASk=Bruej`_@B zq|z5`%~#e3P6F-%>nb*;vM6DElrW!ygb6Odv#KC#?xlOvm znL=CzOi>*E@rP!!UvJdFA#kYgjHkUjF9d0F0bDklMcy`Pa-Ftrw4wAm5SFzmiZP?A zh=`!I2NykH8tfkQR#{Er2MK$IYrC#xok5(2GsU9>e2c zu;Vy9GkdFKEf2imvzAng|49832~a{(Gm+=vEx!|L>t{eod#7Fpv42lzyGsGRq4-{) zgy}|=-L6RjmSz7y@@d|HqVd|8pyc&ch3MPR!E`&iHgIYU(2MN~B0*{wdOU@;?6Q*w97bCzIcam2qywL#KHBYZ; zo4}C1apK-y(?HZL!fvvr9lToax(TkdpAockAgf7{)f!mmqtmYf>+bH7tVFe@`N?_x z;Ds5^iFrm%>J&nmFu>J8Rn-9C8)@Rk`irK>T90~)`dPY=lHKp=XfYr;reXB*t8{Pz zgHYK#ytfo3o6gJx(njQepin3#_NIXE;tQwB^j6(Y1$7T_hNHRzP*Zd7%0IPUUn};j z3VOps%Tydwb*VG|aYRZuFihXz!KrQ8en=}OMFsqpdhrlu6ttSdH`~ChCo}S4#yQ!u zS-=v8ZYcq|;WAiwU-7A~IYp1XdZFgzQKZ}%e^_;Nncr4)ni`OOE{Ia>Kl<$9(U$xO zmHM0%AbEQ2Z=mn`u(~k(Z4|gCpQ0|=^=`|>lyZkh8yi#c@zmlkCZne?>oJ>lh9cE&w8G|f|--o-sd->5?|g4{u>^8~nh-HLV+00+LX z`XN8wv8(ci%o_JP=W#-)o@XJr_S$S{d0jm~%I-?u z>gU5!Pl{HD<-za%U=S(Hs=}|@z*NLyuhnEj>xpKM>$Ez@!~xEf6ONN~($wVg=b-tg zgm^x#6w8*e7iY!zz`!5zJfc9#V=)?~>4c^*IPeeo^X-3PZD$UzSh>XcQy|HOf69f} zPi%S@eDRu6Fhy=avKI#5n0u>&dimCDpnJl;^I?E<6^UJPrLqW9>tvpmg0M}N)0;UW z=4DiWb1NpiZN5;*gYF0rJGt|OOtPY}>NGp_Xi%X~*oEQoL_9S$Bv)nX>D+f*Xe=>f z&BGd`>t(BMyslHUcyykCD}bI|853=oj9Q?MqHOfwJAc}W`JovSx}v^yUqC^EEC!b{ z`VzHqt`Ta&yZ0Ig(#5?eM&!%Ye0*STni5SK+$E!}_bf8xQqD>mk~d{ILqk0iwTab9 zJ7)VEW~iyXX+y$x6H%Yb0Mk|hF)`&`|HAh?%X3QxM$jSuVeUR#pQ8q;hMA-VUuSs3 z5AG!s)~VN|Tiqgnhx8^Ez>AT(NAK$fz!m3dve~r+@5<{lwZA=p^7MjW29}_bB*1;^ zCfRtATBK-k8eXL%RM1zUF;{Mmuytn`a*ezRl`tIO>eP0|CE_*l^l{EWVRFE@`KCC$ zEM&sHZqzHHp8WR+f`13NIy0tDxZ0#fs~gd%saf-U1j+Py7J`QL2W8X82o?2qAj}@K z%G%1{Ie@gw?#|W{v%b$QFzxJW>jBYE!DvpM3(l?>?cxyyd{55vM~KjCx(g&XKMs_v z4NFd*#DnW*AxCN_{Bf&(<2JjT-lfE~dQVu);}GT5B7OHeQ~qNfJ0E{?w2WFMM}=d= z-H+`y`XAG%@k_)z8`K6k^wZV3PmG9 zl3X;3SZcWOmm@SW@Z;F#@ ziMm~y+ewD{2Ar;#l(wMp3Wz@5zmXA5p=+4A5Dr`G!t6Dse_{dLUKG1H^~?v-PBfRUefS2Pj!6oh4D0tFOSUQ~A75scW&fw3Rv%lTkWP~{@D`NaDR7Eb zZ--mZ6}mIVhDHxSZ&E4BueJQ%c78*Agr0Nj`t64a>JKDF5+WB5Ig7Q^>G;BwsrQm zp8x$Rz;{XmDJgb0v7{m!Zo3-|_T1)~YRKJ-(;i|AkXqDssErkP*hWQ&&kqEIZq7MAJZ3%9(#=SGdZ>fd4wmeKib9Y+0xPOEeV@0Eu&aZ zY@_c0EvYiMfF%4Gs|A@N75t@&mV_$5u0%0UtA_$353CHb4SB$1o+xhbw7KsCIpD0i z)cinv_yho6Dq&1|m|~8J0VjWI^M`M-qNtyU2<@?DMi*qeE_8wm%Q0oBu$q$+v%$=AI#@X0^{HE9yXnWAS_@6+*C}^5PoHeYvB~#Trp=&aYjX2AC-m#HIL@*G740) zDSt5|F(b})uY+J!B`K&9?PjmWT+gZ$>%>qQ2592NvCjMWq4eI(s~PS}+qV266$pM~z{f5_M|VY_}!M^g;bw3Dqh5wTdgsxK3Z&XEZIn z;WhOb+ckIGn=LH0k$HW?#foY833r@2)9}UbSOAveu>$}rcO109zvA^)jyv9Bmjwmv zI=AA(OB=v$dRW&kNIkCLRR=R9NssP$f~;0Uk4HJe_2VucGhU_~&2aUZ}CwXrf zfMW+5kh$C#jn?xDMh8`l(QWOs*oHTM<(D>ZyUzG*x(vr241CXkp9SNq3>d6plVhkk z)8k@t!>C?z=vF39PBq8$zgmXk%%do7{n?*MmJg=?Dzp~1l|2^^V6WJ+-Y!#azs}U* zL9MiuS+lF($Fhu!U_@s?Z{9_XC zp9j2Sxs~9b7LJbshzH;QJM+N{qwC8UdN;ke=ioNbe>F3!*kVc;THxK?(b)Z8gQnjx zz4(f4sqDY=|JNY#15RC9#4a5)g#X*UzzAjsmdmd`%i~}d2T~sh?>)jKkMc76N@jcN zzpuo5E1a%-FlMP)aMk|PWWXdE%e`d5DoI3XJDZ}`4A2LlW&Ve@yFlwF>+cQ%tDzFP#Wx*Lb`M;1Q#{$cO-d7x*q zaMLsg0uUSlKY5*&eACaUqfh4Ndus!ISiTC%!D^~##ta?g(|VfA6Xjr<*Y9KD(s=sl zv%FUvAcdMfSwInIvap|jTPwrlHa58hD zs+}wU@D@I%-uv^IfPZ!QG31N3>uPXRY-r@Jk1FBSGP^v9y|v(x3V$pxr#|E6=!-C= z-ba&z)e?7Sn!O@aDJe%q`?=j;T1NK*6n^BN3u|?CP7dUlD-Aq4Jn@J~h^T!!@vRan^-Y+MSnV zmN?<((j=(l5ipqvK01gg5Z4GF;F*g@D6Oveq>Qk*;@Od60KimslSrdlFhgrWA9QEm0m_wpkk zxmED^=q;tIAPMf`E>cHqd4K3ycF?&OmB!vQ)ZifF3IVI9iH&-x|9o{$pi1zm6qmQB zVr&%Js-?doS#Eahj2c&egV>EKT4y|%$%>c@^Q?2ytnz7m*2;EcNsIfooH(hfYRz&@ zy1qoa#shTLC%7$K>}m91?r}-0u~c5+**rtX&qFm7xj!PpZ%s8`vh)P?0kWk}X!iT? zm7V-}aa@FRR3ya^KnKVKfUlPC>R3eJXEo1Xf^#kzK3R3VLnZasB@c{rbmSURt1IHv zJXKXqN5cx9@|1!E)jLCf-iEA)i*mZnW169Jizxe%+FQr+Z+Cc0MTFl|8=RqNF8iSX+E!Dxk0sY> z+I@vGyau*BlkHF6#)K>^??^IUV^=1y`$cSA@11P>xj0T~zXvr*nyX)|$GTCRlMo@I z77tyM(HPBs$4r*4tm$s{C{D{g!|s?A!^99P@R&TI7@Nm#n}-wVkobtGv!8um_jt~x z&vIbUks;xj&TETDGMoaG&dZy=(MK7Zo%V6mKLd;xuATdO^fbA9)I`P`N+8=jJWRE^ z?GW8Is9F1_MQDdj%4P_||LCH{sf1c8QNgC^+q7}1K*sdbdp|*w56?&5AGz0V+3xde zpTv=SDg-urr-1^X7|P95`dgox=*h}BAzarZN9|*$`@Dy-7Wog)s`TrnYKm)|CUY4+ zc6}8mLtnVdY98l(NU^!$nq?^)O690#VCCAhU}V!wik0SuLc7WLpBY|s@|)wRzk)F= zEV)|Tq|~c6gYw*&N~j{utXRV*$9?fhRR7Yo&$qnWa`k#%ohm<4I2$7&?6IaYDx>0B zDm|MK_&X3(d7akpNb=m8;!I z?GzCV_07@PSd?7eXWK)!L$9{WHF+l*VlyAoXA<;pMJ4H!3~Il+%_ZKajc1kr!jg7j zXYS6Qxog(6@JLm`1@)%c^6;pMpLhGWX21MlV~M3-M`G6r5!Ff+udLT^wE%0`imost ztmxt&;->dmb2GlJttv`GDO<_9%kp+>he};24-fr~n@os^E8AUHnMyRl*c^Iz$M?!7 zr)vpG7ltBdb;ktFU$&!PM4Gr;W+%3B*UWMAJ*blTJa(HSO!d2wxrdB3CQ1o?|41dW z=S}qUOaqG$XB>o=5HMYi&ss5&x-&+6sJ{(N0j^MpNIq}0kpW%D+t zpKR>@{1q`(w!S$Vhn_QMoGZs8RX;xD7|W$9p5$BedES+HUprmZtts%&+5?*~I|KT~ z2J!nQo?-VAzu)n;{as!e_vEsmTr}vzv>;al0E_z)C?+7rrsu0PHm2%*A*1-JpXk6v zp{3d5oRh$7*@UZf5ldw4z4HdtXDZ;97mC2KjQdTRS5Ei(_SC(iKYDSqi}$aIe+Yb9J!my;EE~ap7rHa=kVLyBXOU6s!8Wqw66LG-bb>S zW~x3d#6aiS`czc34JHY`yMot|e{-oC<{RW?=BoA6W#N=E{n z2w<_TJ5nNSHxJF9RJais^Q|r$1z@jsuJ9i~90wb94}K8TGGWGKmu!;=UjsO*v^vvt zssX3d+9-TYu{-mmhEAaFHwY|$k z53rlKc)_Yk^m|eZ@QJBz@@oBgyUgQ7VQbEjur_WR(yR+TOHp$z?lE3Za@{8lO!DQO zWP7WfPNM{|zg9cf+11p4h2&^xx{B(Q{Bh zhn100d&x#Pgma8W%pIwT(Fu96-mK_@q(qBD0;i8;r zAXS@bVfw~kEN)idH$)O*3V_Heu>AUn{$*dKWILB$I;-^Sl-)r0&D{Q*O;pec_{eXY z@9%wl)WUwXbJh09-yW;X)T&YkhQ2X7l>dRYE^GM|tyoZVQ^D?aZv`dBg1{A%SKe+L zgL6{(;%j~AJe~H-;~VP<0Obwe4co`zgYTHVS=T!50f!ZC%FWTZ1xy)i^&I*N!@$>6 z9|JlpTClQi2A_&0La}|^tVS7&U9p-8-H|t~@ZS}}p0Qs^5qJ6^yk;bqEc8b8DRf8u zZPm%sxa+Og9Zc{4OwqxKe#{P>Yr5%753KVvxg@3KbS6Aj-^U4~GwAfz=;Hpl^2Bqo ztoZ?wVH!P;X^P{XCP~`Y)v#*mCEA^d(>>7kZJX+~&Uf|C!u$m_F3GcJ)y-}4Oi54I zknu8Npr3EeICwp_+g~;b(c`%b-ajyT4G}J!O)6AcIK%&L=CY;M^E9}~C}dnv=oH44 zd;&aoJRcZ_#<#4mX)19eQW1aEPdBmU-xKt_c3-*b_j{4U)+R`6%)Hf%ubab8bZFd+Jm4-b42^=5bdyXe+Ttk&-6lYN(3dYxjI^A5} zur??6gR0&rnuagh%!=Rq_0{IA8B&z@ZqEy_z<^+~nz*UAi4VBcV0QS8JFRiay{5jJ+k5D(W5bmucOT0w+n+#Vl)rEf(93V8=02QpS}7VZP`?y zAJce&K5OWKmJwAzBgyeU55Izyn~#0+{}H4i|HR__vtrNwezdmQ=2GILNxYU>R~Xj6r*5>R&M-stYtjH^XmvCE!SwXfaVlHEE5Yy52j+qIaO zn*~ul2EtA79f`_9w!ZQnDzj17DWE9C2Xq1$=i0`}V<`b)u%&D&<= z(v6mrJugWzeAtwxp!e=TV^P=AOx&~-`>j06p@-h56xmE$I4+5~usK^-bR5#&tXtL) zUO#u$d2MJ=h)D8Q%PDIN;svloW*mOw-FMEKr_7%9gp}5AR+4f_tE)L9O)Q$fbt#44 zB23PuWv^H4_++#O_;OWtpyd1b%RZz+<_;hW6{QCB}cSuOLW?wNyOqZoRb*eo7WKOEe zy>r;My069>Tn;kwtoKvu$}_pBUpn~bf=+D*?ZsORdGsOZKzpx>CLvRo95WxFg3jTzH?kbe1+qRvd>qR4fQ*sM&P^@ zv5MX|ru1oTwN)o_8}7?G`=2Hr1%qQS@&Jv*x1+7H#j-BPDev~`6aViabWbV^NWerB z&!&9UQJvp;wQA;v^IRb%c!Cyk*4x{wg_MwGGxpI){}Lx^KR#ij-S*K9WQu*yVWj*k z6$D<--XQYsjkJ{NGa@Jj0-#G*BG?eaAvHd2BmonW#Sz3GjvolJw(>Sco zDKI!*)9&>K+C9=@>{5CrV*HlDjc#y(MnZM50s9LtTgES#_JqC+!lJUKG%Uk9TTx9% z)~w3|G1@Z1InT;vJFcqkh<1iYTd`s7JcQtmkBnotgV_j)avzUafvr#IshyFAPyT&( z5hYhwP^@e;_|>f0>N2oiR<5}&PC&gkYW%31awLvck=c^RYSRB+6?2mwm0gfVJ{G3U zd!h1Yca6yXjTa3A@Gq#NS5q^oDt1Tr8?-d;Q*LLqCY(wB-LHVwOBT7MWFsHB?tjMc z&kl%B%%8i|t<&{R%j{8yKM4^V><~RwZr0=M^1x$XwXevg0qRAH+1lGKijS~m;|qaw zN{|OeLq&gUiElq^Zsd{?vPR43!%)B45)AsI=DOP5XXeO0K=6FAP{5)kpCbh)-NeRr z=Sot>9VvXpiTqU|<(9uE?)0hz{ZUd#O?b{)SZkr6y2~AQvcotpLhaUxA5FF0N@Vi5 zz?I~~x4RF$`L=O`9&E&&)sZY0FQ9DLQqG@l<=%JNRz0)*I!v_VWfI&A_mgrPmNHir zSJ+Q;N_AL2Q7_WdbL~)^%e|iugd3$71rindHQ4J`wM?)>#-&6EfslsK2b=MehNKt8_g{#955}L9}*4p=}1;_tu$q;>4DFk6eu+B)!khUcvSsC3gl#FmhV1e z8@+mq?)LMD%Avx%);NQmz6|n>)8b%%7J-ae9`S0@#S0O?R6JaJ5QnNG3^Zc2&cnZV z%ZjgCfwq!9UVG|Wg2&fy^RkZ|ly)9a~xR9!WTA$}&}0@=k{ z)uG_{ipbK!m8zp9a|U1fq*?rjR@cdCgr{n?dlVI%fQqt)@M3&A1q)UGj7|;SO7nZ> zfSE(`_0KhQep(L^;x%URp!5oz8>%UpCejuVZfNa{%RrTk!TTX}OTN9ilky{{kHULQBr7+1)5G z)lGQ$;%m6QL$BRoS6tljw(3CP{u`I4at?pUsgLc3OPZn8;_c^Cyf=@$D)|*6qI4%t zn`bQCXRKO>Z@m1xEZP-Eu)lF4XRU8G*XKpz!+Di2+1B~Nrbph97sY7Nu$`Jq$K{S9|jsOBrxA<3Xv2T#gjp?ur>T6~#QWA3iBaL#!>6~V&kbu7ed7+y+5wQL*-{q$RCkEZ>~#-XUN&hBeW z#jDT1&Ns~+-+XS1(u;f=d4l)u)l?%|y7x(bq+!+DK(3x!Flg~GNNsG$SjY!$-ub4$ z@m4xV+M+pS-Wa~xyRm+HJ_FWyF6qhN?EE)}vn)n`4?na^&%Q5nM&-2SoV90}wH+!O zRSjzJ;xJ|Y5>lJTDo;B*gAL|bn9FAn&gVGD-|X>NJpTg+D#s>P1fWc^iF_z?_;bR4 z{ujWZg%4)RUWzT^!;a1dnP*HF@39KVnH68n^nZ zbz(M1A=~2hXWvQJ-p#L$m!wasiSSn%YP`BWMnFB2VT%`dD-%@4D}x0exa977#LXm$4cOh*<4$zC%Se!=Ex(WA2`vqZ6r+2clbZe_?M)0_|A54!a1zmhg znQ!&uC+?l0-UT2kZXG}wZ6{ogrVHkaJ*H(dxTs+o(Io+z$$^P_u!F4IIA)n8w2ch~fvZ;cb4 zrg?hzM6SQ`oc&}Y2!e{wyM)b>E=9mk@2I)kosw$fOocwLITQ<%`55nj5j$39J&oo9 zL6mnG2^XVg&-lgFFROQCWF5n(xyW)?^3&2;zg7**&KeygB&APHp9pn?ggcywTGxz~FM6*i~=kx`x{(BqS#H>yYtQGRJxjC7z|E+uF2`CdeF) zXt{gRf)<|+oqcU1$Z}cdvpb=45EOxZzgV8+?IY`l4tl|hAcFP=-nbhL-#dhw_gruo zs`F(%*7F>FUfXx}ID0PnF=DiN&g|jwr|M6Cn|?wW-SLwgG164yS<0&eUHj6^=pPs>(W9O!pxE{xs_J9ci;EPr5Lg_PGMU* zW>NcMvqW^+v)1!cQ|J$e;*Jl@^#SbER9B#~;Tl z^P+Ym;DN`=*u3FGH{Jdmx>VTD3ky!BvHQ#_q<03?)7cart9jXSxoJX^Aexy$w=Blj z)r3!EZ9+?820$X+PQT0(YzGv}{GQibdPGSGk7h3zS6KXmGfirNbq&e-Y53jO z?3&Af!4YLp`%l&<=7bLQeb-X-3g-U-u|Q70b&>lx{1@otpP%1K!sf53&AH%Lb6Vmo&Tsxvy%MObL zrR=#BvnH0k{N%z~5(@)EjH)g_*>T!goFf-(1%i+Oib(F|H!zY^TJr|YiaU{o)@WWN|r5Wk$1(M@jiyU^+L|NAmCYnQIaiS(Y^{_{eKGr2$`p9dU zsC)z<|MFIFBFG#~_cZr#qrYUy(bOd&M_iCAd7`GBzHaksgI@K(USojkRS5S5=2Iju z{)IF!xAo&ymh>Rf`4T0^^i5sUt1OR`e`oV z?0P0;3QpdR~O5C2a*aY?WSK zIp$2|X<|af&1m372~CJ_lt;<0vJ6ap8^fzKG0W}v@XP;|pfG3PbsF=XT;~l)l7RN) zU}M*xgRxrYCkk$-8EZw$=#M4y>Eez*L@s z_7dS#>VqF)R0UKt!hlf&8iY(76!)iQ_`zfLpyT`*m80g*qALD^A%5XMVwFFsRa2Dg znfxlR2owXH=Of0PH)9e3Z?}~G=}o6^shR zNp1Pcf8n3;*~d#!;WHqGl}Lmt9JFds=Ug)f2pTJd1*d|A7gpRU12CIu1EqA3YdWI~ z|1?Hkg)eB}s>x7ais(zUkALF&L0Rjd992REfCAZ+F!}nDL<>K5_V3;WOr>_&B*J z*1mPUg`U?sIR=6g(hxWROem`Pz+_))e505fZRuA&;w=t22hFVj7@OysIGnQxdcqM8 zj3z*>YlTxe4ks{*oI=Q-ra4?w414lV=yBbE&`5F@-w2TI0d4*xHQokS>~xy!!v|Z< zXSR`Fv#G}cZTL}p`s+F;M}B-Xn$lEcMi)YH$(-Sv3AVwZ4osE7FZym%uMhio-3pvG z1^O*mr|pU~pHrcLpU_1n*N)`H!Z6CT8dTGZIrSKg26*&c3xdV079K;|hm{Hp3h%xN z$5?#uk2dz~o)^ywr5wa4JWla?eT9#>j8B~K97PLlI4if}6ULaMjtKjT(?B4FNQOgd zKyM*HU;*3CTxhGX(5F@zjd9{1y>+<4u&ZHBmuN<$b2x~b0P03-O&$>0XvCpDrqYBQ zMIbB94r{rW{^}DP=7=ptMx6uj*)D$k0OonlZ`asDs(EaoL`vwB+3_SHPKs!(czJSz zLgutqi-HkNTmiD-i0+7{Jqpn2JWTS$Mucng5fb3(PKtH7ZO*Gr$qcuZX}Q+stFPM~ z{*{Z$bQE6%qU~$#c!q6*oa|E_qe9>WO8Qm@W0cesZsfIo*~hjN#>x^&PKwgu2 ztY$#HT`z5Z91|tq0G|<(Q(7_{jb{&~&QsyjsVNCmT*ESkBRunlBlF1UirU5&C-OyO ztv^{bL_MOn<8xBPlcX~F`5V*ZF8$nJNF6<2;=8m0r$~W*1>_W6jHYr*6_}so>xtgW zo)-*OmbJoIl;QwR2dh#3_fn&nT$lxs>kWS4kr)Iky718~$7wOfBB+A7 z64)e=u#3Oz@EZJMBstPR<32=wxwz zI2f5B;jJt2ASC~R5GL#z8@UA_oPjUX!oWFvO~?p$&mAcG8jrTFKPH)FNQmfDl9@sZ z8Z4$CBNd-oWDemMLb56Z5`;bT1Dx@=Zp{Tu<&E(KAWA%ipz*rq0Ve)47uoPkj+I?~ zaFaler7^67i@=9Z=1&C0iie`|x)hxF6Piw{b={ak9B|Az5Swj{dtL%q{KBka4EGbi z2Gd1J$F-ga3|nAleo~Vg2EnVuRU3|Fk4pR@&dig48khX__!&`nQgUuWld0?mSAIHC z#*iQX7;_91^M{4_D|wAan{mS~*^Q9+*fl1{oVz^eGcgc^J0Vma4W|N&TlkwsjuW2z zD@FQ>Sz?NRP@LbGF{jzHu7YLMpYNZYUuuMpiES&_K{HJiuXW^po z;tT=UMBzqasM+p_LB?mB$ZG_UL>4bUkkMZcLxK?tKDqaA>8$pUM?;@JLJSX1;*Zeal!9e4S zu9?OJe0>;m+xnZRH6W(aE8OFnw6sY+IDrBGiAAkPY?D;eA%vh^83fkh&{28nw7x;&9v4b9^;*(c(6rYG` zN&XqTAP9a5k=BgP{7HaIWsCfEox^Bs;bgjOqTMQuz2(5k*D#vSnFJyO{Nq479pUSUHSm{;(NSO=@A8V#jzQWPIsgi0RKn;|MoqX9W3!>*DtC!!wQW z&saNm-3lCz0=)q_oNLugPfCGhZ5U7dxirN&7E~=_V{wfIfkif!1?;&@luuacGwL!y zS6pJsu2n7Kdg;8YC|KJw?w7f^0+r%iR02cn(=QM81UNeKc ziU<^gYFjIflV1SoEkqFm{|0PCo1doB_>PpFr67B!y_&{s|`50tN|G6 zDL*q8KytD_|tdL)K2<}RL}?yQ|8P%21oeP&iN$w z#GvgtTDPqIxFC8PD=j{oOY|W?sXFyb6J+4d8GL!FCVzxfnA=2Y`Z?j6OCp#bX%Z=; z+|D`%0Z=?`5DSxJ6yn`hH#@~H!h@|y5Kf!;trlU+0geU1?T09_T_u>Z6G0CC0#lzW{)Vf5g-T9Ot^sfiV>u#Wn1MKw>c$ z#TRa7FaF_9xVRSN6kc2sGVMgecb*G2EOj0L7{U%dH3e5n0;p*nqyafrT^mC0=_G2!n;f%PO8ie)WXmZ8Na4Cbj-t`MQyh$NEeQ21E5fWfrs~Df#&=h~tQZjwE>pc7!p2(;j$umB=K!ko~&l*TD zuo3PQ#;WPZXx*U50I@J-)RZ^TWT#1ye>SsUp=A>P@?Fmbh6_sql7EKgEM(o9_cs3U zDjrGSR_aJz@yP`;IoCOlr$Ig1L`N*)LYmv9B>X+ELv_G$)P%{n%ZzBQJPfKH-B1WbXLzr<3)PTkDvK# zauR6LD#l0gq*r_)7=Yqa&YvB$CS{@@vxdo7Ul&j(w++r*O;m1If z)FRsp0Sy!x+Hn+rJTqVM7YnRlEpBt0F*q$u(FUCOCq9X2zwoB1m~h!@4~%63>7X;$ zWej9a&zJnw7G%u_Tc*gGXbx<0iAJ`=TJc!Mm~7>go`nDoG128jK(!T8NhZh`ULG@Q zN4(idzjCI^en8Fu#TjTyO;KrOi@2nKPEqI+KVv8;5%QX)BXdz~oQFFQQ#j+qc&fCO z1iLaO0zmF(e!Kw6c)1oOb5Z^fV9bSp7{{JoGK{|FFOS8Zt>O&%DB?fn8a5G% zy2eM0#jh9-OoR>xhdnbYXs)wu}=1mOa|K)?%GlGyjZFROew_9F#)< z$|GC0a?V9S^Dh$SmvaLEerQ&l6rb}DkLYjl&yc~NxYReil`r*YR^kcX3?Kp#r9cLw zF-XymB2(!fUFPk%8!Gk7K=B8%G*u0Z=MQF-tu*A1q6*OPmA~3CP_~S6q(U53oxF}p z1#etc!{5;u;}DEa;gZ)H5a~DNPaX?@6BjlC>oT~;Kslu*%r2C3pec|mN8;>jE!qm# zSj1>f#5g{@!NYF;wDa0vp~L)SjH>FKvZ8eg^C)sz9G2_s>p$@yLEUHtPQL=Z0XhBG zs2QFT1+>@0V<=XW^lKjG=>xj5G^^hb|Dl z74OHRXOIaCI69hFbnV9koFALYl3o#MoX&YqqTLyAIjFv56&0v@?)UcSR<5d%iXGtIDu zqjJchYy*Y97bX1YN5R)Aqiu>Tqk@Uke6!*`bRS+mi}p)u#;Pi_%V zz63~Y+rdjdz{(v{wUyg;z+xb;?ZlsWC0dBpqapz#o`zhaC2EyO5pnVux=@ruEk#C) z_`JsAuYkoj$1(uxnB%|zV)6I9Gz7b*Q*a4s=#f8@f(I0j&8)MX9Py#Ae}Lmoe(W>X$`KGMV5tm3vp?|yPX6d2 zztSbZxAdE!z*YJTr&oOwNUqj6L(?`1ApUhKKtVCBEHwclU6%R6bFst0WA^R36*vS1 zdINF@SE)Ik0tKcUhghs~fikV^Yt7JDEiGE8(?<(eG+8#ZScIY07&#8W zA3~_HTrd-0an}MVBenzq-)$Bzw{cUSp!h%91~pC&s|N#0B4=Bi#hU?u>{We@5fK^C zNMZP?q5kgh@Zo<9asZq0^fPwMM{wc5099qdOZwuk_>7x|@fiN{E&k5o{16!YJy_9& zx`Is>xX%3HxP;G-ryw{G2r5(oWZRFQF-C-3)0vEDqEhkZk6rwgJO`Po<{Sa5?1>R) zc^2W!pYxJ~f+~^HR@-rMTIQSiWgMr$e{i9}aOUC6Kl7J<(RVTbBPSq7`-`wcvkn3t z)pe@Tw8dDB6A1^~aT6Mb@X5B37%fjGsCMd~^Riz=G43ukKv87k6o=Z;lzyX!7h}m$ zZFp3C4i-rNTPVz`J#sv^3C~2s&;>!WB!0F2^oyjkM9?NBlO6{s`AN(^wQ5l^E zBh`SArGEer%R#a&{u7qsd^(Q+^oa++PWkhfU9N5Epd{%d_i%_vO@9tgIHEHy`TH?K zJeC+2mxccz0B9z+paiKT7R_iWKKZ+yUdcb(eQpH~M}gje9L}|BrYEXEEF4;XYN4q` zY%FHMZEmwlc}+2GuQS*Q$3ZdWu-(R32y!kb*$8xy?S&a#4aJE?N}Qve>~nD?f&-+uJjRGW?-hIBvIzH$9XK0TlR=HFT%^4ddqFZgNswn08G|l%?tkVZ{|PR zVK>qA1tUtP&$iA2k5=MiGLO_xPN2!IIl(`i(81Ao&3UlPH~fYVF_nMOTAqY&#S3{P z2p`<+ngUdesvI`)G*$i@2SWMLulNT(A;3{QC$%}%0BKd^ED4vuvd!b=tm~4obsj+E z53kBEA)_lz1{a32Gs0q)*!Y+FDJau9-n}Kr7Cg>t4;)5Cs=T7D>qkViiR4H|k-yr6 z6y*_*r|i}b=LsQkWfXP_flJwNk3#qejs6&wJ$uumYsydbHvhDM8S2GhEY}*3{9`T{ z#NQe4j00QQqmj0XO3%8s%D-?{bcN%N))_tL#48I}*53>=ee$P$(E?9vO3fku5h*)5 z0F-*<^@kOO{HoN$ZG;;1R@8%6w7q!QMvaZyb4q~lRhqCCu49sS&SObhP6~$0)K@z>D}Mqj zfxWVJZynB}nl=_!^HLqGb57^;hl=I|Y|VvwtBuo+;<+-EZ31g?kHoU6P8~?G#Kd^? zGXni`UOGpN>|uj{45lMY%TM+gq9p%}r>9^Iq)j1#qn_Q=uTE58WY!2*{^hYmPTjDO ztMV^NW?SVba*8t#&%N*7OyUHu z^bBB#;yQb2a#Cuyaiz^%qaM0M8*Js5FFMlC&@Fg;GknA=MA4}~aS<6uwz4hb)Fl66 zlV{-)h7J^Jx782ztI5lVkI=2pJ20IA`Xpbu&|Ng06AqtvHP>{N)2PCAA%=L{&w%=1o(j@MveA zGS5WQr1N-O(TjksKBnSndu3OwPs&3le3iy?gS(Cxivjrwz=}JPI>(78gyQhzB}*8W zaXF;`*^IMvo?!j6X8v;YxT98m$1DU=m*HlDK_=yAM6D@5*G_ab@033gGCapM?=WXH zb+*zIg4Id@Gfu0Ws3S~W)j5F5{G-hCw{2kKQ~1NL=9tlf4|n5&SR)Zr8UsQue~+90z>t$^RYxFO16TquY}0%)4}Lp-{uB_W$X`rU zX+EVB1~(U8vN~GzU_~PZNX$%~@S10unYicYc>{!vz8}B(*@ZwH&OZnd(4`eP5Cv{N z5S~r56*xf!v@$5apYT~jSfi-*FUnJ|P|G3lH>F`k@o+%B@YX3HEc1Y*f@F4Ueq-d*t%9#FItB;d4u%8RC4B)1uB?wUdBmd zVg^PyJ03U}aYwp zCTjkRuk-s_FFe$8_=qPmxlo&b>XH315BwCr%+>ibTe8^2Un7K<7U@aq;u(B$Y74Q2 zRq2jaT#~$&)LCLA{AauK z7kcr`Jlj7%Nk#tkxZ|2TUe_N^lt@BTn97GSGvGgk*OXGrdiX7v6+^7~)db|@d4O(* z#7-j2)n&w+SqiamC6I$+{t*v^tVP=W5spW6#07{9=NxABgiztK53=FyYo*+a0O6O# z`8+@T{alc$kiPVjQ}!KCZT{n0&4b-;1x~pF{R+q_zd%jzbSS_R{IVDXr&x8o_-{Y? zYe`s0&kLVd9BllrdXBgI05BY}6vb6@9>cD|s>9#Ic#D56aOsx(@yU4^Gox69UCQEa z02i|B+1XwdU!IYf!UB7o@QiY7PK4zdl(6dmZvCYJsm?3QgzV$%2QP~Ad0I0B9@44& z@U?%jS_}rTgMjk!GdT^Ud0rY#_wL5e`?f>Vyw&V~)7(h%fK+X+lx}HKh1z*90bJ=f%UHgPi10 zJ>@?#?|DdVXa!D>0=)q_J=da{oLU9)iQn{cEy)FeHtRsGA!9LBp9Lq1&RQ&Lp~YSc z%Cf4JuVPqE@KJcS%OneShO1^p(gKTFMuzhr%M~pxmc~MGYa|4GlKUSiTQ`rol z+b_%-&hZpnt_faE$J5QnMBx?p)F^C0Ag?beF=b9IXFNgi1zp&Ddt zAQVvLAHCt4@q~z*@+AMTWDa7df0~#S2<@yR=rYJNGX)ChN=6;}GC zNnvOMFV*5-{?J}M0KiUs{4)~RjITb43`RW{#yF}FM{%uIr{~YRb zD{xQ>^jokF>T)&NlTjdVP;w1g7KM1`&qb&f60b2@m||>e(O`j;f6M@&>~6*9+_Yj< zb0Fpd>7g>Ks@&GaH!8U(8qxgoCMJ0iSp27zP$>$t(&VW50||fETlvEt|Cv7?3kMc! zhoN7F%c+_Q%<$BNX#3UMjqvdTuR0v4`8P_$!jR z5g<0`7rs+=L5U*(ae$ETHcZiczG&qG9jui68zw9muiErd|&2W5) z&xqyc2X4R`IB_%5@x`C;@)P??BWdS=bvtret0ha>@C|^(U1~v;GnF_l!O}sGyNEP@ zsSrNc7X>m%zBFt8di$dS0LQ+nqw4~weZl^kw&dM8d6*=T-a4&G4x_JEoT+2Du>A*0TEXa(WC>d zT&?J95z|N}kS&LEEP{#G;sxARd@|xpbRt9}@CzaXM1XMtXF8;~aH1CxB`yj+{}Vt;~eRkwY0MjlyDG=)<49IY&68FLpR&uf{#5 zMC6LmB&xQ2$ym$*{p2Qq-$)EI?t;H04wH8q**c3YKGXrin2TXlFlcVS>LJiqBX>Xedlz zrXS-`q7R1gWrBAmmw#%$TywI_e##Ms$_}IwxyCSb6)v7(q@7MhZ$ZfP@BobXI8}(b zYD^GlibHZ>K5#B*dSiZ?*T71@bgUdgSx(j=34}dxb1p@OB-jXnWE|vEZfe{Z!i^(N z<1vb%Y7h3^V!TAH%fOFL+{$O8F&#ZEH~F9{dvo43%Mzo=la~-KaA^ zoXdr=5ubLAOyh8{$}GF$Kmz^e6bIPMFq<~XzI|HaotGNwD&|6G;3ll}Q~pY${J2FU z1{u%v#kRO;L|D$fcq*de6G1EzDPfaaVWocg__HR?Po!;Xn}4M9T!;QRL;-e;$s&Vg zOv|{gOwx1ki}<$}oh72g^lHuXz`&gm%rp45yZ z5;iElcsoxBG0&*rVl;wcKzu!y%5S)F4Z|D#y0ij^ra*5%4(*CH-xEXYF%OLo7PM zQE%wHcXw0rsEFjM25yu#c*N9O#K*kZn!7Qv90DFQ<`2PS06>Rv@~1;WFk?8IQ{oRd zC*b}zWM1lydf*?|jY^A!IMg|3##c=dKa(vgf)jz%ID*1P=C5Pc%6U^Z4(16bV*&{+ z{Gx|T%Gzb)Piw*e0XkxN0pL%)10)%4W(tY^Ou|O4hzZa~P&jDQ9ujrL*8zIH1t-RV z+Ck|W?y7eHFOykWt}rqz7^VE_07qX~67V6^XtCxHl?zqYk(aTCRwd-1H`uu;W$M%d zdNRR0J>XXgfdZI94HyPM)IkAF!JqmH1el`HR1wPVIL~~JurM}Pu}03$iTTqX zTtLgbO3650_~!)7p8(092neTGka5EhHyjgxj2P2;a|sW+t3`~%+b~S;0PJkOsGqwQ zol4fQQb08>jH*1$ANkuH;+uq{qm!t45TJUfR-oQhp!yk*dbea%!vE_E6dQtVPTUG~ zLkKpt>Br+VZPvEux!c{4!;|Kp7WC0M29^G92`r_uP;NW5W+VdRsJqwtO{ffh@$JNkeJg ztcA2`*#w@P5B_FvN5FYP5VWbDF(AQD4Pc6<0ET2ko-x5+?eMj`Xw)YsRk%OB`Bk4Z zV;E!Z$1E3Ez>W0G+{RubaB%>$v_vRde28Y_;W^j9XPbHA?s{}hnTfs18l50rd+02$Z5Uljkq3^V^81VcwWIm$Aw(MpZOrq0>GDyx!Bhr z>ztKB1%jEe>tcQtZ4R)pu!)Td1s5GC*UXF%_Sm4JPuTg#DXvqj zE!GTmu=|s(7p$O*AO>MUlMEaE$NHuCY6Ca@XYnm(t~>Pk31X&DdN8^cvSYf|Fx{uf zMdKqDjf|NO*rgg_UgLyiT63uNpJfsK*40+6K>eyf^$AG*TCXbGrBH$Nz^{+=A=|}v+DEWUVA9yBOgoH1 z#=P!uQ%2t`o%S3neR{Y4-b}un`EO~vW*4>FOm^P2hiufL75B9i9~++jvr7qVLfD4D z$2KO|p<(k1AKI(lHZ-?aGg7l5ecrimxa@o0Thgi1vhww$IWqL-b7bJ!%`89Q!T~sH z%{V${9C{lQiyv}wfm^tfvvDI)dfP=zIj_VY7pTskn>}e*J{Ac$27^jO3m^2k9JK+V zaEm7&u#?4$s6s{r5@yd4 zhi0GZhp=j4@l|ly=CQh{JEBu?etJ>)e6+J3RItf)UySv(p?G_sCeLy2mR>5h#Nyt!-fSJn+9YI zu%W0hecHP^_(;Z%gTW8932Ha$aXI}skv<0=E?1njr>xfon+~w7$A*n@Y^+2CF>SGV z!8kUq*x<>DHZ)BKxGtLcu}qlwn%+#k+q^}IKQ*2UH%SK~CuVI-5ED}{MRS*u9GuM8 zHg+250VN}E&5SuJ0P-P!V6vv#MIyAw~;zNEb!$t>i z9sQfH%b!oh?PBSD=#g^GN&RK5Rz}TeS$va&m}SP?sM0YxDZWoZ4Vigkk|srcqSlE& zIKwQfMaaN{%)SU=p}eMC9OjL{-pB=k0SuiZq!>7-FlE?~&CV?00n^Y2SJ=cEVm-iB z%CMl}I@^@xRS|yv%rE4&wCjs%>P$2MGCqTPfI>D*^Cl-p37P9w!5=2U1yiMUc7Jq{3z!)VaCJQ$ zb;1B37zrjE&SeDBAdsy)K*Jp|A{UkdPhuDg^}sCPv-4LSdETJ+n6NU@<{(GQWz#uk zBB1CYs{v=#iF7eixrkq^QMjOYGY<(~5ZzDZ@Hbj;fU@A9iUA--_AZ9e6HDi`v1T5F z{M`?xXlebyKVmT#ix7~oWeyOkty+P4RDtSeK2S8cU0C|F8P7!>^QX?T5-e@6KaD+g=L@Zs^J+cyfl}b%x=cpiWe7R^T7a z{F}$ndID$)9GUg>*B+JaTWlkZm)%xxf0BPpS-{yMJ}wF@ZBJe2v5^`ij!6$Y%z?lD zLkqLO3q2-a#}+Atu`0vf45A)pm?P&Jkb)mz=s){?`Slt<@Z`e+q~o}&FPHn@nVsSn zc_NbEEU1n(Qj#44W2mDjDn~t1?rIachnagD|IFVmXhgnv{W0mcd_QTbw`R*VJ^l2Ye9fg+m2c{j64%qfWipCOZd|n>leX% zU71tp+&_nd3S;Aok+;Z4CoA05pg@3MAjJBSe*nT17_`d{sxV*7*{s#ek9wi zL_1eUjD+h(j$Q=J2?bAO6a2%l7?=4+9EMeYgfSSOApyHTBRA%kJEV5)bxMept@e~WMYjj8z~OQuFg)p?##fZ$)$&m+)X4@+p~ zXZ*v8{FNBS1#SUQwkz~isak>hQi19dkovMxRh~<&0@w(!$#X+c84vu_fstG8S`e56N-2yho|Pj37lEUMQ)WwNdM2t2)kkWx*TUF8MpLB)dNe z2Wf=L?Z^a5!;MMu$9i#X;NVVa49#~k`s_pHR(e++I!o_ex=Zh_m3kXDZH(Soqikc}byZH7n4m;eZ5n<~aSX(}8I!QBBAP|01D+SJbB z+=Cdw5f;u~{SBSDsTeuawg?0l#-NZL!apZ~m}#te1%Jly2%$p=*fafv>#K)3f?1x% zDU2)wD}dUYp`jZAO~$~P1_F8zh|yBMWZ_!+!`%p=gUlENL!C?)Sa6{Z5E_T$n1rs{ zsuidw6)Hm$jmP=;PGp-G%#A^C zgT~BlgEKv}ZV3f9LerIwVXX5F7JVge`P;L?X2J)b$~TK^q?HB;7|xMXxjw9)8kIhD z>-el?@CHEgw_K0_Hu75a46 zw%f3sH1~^wd9!B7%TN77&KP`sc7g94oqvJi`k?20_(pITS<>oNoIm-+3iAb~{%0<% zF>EbDx?lkm=S(jPXUW@dy6oMA4?mMR4QgartxNin0nB;*NhV~cZHr(>a3NjRH5s_O za?*crCpAvvP^_1E1IzRXZ9X(+ez6v20}E|7ZL*=eoORASUt2~|eYhi*)d*Zw>ow#& zjWv|_hOEB+c@>PwUjY!q^rj_2`uPGB1qc}HRgWpez}vy11;eNX*BO(k&*|a2w?0S&EiJApoDDW!W;TnGiWUrFu{cWCn-xHKY#5*+iJt` zo*iLr+=#$kU-JWivDzngE{u0C1;L7fS1~X(vi5Fh2yR-fZ%mA54;8;|WypKljNd<<2FF`MhrQRV#6B^_k= zz`^W`iymlkCwzf3WpDv`1qund~B{{J7?ZGzWjIvjMZWh#JfF#;$*x`;EW11PFt_+RG+4&vISW^?Cng7mL;ypjLNUl+J!uQ#S;)-Y zK;TaU8x{nhCYa;cIvXZ@M9;Z}sV=}kme#g^%ao%w`Ntw|Kkd9!`GOx zA*1&%i!mlXVVf7W2)p<}&y9!^v3*pM=T4Py=fD;%ECpk zOm5uJxG`FIZuB0WGWIs(=RWSsP{AKM%03xg%xe!$i>0CTKj$8KtmYr`%+$HkVUsOo zpB+|(v$+FQTkNOqZanC3b}SAI10UOK@P|MguO*2B6!w184r5y%8k_8aZIkzTZ0O+c zJz|sqK1DUs)TUYgSF}4+_vWXw+5)o_e0Fv*A;+a83QDFp|Su!5^_u z4D-)SV5ZG3C^UkaC0X@x!4kSWK8@*Zhu{|~gw$t>(*MjmWK7Lid3Nd?S#9GjWWaX1 zPBuwSwC5P{5ead%smxxFj2pd~(ap_>)&qjrar#cjs5|WNh^>((}B4nc~Bsj{3n#r;s07)B`ecsdr@OpD@)R)*)ik zk2nSZ)ETcnB%OZotxTP|hv;{9Fc!laCBj*Bon*tv&RLR6vPI!qP?rIKC#Q?^3c!Y> zaGZ93@OJ;;kFe$R42OES(+8tMRuz5F*R}tcb@f=SK>eve^$AG*S*t43rC0%MEVkiT z&kapQY!qm|7jbjrAlocxz^%!o^3nXMQ;>L7A6jluDsoiI6 z;UAlMsds+fr46japXAA4$p;099LcfK^3r$k9@57>5`+tg7aJ^0EWS=+UU$#1=a%hi zOs4PBM?3|H3zaAz-2oT^;v_Vc9he)q4`>?v-8Bjk>lcuXo0dO-|L^Iu87uLpp+$tw z{2R(fyKRFRZK_PTShdBR@4<}88TR_4th~_y#4{Nxg*Ot~+?d|>p ztdNXw6Vqj9_ zOg_QOrjozU&3Jy4blT&3k$#8hIY%Zm%+q&M*P{r)WQTINmvc0AS|=jX*0I$g4S{2D z=H(`-Zr{frzB+IDgroK(j#Yqx!J>BypNhH5$edpHzw{ibk|MIgL$M{PBZ>JU&EN4U1->54nNb! zW>${Q7`B}zp0Pm&Z%Zx<>HLVK0Jg_k51Qc*Y|=(g9>K-*!A-U4pLyewQ2!Y@@=BX= zMfrlinrq`B5jB6y8~(_LI+ZcR0b_VYZ)(Ihv_%W_TgI|B?wl)R^px+IfI+Hd;L^+1 z-@JhW#G*I8t_CiB%>*1^Z3j%*7z|NU^ro{I)VV+TBMjV`7oj;WqU%uY^9Dcapyr%1 zu*8aS@b_4i{sD;|uDHP^=l^*;`Ji)SUJOP~h>L#_#@5RGX%23RX>l+pH|9`Q*~kfz zhvyXDponHQwa__#*b$d;algX3VjehxP}F~#KKWP!Pd=z_ER8{y`KW`7)?@v2DuTmG z$IP7`w$8vsv-;UNYVqN3TreLx+T!3XLK5jv;d&v&*I4k zF&gXZf3PKOy2BP@_(zXf<7Ik`b(Wmb(-8dG3jPKVYQ%R_RjFtVx?)6~#fAkqpiWj7 z;Bjm-&dI!s=#C9rpdktR(+Qett5%?1RiOF`NWEIFD%qu00c<8|C-6%KY^X{I8wYoi z=%}oVDJJS@@Yj~$A!VlTKR2PmNq_im?d2E}6Sk4r#wqjvEfZgQPbN2Hio{#x3uu$*d_mDSc-LpI%NL)m`ouCi|X z7K-<|jC$}*(bpaDh@#c$i{q>_|+>3KWI<}QQ+x3)vcJC>j+t^x6fBSVA z^VTeBf<^wefpqQHOKMiMIm>^Zyzt1gGHEtqstp#;&qv@d_;#T*ZPG$kT5~n2S$7R- z*D`#~6gDvDn){!>r;WQ?I`2LLQ`R1SO>TLxxwQRuk*<=p2D(1WufLgWzrLOW1W-M3 ztX5t=Raz}L8Fh&h%&{svdMK8DrGvct&u8VuFTT?!399(Ek<{$8mDK3_a;Crkrrdew zKV;lXpUS@xce%FG9ghLviCk)$fm2? zk6OZ(X?Qf$Y0l&~W%P41(z&qGdYed}^;*(m`a3Vnh>?%TxR>XOtkG6_ZL_)Tv+HJh zE?}Eiq{Z{(#m8QhNpnavP`%IAy5p+Sb)62so>Lha~ZIk@>x!C0|K->#`F)gE~CcF4nxL&=s9`(*^2mEY$ki|)kA*H_(g~$c>;4jeoG#HLDz=gh9|P}x*JQc zb+cOBG)DgUivEG4!wRx>-_2w|f2~DpeVU~HcoIZ1(K}`lL#N4EHAbF3o_9MR`pb**j zB8?~wroSqCtZ}S7n0biwmse*UBQ?1C*T#6?d@i?N@i!TK)k*ZKVD|u)=yd%WiRkmTKLI$S+?t` zCA8ib{8=79WIfYqZn4o9Zgl>nPEKi@?OP|=Ov;N1Dyz-Yn$QFNmJ-Ku{<0^Ua z_iM?kxBf-8IPAWp&xK1K_^TYYb$faBx)Vyi=RSUq9J7gC6w!Y6JJN5Bqq1-E%28^| zy?;GaPC0xh*|L*e^uoeU8#^~Xe(Ek+Cx7x$8zO0HPWzL*c*MG?TxlYeGYaT4#T`&) zzx}YZ>vd&vfpGEP@03F~XleHcuF*WXdiOo$xTg!Vi^p6m9iO~G_P*fRLRldVI_EsO z_Mi>?r$&NI1Nr2icgwo@laC6&d{}eprSkk?>)0vf6N~5nOGch@nH+J`8@XvMdElvM z%H@Y{EJcNj61_frnDjik@UJ=La(UsfF7oQ_*UOeiJx~h^ii_^LP7d8lKl?N19ocEE zJb$R3o62XaW6FaoS~aZ`A$MT-`^ zHE-Trnl^39TjR$1DrBQZ(y(DeS!S7Kcps@iuMVpf_@7sx`WCGJdC98*>stlv@g0x; zeo2j882{08v&b@1U9p+ieBqecWnyE#4hdUeVx!lKx%uD7tE2Cg?P@*w&{rFd?BnsVZZ{=`j(hc1$P-_yUJW6w>^7-9JI zt@kFa2|eYU1J+MDvZgu_Jv{wysAjGT)2$>&KXs((DvrYj{!UuxXBwV-PhV|-cV+Ep zuPAYa0Kl)_k>gh!@S~o5z@7PH{S$rzX;M*Zyn^w`Q-59JlMmn=yW5%a;vDsD(iX$i zn&Mm|ZzQZYy(rO3(;wZ&-7rG7+jK7(aPiYJ!`_*e*5s4F|LsRV`9Q!<&HPWrd34k) z>cz0Anzni_Jblv= zpL_uC_`T27b3qXrHvX^H`l(xPknMX8l70U4jC`@s?)O+4o|}q`zHu!+jmT$7Pd>@sB{lO<6@Vn!jGh~$^Ru_y>o2g^(_|Z>3;Ik&z1t*#L%a`xV&@Ko5 z;FAy7-*N7l(thX|nP%>ufKIR`cuZUYW~tS*Z6s5kxn+q@K45slpz~P^$biKyo_xfZ z;cx<|fG!N{e*A$!wN)!nKPpgt0#ZNLsmgLGR=^(gvEBLxfn8W{cAaFhZ3ZTr6$r!A zZ`?(Az(m%bksezeBYW<6jBJNnzoTXQ9S@X7%kL^Z_PSEWW|k&)mh%qTfEQWVs6M=R zxU8|=g;M<8t(HTbiVOBTQ1<-O1X<*{@M_6ryXeZ@?BXMKK4yeN*5G6AYO4d{bU54d@W_H|86n(xuI!}-HTRSd$*&Z!uIe`QT#F0HjHj9JXo z?g##Ef4SnK-^t-Sb*eQv;^3>~>FJ20f1uag)*X0DEt~ICOw#AdEDZDcLQd~`tkkt) z{Ri(Rhab?lHq@A_WVcHua;*rV7Ij^4PQ2?D*=w&mYx`%Kn%^HJ8{tK-%CcrQ-zPqF z(fQJ8;Jv)?#yX*{_D{WnoCAQ*-UIIXJ~*j4;z06Qym-2tzQOTz*Jb}*<*@zx)W&)A z8rl6%Z!+xs_n(mU_P@2Z&G%>~<8K(`jJ4JH-H(?$>ag#>-!J5_{d(7)dF&e5{YbQSZA>j#U`Kv^?bvw+XrnJRj4>M@zsjA zScOCF{=CO8kR99OJB1d@f{&h(b@!{i0e2hp8#(`o-cqx&z13#sNAJq*e;z3pjM7&< zvi9IfN6PsQ~I^W84+Q`e~w>z&VE46GS z^Jjk}QzuW7NAA8$j=6Ze$jpVZ2-|G)PIBZm+sW`lvbSyBex{5*akT8&xv5$h0bG>5 zde2=IZz1X~!v^cCA7D(r{;CugNx5;x*psu5O>ejz`wWn&e{U^2ZF_N@PwqxtacoxLz-~&&2piIDIHI{{!%$;r}g-Giuto=%cq|p|9j-vOD%u=vIO$O z8uNlWD|R=XoA6JyW7|e<8~YpCX`NOw>yvlohBHo(GakmoHget3-KCM|Yqoy0g7BP0 zA)=0jO((hTu@hu7y(q%ZcQlp-^2sM3$@8Pf$%S_nZv&(K(<9_JS9FsxN30{we%42( zyt#>fvZJ9i{^lLofAiCeHR(E7Ub}Y}S#IGX3uEPx=B@PCH(k!D+Ia-ixU;|rLsUdv z)W9`Vr$f}K07wYQ2EtbR%L~`GPAylg0qzJ5mrZ*^wzHm3FWmsjuFS(ekcaLrt2 z-dNAMW%QhTSANy!oMK(p+gDz`ZAWRPKkQnZ4vVFEOZ!}oK1$2`58Ne}6rm~YGi;cg zJ!CUk1#fTFdYymzujKyAua&`9X7Mk%O~&nimh{$jN#AH@OP$bIi)UZ(ac{YK^nTJ$ zYcXr;2XfQ-y7rG@s<-^*aMZ%qChqgNQ}EvJnB=e4wtT9jLaWa^fgUiCJ|N;Dt6jAM z^`HXPCm{7;k*XAzZUwLp;ITgcic2uUCT6<=XQ9yM7rPM6i&7fG^#51uEW^iLAiwUh zqJ~7EZ{(&wo?Z*-ya#TOrku-Dgb@tvz_SGjK`BSVx*S#Wh&)>o}ZPa?+M{@a5aY1h3x*a<} z`nCmEkVPQn6SA79CN)eK8@vrzUsbO3^M3Nu$Lq`W`dO00uP(pB5&&lm93rn=aH-sV zuwHTyOlQ!~d0#F$y7Dt0+sc>;M{EB2^~uhnY0G7$%lh5quv2Sf=&#?AyPp5f^4Iv_ zY-?RG#$_R&gvieF?4%=QBmF=%TKl!T%ZaxF zYHHS$b@ZY%TDR`&$}YR^EPpuRCHc*!C(Edq(0<(MBW2v63-w~Gv8=et3by`jRxZEQ zr(+vgeZ@BVar->3I)h$ic&L)DfyYdS7S$I}MR{Zrn@k9s(#kH`eJl zK<+v~|9XE@0XKHybp1M4d{&`}v|FXE_DZZWw>8?xYVBI<=K?ru{0azt`DBV*dB`KV zMh0GVxr`Xx#ZOO*zgXYC^UD+eAb*>=hwPVLNP0uAx&K}1bD({eB$dU{^z{+D=$9Sk znRgD8?)W=`)@YTrHjoqldav{zah;6oFhIKV?+_KWB*vOjv!1SXa~(MUuHDv=op;$$ zjz9Jl8QSwSd5Cs)cQjs9nLQpFI8cVX{$cJAYT{0zP+3ui@9r zQ^9BcRJrnSJ|js01JA!yh7Vo~i=sL^{{?mV{N(|SKV)s5zERn%6s21HbHX9EHcFtmuFVP8-yvK7b%gwL^}S?6y!xSt<{Pq& zcvtl~+AxqFA`y6ctpWk;s;ydq`ci@FTd?ZON>zC-y$a}qJRaxy`0o$+c0pTE;#9(DA>M`yL)HU(6a_Jo!)}vtJu0hvrv;>VLvrx5@GTPYxK+P13b*(@t`nz6w%mSN&DSOv7KBjlf5bK2R&pNkcYf?soBR zOOea)#ElsljMI)wR#j@!^l8&U4m$5bnL7Rq8Pv7JBn?KLaEu&w*W{qY{);zWmD`eq z30IE)z4XD8FKxB*R|d`3SXU0%yGDO;9pOE`Q855N;z`IQPw3lN{K*H@Ort?l+46Ts z>MJt(&0q9)hrF}J1Oe5iGbFQ^Ck^z4iZH_jWZYVI-c)XS?u5)1;u~_+y&rf!WT85L zr6VlAhQG)1j`_O`v&!=++3Q>_8OD_k5lbt<%oH2?b}wS-yfqLy%R+#TB`IgL#``EDsp>K751O2%Rq4j&j1jYk9q*0QMvVPjq%a z?o2+Z2>XW~`H0^J=OI)bK4yW7{)-;|wVn$I?7`VLmYzcolM{Dn$2ugE=H|!w(%?TX zs%w-KD9f(7k=*dqaV2Y9cwckBuC@PTjuFx=$!FBBM8C75V%?gM&mWZ!+MLM~Wu*I9 z*H8X1NH6};lnB?Hb%)$oetGn1<+?mNiFGjtWUjAt!~ngni@OsGvgK!$#J7pnia)T6 zApi(w1VGRa@PWay;c{_bw!HL{S+eDjL*<0+troD2M;^#* z8au5t9xXQnWxt_*og2;<1Jb?m1d3jP4=ea#$y*M;4=AT zT!v=t7l+HSyR0119mnQ_Gd8JqTkat@54=tW-(L8>KWT>M*Is?J8RcS9CHkYMtR`wx z+3X?_&ahf6pT6$zlMcfn!({)i&5B&iEURY)sL$8zwP(evARozT*S;bBPv1y+{7Y^a zJUSv+Kjc)|sRKR$tN>gy=kKH))^qiG!jtn_dl)GH$QgRb?YeFuH;jK!eydON`W{&M z)IwzVfxnflH+V<}>W@RBhM&Gsk^is%D1+D6uh=Cm#neEknZ-ff5EoqapfdSGbQ{d2 z*7X3{)4$0o@?rhytX9Y+KlG#GmHpH0qHBQonbO_+7}hZ3*@u+CdoW~&y&8xjaI2#dVg>7ZXv1f-rURF&q^s{kI`W23Ogd42Hr4Z(VF^9>>OzA130Q8}g!AWNpbv|FK- zzBgH4?N2DS0b^4`T(pRfod&9f3+7TEhyD6@7kx*4onaUfPUPHJeZS!&SyU z_OX0*%m%VN=GDw1rfC&?yL0ZbvF8@X)1B3>Q4_qcqiDNs*qQlpn+6r^nCLwwEgiok zH~X0!clma5YxZ`o376=5b5R+6z=v!#HKUMi4i`*d zVF)H;rkV8I`#19M%{P{VYmTq=3dgUmeqMfg`PR&{aYg>W*szm-wJt7Afu-EEkZFxo zRlbDLk%nhojR1Xc=sjRVS;a?@6Hf}&kv|tm2NiyFp^jEwlZ4=ixX3Zl;+qT|UDdq% zPCJVH=^D4!zx2NNnf^7pfwYMVyMHoJedLjHjIhyrO+1=)8G%$Qoe8W0KbI^wXy~3# zQ5kiQ9t4UtDVgglH<%;mC;*F4vf_X>GpO{r0Qk+E`bmZHld?oQh$*>0@Q{)q1F59MF_5ZFQAV-@LFdc}Q< z=Yb}OvE|!9W=x$@VLnd!Z$GX=_dUb6Kazjxx6E05+-KrmUHEMM%NkjgCq{OzDFN^$ zH}By=9RxHTl$MV=D0wDk2Bz~BgH^RvD^Ra0uuQ#TTP0hqz|yEd+PDzBxIpu5g1V54 z%~m&u*dMT)_=XOIx*E0?HRr~Z=IM`36SLfse6N`=FO7R9nL*gHo4o@%;sc9KeX((+ zrW<18=JqzAq|^6~H+GxwPjf0{-n!A+Os<0leg*$|^2)PMn4us0Y_f6!;#OS?zzu_I zinCa12J9)jme5|4tF9j-BS+p?(u)38$nHPmPtIwb?1BJc;#NvTl|do#R>AVuTo|7- z1%f*?>(E_p`0&p%s2pANB@%gS9+aB@bLG!}^w~I`GMH0&JuNO67xgCrj)P}}Tdrw( zlNwdD%-2sH%-fFPS65%#0_U4qq6Xl@F?F`ajayWlKl=A@evr1rzZ|W|OZBybCgZZ5 z*8>EClv_H*dJ_CI0}_9y$+{$H#g$T3mi2o_YO9(f-gt z_{61fP3HpVvh&AzI%^WF!#x3EF0D7T>JR=6n^*pgvWdOYrS=7Of|2E#;M3c{s-sXD zfyVY{g2M5?mdbyCA^%z!QIBG+Eh~KBzI-35<@$pPi*JuIb=RV`-cNBp#0`+Fir2tIiES7d#w7g9E#_k5#^w&)V*OU7n1eevGo5R)Y}xJ+$ZI|;^7eZ(^iSt& z=-4)7I*>HISfk5D^w-wiwE5{!xxAnZ-!O{I)-uvWe*;wC()nT;_bzFRF z)Z6dRkOmueplu$X>0^yqzo@HSI8nzu=vM0hIy@hci{}$P^dVO|+PMWS;#AI>Tj8!% zWZtUB+s4$K*d@23)>b}u$ZYJqR&N6Mge9PZ!rtsu z0+Y79AR1ns))@%wVVq%w2p!zDw{s4n*Q645$HU~6v%Bl>{NQs;h|P{QPBQd*gX=>5 zyg(Oy^@H${oVgT78mol@M0^9r$OB-el1m_{3Fpx3Km0FhQt9ONUm}=-x0?Y6JO=6jZ=0kk9J9u7nAB!a1aV5H zPv-p&k(bZV`z+oEi-sU(&S5TNZS|`%7(aNXx|?f*CO?Wc$H_h0{^oL@G+l{`rH-pP>+qr9{hua zk2$G2-w)tLk<)r`eRxH08x!DdQ%ZL5%PxGlsY(mkWXtXJZB)gp3}arHCdY26FJ-_n zb}xX3j2=w^zL@qeljEpwHNpFyVUb_5#5DTMomMdp8`eV+%zqha*I~t&V*lQ!`aTjk zX?)}Wd*+2%)Wqr0xO6a98x0sJztATjqe^qxVCzF=KzCfJS^ccc1t=vwAhy|{H~-*+ z(Tta#lULeqC_8j&k#a7RQz!T-|CU|W=c^$3Cqib-|5m43*2@2V%^wv;ePWH{!h|)8 zf;xXPb6t@IwdqjOXZ}XqlS|eikb!e4A%p?l3vadI6A!b6_xvyU(d=X|%i%H?b||f% zzs0QJS)rXDsw~P!`@+opxj@K;3uPu&Zq>nE^&A(Dg=8i_lz!rfC!W@ve}Pm;z%&A3 zTFgQ6XS`PaIRCAup>qnSnvN^Wx*b+!JtB|jVUx?bf8YmBtv=R2cTzd%Ln@i%02(y# zWBshkdOiN-tlUzt)?q`k<=Juq6}cxizP7n*O^0^!v(@x-Xny{n4gjI^-4Hu z#lA8Y)`dE&Ksx`_%dpE1HLJIiwO7?wDFZZuWoCwi2|yR|IaWSPtS{#11$Ygh|Kst} zhfY;7nZFvthCX`C?tf~4Df7?H->~*D)vj8BdQpMuTd?ZIGF3?~%?j9liHCje9KLyA zj21n_Ox7Vbq+G+TBX%OVRy1rrY}&y#Hci`dYzmmrH@0^=B!sai-6s?0hrjnQjs|Sp z7Jn|+?RINu+4tF@i+_Fuewj~ZmE19{x1gGtkaLV1SG-MV+$p!o3v=L$%@_cNlX^Hp zmo>}Zl`YqolP~O<&6dT}{?J!eVt&CN7cb?;X;nc_{-B{klnL^bm+qBcbU#(bPQ_oS z4I!_;>ENi-4IAlK%a+@6`axn$)yn_0JLJXLc0mOX##MYC>1ET3Y!)J77nPoNdF^cW~`Lu;Q~IVL3H@hy|=vMrnU3m`s9D; z2YBtmFwYb9#Zr;K$B3MRe?(v(3!($e^Q5D{%h1w>v#=;N3*muEGd3_Tz_yDYaG_3< zp7Qs*<+!KIPCdHV`NNz5TN(E0*JLW5d@i9yu9&9m1i1bxhc2Me=k+UKRm);xUYq(> zQZZY%g9#KgPMw*=5e8oGI!pS@>oRq=1JD%bm_-HuR%@>>0|SfwWc^)>2jvUL%!@_t z8JFo3#>;ubUzd4d8+{26yy2uVb>3tc*qT94TxbfKFh~tPk*3Kw=S8MId7m6#yz7zn zJv!_CLni|>fm8@}#tNnOEq}Idt-9=f;wYKU$O@)5UPaYdesG6w`Wsr85pT%+hzVPy zA7k|6-_Uc8XE3=Mmf^s#<=X4YKDoV2mfeSqk{JP_J$-O+UDS5^#PM?e$RfVgqLP65 z;~c;|dxbI{3DOuKF>O40l2jonz`D*XY9qM2VO5XS3e=+tRG)yKfk2qL%IH~;Mb*VW_j@*7_$595kQ-*HgZIau19d^qtM(c3covis$Q8O5s)a3d$=(`r5WLmjVz{Qma-{9(C> z51&#~c=C_rw5LeDUtOro3*O{7Nej+$n4Bbz`zN zVGU`GAMw!EbnUI=`dv($jyIeyZGSOR#_QEMYpBQKLhe5@WAeK){LlBxi(lI31LC43 z`G)}hE*Ji)2xVm-e(Vch3~gOY1~Qj#gZF${9^*Oj!CPhR0e6&**B>m0Y_n3zhm-2B zZ@A0av+~F*U)ngh>6g$>9P_Z;{G5I^Ch3Y4d{yX!X1`ML*k+w=vhrn%fMQag+6J zdAUS_q(fXtzWTwaNl+`XZ_TzuJb3Hf<=rI0R+;z{O+V~X^O(5*Gs4EM`&H< zc)CEa$1!~B;`0yRl575WvUJ+{0y*c=PxN=&Bfi?zT9@bL(bs1h4pC6RZ{@AW$H*-& z>bf-5_`@pVKQ>%C_0#wt``K&Z)elYA<%757niEfv&O2Yo_;>;o>qisVS2izDVP{5R zYSXrE6*IOfTz3VHLemI`gpkTw8M->IR^X>zf$C>Ke(Eb!<@Xb)03PhI6XX|+IyM#c z7+{a!wSxDU#{~{HYkZ7@EjAJ#TIUx+^s^Ye_;lMGGd8ltiyKP6VaLd>R~}yeF!rdw z%2s;oGjK22t!HOx+hn19_~Hw4#)yh19v=VZoBB&TZf4+LT&(2u5TDzf9*X$6h2_aP zH8z|UGT_W%a^OSfmJOe}Rr;=ft90wXr~GF7&a#}$l_~FiEMu>FNXEJ4dHVU59xK|L zxUHr^;5+%(1^vWFbh4^N;_>9|-izAQO&QcezGB`sSQKis{mbkRptL)ZLI`=cB*`uyBP37~;e!ZRM z-(apxeg6{~dv$?%Zcoj>ZT{O1WeA*TksD4pO${m>^`;{XJSnO%p7x>Kb^Qf$#lvMwjLx}i7kMPP#$H!~sx^Aetz$TPfA*dS$X90%lbyOWl#kwiSMECVPI*e_dY!Vi?B8Q~ z>2ctpGW4v2%Rfl?*8Q^c=J!j@jyuYrtvc#QNxqd&KA9#jTsMZkDMTy#EfU72vN9tj zm94c=#r?n~HODk=wcB&D!+J-^;V17V+ilWG*1%eS{*l}@@?yDaOl|A4FWOmFVf|3o zN*=ZCX%Qz|OzRkW(Ajjz!7}8W!^%Gh`1XUc%T^CcO}~D!PtP^<@!?yUGUao5VfdpJ zb!j9G9h;fzw{LZf7~Y?~&u?Vb8Gn$SIyaUNbzSZ`_ikI4VQcBStRO%C&F^H$xrbN8 zA0_>_9%b>j=)iTEGUZ?L;)u%ljTzsb$Rc3*oHC7_f8?hM>ot4)&y*on-ZA4`H%}mH z%j#E@HX)cz^;oSyJ*hzT2}nIzs4C5+Sb_BTj;%9m+|{8oJmhYxL zFQ;GqQORlFYx>LD4fDc~L1u%oHg4Q1b6Rn!#>K8-$Ex|ah?-A!oG|+DGGTP4s1yer zCns#D7t#pf9}Y$SFJ1qxYe)N6GVwVdvDs zT#lb*GUCBC`sAz%gg{a;7k#pU5XwlfG#P_r6beOMLa{PPGQo&6?AY8&t~%{PxvHem&(U*Tl#9kc=ka4? zA0hOu)JGDvWM;TxSwRYei3h2vcxlU3U-m$*g6GZha zfI3!NwF3350@b%*)w2bw(p?G_D0T=9&PRPC0ln`F$pmBDMRdxy64lwZi^=l$*8^yw z&hjEo<=D)Khe>TQ2RVyQ{FdwVk{3R{R!*yYyAzC;)N1<6V-p^dWBaTW^tp$@JdYdh z(AfsdL|~Qt3LE6+{J|1V`oCtMLuB$lj+fqH_#^rScw312GjHF#5&x;{Zm4*owXOVq zw+^g{hGL7Fb4=o-k@#Ev4BP6emfXn=VeNg7lb3HlRJu9dkLh|J`$w5_-S+lt)rhGL zJn*mE-iOGfCyxE^^5-D=mJ^_?$aO z%E(`>!{YMX@L+NN)(rZsT(|cRBTeFB`}wcDW6jY6lIx{%ao($q>OEYo04M`&tsIN> z@8?Tufr4H=mH^152uwh!Y1e@V%C&nf3AfNsT3`!_Tw1N)TP8ntl++Z{KSJsze?D(> zX-$ez0eyRAsTqH(7A9;=3A|Yh?@N9^esI>`u9e{jtV@UV^g*$?R>ju~)CROgFg=LG z7`@)$kH@b`V~+f<>vH+on`vEuVYvaT>wqD0%^tOBRB9$K(5G~8)EnbJe8hhlzeX-U ztB1$8Cm)F4prRHUfz9Sj<|-nz4xxu&YXpt!xMsAVj$CkT8W$ z?vJrUR7NKrl#SZ`OisSzF`4lANpjFH%AX6NQyhBrm*Mvhmv5dwM*4PcPX8PmW=Lsq zlW?%USrh%4Ic~7vh7{E({<`a?O&ePhi9dkJy@9OSqn|uJ{SJBPnqPhIg?P7K+sSE{ zpCx;(YhS0!`T-v`nf0oicS-rxk6ka^OEy;1Xbh=?QvGxcJ$1kVe%+O0C`svpRI z>uuz;OV5zK*0H1_pT@1)Bz6#5E~mBTWLU(sj+vt+#P}6!*|hO8Frhzsh_zbRiq9-$ z21EaNg1r9WXgOwE`^r=Rq>Eq2wfeV~!Pnd?Ph2s02^V*rWaw!p$Ss4qWaywD^)orh zA|t@t{YbxMtod>kxSgbJ^CmRU*T2=WC3tD2`A62VK5+sxYSg@J++N@Q6glz!O9INH zjSRl(Zh8Fj{VOW0pLwx8$eVLykXAUU~a| zIi~Nb3Bc}0=8wD@SMq78d=LyR5r7H=lmXMQqQ?ENUCp-g?1z7q`!3yAdaY-!bsc-{ zv8!Bj^QAI%^4T(UGkxP|;CncI%}EAde!Dz+$)F{!%Mg9r>Wu@|v|_mbirqB+`y=H( z_50rVyZ=J2x#<#_^3mBcq=$a)N&WMh)~-b(oj04Hn9^r?)Z0tKd|4JKXl3;xM@*Cu z%p7x=sS+ZU=mSHX+4VGqD(z|o{`(5xwExe4{v+Rg_njNr?p)s5v}q&jbos&q#G`%wmp9)7e2+*Qj0%+1GoE||OJ1<)B=(QA*XT|Xcg3U+ zhlrlVNaz6ICgnytp8xNE%cr0JTVGj0gHuCkyYhG`&%Zt~XCR?2_o;Y^sE>C`Pk@WQIu@utF;c1d0i>%~fgBEr6N$L`Rj>?Bc-^`Zj zUwtie=lw@N>k3{CW%-p>l$F{vVa`N$0;qvSN>%fmfC;1TWac!_zfmJ;+_<4MYTiQH zF29^C+jI$k4?;5P>LHK-z_eM-p)W03VTqZn8A7=8Je&8v3|Z|6xh+}g+r~cqgLKuu z=1!aOwalOQt-gw&-wvi6S6*dBX{pbB>RM;4Sy9&nX2POxW!jW4CqC) zFJ8DnKL1p6TZlJGHI(KpTggi8TS-$dauE|tqyVZn=Gh zozBK?1Y>Q@^hr|}y`|mJ5#quDc(~yhaUvh8F+*7AuLJlZ3|izv49xkzLa#dHN4|8R zZ2rs0^6gjF8=?FFLuX_i$BeE{4d#3x7nGiS=!e2j+E2D@17qU|AdcKW%_y|hHM6wj zJjbvM4)z4XVgpq#ne~FXeM@^)0(x%VZf?I0t~&qRhk4+rxTu-iTkYYrjI7XpC0TwI z<3(0bYcnQAUlbfOfD1!ln*(Z2JIr}rG*&%xFf*#cA7=E&90#2CgFgAzYrh7|HkbCR zH={1rmH9BP0^oc_Y=+lJjIZXEG=R{kiL~$3UfP2Z=Rv?)ob%Ku7yXM^OfWBoQ;li$ zsQ;O!h2{V*C_nYS4kiPtSWiL&2$Mu~5R$?~H0X^hG_XcX^<(CyZJqBN-a3nQn~{EXo-Nc)G^nYy~m_202@ln)@}8c z)nC=5LOA88e)thdz#>J+@xN0rFWyq%ASpdXxI1Dye=8agvFl@AJHoJ3f6*Rf*wc?#=lt5%@C zRbUB!a;tA?RQXmb@c*&`*h=gn9uNL(zPtE7gx$(EBAuj8du)`p&2X!r%*~U=4x`4< zC4Y#j14hIuq7yV6i=O@@U`}wRQ%=^HOts}++HpWGLAnSlgEFkz=S!`A<7$-W; zs)e?shfW*(0f^>(tQB=?1_n`+T&7FrZ?!Z?55stnBZNmK-@-p;!9iu*2*BVjn@!XW ztZ)Ob%)8{CVkI(&XswazFdyDY1{iMe;eWM*96?~{( zhDovPoFyOU0)L8#r46Q$3yWanZN`0QWQHj}mKy-xfMGbOj}Zv|7SnRc`O{Tn#QJ0G z)GcH-pda!BCp7Z+gguvtZw3VqjKeSboPRExuO0Qxl|@eAssG@Qf5ADIb6+NqD}s0Q z3~Fm&xgaGbXs!_lF%^e#yay~yb&8ELb>Ih;T5AukQ4{#X!FrEHf725SWBLO_TP8={ zLI+&KhM`JI0ynDH44;l9Tt)~}ccu#=31(i^ zW3>YHr2^F_AoXRXsyvro1#G8aeC`pDd`BrZ7H(10+jfEt(sl*gunHOT+{kPf(NVG4 zCp>7=rV?9fq2xxc!_>Gl72foS_%!nP?vOTCcY%A-sSW%izRB3=O>dSqvN||_$4cQ6 ze>zePgmMcf+uSi{8>-rYz@jN~^&wA`T@L-VY`ZEhor*@30*b!DA2^gb53h(72!0V0 zAllR30ZgWw>fOg#@rE9TdG5n5yv8>F8I^K_$L1F)41+IizEjOdP@R= z@pP_4ql{dgl%pja9fv!5#t#1K>+XzQ*Ma#27<%;${z;B`FwEqH7fS6dz7a@r=;?0& zcC`CnK%xg<+)Ot9fDcaj`XNd_CLiP+wSoZ)fS$9KK*&%jc3M-Ig?*CE7<%xq^WOoe z1JkVORDv(bI-tMWh5=LnWwwEVNi#4inM_lQXGi#lU$w7Rp#D^#`UIr@tW}li(y9P= zJ`2tVdfN+ZlfnbPj&1_>dr`Y&7f-$iP z;6zBLw4oUf1EXxtj7$1-Pun$d5Xbg3Y`7s|i}Zv6hwx#=BrFDxFf+HJPZK1Na%RP> z2(+-Y)LG+xF#4g2UmF*>@wb}@{z`B0Enn8pU{&Fq89(^DJ#*1q!#3w{(G55Fs~ucu zPTAHJigLv;q80OE{nRn#;@DA3MxcogJQpNN{@})> z6vIH=+YllTWMJ_jX~Thl;cq%qm-(lB6*+Q64{UN*nV7)UhB$!`{E2JRcBFrZI&0)r zp)zL(@~Kvdf%_8bBjU_BlIvt zpL9kQdi=8yco=mYlWEBv7SS+)|M0WT*YYSZiLF3s<8$}O7yi6K54qILxX53y(LfC=S11PGd}!nDMy{??;L=@kUD8GU~5E-ugMn4$z{Gypx_^|z(ma> zNA#=%=93c#uw-o_Zt&pxbIzkzgeMKu)c|Nj8T^qf6E>MKy#Pggl?a0RsXJxs!#$wj zlhzOMvWA$()pBGW3=dFD>WwrYEU9I45j03?Z#6L+$fO#*SJvp`JS@@=s7ikj!W^2R z;^?(BbVH?$&IPFU;Rjtz$JzpnwW7E2Mudn@?g@b5N!Fr6H2wuI=chiY{`B`6gkh=` z6lA46P|*_7s&W3DqpVUQki}P> zWob1*9H3-KX^^=aKUGji-iTE24=3XAphU?Z>#qWI7y|%}DpmS0tGt>LfNR6Ls5$G$ z_^7+ZC8X-mn+JfcMJU>+ia4rdc+>|5j$__+BEU#*h{=usArmI}Q>ix9R;@riszCJ# zNIhDtD%GV_0e_HZm+up*;7|{7A%UJ7o>Ij|7UR&FgHEb%_}GSKxp9MnZ^Q`&rk5nA zx!8~m01zoIZE&!bLqP*Bw2ukK_syFqAZ)%tEfn0aF{cwnPG*~PE^%?Nz@ncfjo!jE zkZDgmBo{bLbXOg)-=(;4>rjhTmPgpr{EY6m^L1&iAhzEzm7}pFib{K z4LB9&5%~uorhoxAH2Rwu$5>;_-z?*aMxIk0t^^G1;7L0@m~X^ZE7ci>%Hc!>1_l3Q z1wglBXU?W_Jpdzab51E!=dYb} zg?n+aTH>!Z%-?MRk?H{evhZYQZn-(;elYNgIS|CK0_$u4<_(8{)J8Gh^+vC zMsoz?Zz?AcHF7Hg7_QDZ00YsNI!7yFSP;aZE_msfwQ*>4l?}O>4V-kAoy$73^>bV} zdp;0TU0lh!J1NRoFTI7Ht}&*+g|t;Qg;OvermqLk!Gy*^J&A{*6E=>)*%4?D7xRa$ zO2*&kfAU9Rmyn4YAa|FNyWGWp1mdYac=Zy1r zcleWS$=%q)HS%y!>(mFe4s4R5f2Irkv002M$NklL1;o%KdOlNBKG52v)&s5uY|1dd%tnf_`49raN77_QY;tw24hK=lbo zJzA_P)umVgf8gf^qmTaFGgKE1n@VhEwjptM;O4+B3iEoyCdQ47cm)9Q6wJK>7Q2fhkRCGZD8rBc|W13DF z=`G1IiQeYSBjShN>?}R=hfMx(^C(u|Wh&Ns4u2~M_Xy@jKlP-ab^!90iE2&sn6h3C z!ajOT7=q1}_|vNbKgBgjJHpqv02h(%{4+GO!Q%mpFam!SNRbNDL&Qz>`CSVhXz&l- zjFXIf*7HMbt~b?&k5H8KK-tu;vjMT4SK{w>?gd0`iU2z{aB_+9Rd)W=hncE_yIEI{ z)e6*)3RHiHuzsvlmF55C3g7|zzyBdZB@qw$Y1c7g*uY|A4w;(*HVpk|x?*p^{)SB? zhY1}Jsi%RVMp)aC2~nTQ1;?7W_G&p=k|3Wiz8c z@YyT@6(Qs;0Tcwn$qPV>2LF+7X3g~rB!p-vE40y9KOBniDo2kAx?`Ss`$ZLObfWeK zojl=TITQsTFzbg1nQ6veL&ln`#P~2oc+|a!naecLLk1bDLT6yigOf}wBBMuJGD2PM zQMgKPpv;>+Tjt{z=!l8mL1-q8RgRj~#lOz*pp`YNpDI{ap8z?uikvLEfGuN5waN7L%pd$^@j-S%~Dl~F0~5yK2h43 z@IzQ2#LdMoc(4uVe_jZwfF3RPi_OUQcKUPopdGFCfC~Y1g+JwDXD)U^HFJ6hRLCm1 zdt48ccvxTrfxq)-P(uqOFv$5c>0}2Kzi6SIp%I%l#y=S5I5CqvEKuUVc(Gm_>8~HB zc@;|OmjE=FCTlfy{v4PQ;uC?2t$i4UT{k{LroU_l~Ypwk}&szJOz1h~v)K*AQ z64Og?Q@(&bGF^cpXv=H!-+ypo`P@RtY=33DOD6IG$*66J!3$f^>9B^@UQIkw*)w1^ z28a`)&5qX~2C2(8S(tG`K63+_y`O(aY*;GX(O7&9+fWZ7?h54B#AMW{_30+ViIid& z!zgxcCe4*WpKDcA(h$mt(VJB-P(&v89X<^YgupG&XqxTrmxg4v%a`NLeF#n_{#{{e z+7t=ZPku#IvnC}LhcEV(VJA64jW(cblK988up^^Yx*&OAZF%6-{Od5~XVZzEoey7; zu!MBunttQm9AeRN<8X^s*SBh;66&=H%;Lm)^z4yea)?mULIyH6kkc09-S(-5xT1va z-EO)6&pt=ox_)Gr=d3aKH$Kh;@8@yMSXv*qy~h$|i)QLLs86Z4%nk*~CW-KHS3ZFgCWnP{=ZS4ib;4__UF%Ge|0k>jYh@ZmD z!MXIziHq6#>oIQ^)9uCZ)Nzlvo<+O%Nwb9-ZbyZRGk6cMBK)oCVRXy}^5If^B2m~9 z8zc%pJ;my|0h#lG74w24Su+&b?EaluwEfj;D2G}ZA&a&LtktA#r1f#457?>%s>{=R zCsruvkH@B0)rp;h#3%fiw2qE5ho2q2V8f2(hk;EfZ2zp@e>tS$`pxk2C+KrH-Jb2y z^1FmKmfRoKmyaY|+S@SUVW^m9=a}E08vC!k1tx35X(!(RjDiAii5{^V5R%|Lixm<1 z)|N_(jTb;~#)TM5Ue3DCdiXLDi=KeZ2{tcf(oZO!u1T|*glATKObbDZ) z-A|`|ma3qz^skv!7s&Hu?=s;Y#w05#=i;*#=ONgFH>9W(t6ZtUvW5I%I3n8Zy~WN` z=}=W0j}cM$oacSIFWXU@#JJ-n-EF$!AB$lfuwntT_0b?)>y4d;z*aWkJFj%-&4Wv) z(HDQ-KK#5XR?54k{Rg9m7vaqay_Mmgs4i?R`Pu4&^+(BN>g^q~xxpeM0lRqEfHWbwpDmUq5;;SHiZ=#J zaVONekHjx8UJR57(i=Vzj^*86F(S0;$ByX<&26B_`sKmX1I8%gZ!$@sC%? z%AUa`yI+zh`_*?|e2!5%;q;w=AsASX8+GIPk#kbn+`cQ5!Kxx=Pq%~%ME)dV&PLbn zYLc23CC>G;fX~861D?Irfd&`p6y|xy-lTrcbH@0!eLHm?Uuzbc5;s`@FmE?rc5WAp|_UwF?`zo+qQ0OF~o zioeGF=qms3+9M1X! z&1V^P!3g^0QJDW%eKE} zx72!^QoP}g)D}LCKqE=&3pY|uGH?q4XgI88pTzyBfZ!_pwR5TLnOw0E$%7^bgAg$c z4gP74Ti++9nKyhM-U2(Mfk(tFc`(qH;uhWV_Dzqk#NK4heGTpxvhO0!R;_i}R++(< z-#9|co^sqQEBzc)^-}vyU-?~eg*|t&tB4EBnaveDTXsu;z-=dVHr%R-HRw6A(^N|K zi~ibp8w(azHgA!i;5Si4m*++y9DU)2ElgRHyEL5ecfI~4+&_A}zT4mT$mkjvKveWa znFL&|<-9ju)x;hGd(Lno+!+L-%Dr4RNA{MYWKMDn2>1Tn#}EFJ^pW-v*n-1D!iZ)| zZ&-@H;R-#nJUL?FJrtV`s|j&>`vbtF+V zB8)sirvw=?5t+6#x_fQoae@Bu%9);r!VQT~sXvcL##6`;!~zdGssr@kN~3{6>BjCr zy@w2JkIF9Z3m)MARGSjCQ{yLqiOCIE13MvIX(I}5FMm8Y7d8`n8fRAc;vNMVd~Nw?_m!oKLD9RCP#2SyGAA7JLzAVPJLNb zZ+1=k)+jV7!6ruyuJY_8|z5%-Ypr7LvxrdlXeRg!wBIs zVT?3jPE)yKF@Z(MX&)Pj3Vi#W+(ZP2jK^0Ea8z8InVN6ZGpE81=qszq2hOjupJHjM ztZ;`}T;=elIn(KyTe`|@0Aq3F^+@HD+8p9{H7)Hw>rKy+I+iD_EUkN42 z0=xzkO-$wp=1wa8a95imPwF%2H(n12#@k4gdRAbMgT5AmCi%5Ohi6_@tocvqdet+X z*?-x|$EwT0f^+Eo_2FKrAI;n5n>`ZLazbKYSI&Mt`uN2PMqY_M6#x(MfNMz_{qmmn zsI<8O;Bz}=ZM?_Z`woGt21-T*d2~WVROYL81ORcJ>b0mOg_wppmi^(p%kUgsj&Twe zGv&2S+;LAk4u>Ht4#!O3ao=7rJ!8Rz2T>Wumdau<`Qi%!6U*l1EJSJNO0xKljM(E% zFGkj)srA>@8eCA%P|eM_3a?F_md@}%g69(w(?b+Lx4ts)Pcnk!Jg6~y5|&&;6MXWX zWDaL6Rf_w$y9TDu#Y-?BD#s{oYPJ6)+CEaIRLuBN79flgNyV;tzG9oM+oUaB=+sZk z2K=PNbxg|V`{*I~CPC9k^u)<#u@<+dr8WN^ef*Iiqu3D6fV%Ja>|G;MvbUi85l-wBDu0qsL2 zaL&fV6$zHNn54s+@4MXONzJ|4~3JalT zca&#E6lBveB-_Jqc<%*Oee{fMo+DEM8YS)TP;$=uAmmC@3v+S(EPn}h!zZU7uSZ_Z z_4^~69e1@uw$;k`yBt1*L2POrH5taw5{2L=7^il*x*yf-REu+CE`tIaf&oZUnu%IN z(x<>5T!yoDMPY>{^bf7iJkmvhw0hGbmkb&R-Pb{6cpm}zUq^C=s`h(M2O{*^oK@5Y zwAN%lWN4KD63uq{OqN!9#HQJu6H1xNQ-FU6i}7@rsfTu?8Wo2?Lhm+ye83|1({MVm zdS$&l7LO8obKgcj8N-c5H4(%+=6%}yJ<-C!N^AK@EfAtK@1FQhZ@>2WwT_QJHDDyGRc zH()A$r;n`=5!jt4u@(bz4qG6YYq)Ps`eRkKEa%V2tX*hQzIMvPq^zr%q$<-^g|ELx zb|3t1;;CF)D{S%HCzvAIH+r49xtqGYGo5Q%h)*c9`94n< z$hPDG2nr70bF!cHA#i1fch+y&dGBD5L%JG6*toz2oazR&+zrH`37c==artVdTrL#+ zUtC|mP;Ggwa27*HJWXw)lzfok-1s#5nu5TPU{sgVuWP%0`ch@$2f`HAv~Glv*3_nR zwDOkV2&Y`_G#rpoSqya3UsyN z*tRpsImtg}1Px^RU(N04jSez^0P(lW0Re8AGZN2TD#yi06I=%&!8NwN#%=5{L^P|) zxgz@BCw>(v> zG`}Y0Dg}9^x&&<2r5iO4ttCnutFEWBrB`<6S8L)l7y1W+`XI0T8)&~R+590{j6kK# zBa}mBoG~Bntc(dcSgSt5!f`38a1cQ%-4gyh4X~GN8h`jZ>@vt)GqT=ss4sGX_}pWN znVfXcsgSa{wT&lbO8QtbL~(tqC?g^3n?-v9s3|Dw4?mcMG>sh9l#l7)g6EQ4~15*ls*t_gwQDSP&B zcGVD?(DL6oIsUrg8;J@kMX#%y3EX2(UcNtmRRtpioW&2|sLLHmBm}=f42UCkQsSTs zYl`XgO!%hOswM$~c8iw@_>6H+Ana4vZ`ZgX5a{K97b*dmvIN`X~KnnKC9dkAX2n!q~5iG79-Q7CKbcC3w0 z{L+HcmzbS8f3Q2>XmnogY7&!VB=&0)7we&3?|rvFq2dhB2I-qr7oa1 zbSvW))g2f-T4qDGuh-x)PGMu`;6oV2`wJvDl=5qauX4jH26;^PR3AscyLu2CY|J6A z7)>&;$`?v3tVkeqdA!i`GpWe(A1;|)4MDx9sm+@DBIOpx0Q(iUSa{upi>AM!hX1VJ zd_0lxv$8TQ6Y8p?%M~qKl`aNgM1RH09@z4nP1J*KGylR`o!qa}^)#J)8tZSWX-0Yn zZrK?Hj@TJN05ualj)6DbUHF3F#-ycosT1@D4}oC3hHb2gG%>Qw7+d?S{u+&51A~V zD8~{MzZ!Dh0`&ikND=Q*sDG9HEd7K?8^yU4DpJu21VrH=h4e3a$huVm~%QWd#p zvHdAS8KdKD4hJWB@pI|3k&#p?)h%Ii;u(fFjWTc|Mwl0+Tu<=Kzr<_Bk(%CDL z7$+)|wnzVKi`q}!^dtGw$Hme1ej=X`6%n+U*NShIdQ{~;)d?w3SDy|+sa`x~8BtJq zuu0}N5U{vDX*$-o?)Yl_>&R~1Z;e@c*|WWe_h>{na5NRC?Kg5nrb3|$DrLWBexweJ zn(`MJ9(S({&PU&Lo{6^X-Jg{z%EWz;fftNvE8p0I&lHrH{9*{wRYyshnoQ9i+{%$@ zGo}0h+E&Xl<`#y-d6`r5WG%1Cav1Hnw|9;UA9(h#tP#sAw`@Z;!jNB}$m+?Dv*$z+ zFTKY4=)dK42vnYruk3tyViQGOZ1?p?ura}JNuZlWop)$xM}=%EON2>zxm^UE>Gk1E ze}||9|0f;8B!rn6vIkKZ%=D!QzhC>~7HG7T!#Y5nOMGqaWEiU47q_=e?YH~rE3>AB zm;cwF8+?nM9Pmf884ZUB|L?w*Aow!9_Fn97L*4{BiO;f>Gv1b;f_C|so(5i8ie)$W zUN*|`>V>(+P}3V(05BIHl1qT$uC#d~VV?=0Qj?Q3r6(#K(n@M9sj7XO zF{20-m$jA`LIIW>j6W~7Oq!F<<>#x!8CU1qw*@Bs z27;S9c&oQV7`hCq0G1WqFZi@`sxJw3Us=oJPWPUAsOZY{rcmC}L9Un)h5Gv|0KaZk zlM9S2xKfscENkV7jf{gb?@q-^K&Li>2m}@nA=9f~76gtYH%x6eVF-ogGwCwQl|O^k zwx$>{#_6h?_$#wk^kYBsnXJRG|DrONoQElETwoLW6lYF2$ql!_n7}@0_sLO)H%{6f zE0br%BVa|}l74;~;d}_;Al|x&QQnG23DxpYi!Kg;w0s8_>up4!PP~SD7Owxx)azP( zXUFcZxVV~SifuMQR1fAm)K_?+Ox|N9`%1ff&aCkXFo_!Z6J`9D_qAaXe1uj3Yw3U| z7IFZ?HOa;iNsP@)QU2Fl6-*{Fl^x%%Ag$?7LRn+EAaL>1{r4k<+;DLbcl2 z%J;*253iV+#p1+fhxt|?Vr1+)uOCy@6OYVqlxS}5geGz<_A)R(uP`vf()k54M|n_SApt zUZ1Q=-s_jVh{Xb^dHXU-Q@47e4`JLs;pO(hR%RaGB#)!z4WLb3rDu~GE99o-UeuYZ z?c;x($tG-So3RFO;d3vymLAD~!c3fdx-wk_I34B3Rx}8T_=pm?LL37^T}AY$zapfl zK`%DGm0qa5 zG2SODXH8P#7{Cci8$b7Xklaa1@FX4MO%-Gsde*OxW7d(jR_t5CfdjGaz5GUjO2jYO zvzL?^4Dy>I&;D9rgd;%0X@mwwA2R)`C*x9>$90*{GNAC46nVA`6M`;I4n54*pk5h*sjDlkQ7kz5HxNg&N(J&u}{vdqD{2F zGgiEEXfDtwF0Pqa){CviHZ%N9ljcb*s}kKqdxB0*)b8t6S#UQ=jk=5QegChP@uBR) zmq}%CTZ~5mbV$NKYP>C5yjzwuZ5R(QyHoJNV#h}-wU+~%=w+IsjY@z&rTh?GY5YNbp(;)}Sa8pg9S66auZg)C2x>-LX7!t-a#Hy@!Z zn&R~sj*^1+_(9ET4EKmzM*EC#EXXM2M;l^B9sP(0*;hKVO#xme^}FujSk!Cbe<# zH!o=_Q?}6nX!8n71a?vQ+&8#{=0G4ZA1!rlW>-mC-pN5%*RBb|Ce}l)Iz$`Lz}7jk z()_{mTaRHA(esERr`4BDfhA=R!+RVQd9)@uyTObM5sB4;UAVA#)ip#$5`jyY*$b}pO+0aU=xw`w5OyCT_{*2mIQI&d=qini+82_0sni@^ z8y|^}d2_~-fUnPYyP!83X6^Ma_UXA=EOXW)&SL8v8220uOY_(PZuo{33}p z*I>tB{QP9PiD*Yy|4SCS6igf)oZh9T?|{9UOfemx+)eMKaH2Id>(-%;vpf?JF;j_Bf@ja}!bXJze@FbQWj*e7!#j(Si~`{bM&}2RC5+Ux z+~Y$}I=wZj8iMM4Pre(Cg3=Pfu(dOKXvt{*JX~zI?uY05l)BXjEBF(i49z`~X*hef z@(+7o2FR9Z#q!}>JI86f<9X9FW}~$uV7k&@St8}-{eyI(u=PyK@6lN^Sp`NFx%H!6 zd@T4_VE?R~MYGgcm7X0DwbxYqX=Ng)`=v>@s!BbZH=C5yMnNz^=w@=JX_xmm2vdBJuQU{(*iX)s~#o4gMDv>!us?3IHRj?%e;^Aqh;$S4>;@QA+GZMA>$h2 zy*-}p$O8uoGPgR}V2jPS<`Ely>NV@3>Y6-;bOUi^vUy4XfxOu0Y@!j;q?TrtbLqW@ zL?!Tj6DKOVE#To<<>#{9X-Wc!?X%bw7O+rC5hu6rfvPkbp~qULvYzBV-ca|Y=%h4` z3gTvP{H^kpxx&Zi)^>ES)-1}b=ip@EKJsAlk~LG*`jv{&`iy{*$ri{c<6F}&HTI9p zsRsIyX`aSMfPxF^cO&|l11v3>S;w^Y!Q~$L9Y&XDi7h+!uByIU8n@oVMQV|axC4FB zl{0yW7ftCAJrs}^X>fm~1*2&rNY8zW!O)+~5s(qUnky6Q!yhML;8d1ix-XA|Ca++Y z-~1%+)22^4xOzk%&w2w?Sv>hwx{_!23B-Zi&v^$&GLt;D$TQ0XRxvlR+(OJ!m?;Tzkp+*m)^A-4PaM zpp;=I>=ay-aiJ3qX%OEOGw*u*nq=LWb4Vw!vv=&Cz=)06z3rB&l~V5))6a^F>~n5z zmx#Z#aYboYNZ(dc7;f>dCg@|_+>2)H{H7}XZ|aYcPi)8$2w7hZcSwLtVYRvdb;qnU?thk)AWbU8OW zpCv7(LW*#jf=GA|4D#p;yglJ1(#@Ih~ttLt6F1kOSJ#TdFI{8hhzJiWY0I4FkP@!xs zYj&mK3orX-u(?0xOAQxe0#lNIb$ajyRFt11&NS9SR?aPb7(b@x{-uK;HKA#rx95oF z82kz2d?xl)ZLaS3pj^fE*QL4BlbwZS3~y7@ST!p*0WXJ?opIm4V|IMZ&Or)xcpXPK zo(4U^*7^BLSwM$7zxmOe@Wpd|99i98n+F$|X*z1McWXND?p6SZ0Ds>2e&o%@f1nfo z(S(@qBDI`a$mW1UoYX+SlF)U8o$4mUR2LvO(6ljx-gJ{DFFut){37)2zDfBJ8=&+s zgZaxx!=_Lji;9F#`~l6h0sKD2N*s#9JXG6}I~@$`g98Y_c+wb=jnY7a1;*sho)<*q zIS;5S1&N>}gLAKr4gjmV*(;xC*8p3z)Zd9v-*w3H>jM^)9=%=I$R?a|RbON!E$EI? z2h|?wGUXjJO4zzaKzbr_G54#~O%)RT$V%?pAb*!#)u;(5u%=XS@&#z5d|#zYnrr`Z z50`5YRE6Hqi*f-U&j67C!1(1$uT}gmMwwfgSN=O(qQ&_eUMs2-dr8P~&+dA9M2r(j(rq2U6OpXDz>r!7 zu!+?#snwQu)-m0VgGTXUiw!?1xE4oD^HHBLox;`1xB; zZ+ouxBNm41coKL+$E-lBx2;P*Jr~yEbb6UAX|k7zU0x^#lwwunfVjRbtb20o;Ee3j zxDs-=U8k{E3)xFn`+Zf>AE?Layc7 zPz`1KP;_?n_Se}1c~fpM2|aefW{eCXLy6e?u=Xzz|rn3AxN@`)u?VvnwfzbKO-xsyA7f%Rtye@1dDYykX&wMa2kKUsF$La9M{L10g41-DE z7teQLq=yo3T$*~gcHi_A(zhsmUk@_R7l(Md{$SN;C9L~ko~wgCxR3>57kq0n_nqu} z)u*jYVAy>nGUtp@4i?U$Ibxd4>J*yj)3oR8dQ|3G3PpHwpJD6_re^(mORHVwhMOZt zkq}0jsdqh-RZh3Uc+a^bHPz0mL?+jR6zT^ToE?Dggci>^z>7^RzG46}W;140KKtu| zc0$dlU^zRokKz#(`x`yF*_26{v9k4?znE!*K;oz1me#6BI;vrewQws_;w!8{J;yl&8pqdY~885c}F&#UG^;0E*nue7qD*7p@hbw_> zpP@+Ym>)*lg?9TGJExJj9~WN^6@~t#gK()?9NkphwZ-tj>+G4Z`W$U1V@k$9%2x{G zXB_>Pr8cxKyIr85Io%cB;o~=YWxVUL`$p0B%zl*FtX`*`Nln6nk%cK}je6QhtayT5 zd!qZm`ok%Y{MK}ns!kb#_RT1p6*EHsM*o|iRUSUPFW!dN5tAuh&}EJbL)OQSsgRAt zq0cxh)-#18>N|55Hk@H}uW?K3u;5l6Wp&7eTRbgR`%%v|wUIROh&Be_osLf!1K$Lx zk_lho=3{C47xA_l)Y!{bMz3TDAMW;!so|CuU{zr@Wd2g0V$kq!da^YnA#K0TXb;{q zRJZq@n^Uug+|0Q)tuevG9GmuxVdKY#?oh+DFBeT)(xMiM^5#4a&OF%=D&GK?69b=s z!!;2q^!JOs-K%j*%;M75+qn{%=hX!nVwuR(f<2GTr&*p}-A^;0q{T`)>&_#?hS5b= zP)AA|OF5S3(YKNAK+$W)rWMF2K6sQnjbywlDGI;m<|O+J|GVUhrauG7|MskWfE@C> z$i&raEW*S^B(w?d?cqtv1aUr=do`B6yFfB?*vU|}{fE1l zmj?`vdY$l=L%BJe*GXi+A}q5XT6uhJU*@>%j(f5&5gh#=4rVS(T4P4JGwyFJ(Pn^rdAeb>C#g1Ui%K3;E0 z!#v~R^pU_@?OzKrCtAw_+RH!BxEW#)T-0mDhQ*rVCk8oLXyYnVC6n~N{zc!hVZh^X zwV4@H=_$V?N^|*c?X~Zc-#(e%w2;5D1XVpI)eH!KHfaCXbn~Grrwrz|F;ood7^pS^ zK6DlymcJh;#dRPdK4i_~pu`(HEhj=X`(YHuKt5Gm3_8vmvDuCOYM&35=SAye2CsJ^ zQ<|FoO%(;`=tzsaUAZSIBEpQ={=E?c+VI~id?&4+kN!j!s{sX1ZTJb<;01XqrXCmg z^cNJXOP&TXacOP1v}`rt1NHjLn{zc)#G zclJ=1)xO))!7P2K2YG}OwcyrpH3MYxjOQjpXf1c^m_mkL4BG@Ep@<}u(<)_b^Aq0= zhDC?#b#>(WS-Hz^c}8G>~<4U8GUVfBwevwcxPL!`nLFy*d;9`=^kN zG6a>K?1^cOywv0w5gVb&v(tJF3|Bji*SA(ZJXF3yfwsU_FEehcUa`eLfO5^zyXH z_k{izhh?hu;{R%M*ZyS~_N&&O=1V=E2_qfa*HSKH|M=pFzITsZnt@E_$@=qc2Iw&Z z%rMjbI^SLbd|d$f#r)+2BN4yg^k(n0#ne2VP^y(`*)^7mHPW4{SEzh%F!p70_re=aJpNCzyPJ%dn=kj9J|33xk#6uiMJHT{$tSD!Zj` z=VuWb>E8LyI5De9G#{&p8_wF5=EnSkHA&RP1u<~=Nj^Vs+Eh)`UsA`v>9Gg69CKya zHDL{e9Dp?NoD^G0@11UnLa+Ldr@;%;877zQG^H$TeUBfaau}MZq}sKXNp<|DG3{V+ z08z#pj|<(SbaYIAzr#j08nX{Z>bM^8O}3A)ckx36LgxdHr>7HW#HqoW^(#N_l_#r_ zMP(r;AQHEOBZ$GUsGcOBzNB;$#41ge$x#4Ju?G0U9dZ$dij8F%TfKO3go+%wj6CBe zNFx`#P=Bs-M1bzLfj=1j{2uLA{j`|ZH97**H2gz9eoJOCL+=x4?qOtzd!F=s-TN#y z^574F`YKw3{lF*-99X*X*pgiGT=lpb0F|N+5RU+!VaX?wY=}xv`ZQ7zx@y=>3v2@L z6LK)^dvFaQK~KB1Sg>=#Vwyyd0x$Vot8q7Y(_ipUTr&(98Zbyc1AU|p$ zSn;97HdzSrWWsqrLZcRDW_urOF0$al)}O5if+?OZ^k~;W35VJd1EQDSS5dw^N7=fp zX)(=PXKihq)au@UCaNhs*HN07=x@DA(n;lGB9?})OnwMNS?3fFGQ^u^*mg}RHdxm(4|e{aVxLx+Xu zQR&X$2lS1}gi?7_rj*a;ZfyBZyctiu=gy87*4&$8#oC7(`!qvR&@)04k{qdP)Nl?)9yGd1c->H23-D!i?a{ef+bb+(L^-+H?_ zAV1wNEV1LwFUYzNBO-nO{69CU%Q8pqiBcv~F zTq<(19`LxJ^Ze_sSGdfBcWW1IO{GtZ{&B|_ZNDM;KP_>e(`95%$MTk3k2^%{{=2y8 z@5PPzPjmmhSl4vvWh?@`AhnN7(o?^(c)aqT84K?MGr?dH^B<%9>+OH!*EzZwi?VJs zHT`Yo|1?=)Yl4CQ6|bK9M^Aho^h4`ysOk|Y0U?y?Es{g&_!~6I_y4+%ehInZ4wQy; z?d$I>gSLB8T14aoNI|F;+~Mz&i2Qju_WEBZX)V|4+`YDS)=vUMKXh493mtX6FIse= zl#8Ow+f`SenIn6>=M(rtZ!)(eJoc}Y{ukm!cOhP0x;6M7-6Ib|-q_Hy<`~4#5@M*J zu4#k+!m=aq7IwP`%P_efPs)_pNs!qYq+!rgpXz{kWIj4*`$QB|gvjLkq`N`C@SkzKC6eA1>RUqd(e1zKqk@_U9KA;7qHCR%PC|m^aj-52PuR!9b3+CT(aEeLR`H5 zD$Lmd6SwPqG-2T;4dI1na2&UNPCq7Oe)n%=BeNxT&1_-&a8cdvY zbJn>PYo6gYc*l1CVAtJZ_9pW`1BEH!o|I=~4k<-L;P%KUa@01utK$_7Gln9xwo!w?5DjF391!19C}LHbmeE^O|n7P(m6)_Utp5!ISn2KI10#lVUDE$LKkl%AE9aNX)!(v`Cj> zsHS?>{$H4rQzfJB-TK!@J`KB@bP_xc4HPSEX`yx^EYD>6Or4J

    Row8L1cf5Hxic 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 U?%KV^00DnyCKpbZ8NqM-FAzi__y7O^ literal 0 HcmV?d00001 diff --git a/doc/images/cluster/Makefile b/doc/images/cluster/Makefile new file mode 100644 index 0000000000..21fb7fb85e --- /dev/null +++ b/doc/images/cluster/Makefile @@ -0,0 +1,6 @@ +MMDC?=./node_modules/.bin/mmdc + +%.png : %.mermaid + $(MMDC) -i $< -e png -o $@ + +all: zeromq-cluster.png zeromq-pubsub.png zeromq-logging.png diff --git a/doc/images/cluster/README.md b/doc/images/cluster/README.md new file mode 100644 index 0000000000..ab93a3580c --- /dev/null +++ b/doc/images/cluster/README.md @@ -0,0 +1,24 @@ +## Install mermaid-cli + + npm install @mermaid-js/mermaid-cli + +## Apparmor Errors + +If running ``mmdc`` fails under Linux (e.g. with Ubuntu 24.04) with apparmor +errors about ``userns_create`` in the ``demsg`` output, put the following into +``/etc/apparmor.d/chrome-headless`` + + # This profile allows everything and only exists to give the + # application a name instead of having the label "unconfined" + abi , + include + + profile chrome /home/awelzel/.cache/puppeteer/**/chrome-headless-shell flags=(unconfined) { + userns, + + # Site-specific additions and overrides. See local/README for details. + include if exists + } + + +See also: https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md#option-2_a-safer-way diff --git a/doc/images/cluster/zeromq-cluster.mermaid b/doc/images/cluster/zeromq-cluster.mermaid new file mode 100644 index 0000000000..d5dd1bef86 --- /dev/null +++ b/doc/images/cluster/zeromq-cluster.mermaid @@ -0,0 +1,95 @@ +graph TD + + w1-xpub-->broker-xsub + broker-xpub-->w1-xsub + + w2-xpub-->broker-xsub + broker-xpub-->w2-xsub + + w3-xpub-->broker-xsub + broker-xpub-->w3-xsub + + p1-xpub-->broker-xsub + broker-xpub-->p1-xsub + + p2-xpub-->broker-xsub + broker-xpub-->p2-xsub + + l1-xpub-->broker-xsub + broker-xpub-->l1-xsub + + l2-xpub-->broker-xsub + broker-xpub-->l2-xsub + + m-xpub-->broker-xsub + broker-xpub-->m-xsub + + %% Logging + w1-push-->l1-pull + w1-push-->l2-pull + w2-push-->l1-pull + w2-push-->l2-pull + w3-push-->l1-pull + w3-push-->l2-pull + p1-push-->l1-pull + p1-push-->l2-pull + p2-push-->l1-pull + p2-push-->l2-pull + m-push-->l1-pull + m-push-->l2-pull + +subgraph broker ["broker"] + broker-xpub((XPUB)) + broker-xsub((XSUB)) + broker-xpub-->broker-xsub + broker-xsub-->broker-xpub +end + + +subgraph l1 [logger-1] + l1-xpub((XPUB)) + l1-xsub((XSUB)) + l1-pull(PULL) +end + +subgraph l2 [logger-2] + l2-xpub((XPUB)) + l2-xsub((XSUB)) + l2-pull(PULL) +end + +subgraph manager + m-xpub((XPUB)) + m-xsub((XSUB)) + m-push(PUSH) +end + +subgraph p1 [proxy-1] + p1-xpub((XPUB)) + p1-xsub((XSUB)) + p1-push(PUSH) +end + +subgraph p2 [proxy-2] + p2-xpub((XPUB)) + p2-xsub((XSUB)) + p2-push(PUSH) +end + +subgraph w1 [worker-1] + w1-xpub((XPUB)) + w1-xsub((XSUB)) + w1-push(PUSH) +end + +subgraph w2 [worker-2] + w2-xpub((XPUB)) + w2-xsub((XSUB)) + w2-push(PUSH) +end + +subgraph w3 [worker-3] + w3-xpub((XPUB)) + w3-xsub((XSUB)) + w3-push(PUSH) +end diff --git a/doc/images/cluster/zeromq-cluster.png b/doc/images/cluster/zeromq-cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2af6502a479d93ab5e11a73132c1f071f1e8ae GIT binary patch literal 47509 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 + w1-push-->l2-pull + w2-push-->l1-pull + w2-push-->l2-pull + w3-push-->l1-pull + w3-push-->l2-pull + p1-push-->l1-pull + p1-push-->l2-pull + p2-push-->l1-pull + p2-push-->l2-pull + m-push-->l1-pull + m-push-->l2-pull + +subgraph l1 [logger-1] + l1-pull(PULL) +end + +subgraph l2 [logger-2] + l2-pull(PULL) +end + +subgraph m [manager] + m-push(PUSH) +end + +subgraph p1 [proxy-1] + p1-push(PUSH) +end + +subgraph p2 [proxy-2] + p2-push(PUSH) +end + +subgraph w1 [worker-1] + w1-push(PUSH) +end + +subgraph w2 [worker-2] + w2-push(PUSH) +end + +subgraph w3 [worker-3] + + w3-push(PUSH) +end + diff --git a/doc/images/cluster/zeromq-logging.png b/doc/images/cluster/zeromq-logging.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9e9afb3eebdf4d9b7be7af2ebc284c1b012915 GIT binary patch literal 30770 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 literal 0 HcmV?d00001 diff --git a/doc/images/cluster/zeromq-pubsub.mermaid b/doc/images/cluster/zeromq-pubsub.mermaid new file mode 100644 index 0000000000..7710f8774f --- /dev/null +++ b/doc/images/cluster/zeromq-pubsub.mermaid @@ -0,0 +1,72 @@ +graph TD + + w1-xpub-->broker-xsub + broker-xpub-->w1-xsub + + w2-xpub-->broker-xsub + broker-xpub-->w2-xsub + + w3-xpub-->broker-xsub + broker-xpub-->w3-xsub + + p1-xpub-->broker-xsub + broker-xpub-->p1-xsub + + p2-xpub-->broker-xsub + broker-xpub-->p2-xsub + + l1-xpub-->broker-xsub + broker-xpub-->l1-xsub + + l2-xpub-->broker-xsub + broker-xpub-->l2-xsub + + m-xpub-->broker-xsub + broker-xpub-->m-xsub + +subgraph broker ["broker"] + broker-xpub((XPUB)) + broker-xsub((XSUB)) + broker-xpub-->broker-xsub + broker-xsub-->broker-xpub +end + +subgraph l1 [logger-1] + l1-xpub((XPUB)) + l1-xsub((XSUB)) +end + +subgraph l2 [logger-2] + l2-xpub((XPUB)) + l2-xsub((XSUB)) +end +subgraph m [manager] + m-xpub((XPUB)) + m-xsub((XSUB)) +end + +subgraph p1 [proxy-1] + p1-xpub((XPUB)) + p1-xsub((XSUB)) +end + +subgraph p2 [proxy-2] + p2-xpub((XPUB)) + p2-xsub((XSUB)) +end + +subgraph w1 [worker-1] + w1-xpub((XPUB)) + w1-xsub((XSUB)) +end + +subgraph w2 [worker-2] + w2-xpub((XPUB)) + w2-xsub((XSUB)) +end + +subgraph w3 [worker-3] + w3-xpub((XPUB)) + w3-xsub((XSUB)) +end + diff --git a/doc/images/cluster/zeromq-pubsub.png b/doc/images/cluster/zeromq-pubsub.png new file mode 100644 index 0000000000000000000000000000000000000000..108946d75ac2fcd9d82299148ea575a971eec28f GIT binary patch literal 44089 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 Ogd!uMC=L@f3j80G5Q~}s literal 0 HcmV?d00001 diff --git a/doc/images/collection-figure1.png b/doc/images/collection-figure1.png new file mode 100644 index 0000000000000000000000000000000000000000..793bed5ee3fa842a314e729d962f725a3044a491 GIT binary patch literal 14837 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 literal 0 HcmV?d00001 diff --git a/doc/images/collection-figure2.png b/doc/images/collection-figure2.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac1a59a16da623da69bec7ac144ed81c2c2af3d GIT binary patch literal 18885 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 literal 0 HcmV?d00001 diff --git a/doc/images/collection-figure3.png b/doc/images/collection-figure3.png new file mode 100644 index 0000000000000000000000000000000000000000..2f45d84dfe794dd71b0b059f54ead77cbc8be159 GIT binary patch literal 18198 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 AqyPW_ literal 0 HcmV?d00001 diff --git a/doc/images/deployment.png b/doc/images/deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..abd9b927225e7041724fcfc22a393d49dd284a22 GIT binary patch literal 36081 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

    P>7{V)OoUAhv2p?Lt?N3PA69sA7fck?xtce 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 ODTAl0pUXO@geCx1bEKL8 literal 0 HcmV?d00001 diff --git a/doc/images/intel-architecture.png b/doc/images/intel-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..e10a5adc791cc5bc94d27fdaaaaa9c1c1fdbdf1e GIT binary patch literal 27576 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�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 literal 0 HcmV?d00001 diff --git a/doc/images/management-all-in-one-two-zeeks.svgz b/doc/images/management-all-in-one-two-zeeks.svgz new file mode 100644 index 0000000000000000000000000000000000000000..fae14164e99eabaec5cf7069ff2ff535e24af2d7 GIT binary patch literal 3573 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�>vUbXnrE^t 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 literal 0 HcmV?d00001 diff --git a/doc/images/management-all-in-one.svgz b/doc/images/management-all-in-one.svgz new file mode 100644 index 0000000000000000000000000000000000000000..ae26d3a7293f44e6cac22248c006b43dce946f79 GIT binary patch literal 3519 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 literal 0 HcmV?d00001 diff --git a/doc/images/management.png b/doc/images/management.png new file mode 100644 index 0000000000000000000000000000000000000000..2103c4d5d7f51e42a7bc3732d28d156944f95147 GIT binary patch literal 100146 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 O$Yr=pbs!)5~KD~N0>g9EcOe?+} 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 E21|E|S^xk5 literal 0 HcmV?d00001 diff --git a/doc/images/management.svgz b/doc/images/management.svgz new file mode 100644 index 0000000000000000000000000000000000000000..067842635c811297d0beb6b9698f940f7e0b8888 GIT binary patch literal 4109 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 z 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⪻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

    Jvqp-HWY|6>jNr(q29 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 literal 0 HcmV?d00001 diff --git a/doc/images/websocket-api/one-api-many-zeek-ws-bridge.svg b/doc/images/websocket-api/one-api-many-zeek-ws-bridge.svg new file mode 100644 index 0000000000..5bb224b906 --- /dev/null +++ b/doc/images/websocket-api/one-api-many-zeek-ws-bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/images/websocket-api/one-api-many-zeek.svg b/doc/images/websocket-api/one-api-many-zeek.svg new file mode 100644 index 0000000000..7171dd712c --- /dev/null +++ b/doc/images/websocket-api/one-api-many-zeek.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/images/zeek-favicon.ico b/doc/images/zeek-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c979c540376d6972abd9ebe030d5fce22df77f70 GIT binary patch literal 15086 zcmeHOcW{$e5|@L40A_|zLODVwKp=F83898!V3MO{C;^60ZMZ;SlE4rGrZXgT!%>cK z$%P5Mni>qo$A#WZFK!SpZjx=;mMmG?+uwo|NtWbKMzZrqc4qaJ_rCY`we3=={8S}W zEnBMiT1U0Lp-R+mP4(TsR6(BQ?z*)I__ zW8B7=#aLvZR;wv9GgE1QMy_~@u?M4{WgL7T$atNxNI|F5(Py81M#F{;qlAP6Px^k! zm4`F>G1g@~&sgM;laoW;x^*L-N9x|aJKes0+Y=go=gK`9moS<=`OsT+O(qi!A3mJQ zlqo}H%a*0qty|Oi^BzrQ1k>WtpuI)ArJZThrcsL)EojAx6;!246>89+0UbMb%u-y? z)xZ^W1y%B8Iq0rkyEetg$J4=s2j#wc_3HG?FTW7h$5SvGjr8Eb1G;(hrqA*2-Mh4O z=~Ajtp#ojFa6w3oii)Cl-+fo!g@uKY!GI}N4mWPxkTtASsS;JLT$$c@;|-r-#flZF zT)A>os#GaDa^#4W$mr;3>fE`roQZk!=23QbwzaIFo3ykv>esKI@PwW{d(yIH%Vdr) zPrgFT^YiD=?MTCZ>fgV=jBU!4DWuV8?8@CefR8n8+LRhKYDCws7r9ull9rsDOykFo zmoa?$>8JGU*)wZdK{rQ_9up!ut>zM_sDJ9@NsiW>KzQfg`{O`JH9 z{QdoD+_-TBxvdmXH!(4h%;sVd(V`a(95|3lmo80Hr%v_g94i^4*^ox2?1vtsLHm%> zHA$q^W>H>Vp3|;w-MU3Mf6y)F&!6uRA9dQG!%K5+3T0gEM`^#-Aoat)W%v%_^0tWXY0r;J^Xt2K)5Tp+i)+Ze6NTqXuo?zP(U-ge#gI-y4#` zDeXj68AJNnKr*C8kTLx-<0ZFf&|IRVr}t^~>NNy8eEITaX?p9{t-`k(Hf%`8j~{pJ z&L_|MgiVxsgy%fmpR(`GW^G)#&a!;@a;jIap6FcPfB!v|FJGS8v}t42hkQb?W20sx zW#11K`csdTAzgeJ*HFf&$BzsA&Q}%8xzB|k;XJD&>XA|XKet^$K4QK>|AYw>C?zGu zZT+Gs%*(n@>Hlp?Q4uab)K6@n-?(;qco4UF%Y2=0oe4ua;%L zRD$`_9FO>_ug3c5(Ie{Hx38SJPMtbYR+bxgojI4~!7QO4@@KmS}2 z4JQ3l$~fO!#-Kjckc^raz6M1fzhWiuhW-2ZQ>|LHM4#HRV~5C?`t|F}IFvST<*R(2 zp(mNLA1VE`(Dk5~|M0^P;zxlkf8xXmY3u6MtD6x{)!+=kCf)VVfu#AZD`lMPO6h!6hFwI@@WnZR z4gwn)J~8-Qo<4=E-8Dc5Fd5lDmggaw^sXB%WC>yju$AF6`QnQ&ylyKiB@5^7%9Se~ z`8*(p1`HTLetv%R?YG|&_J45!{BGdS@M9(=B`G2U^iG;IN%U~|tI$Sq0dzX}UBM$D zW0d;N;Me-{%P(dBeEjjp6dM~`Ttg6F34EW}%WK!JRji|8tkB5=0s`2#@qt_aEo7Uo z5EBQ#EBrt3;px+-#V1y+S~c;pzy0>xsX0OB!N6Pzu?eX3TiD)Ko!J)PiR^);d&%&8M7F!&8#3>^Zop2dq7ORNoZ0zUgE z07U^;#PoXg>Lqd+z8dgn@Y!Mp7^PDfbCu8mU1I3aq2jN6?X}lLzIYlRRML+Jb$;f$ z6&ZIc{RZ*9$&)7&=zs6M_Y}uMl(z3dy=z>z8FD!ITALALP~^CTuCZv*BGFNcLC?S; zh5;7{+AYA(SO@GSlojag03U*!C_;cj2FED!HR@XEj>k=Dl`0a~5-L?FuGY*NJp2W( zG6SJ6Kb9-cYb2g|p3`yVc}JdB9mcMV);ulF<#GnRZXYq)2YUELVF9sm7wF#Zcq()l z5e5;Kc;nVdlfG;5D0k)^R zz2LN0_Boq!64*Z&;}-SWc+#lT$g=j9wxF-KZQGW>8{GP~Egv{s4arA2c2f6cJiVsG z))8N~MfJ%V6tlk;4eHyRLP92seT{v+bLUPu1K_=U64uUK>GXqw{zCG2_XJ*cc##wi(AWG*xP@|%W=$mdlfoh-`~4;&#no~z4qEjO5?T2P26Kw=FJDJ zU$bV-L??G_SK=S%dhnU7%`s(fuQN%$NXwQj>8-ckBIGbQgFNkR&Q)p7XS0>tn6R^N zUA@CO{qe^iMRu=Sw~oe+9ZNs|43o?`7}KJ74r)=xg&?;vUFTohzXg9n?k(mVd zD5wwpW8zSHet9}&-<(8Q`EW96BAZEU9JvZqNFO%%GWauW_>(733SqE=7c5*v<3{$R z*duKyJ*oxIw-bzNEo*>1>54DdkJSDN_G?H;2qE?fzlbe>hhtuhxf$Fx`&(Qh=aQQ8 z=g>(kzzy%k97AV;PcSAX#*@w&;i}a0pt?T zojX_7-V%?q^o{w0|F*CQT?2D~{3CZf8GCKbnl-ZbA;Yllc=z?!UyJUByye1Tmo8l- z*A?sR&OXQ4-?nX=$ZXJpGl6_%&;VT;_C#TE-@bkFKL(7;2GVWrt+&V%#{UQA%$XxP zE8?X-01)ybLC;C!=gyrI|15m0@XPoBAfVea!e`_Zkn;t-9l6S02H3nG!5-%;Xuv!; z_1Pj`5EmE6#a;n0s7S`1jDC^qH3%&R&kXuR-|$nwEm4Qj>ZjoUnmGc~I+M}4!p8*` zKs+3}uFV;PeZ7=11^XWF!S9?Q&faPE8H^k`Qsk|Tjgp1-@m~()1+HGbnpUk^l@IYA zIxp-e$WG|qwz*7*1;Dos`2yWMJtIG6W@^P&2d#$>9~L{-HkSx{!IHOcHl(t+iItoQ zORjRJI)VA5UfKYk01vSl2ZmvVoS0>jbCGpx3ITO@rqbRm!TcYa9WsYowrmleYyH6C z#-w}9IW(ilkbI0wU|X0eDk@U)hIj4SWxECrU;go!ml-X3WM1YCd5IVb@)+FNDzMGL z3oSk-L+UA}V+@&ePyT4w#U0ii{1x^|~v+iVo%!SJ(ds0WXFeMegvv zefxQ?CQ{Drm-6K{JA>?k4vD=Xas@Iii}OTs`M(<$G;mD$rT&0?OJ%;$pq&I-{Svqr%s)cS;ks9LmN2*856=NMkDHC{g7{?0FX>GGt`kGc<>y`{?Y#f D;YmNu literal 0 HcmV?d00001 diff --git a/doc/images/zeek-logo-sidebar.png b/doc/images/zeek-logo-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5c0cc52815171e010752fcadaf50c08889a23f GIT binary patch literal 5571 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 PD+{2k>=Camyb}Ho)v%x6 literal 0 HcmV?d00001 diff --git a/doc/images/zeek-logo-text.png b/doc/images/zeek-logo-text.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea172adc32a7bcf3df7b7627b87bc400cdf2b89 GIT binary patch literal 8229 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 i-!;bA9J_I%l=?r<|7hw2iITto0000`. + +The purpose of this manual is to assist the Zeek community with implementing +Zeek in their environments. It includes material on Zeek's unique +capabilities, how to install it, how to interpret the default logs that Zeek +generates, and how to modify Zeek to fit your needs. This documentation is the +result of a volunteer community effort. If you would like to contribute, or +want more information, please visit the `Zeek web page +`_ for details on how +to connect with the community. + +.. toctree:: + :maxdepth: 2 + :caption: Table of Contents + + get-started + about + monitoring + log-formats + logs/index + scripting/index + frameworks/index + customizations + troubleshooting + script-reference/index + devel/index + components/index + acknowledgements + +* :ref:`Index ` + +.. _documentation-versioning: + +Documentation Versioning +======================== + +.. attention:: + + The Zeek codebase has three primary branches of interest to users so this + document is also maintained as three different versions, one associated with + each branch of Zeek. The default version of `docs.zeek.org + `_ tracks Zeek's latest Git development: + + * Git *master* branch: https://docs.zeek.org/en/master + + If you instead use a Zeek Long-Term Support (LTS) or Feature release these + are the appropriate starting points: + + * Long-Term Support Release: https://docs.zeek.org/en/lts + * Current Feature Release: https://docs.zeek.org/en/current + + To help clarify which release you are using, the version numbering + scheme for the two release branches is described in the `Release + Cadence `_ policy. + + Documentation for older Zeek releases remains available for approximately one + full major-version release cycle, i.e., about a year. You can browse recent + versions via the fly-out menu in the bottom left, and find all available + versions on the `RTD website `_. diff --git a/doc/install.rst b/doc/install.rst new file mode 100644 index 0000000000..f8cf15c652 --- /dev/null +++ b/doc/install.rst @@ -0,0 +1,140 @@ + +.. _Homebrew: https://brew.sh +.. _zkg package manager: https://docs.zeek.org/projects/package-manager/en/stable/ + +.. _installing-zeek: + +=============== +Installing Zeek +=============== + +To run Zeek, grab our official Docker images, download our Linux binary +packages, install via Homebrew_ on your Mac, use the ports collections on FreeBSD +and OpenBSD. See the :doc:`building-from-source` section to build Zeek yourself. +For details about our release cadence and the significance of Zeek's version +numbers, please refer to our `Release Cadence +`_ wiki page. + +.. _docker-images: + +Docker Images +============= + +We provide official Docker images on Docker Hub at https://hub.docker.com/u/zeek + + * For the latest feature release: ``docker pull zeek/zeek:latest`` + * For the latest LTS release: ``docker pull zeek/zeek:lts`` + * For the latest release in a given series: ``docker pull zeek/zeek:7.2`` + * For a specific release: ``docker pull zeek/zeek:7.0.8`` + * For the nightly build: ``docker pull zeek/zeek-dev:latest`` + +Additionally, we push these images to Amazon's Public Elastic Container +Registry (ECR) in the `Zeek Project `_ +public gallery. To use Amazon's container registry instead of Docker Hub, +prefix images with ``public.ecr.aws/zeek`` instead of ``zeek``. + + * For instance, to pull the latest feature release: ``docker pull public.ecr.aws/zeek/zeek:latest`` + +The images are Debian-based and feature a complete Zeek installation with ``zeek``, +``zkg``, and the Spicy toolchain, but are otherwise minimal to avoid bloat in +derived images. For example, if you'd like to install Zeek plugins in those +images, you'll need to install their needed toolchain, typically at least +``g++`` for compilation, ``cmake`` and ``make`` as build tools, and +``libpcap-dev`` to build against Zeek headers. Similarly, you'll need ``g++`` +for Spicy's JIT compilation, as well as ``cmake`` and ``make`` to build Spicy +analyzer packages. + + .. code-block:: console + + apt-get update + apt-get install -y --no-install-recommends g++ cmake make libpcap-dev + +The source files used to create the container images are on +`GitHub `_. + +.. _binary-packages: + +Binary Packages +=============== + +Linux +----- + +We provide `binary packages `_ +for a wide range of Linux distributions via the `openSUSE Build Service +`_. To install, first add the relevant OBS +package repository to your system, then use your system's package manager +as usual. + +We provide the following groups of packages: + + * ``zeek-X.0``: specific LTS release lines, currently `7.0.x `_ (`sources `__), `6.0.x `_ (`sources `__), and `5.0.x `_ (`sources `__). + * ``zeek``: the `latest Zeek release `_ (`sources `__) + * ``zeek-nightly``: our `nightly builds `_ (`sources `__) + * ``zeek-rc``: our `release candidates `_ (`sources `__) + +For example, for the latest Zeek 7.0 LTS release on Ubuntu 22.04 the steps look as follows: + + .. code-block:: console + + echo 'deb https://download.opensuse.org/repositories/security:/zeek/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list + curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null + sudo apt update + sudo apt install zeek-7.0 + +.. note:: Our motivation for this approach is twofold. First, it guarantees LTS + users that they won't unexpectedly end up on a newer LTS line when it comes + out. For example, when you install the ``zeek-6.0`` packages, you will not + end up on Zeek 7.0 until you decide to switch. Second, it reflects the fact + that we consider our x.1 and x.2 feature release lines transient, because + they go out of support immediately once we move to the next line of feature + releases. Therefore, users of the ``zeek`` packages automatically obtain the + latest releases as we publish them. + + In the past our binary packages also automatically transitioned our LTS users + to newer versions, via the older ``zeek-lts`` packages. These remain visible + on OBS but are no longer supported. + +The primary install prefix for binary packages is :file:`/opt/zeek` (depending +on which version you’re using), and includes a complete Zeek environment with +``zeek`` itself, the `zkg package manager`_, the Spicy toolchain, etc. + +See our `Binary Packages wiki page `_ +for the latest updates on binary releases. + +macOS +----- + +The Zeek `Homebrew formula `_ +provides binary packages ("bottles"). To install: + + .. code-block:: console + + brew install zeek + +These packages are not maintained by the Zeek project. + +FreeBSD +------- + +Zeek is available from the `FreeBSD ports collection `_. +To install: + + .. code-block:: console + + sudo pkg install -y zeek + +These packages are not maintained by the Zeek project. + +OpenBSD +------- + +Zeek is available from the `OpenBSD ports collection `_. +To install: + + .. code-block:: console + + sudo pkg_add zeek + +These packages are not maintained by the Zeek project. + diff --git a/doc/log-formats.rst b/doc/log-formats.rst new file mode 100644 index 0000000000..d239a1acf1 --- /dev/null +++ b/doc/log-formats.rst @@ -0,0 +1,657 @@ +.. _logschema: https://github.com/zeek/logschema + +=============================== +Zeek Log Formats and Inspection +=============================== + +Zeek creates a variety of logs when run in its default configuration. This +data can be intimidating for a first-time user. In this section, we will +process a sample packet trace with Zeek, and take a brief look at the sorts +of logs Zeek creates. We will look at logs created in Zeek's traditional TSV +format, how to switch to logging in JSON format, and assorted tooling to +help you work with the logs. Finally, we'll cover Zeek's support for log +schemas that describe what Zeek's logs look like in detail. + +Working with a Sample Trace +=========================== + +For the examples that follow, we will use Zeek on a Linux system to process +network traffic captured and stored to disk. We saved this trace file earlier +in packet capture (PCAP) format as :file:`tm1t.pcap`. The command line protocol +analyzer Tcpdump, which ships with most Unix-like distributions, summarizes the +contents of this file. + +.. code-block:: console + + zeek@zeek:~/zeek-test$ tcpdump -n -r tm1t.pcap + +:: + + reading from file tm1t.pcap, link-type EN10MB (Ethernet) + 14:39:59.305988 IP 192.168.4.76.36844 > 192.168.4.1.53: 19671+ A? testmyids.com. (31) + 14:39:59.306059 IP 192.168.4.76.36844 > 192.168.4.1.53: 8555+ AAAA? testmyids.com. (31) + 14:39:59.354577 IP 192.168.4.1.53 > 192.168.4.76.36844: 8555 0/1/0 (94) + 14:39:59.372840 IP 192.168.4.1.53 > 192.168.4.76.36844: 19671 1/0/0 A 31.3.245.133 (47) + 14:39:59.430166 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [S], seq 3723031366, win 65535, options [mss 1460,sackOK,TS val 3137978796 ecr 0,nop,wscale 11], length 0 + 14:39:59.512232 IP 31.3.245.133.80 > 192.168.4.76.46378: Flags [S.], seq 2993782376, ack 3723031367, win 28960, options [mss 1460,sackOK,TS val 346747623 ecr 3137978796,nop,wscale 7], length 0 + 14:39:59.512284 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [.], ack 1, win 32, options [nop,nop,TS val 3137978878 ecr 346747623], length 0 + 14:39:59.512593 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [P.], seq 1:78, ack 1, win 32, options [nop,nop,TS val 3137978878 ecr 346747623], length 77: HTTP: GET / HTTP/1.1 + 14:39:59.600488 IP 31.3.245.133.80 > 192.168.4.76.46378: Flags [.], ack 78, win 227, options [nop,nop,TS val 346747711 ecr 3137978878], length 0 + 14:39:59.604000 IP 31.3.245.133.80 > 192.168.4.76.46378: Flags [P.], seq 1:296, ack 78, win 227, options [nop,nop,TS val 346747713 ecr 3137978878], length 295: HTTP: HTTP/1.1 200 OK + 14:39:59.604020 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [.], ack 296, win 33, options [nop,nop,TS val 3137978970 ecr 346747713], length 0 + 14:39:59.604493 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [F.], seq 78, ack 296, win 33, options [nop,nop,TS val 3137978970 ecr 346747713], length 0 + 14:39:59.684281 IP 31.3.245.133.80 > 192.168.4.76.46378: Flags [F.], seq 296, ack 79, win 227, options [nop,nop,TS val 346747796 ecr 3137978970], length 0 + 14:39:59.684346 IP 192.168.4.76.46378 > 31.3.245.133.80: Flags [.], ack 297, win 33, options [nop,nop,TS val 3137979050 ecr 346747796], length 0 + +This is a simple exchange involving domain name system (DNS) traffic followed +by HyperText Transfer Protocol (HTTP) traffic. + +Rather than run Zeek against a live interface, we will ask Zeek to digest this +trace. This process allows us to vary Zeek’s run-time operation, keeping the +traffic constant. + +First we make two directories to store the log files that Zeek will produce. +Then we will move into the “default” directory. + +.. code-block:: console + + zeek@zeek:~/zeek-test$ mkdir default + zeek@zeek:~/zeek-test$ mkdir json + zeek@zeek:~/zeek-test$ cd default/ + +Zeek TSV Format Logs +==================== + +From this location on disk, we tell Zeek to digest the :file:`tm1t.pcap` file. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ zeek -C -r ../tm1t.pcap + +The ``-r`` flag tells Zeek where to find the trace of interest. + +The ``-C`` flag tells Zeek to ignore any TCP checksum errors. This happens on +many systems due to a feature called “checksum offloading,” but it does not +affect our analysis. + +Zeek completes its task without reporting anything to the command line. This is +standard Unix-like behavior. Using the :program:`ls` command we see what files +Zeek created when processing the trace. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ ls -al + +:: + + total 28 + drwxrwxr-x 2 zeek zeek 4096 Jun 5 14:48 . + drwxrwxr-x 4 zeek zeek 4096 Jun 5 14:43 .. + -rw-rw-r-- 1 zeek zeek 737 Jun 5 14:48 conn.log + -rw-rw-r-- 1 zeek zeek 778 Jun 5 14:48 dns.log + -rw-rw-r-- 1 zeek zeek 712 Jun 5 14:48 files.log + -rw-rw-r-- 1 zeek zeek 883 Jun 5 14:48 http.log + -rw-rw-r-- 1 zeek zeek 254 Jun 5 14:48 packet_filter.log + +Zeek created five files. We will look at the contents of Zeek log data in +detail in later sections. For now, we will take a quick look at each file, +beginning with the :file:`conn.log`. + +We use the :program:`cat` command to show the contents of each log. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat conn.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path conn + #open 2020-06-05-14-48-32 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig local_resp missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents ip_proto + #types time string addr port addr port enum string interval count count string bool bool count string count count count count set[string] count + 1591367999.305988 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp dns 0.066852 62 141 SF - -0 Dd 2 118 2 197 - 17 + 1591367999.430166 CLqEx41jYPOdfHF586 192.168.4.76 46378 31.3.245.133 80 tcp http 0.254115 77 295 SF - -0 ShADadFf 6 397 4 511 - 6 + #close 2020-06-05-14-48-32 + +Next we look at Zeek’s :file:`dns.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path dns + #open 2020-06-05-14-48-32 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id rtt query qclass qclass_name qtypeqtype_name rcode rcode_name AA TC RD RA Z answers TTLs rejected + #types time string addr port addr port enum count interval string count string count string count string bool bool bool bool count vector[string] vector[interval] bool + 1591367999.306059 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 8555 - testmyids.com 1 C_INTERNET 28 AAAA 0 NOERROR F F T F 0 - - F + 1591367999.305988 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 19671 0.066852 testmyids.com 1 C_INTERNET 1 A 0 NOERROR F F T T 0 31.3.245.133 3600.000000 F + #close 2020-06-05-14-48-32 + +Next we look at Zeek’s :file:`files.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat files.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path files + #open 2020-06-05-14-48-32 + #fields ts fuid uid id.orig_h id.origh_p id.resp_h id.resp_p source depth analyzers mime_type filename duration local_orig is_orig seen_bytes total_bytes missing_bytes overflow_bytes timedout parent_fuid md5 sha1 sha256 extracted extracted_cutoff extracted_size + #types time string string addr port addr port string count set[string] string string interval bool bool countcount count count bool string string string string string bool count + 1591367999.604000 FEEsZS1w0Z0VJIb5x4 CLqEx41jYPOdfHF586 192.168.4.76 46378 31.3.245.133 80 HTTP 0 (empty) text/plain - 0.000000 - F 39 39 0 0 F - - - - - - - + #close 2020-06-05-14-48-32 + +Next we look at Zeek’s :file:`http.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat http.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path http + #open 2020-06-05-14-48-32 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer version user_agent origin request_body_len response_body_len status_code status_msg info_code info_msg tags username password proxied orig_fuids orig_filenames orig_mime_types resp_fuids resp_filenames resp_mime_types + #types time string addr port addr port count string string string string string string string count count count string countstring set[enum] string string set[string] vector[string] vector[string] vector[string] vector[string] vector[string] vector[string] + 1591367999.512593 CLqEx41jYPOdfHF586 192.168.4.76 46378 31.3.245.133 80 1 GET testmyids.com / - 1.1 curl/7.47.0 - 0 39 200 OK - - (empty) - - - - - - FEEsZS1w0Z0VJIb5x4 - text/plain + #close 2020-06-05-14-48-32 + +Finally, we look at Zeek’s :file:`packet_filter.log`. This log shows any +filters that Zeek applied when processing the trace. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat packet_filter.log + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path packet_filter + #open 2020-06-05-14-48-32 + #fields ts node filter init success + #types time string string bool bool + 1591368512.420771 zeek ip or not ip T T + #close 2020-06-05-14-48-32 + +As we can see with each log file, there is a set of headers beginning with the +hash character (``#``) followed by metadata about the trace. This format is the +standard version of Zeek data, represented as tab separated values (TSV). + +Interpreting this data as shown requires remembering which “column” applies to +which “value.” For example, in the :file:`dns.log`, the third field is +``id.orig_h``, so when we see data in that field, such as ``192.168.4.76``, we +know that ``192.168.4.76`` is ``id.orig_h``. + +One of the common use cases for interacting with Zeek log files requires +analyzing specific fields. Investigators may not need to see all of the fields +produced by Zeek when solving a certain problem. The following sections offer a +few ways to address this concern when processing Zeek logs in text format. + +Zeek TSV Format and :program:`awk` +================================== + +A very traditional way of interacting with Zeek logs involves using native +Unix-like text processing tools like :program:`awk`. Awk requires specifying +the fields of interest as positions in the log file. Take a second look at the +:file:`dns.log` entry above, and consider the parameters necessary to view only +the source IP address, the query, and the response. These values appear in the +3rd, 10th, and 22nd fields in the Zeek TSV log entries. Therefore, we could +invoke :program:`awk` using the following syntax: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ awk '/^[^#]/ {print $3, $10, $22}' dns.log + +:: + + 192.168.4.76 testmyids.com - + 192.168.4.76 testmyids.com 31.3.245.133 + +Now we have a much more compact view, with just the fields we want. +Unfortunately, this requires specifying fields by location. If we were to +modify the log output, or if the Zeek project were to change the log output, +any scripts we built using :program:`awk` and field locations would require +modification. For this reason, the Zeek project recommends alternatives like +the following. + +Zeek TSV Format and :program:`zeek-cut` +======================================= + +The Zeek project provides a tool called :program:`zeek-cut` to make it easier +for analysts to interact with Zeek logs in TSV format. It parses the header in +each file and allows the user to refer to the specific columnar data available. +This is in contrast to tools like :program:`awk` that require the user to refer +to fields referenced by their position. + +Consider the :file:`dns.log` generated earlier. If we process it with +:program:`zeek-cut`, without any modifications, this is the result: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log | zeek-cut + +:: + + 1591367999.306059 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 8555 - testmyids.com 1 C_INTERNET 28 AAAA 0 NOERROR F F T F 0 - - F + 1591367999.305988 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 19671 0.066852 testmyids.com 1 C_INTERNET 1 A 0 NOERROR F F T T 0 31.3.245.133 3600.000000 F + +That is the :file:`dns.log`, minus the header fields showed earlier. Note we +have to invoke the cat utility in a pipeline to process files with +:program:`zeek-cut`. + +If we pass :program:`zeek-cut` the fields we wish to see, the output looks like +this: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log | zeek-cut id.orig_h query answers + +:: + + 192.168.4.76 testmyids.com - + 192.168.4.76 testmyids.com 31.3.245.133 + +The sequence of field names given to :program:`zeek-cut` determines the output +order. This means you can also use :program:`zeek-cut` to reorder fields. For +example: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log | zeek-cut query answers id.orig_h + +:: + + testmyids.com - 192.168.4.76 + testmyids.com 31.3.245.133 192.168.4.76 + +This feature can be helpful when piping output into programs like :program:`sort`. + +:program:`zeek-cut` uses output redirection through the :program:`cat` command +and ``|`` operator. Whereas tools like :program:`awk` allow you to indicate the +log file as a command line option, :program:`zeek-cut` only takes input through +redirection such as ``|`` and ``<``. + +For example, instead of using :program:`cat` and the pipe redirector, we could +obtain the previous output with this syntax: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ zeek-cut id.orig_h query answers < dns.log + +:: + + 192.168.4.76 testmyids.com - + 192.168.4.76 testmyids.com 31.3.245.133 + +Note that in its default setup using ZeekControl (but not with a simple +command-line invocation like ``zeek -i eth0``), watching a live interface and +writing logs to disk, Zeek will rotate log files on an hourly basis. Zeek will +move the current log file into a directory named using the format +``YYYY-MM-DD``. Zeek will use :program:`gzip` to compress the file with a naming +convention that includes the log file type and time range of the file. + +When processing a compressed log file, use the :program:`zcat` tool instead of +:program:`cat` to read the file. Consider working with the gzip-encoding file +created in the following example. For demonstration purposes, we create a copy +of the :file:`dns.log` file as :file:`dns1.log`, :program:`gzip` it, and then +read it with :program:`zcat` instead of :program:`cat`. + +.. code-block:: console + + so16@so16:~/zeek-test/default$ cp dns.log dns1.log + so16@so16:~/zeek-test/default$ gzip dns1.log + so16@so16:~/zeek-test/default$ zcat dns1.log.gz + +:: + + #separator \x09 + #set_separator , + #empty_field (empty) + #unset_field - + #path dns + #open 2020-06-05-14-48-32 + #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id rtt query qclass qclass_name qtypeqtype_name rcode rcode_name AA TC RD RA Z answers TTLs rejected + #types time string addr port addr port enum count interval string count string count string count string bool bool bool bool count vector[string] vector[interval] bool + 1591367999.306059 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 8555 - testmyids.com 1 C_INTERNET 28 AAAA 0 NOERROR F F T F 0 - - F + 1591367999.305988 CazOhH2qDUiJTWMCY 192.168.4.76 36844 192.168.4.1 53 udp 19671 0.066852 testmyids.com 1 C_INTERNET 1 A 0 NOERROR F F T T 0 31.3.245.133 3600.000000 F + #close 2020-06-05-14-48-32 + +:program:`zeek-cut` accepts the flag ``-d`` to convert the epoch time values in +the log files to human-readable format. For example, observe the default +timestamp value: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ zcat dns1.log.gz | zeek-cut ts id.orig_h query answers + +:: + + 1591367999.306059 192.168.4.76 testmyids.com - + 1591367999.305988 192.168.4.76 testmyids.com 31.3.245.133 + +Now see the effect of using the ``-d`` flag: + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log | zeek-cut -d ts id.orig_h query answers + +:: + + 2020-06-05T14:39:59+0000 192.168.4.76 testmyids.com - + 2020-06-05T14:39:59+0000 192.168.4.76 testmyids.com 31.3.245.133 + +Converting the timestamp from a log file to UTC can be accomplished with the +``-u`` option. + +The default time format when using the ``-d`` or ``-u`` is the ``strftime`` +format string ``%Y-%m-%dT%H:%M:%S%z`` which results in a string with year, +month, day of month, followed by hour, minutes, seconds and the timezone +offset. + +The default format can be altered by using the ``-D`` and ``-U`` flags, using the +standard ``strftime`` syntax. For example, to format the timestamp in the +US-typical “Middle Endian” you could use a format string of: +``%m-%d-%YT%H:%M:%S%z`` + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cat dns.log | zeek-cut -D %d-%m-%YT%H:%M:%S%z ts id.orig_h query answers + +:: + + 06-05-2020T14:39:59+0000 192.168.4.76 testmyids.com - + 06-05-2020T14:39:59+0000 192.168.4.76 testmyids.com 31.3.245.133 + +Using :program:`awk` and :program:`zeek-cut` have been the traditional method +of interacting with Zeek logs. In the next section we will look at the +possibilities once we enable an alternative output format. + +Zeek JSON Format Logs +===================== + +During the last decade, the JavaScript Object Notation (JSON) format has become +a standard way to label and store many types of data. Zeek offers support for +this format. In the following example we will re-run the :file:`tm1t.pcap` trace +through Zeek, but request that it output logs in JSON format. + +First we change into the json directory to avoid overwriting our existing log +files. + +.. code-block:: console + + zeek@zeek:~/zeek-test/default$ cd ../json/ + +Next we tell Zeek to output logs in JSON format using the command as shown. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ zeek -C -r ../tm1t.pcap LogAscii::use_json=T + +When we look at the directory contents, we see the same five output files. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ ls -al + +:: + + total 28 + drwxrwxr-x 2 zeek zeek 4096 Jun 5 14:47 . + drwxrwxr-x 4 zeek zeek 4096 Jun 5 14:43 .. + -rw-rw-r-- 1 zeek zeek 708 Jun 5 14:47 conn.log + -rw-rw-r-- 1 zeek zeek 785 Jun 5 14:47 dns.log + -rw-rw-r-- 1 zeek zeek 325 Jun 5 14:47 files.log + -rw-rw-r-- 1 zeek zeek 405 Jun 5 14:47 http.log + -rw-rw-r-- 1 zeek zeek 90 Jun 5 14:47 packet_filter.log + +However, if we look at the file contents, the format is much different. + +First we look at :file:`packet_filter.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ cat packet_filter.log + +:: + + {"ts":1591368442.854585,"node":"zeek","filter":"ip or not ip","init":true,"success":true} + +Next we look at :file:`conn.log` and :file:`dns.log`: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ cat conn.log + +:: + + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","service":"dns","duration":0.06685185432434082,"orig_bytes":62,"resp_bytes":141,"conn_state":"SF","missed_bytes":0,"history":"Dd","orig_pkts":2,"orig_ip_bytes":118,"resp_pkts":2,"resp_ip_bytes":197,"ip_proto":17} + {"ts":1591367999.430166,"uid":"C5bLoe2Mvxqhawzqqd","id.orig_h":"192.168.4.76","id.orig_p":46378,"id.resp_h":"31.3.245.133","id.resp_p":80,"proto":"tcp","service":"http","duration":0.25411510467529297,"orig_bytes":77,"resp_bytes":295,"conn_state":"SF","missed_bytes":0,"history":"ShADadFf","orig_pkts":6,"orig_ip_bytes":397,"resp_pkts":4,"resp_ip_bytes":511,"ip_proto":6} + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ cat dns.log + +:: + + {"ts":1591367999.306059,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":8555,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":28,"qtype_name":"AAAA","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":false,"Z":0,"rejected":false} + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":19671,"rtt":0.06685185432434082,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":1,"qtype_name":"A","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":true,"Z":0,"answers":["31.3.245.133"],"TTLs":[3600.0],"rejected":false} + +Next we look at :file:`files.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ cat files.log + +:: + + {"ts":1591367999.604,"fuid":"FEEsZS1w0Z0VJIb5x4","uid":"C5bLoe2Mvxqhawzqqd","id.orig_h":"192.168.4.76","id.orig_p":46378,"id.resp_h":"31.3.245.133","id.resp_p":80,"source":"HTTP","depth":0,"analyzers":[],"mime_type":"text/plain","duration":0.0,"is_orig":false,"seen_bytes":39,"total_bytes":39,"missing_bytes":0,"overflow_bytes":0,"timedout":false} + +Next we look at the :file:`http.log`. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ cat http.log + +:: + + {"ts":1591367999.512593,"uid":"C5bLoe2Mvxqhawzqqd","id.orig_h":"192.168.4.76","id.orig_p":46378,"id.resp_h":"31.3.245.133","id.resp_p":80,"trans_depth":1,"method":"GET","host":"testmyids.com","uri":"/","version":"1.1","user_agent":"curl/7.47.0","request_body_len":0,"response_body_len":39,"status_code":200,"status_msg":"OK","tags":[],"resp_fuids":["FEEsZS1w0Z0VJIb5x4"],"resp_mime_types":["text/plain"]} + +Comparing the two log styles, we see strengths and weaknesses for each. For +example, the TSV format shows the Zeek types associated with each entry, such +as ``string``, ``addr``, ``port``, and so on. The JSON format does not include +that data. However, the JSON format associates each field “key” with a +“value,” such as ``"id.orig_p":46378``. While this necessarily increases the +amount of disk space used to store the raw logs, it makes it easier for +analysts and software to interpret the data, as the key is directly associated +with the value that follows. For this reason, most developers and analysts have +adopted the JSON output format for Zeek logs. That is the format we will use +for the log analysis sections of the documentation. + +Zeek JSON Format and :program:`jq` +================================== + +Analysts sometimes choose to inspect JSON-formatted Zeek files using +applications that recognize JSON format, such as :program:`jq`, which is a +JSON parser by Stephen Dolan, available at GitHub +(https://stedolan.github.io/jq/). It may already be installed on your Unix-like +system. + +In the following example we process the :file:`dns.log` file with the ``.`` +filter, which tells :program:`jq` to simply output what it finds in the file. +By default :program:`jq` outputs JSON formatted data in its “pretty-print” +style, which puts one key:value pair on each line as shown. + +.. code-block:: console + + so16@so16:~/zeek-test/json$ jq . dns.log + +:: + + { + "ts": 1591367999.306059, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 8555, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 28, + "qtype_name": "AAAA", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": false, + "Z": 0, + "rejected": false + } + { + "ts": 1591367999.305988, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 19671, + "rtt": 0.06685185432434082, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 1, + "qtype_name": "A", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": true, + "Z": 0, + "answers": [ + "31.3.245.133" + ], + "TTLs": [ + 3600 + ], + "rejected": false + } + +We can tell :program:`jq` to output what it sees in “compact” format using the +``-c`` switch. + +.. code-block:: console + + so16@so16:~/zeek-test/json$ jq . -c dns.log + +:: + + {"ts":1591367999.306059,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":8555,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":28,"qtype_name":"AAAA","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":false,"Z":0,"rejected":false} + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":19671,"rtt":0.06685185432434082,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":1,"qtype_name":"A","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":true,"Z":0,"answers":["31.3.245.133"],"TTLs":[3600],"rejected":false} + +The power of :program:`jq` becomes evident when we decide we only want to see +specific values. For example, the following tells :program:`jq` to look at the +:file:`dns.log` and report the source IP of systems doing DNS queries, followed +by the query, and any answer to the query. + +.. code-block:: console + + so16@so16:~/zeek-test/json$ jq -c '[."id.orig_h", ."query", ."answers"]' dns.log + +:: + + ["192.168.4.76","testmyids.com",null] + ["192.168.4.76","testmyids.com",["31.3.245.133"]] + +For a more comprehensive description of the capabilities of :program:`jq`, +see the `jq manual `_. + +With this basic understanding of how to interact with Zeek logs, we can now +turn to specific logs and interpret their values. + +Log Schemas +=========== + +It's important to note that the exact set and shape of Zeek's logs is highly +site-dependent. While every Zeek version ships with a set of logs enabled by +default, it also includes optional ones that you're welcome to enable. (Feel +free to peruse the :ref:`full set`.) In addition, many of Zeek's +`add-on packages `_ introduce logs of their own, or +enrich existing ones with additional metadata. And finally, Zeek's +:ref:`logging framework ` lets you apply your own log +customizations with a bit of scripting. + +Zeek's `logschema `_ package helps you +understand your Zeek logs. It produces log schemas that detail your +installation's set of logs and their fields. For each field, the schemas +provide rich metadata including name, type, and docstrings. They can also +explain the source of a field, such as the specific script or the name of the +Zeek package that added it. Log schemas are also a great way to understand how +and whether your logs change when you upgrade to a newer version of Zeek. + +To produce schemas, you need to tell Zeek which schema exporters to load. +An easy way to do this is to simply start Zeek with your installed packages +and an exporter of your choice. To get started, try the following: + + .. code-block:: console + + $ zkg install logschema + $ zeek logschema/export/jsonschema packages + +Your local directory will now contain a JSON Schema description for each of your +installation's logs. + + .. code-block:: console + + $ cat zeek-conn-log.schema.json | jq + { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Schema for Zeek conn.log", + "description": "JSON Schema for Zeek conn.log", + "type": "object", + "properties": { + "ts": { + "description": "This is the time of the first packet.", + "type": "number", + "examples": [ + "1737691432.132607" + ], + "x-zeek": { + "type": "time", + "record_type": "Conn::Info", + "is_optional": false, + "script": "base/protocols/conn/main.zeek" + } + }, + ... + } + +The logschema package supports a range of schema formats including JSON Schema +and CSV, and works with Zeek 5.2 and newer. Take a look at the package's +`documentation `_ for details. diff --git a/doc/logs/analyzer.rst b/doc/logs/analyzer.rst new file mode 100644 index 0000000000..67933a40f1 --- /dev/null +++ b/doc/logs/analyzer.rst @@ -0,0 +1,403 @@ +============ +analyzer.log +============ + +Dynamic protocol detection (DPD) is a method by which Zeek identifies protocols +on ports beyond those used as standard services. Rather than selecting which +application protocol analyzer to use based on a connection’s server port, +Zeek’s dynamic analyzer framework associates an analyzer tree with every +connection. This analyzer tree permits Zeek to perform protocol analysis +independently of port numbers. + +By using a set of signatures which match typical protocol dialogues, Zeek is +able to look at payload to find the correct analyzers. When such a signature +matches, it turns on the corresponding analyzer to confirm it. Zeek can turn +off analyzers when it becomes obvious that they are parsing the wrong protocol. +This allows Zeek to use “loose” protocol signatures, and, if in doubt, try +multiple analyzers in parallel. + +Zeek’s :file:`analyzer.log` reports problems with the DPD mechanism. This section +provides examples of this reporting in action. + +For full details on each field in the :file:`analyzer.log` file, please refer to +:zeek:see:`Analyzer::Logging::Info`. + +.. note:: + + This log underwent a revamp in Zeek 8.0 and resembles what dpd.log provided + in older versions of Zeek. Please review Zeek 8.0's release notes for more + details on the changes in this log. + +One Specific Example +==================== + +The following is an example of traffic that generated a :file:`analyzer.log` entry. + +:program:`tcpdump` and :program:`tshark` +---------------------------------------- + +:program:`tcpdump` reports the traffic as follows:: + + 02:44:24.274569 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [S], seq 163388510, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 + 02:44:24.339007 IP 184.168.176.1.443 > 192.168.4.142.50540: Flags [S.], seq 3902980842, ack 163388511, win 14600, options [mss 1460,nop,wscale 8], length 0 + 02:44:24.340486 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [.], ack 1, win 513, length 0 + 02:44:24.340668 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [P.], seq 1:518, ack 1, win 513, length 517 + 02:44:24.407539 IP 184.168.176.1.443 > 192.168.4.142.50540: Flags [.], ack 518, win 62, length 0 + 02:44:24.410681 IP 184.168.176.1.443 > 192.168.4.142.50540: Flags [P.], seq 1:468, ack 518, win 62, length 467 + 02:44:24.411048 IP 184.168.176.1.443 > 192.168.4.142.50540: Flags [F.], seq 468, ack 518, win 62, length 0 + 02:44:24.412575 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [.], ack 469, win 511, length 0 + 02:44:24.412857 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [P.], seq 518:525, ack 469, win 511, length 7 + 02:44:24.412860 IP 192.168.4.142.50540 > 184.168.176.1.443: Flags [F.], seq 525, ack 469, win 511, length 0 + 02:44:24.477936 IP 184.168.176.1.443 > 192.168.4.142.50540: Flags [.], ack 526, win 62, length 0 + +On the face of it, there does not appear to be anything unusual about this +traffic. It appears to be a brief session to TCP port 443. + +:program:`tshark` reports the traffic as follows: + +.. literal-emph:: + + 2 192.168.4.142 50540 184.168.176.1 443 TCP 66 50540 → 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1 + 4 184.168.176.1 443 192.168.4.142 50540 TCP 62 443 → 50540 [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460 WS=256 + 6 192.168.4.142 50540 184.168.176.1 443 TCP 60 50540 → 443 [ACK] Seq=1 Ack=1 Win=131328 Len=0 + 7 192.168.4.142 50540 184.168.176.1 443 TLSv1 571 Client Hello + 9 184.168.176.1 443 192.168.4.142 50540 TCP 60 443 → 50540 [ACK] Seq=1 Ack=518 Win=15872 Len=0 + **10 184.168.176.1 443 192.168.4.142 50540 HTTP 521 HTTP/1.1 400 Bad Request (text/html)** + 11 184.168.176.1 443 192.168.4.142 50540 TCP 60 443 → 50540 [FIN, ACK] Seq=468 Ack=518 Win=15872 Len=0 + 13 192.168.4.142 50540 184.168.176.1 443 TCP 60 50540 → 443 [ACK] Seq=518 Ack=469 Win=130816 Len=0 + 14 192.168.4.142 50540 184.168.176.1 443 TCP 61 50540 → 443 [PSH, ACK] Seq=518 Ack=469 Win=130816 Len=7 + 15 192.168.4.142 50540 184.168.176.1 443 TCP 60 50540 → 443 [FIN, ACK] Seq=525 Ack=469 Win=130816 Len=0 + 24 184.168.176.1 443 192.168.4.142 50540 TCP 60 443 → 50540 [ACK] Seq=469 Ack=526 Win=15872 Len=0 + +:program:`tshark` reveals something weird is happening here. Frame 10 shows +that :program:`tshark` decoded a plain-text HTTP message from port 443 TCP. +This should not be happening. A second look shows that the TLS session did not +appear to complete, as there is no response to the TLS client hello message. + +Here is frame 10 in detail. I passed :program:`tshark` the ``-x`` switch to +provide a hex and ASCII output at the end. + +.. literal-emph:: + + Frame 10: 521 bytes on wire (4168 bits), 521 bytes captured (4168 bits) + Encapsulation type: Ethernet (1) + Arrival Time: Dec 10, 2020 02:44:24.410681000 UTC + [Time shift for this packet: 0.000000000 seconds] + Epoch Time: 1607568264.410681000 seconds + [Time delta from previous captured frame: 0.003142000 seconds] + [Time delta from previous displayed frame: 0.003142000 seconds] + [Time since reference or first frame: 0.136113000 seconds] + Frame Number: 10 + Frame Length: 521 bytes (4168 bits) + Capture Length: 521 bytes (4168 bits) + [Frame is marked: False] + [Frame is ignored: False] + [Protocols in frame: eth:ethertype:ip:tcp:http:data-text-lines] + Ethernet II, Src: fc:ec:da:49:e0:10, Dst: 60:f2:62:3c:9c:68 + Destination: 60:f2:62:3c:9c:68 + Address: 60:f2:62:3c:9c:68 + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Source: fc:ec:da:49:e0:10 + Address: fc:ec:da:49:e0:10 + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Type: IPv4 (0x0800) + Internet Protocol Version 4, Src: 184.168.176.1, Dst: 192.168.4.142 + 0100 .... = Version: 4 + .... 0101 = Header Length: 20 bytes (5) + Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) + 0000 00.. = Differentiated Services Codepoint: Default (0) + .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0) + Total Length: 507 + Identification: 0xcc4e (52302) + Flags: 0x4000, Don't fragment + 0... .... .... .... = Reserved bit: Not set + .1.. .... .... .... = Don't fragment: Set + ..0. .... .... .... = More fragments: Not set + ...0 0000 0000 0000 = Fragment offset: 0 + Time to live: 55 + Protocol: TCP (6) + Header checksum: 0x47ce [validation disabled] + [Header checksum status: Unverified] + Source: 184.168.176.1 + Destination: 192.168.4.142 + Transmission Control Protocol, Src Port: 443, Dst Port: 50540, Seq: 1, Ack: 518, Len: 467 + Source Port: 443 + Destination Port: 50540 + [Stream index: 1] + [TCP Segment Len: 467] + Sequence number: 1 (relative sequence number) + [Next sequence number: 468 (relative sequence number)] + Acknowledgment number: 518 (relative ack number) + 0101 .... = Header Length: 20 bytes (5) + Flags: 0x018 (PSH, ACK) + 000. .... .... = Reserved: Not set + ...0 .... .... = Nonce: Not set + .... 0... .... = Congestion Window Reduced (CWR): Not set + .... .0.. .... = ECN-Echo: Not set + .... ..0. .... = Urgent: Not set + .... ...1 .... = Acknowledgment: Set + .... .... 1... = Push: Set + .... .... .0.. = Reset: Not set + .... .... ..0. = Syn: Not set + .... .... ...0 = Fin: Not set + [TCP Flags: ·······AP···] + Window size value: 62 + [Calculated window size: 15872] + [Window size scaling factor: 256] + Checksum: 0xde95 [unverified] + [Checksum Status: Unverified] + Urgent pointer: 0 + [SEQ/ACK analysis] + [iRTT: 0.065917000 seconds] + [Bytes in flight: 467] + [Bytes sent since last PSH flag: 467] + [Timestamps] + [Time since first frame in this TCP stream: 0.136112000 seconds] + [Time since previous frame in this TCP stream: 0.003142000 seconds] + TCP payload (467 bytes) + **Hypertext Transfer Protocol** + **[Expert Info (Warning/Security): Unencrypted HTTP protocol detected over encrypted port, could indicate a dangerous misconfiguration.]** + **[Unencrypted HTTP protocol detected over encrypted port, could indicate a dangerous misconfiguration.]** + **[Severity level: Warning]** + **[Group: Security]** + **HTTP/1.1 400 Bad Request\r\n** + [Expert Info (Chat/Sequence): HTTP/1.1 400 Bad Request\r\n] + [HTTP/1.1 400 Bad Request\r\n] + [Severity level: Chat] + [Group: Sequence] + Response Version: HTTP/1.1 + Status Code: 400 + [Status Code Description: Bad Request] + Response Phrase: Bad Request + Date: Thu, 10 Dec 2020 02:44:24 GMT\r\n + Server: Apache\r\n + Content-Length: 301\r\n + [Content length: 301] + Connection: close\r\n + Content-Type: text/html; charset=iso-8859-1\r\n + \r\n + [HTTP response 1/1] + File Data: 301 bytes + Line-based text data: text/html (10 lines) + \n + \n + 400 Bad Request\n + \n +

    Bad Request

    \n +

    Your browser sent a request that this server could not understand.
    \n +

    \n +
    \n +
    Apache Server at virtualhost.184.168.176.1 Port 80
    \n + \n + + 0000 60 f2 62 3c 9c 68 fc ec da 49 e0 10 08 00 45 00 `.b<.h...I....E. + 0010 01 fb cc 4e 40 00 37 06 47 ce b8 a8 b0 01 c0 a8 ...N@.7.G....... + 0020 04 8e 01 bb c5 6c e8 a2 c2 eb 09 bd 1e 64 50 18 .....l.......dP. + 0030 00 3e de 95 00 00 **48 54 54** 50 2f 31 2e 31 20 34 .>....**HTT**P/1.1 4 + 0040 30 30 20 42 61 64 20 52 65 71 75 65 73 74 0d 0a 00 Bad Request.. + 0050 44 61 74 65 3a 20 54 68 75 2c 20 31 30 20 44 65 Date: Thu, 10 De + 0060 63 20 32 30 32 30 20 30 32 3a 34 34 3a 32 34 20 c 2020 02:44:24 + 0070 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 61 GMT..Server: Apa + 0080 63 68 65 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e che..Content-Len + 0090 67 74 68 3a 20 33 30 31 0d 0a 43 6f 6e 6e 65 63 gth: 301..Connec + 00a0 74 69 6f 6e 3a 20 63 6c 6f 73 65 0d 0a 43 6f 6e tion: close..Con + 00b0 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f tent-Type: text/ + 00c0 68 74 6d 6c 3b 20 63 68 61 72 73 65 74 3d 69 73 html; charset=is + 00d0 6f 2d 38 38 35 39 2d 31 0d 0a 0d 0a 3c 21 44 4f o-8859-1.....< + 0110 68 74 6d 6c 3e 3c 68 65 61 64 3e 0a 3c 74 69 74 html>.400 Bad Reque + 0130 73 74 3c 2f 74 69 74 6c 65 3e 0a 3c 2f 68 65 61 st..

    Bad + 0150 20 52 65 71 75 65 73 74 3c 2f 68 31 3e 0a 3c 70 Request

    .

    Your browser se + 0170 6e 74 20 61 20 72 65 71 75 65 73 74 20 74 68 61 nt a request tha + 0180 74 20 74 68 69 73 20 73 65 72 76 65 72 20 63 6f t this server co + 0190 75 6c 64 20 6e 6f 74 20 75 6e 64 65 72 73 74 61 uld not understa + 01a0 6e 64 2e 3c 62 72 20 2f 3e 0a 3c 2f 70 3e 0a 3c nd.
    .

    .< + 01b0 68 72 3e 0a 3c 61 64 64 72 65 73 73 3e 41 70 61 hr>.
    Apa + 01c0 63 68 65 20 53 65 72 76 65 72 20 61 74 20 76 69 che Server at vi + 01d0 72 74 75 61 6c 68 6f 73 74 2e 31 38 34 2e 31 36 rtualhost.184.16 + 01e0 38 2e 31 37 36 2e 31 20 50 6f 72 74 20 38 30 3c 8.176.1 Port 80< + 01f0 2f 61 64 64 72 65 73 73 3e 0a 3c 2f 62 6f 64 79 /address>.. + +You can see the HTTP headers and page content in the payload of this frame. I +bolded the hex and ASCII output for the ``HTT`` part of the HTTP header in the +payload. :program:`tshark` reports a warning as seen in the bolded output. + +:file:`conn.log` +---------------- + +Here is the :file:`conn.log` that Zeek generated for this activity: + +.. literal-emph:: + + { + "ts": 1607568264.274569, + **"uid": "C8blOJ21azairPrWf8",** + "id.orig_h": "192.168.4.142", + "id.orig_p": 50540, + "id.resp_h": "184.168.176.1", + "id.resp_p": 443, + "proto": "tcp", + "duration": 0.1382908821105957, + "orig_bytes": 524, + "resp_bytes": 467, + "conn_state": "SF", + "missed_bytes": 0, + "history": "ShADadfF", + "orig_pkts": 6, + "orig_ip_bytes": 776, + "resp_pkts": 5, + "resp_ip_bytes": 675, + "ip_proto": 6 + } + +The :file:`conn.log` entry is fairly normal. + +:file:`ssl.log` +--------------- + +Here is the :file:`ssl.log` that Zeek generated for this activity: + +.. literal-emph:: + + { + "ts": 1607568264.340668, + "uid": "C8blOJ21azairPrWf8", + "id.orig_h": "192.168.4.142", + "id.orig_p": 50540, + "id.resp_h": "184.168.176.1", + "id.resp_p": 443, + "server_name": "usafaikidonews.com", + "resumed": false, + **"established": false** + } + +The :file:`ssl.log` shows that a TLS encrypted session was not established. + +:file:`analyzer.log` +-------------------- + +Here is the :file:`analyzer.log` that Zeek generated for this activity: + +.. literal-emph:: + + { + "ts": 1607568264.410681, + "analyzer_kind": "protocol", + **"analyzer_name": "SSL",** + "uid": "C8blOJ21azairPrWf8", + "id.orig_h": "192.168.4.142", + "id.orig_p": 50540, + "id.resp_h": "184.168.176.1", + "id.resp_p": 443, + "proto": "tcp", + **"failure_reason": "Invalid version late in TLS connection. Packet reported version: 21588"** + } + +Here we see that DPD and the SSL analyzer report an error in the TLS +connection, as expected. The question is, to what does ``version: 21588`` +refer? + +Decoding 21588 +============== + +Let’s take a look at part of frame 9, which is the TLS client hello: + +.. literal-emph:: + + Secure Sockets Layer + TLSv1 Record Layer: Handshake Protocol: Client Hello + **Content Type: Handshake (22)** + **Version: TLS 1.0 (0x0301)** + Length: 512 + Handshake Protocol: Client Hello + Handshake Type: Client Hello (1) + Length: 508 + **Version: TLS 1.2 (0x0303)** + ...truncated... + + 0000 fc ec da 49 e0 10 60 f2 62 3c 9c 68 08 00 45 00 ...I..`.b<.h..E. + 0010 02 2d 97 6c 40 00 80 06 33 7e c0 a8 04 8e b8 a8 .-.l@...3~...... + 0020 b0 01 c5 6c 01 bb 09 bd 1c 5f e8 a2 c2 eb 50 18 ...l....._....P. + 0030 02 01 6e 33 00 00 **16 03 01** 02 00 01 00 01 fc **03** ..n3............ + 0040 **03** 97 16 82 4f e0 ff e3 3e 6f d8 33 28 9a 97 b8 ....O...>o.3(... + 0050 1a f0 73 6b 12 98 af 25 e2 a5 bc 6c 2e aa b1 69 ..sk...%...l...i + 0060 be 20 bf d4 27 c5 22 bf 0d 90 83 24 80 36 ad 11 . ..'."....$.6.. + 0070 17 8a 2d a2 a1 42 1d ef 6b 1f ef ce cf 9a e2 f5 ..-..B..k....... + 0080 be 79 00 20 2a 2a 13 01 13 02 13 03 c0 2b c0 2f .y. **.......+./ + 0090 c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 00 9c 00 9d .,.0............ + 00a0 00 2f 00 35 01 00 01 93 ca ca 00 00 00 00 00 17 ./.5............ + 00b0 00 15 00 00 12 75 73 61 66 61 69 6b 69 64 6f 6e .....usafaikidon + 00c0 65 77 73 2e 63 6f 6d 00 17 00 00 ff 01 00 01 00 ews.com......... + +I’ve bolded a few points. The important ones are ``0x160301``. These are the +values indicating a TLS handshake and TLS 1.0. This is apparently not an +attempt at a TLS 1.0 connection, however, as the second bolded hex value of +``0x0303`` shows TLS 1.2 in play. + +Now, compare this output with what appeared in the odd “HTTP” frame shown +earlier: + +.. literal-emph:: + + 0000 60 f2 62 3c 9c 68 fc ec da 49 e0 10 08 00 45 00 `.b<.h...I....E. + 0010 01 fb cc 4e 40 00 37 06 47 ce b8 a8 b0 01 c0 a8 ...N@.7.G....... + 0020 04 8e 01 bb c5 6c e8 a2 c2 eb 09 bd 1e 64 50 18 .....l.......dP. + 0030 00 3e de 95 00 00 **48 54 54** 50 2f 31 2e 31 20 34 .>....**HTT**P/1.1 4 + 0040 30 30 20 42 61 64 20 52 65 71 75 65 73 74 0d 0a 00 Bad Request.. + +The ``0x48`` value is in the location where a TLS content type message would +sit. In the previous frame, the value was ``0x16``, for a handshake. Here it +is ``0x48``, which is ASCII letter H. Next we see ``0x5454``, which is ASCII +letters ``T T``. In decimal, the value for ``0x5454`` is 21588. In other words, +where Zeek was looking to find a TLS version, it found decimal 21588. In the +previous frame, the corresponding value was ``0x0301`` for TLSv1.0. That is why +Zeek generated an error in its :file:`analyzer.log` with the message "Invalid +version late in TLS connection. Packet reported version: 21588". + +Assorted Examples +================= + +The following represents a summary of some :file:`analyzer.log` entries, sorted by count, +observed in my reference network. + +.. code-block:: console + + $ find ./logs/ -name "analyzer*20**.gz" | while read -r file; do zcat -f "$file"; done | jq -c '[."proto", ."analyzer_kind", ."failure_reason"]' | sort | uniq -c | sort -nr + +:: + + 165341 ["tcp","HTTP","not a http reply line"] + 162 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 0"] + 114 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 21588"] + 36 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 25344"] + 28 ["udp","NTP","Binpac exception: binpac exception: out_of_bound: Extension_Field:value: 3476019 > 52"] + 17 ["udp","SIP","Binpac exception: binpac exception: string mismatch at /bro/src/analyzer/protocol/sip/sip-protocol.pac:43: \nexpected pattern: \"SIP/\"\nactual data: \"\\x05\""] + 9 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 8516"] + 8 ["udp","SIP","Binpac exception: binpac exception: string mismatch at /bro/src/analyzer/protocol/sip/sip-protocol.pac:43: \nexpected pattern: \"SIP/\"\nactual data: \"\\x01\""] + ...edited... + 1 ["udp","SIP","Binpac exception: binpac exception: out_of_bound: SIP_Version:anonymous_field_009: 4 > 2"] + 1 ["udp","DTLS","Invalid version in DTLS connection. Packet reported version: 59228"] + 1 ["udp","DTLS","Invalid version in DTLS connection. Packet reported version: 52736"] + 1 ["udp","DTLS","Invalid version in DTLS connection. Packet reported version: 52480"] + 1 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 5123"] + 1 ["tcp","SSL","Invalid version late in TLS connection. Packet reported version: 40499"] + 1 ["tcp","IRC","too many long lines"] + +As you can see, Zeek saw problems with HTTP, SSL, NTP, Session Initiation +Protocol (SIP), Datagram Transport Layer Security (DTLS), and IRC. + +Conclusion +========== + +Zeek’s :file:`analyzer.log` may help analysts identify suspicious activity, +depending on how it violates Zeek’s protocol parsers. In that sense, it is sort +of a specialized version of Zeek’s :file:`weird.log`. Periodic analysis of the +entries may identify traffic worthy of additional investigation. diff --git a/doc/logs/capture-loss-and-reporter.rst b/doc/logs/capture-loss-and-reporter.rst new file mode 100644 index 0000000000..d946f02ba4 --- /dev/null +++ b/doc/logs/capture-loss-and-reporter.rst @@ -0,0 +1,98 @@ +================================= +capture_loss.log and reporter.log +================================= + +Zeek produces several logs that tell administrators how well Zeek is managing +its analysis and reporting on network traffic. + +This :file:`capture_loss.log` reports analysis of missing traffic. Zeek bases +its conclusions on analysis of TCP sequence numbers. When it detects a “gap,” +it assumes that the missing traffic corresponds to traffic loss. + +The :file:`reporter.log` reports internal warnings and errors. Zeek generates +these based on how it is handling traffic and computing requirements. + +Details on the format of each log appears in :zeek:see:`CaptureLoss::Info` +and :zeek:see:`Reporter::Info`. + +:file:`capture_loss.log` +======================== + +The following is an example of entries in a :file:`capture_loss.log`: + +.. literal-emph:: + + { + "ts": "2021-01-04T00:04:24.688236Z", + "ts_delta": 900.0000550746918, + "peer": "so16-enp0s8-1", + "gaps": 41, + "acks": 9944, + **"percent_lost": 0.412308930008045** + } + { + "ts": "2021-01-04T00:19:24.688265Z", + "ts_delta": 900.0000290870667, + "peer": "so16-enp0s8-1", + "gaps": 9, + "acks": 8530, + **"percent_lost": 0.10550996483001172** + } + { + "ts": "2021-01-04T00:34:24.688449Z", + "ts_delta": 900.0001838207245, + "peer": "so16-enp0s8-1", + "gaps": 0, + "acks": 52019, + **"percent_lost": 0** + } + { + "ts": "2021-01-04T00:49:24.688552Z", + "ts_delta": 900.0001029968262, + "peer": "so16-enp0s8-1", + "gaps": 0, + "acks": 108863, + **"percent_lost": 0** + } + +In these logs, capture loss never exceeded 1%. For example, when Zeek reports +``0.412308930008045``, that means 0.4123% capture loss, not 41.23% capture +loss. In other words, this sensor is doing well capturing the traffic on the +link it monitors (a small amount of loss is tolerable). + +:file:`reporter.log` +==================== + +The following is an example entries in the :file:`reporter.log`: + +.. literal-emph:: + + { + "ts": "2021-01-04T01:15:02.622164Z", + "level": "Reporter::INFO", + **"message": "received termination signal",** + "location": "" + } + { + "ts": "2021-01-04T01:19:15.713689Z", + "level": "Reporter::INFO", + **"message": "BPFConf filename set: /etc/nsm/so16-enp0s8/bpf-bro.conf (logger)",** + "location": "/opt/bro/share/zeek/securityonion/./bpfconf.zeek, line 81" + } + { + "ts": "2021-01-04T01:19:22.786812Z", + "level": "Reporter::INFO", + **"message": "BPFConf filename set: /etc/nsm/so16-enp0s8/bpf-bro.conf (proxy)",** + "location": "/opt/bro/share/zeek/securityonion/./bpfconf.zeek, line 81" + } + +The first message refers to Zeek receiving a termination signal. The second two +messages refer to Zeek setting a file for configuring Berkeley Packet Filters. + +Conclusion +========== + +The :file:`capture_loss.log` and :file:`reporter.log` files are helpful when +administrators need to understand how their Zeek deployment is performing. Keep +an eye on the :file:`capture_loss.log` to keep the performance within an +acceptable level. diff --git a/doc/logs/conn.rst b/doc/logs/conn.rst new file mode 100644 index 0000000000..6cb995807c --- /dev/null +++ b/doc/logs/conn.rst @@ -0,0 +1,444 @@ +======== +conn.log +======== + +The connection log, or :file:`conn.log`, is one of the most important logs Zeek +creates. It may seem like the idea of a “connection” is most closely associated +with stateful protocols like Transmission Control Protocol (TCP), unlike +stateless protocols like User Datagram Protocol (UDP). Zeek’s :file:`conn.log`, +however, tracks both sorts of protocols. This section of the manual will +explain key elements of the :file:`conn.log`. + +The Zeek script reference, derived from the Zeek code, completely explains the +meaning of each field in the :file:`conn.log` (and other logs). It would be +duplicative to manually recreate that information in another format here. +Therefore, this entry seeks to show how an analyst would make use of the +information in the conn.log. Those interested in getting details on every +element of the :file:`conn.log` should reference :zeek:see:`Conn::Info`. +For additional explanation, including Zeek's notions of originator and +responder, see :ref:`writing-scripts-connection-record`. + +Throughout the sections that follow, we will inspect Zeek logs in JSON format. + +Inspecting the :file:`conn.log` +=============================== + +To inspect the :file:`conn.log`, we will use the same techniques we learned in +the last section of the manual. First, we have a JSON-formatted log file, +either collected by Zeek watching a live interface, or by Zeek processing +stored traffic. We use the :program:`jq` utility to review the contents. + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ jq . -c conn.log + +:: + + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","service":"dns","duration":0.06685185432434082,"orig_bytes":62,"resp_bytes":141,"conn_state":"SF","missed_bytes":0,"history":"Dd","orig_pkts":2,"orig_ip_bytes":118,"resp_pkts":2,"resp_ip_bytes":197,"ip_proto":17} + + {"ts":1591367999.430166,"uid":"C5bLoe2Mvxqhawzqqd","id.orig_h":"192.168.4.76","id.orig_p":46378,"id.resp_h":"31.3.245.133","id.resp_p":80,"proto":"tcp","service":"http","duration":0.25411510467529297,"orig_bytes":77,"resp_bytes":295,"conn_state":"SF","missed_bytes":0,"history":"ShADadFf","orig_pkts":6,"orig_ip_bytes":397,"resp_pkts":4,"resp_ip_bytes":511,"ip_proto":6} + +Alternatively, we could see each field printed on its own line: + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ jq . conn.log + +:: + + { + "ts": 1591367999.305988, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "service": "dns", + "duration": 0.06685185432434082, + "orig_bytes": 62, + "resp_bytes": 141, + "conn_state": "SF", + "missed_bytes": 0, + "history": "Dd", + "orig_pkts": 2, + "orig_ip_bytes": 118, + "resp_pkts": 2, + "resp_ip_bytes": 197, + "ip_proto": 17 + } + { + "ts": 1591367999.430166, + "uid": "C5bLoe2Mvxqhawzqqd", + "id.orig_h": "192.168.4.76", + "id.orig_p": 46378, + "id.resp_h": "31.3.245.133", + "id.resp_p": 80, + "proto": "tcp", + "service": "http", + "duration": 0.25411510467529297, + "orig_bytes": 77, + "resp_bytes": 295, + "conn_state": "SF", + "missed_bytes": 0, + "history": "ShADadFf", + "orig_pkts": 6, + "orig_ip_bytes": 397, + "resp_pkts": 4, + "resp_ip_bytes": 511, + "ip_proto": 6 + } + +What an analyst derives from any log is a function of the questions that he or +she is trying to ask of it. The :file:`conn.log` primarily captures so-called +“layer 3” and “layer 4” elements of network activity. This is essentially who +is talking to whom, when, for how long, and with what protocol. + +Understanding the Second :file:`conn.log` Entry +=============================================== + +Let’s use this framework to parse the two log entries. We will start with the +second entry first. I will explain why shortly. For reference, that entry is +the following: + +:: + + { + "ts": 1591367999.430166, + "uid": "C5bLoe2Mvxqhawzqqd", + "id.orig_h": "192.168.4.76", + "id.orig_p": 46378, + "id.resp_h": "31.3.245.133", + "id.resp_p": 80, + "proto": "tcp", + "service": "http", + "duration": 0.25411510467529297, + "orig_bytes": 77, + "resp_bytes": 295, + "conn_state": "SF", + "missed_bytes": 0, + "history": "ShADadFf", + "orig_pkts": 6, + "orig_ip_bytes": 397, + "resp_pkts": 4, + "resp_ip_bytes": 511, + "ip_proto": 6 + } + +For the second log, ``192.168.4.76`` talked to ``31.3.245.133``. + +The log *timestamp*, indicated by the ``ts`` field, is ``1591367999.430166``, +which translates as shown below, courtesy of the Unix :program:`date` command: + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ date -d @"1591367999.430166" + +:: + + Fri Jun 5 14:39:59 UTC 2020 + +The two systems conversation only lasted ``0.25411510467529297`` seconds. (The +operating system provides this value.) + +They spoke the HyperText Transfer Protocol (HTTP), identified by Zeek as HTTP +over TCP using TCP port 80 listening on ``31.3.245.133``. + +If we wanted to move beyond who talked with whom, when, for how long, and with +what protocol, the second :file:`conn.log` entry offers a few more items of interest. +For example, we know that ``192.168.4.76`` sent 77 bytes of data in its application +layer payload, and 397 bytes in its IP layer payload. + +We can verify that 77 byte figure by decoding the HTTP traffic sent from +``192.168.4.76`` during this session. We use :program:`tshark`, the command +line version of Wireshark, to do so. + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ tshark -V -r ../../tmi1.pcap http and ip.src==192.168.4.76 + +.. literal-emph:: + + Frame 21: 143 bytes on wire (1144 bits), 143 bytes captured (1144 bits) + Encapsulation type: Ethernet (1) + Arrival Time: Jun 5, 2020 14:39:59.512593000 UTC + [Time shift for this packet: 0.000000000 seconds] + Epoch Time: 1591367999.512593000 seconds + [Time delta from previous captured frame: 0.000309000 seconds] + [Time delta from previous displayed frame: 0.000000000 seconds] + [Time since reference or first frame: 17.461008000 seconds] + Frame Number: 21 + Frame Length: 143 bytes (1144 bits) + Capture Length: 143 bytes (1144 bits) + [Frame is marked: False] + [Frame is ignored: False] + [Protocols in frame: eth:ethertype:ip:tcp:http] + Ethernet II, Src: 08:00:27:97:99:0d, Dst: fc:ec:da:49:e0:10 + Destination: fc:ec:da:49:e0:10 + Address: fc:ec:da:49:e0:10 + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Source: 08:00:27:97:99:0d + Address: 08:00:27:97:99:0d + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Type: IPv4 (0x0800) + Internet Protocol Version 4, **Src: 192.168.4.76, Dst: 31.3.245.133** + 0100 .... = Version: 4 + .... 0101 = Header Length: 20 bytes (5) + Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) + 0000 00.. = Differentiated Services Codepoint: Default (0) + .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0) + Total Length: 129 + Identification: 0xfdf1 (65009) + Flags: 0x4000, Don't fragment + 0... .... .... .... = Reserved bit: Not set + .1.. .... .... .... = Don't fragment: Set + ..0. .... .... .... = More fragments: Not set + ...0 0000 0000 0000 = Fragment offset: 0 + Time to live: 64 + Protocol: TCP (6) + Header checksum: 0x6308 [validation disabled] + [Header checksum status: Unverified] + **Source: 192.168.4.76** + **Destination: 31.3.245.133** + Transmission Control Protocol, **Src Port: 46378, Dst Port: 80**, Seq: 1, Ack: 1, **Len: 77** + **Source Port: 46378** + **Destination Port: 80** + [Stream index: 0] + **[TCP Segment Len: 77]** + Sequence number: 1 (relative sequence number) + [Next sequence number: 78 (relative sequence number)] + Acknowledgment number: 1 (relative ack number) + 1000 .... = Header Length: 32 bytes (8) + Flags: 0x018 (PSH, ACK) + 000. .... .... = Reserved: Not set + ...0 .... .... = Nonce: Not set + .... 0... .... = Congestion Window Reduced (CWR): Not set + .... .0.. .... = ECN-Echo: Not set + .... ..0. .... = Urgent: Not set + .... ...1 .... = Acknowledgment: Set + .... .... 1... = Push: Set + .... .... .0.. = Reset: Not set + .... .... ..0. = Syn: Not set + .... .... ...0 = Fin: Not set + [TCP Flags: ·······AP···] + Window size value: 32 + [Calculated window size: 65536] + [Window size scaling factor: 2048] + Checksum: 0xd9f0 [unverified] + [Checksum Status: Unverified] + Urgent pointer: 0 + Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps + TCP Option - No-Operation (NOP) + Kind: No-Operation (1) + TCP Option - No-Operation (NOP) + Kind: No-Operation (1) + TCP Option - Timestamps: TSval 3137978878, TSecr 346747623 + Kind: Time Stamp Option (8) + Length: 10 + Timestamp value: 3137978878 + Timestamp echo reply: 346747623 + [SEQ/ACK analysis] + [iRTT: 0.082118000 seconds] + **[Bytes in flight: 77]** + [Bytes sent since last PSH flag: 77] + [Timestamps] + [Time since first frame in this TCP stream: 0.082427000 seconds] + [Time since previous frame in this TCP stream: 0.000309000 seconds] + **TCP payload (77 bytes)** + Hypertext Transfer Protocol + **GET / HTTP/1.1\r\n** + [Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n] + [GET / HTTP/1.1\r\n] + [Severity level: Chat] + [Group: Sequence] + Request Method: GET + Request URI: / + Request Version: HTTP/1.1 + **Host: testmyids.com\r\n** + **User-Agent: curl/7.47.0\r\n** + **Accept: */*\r\n** + **\r\n** + [Full request URI: http://testmyids.com/] + [HTTP request 1/1] + +In the highlighted output, we see that :program:`tshark` notes 77 bytes of data +carried by TCP from ``192.168.4.76``. I highlighted what that data was, +beginning with a GET request. + +The ``orig_pkts`` and ``resp_pkts`` fields report the number of IP packets +transferred in the respective directions. The ``orig_ip_bytes`` and +``resp_ip_bytes`` indicate the total IP packet-level byte counts, respectively. + +Another way to look at this TCP segment is to dump the hex contents using a +different :program:`tshark` option, as shown below. + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ tshark -x -r ../../tmi1.pcap http and ip.src==192.168.4.76 + +.. literal-emph:: + + 0000 fc ec da 49 e0 10 08 00 27 97 99 0d 08 00 45 00 ...I....'.....E. + 0010 00 81 fd f1 40 00 40 06 63 08 c0 a8 04 4c 1f 03 ....@.@.c....L.. + 0020 f5 85 b5 2a 00 50 dd e8 f3 47 b2 71 7e 69 80 18 ...*.P...G.q~i.. + 0030 00 20 d9 f0 00 00 01 01 08 0a bb 09 c1 fe 14 aa . .............. + 0040 f2 e7 **47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 ..GET / HTTP/1.1** + 0050 **0d 0a 48 6f 73 74 3a 20 74 65 73 74 6d 79 69 64 ..Host: testmyid** + 0060 **73 2e 63 6f 6d 0d 0a 55 73 65 72 2d 41 67 65 6e s.com..User-Agen** + 0070 **74 3a 20 63 75 72 6c 2f 37 2e 34 37 2e 30 0d 0a t: curl/7.47.0..** + 0080 **41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d 0a Accept: */***.... + +The hexadecimal values appear on the left, and the ASCII decode appears on the +right. If you count the highlighted hex values, you will find 77 of them, hence +the 77 bytes of application layer data carried by TCP. + +The connection state field, ``conn_state``, showed that the connection +terminated normally, as depicted by the ``SF`` entry. This means that, for this +TCP session, both sides adopted a “graceful close” mechanism. If you remember +this trace from the last chapter, you’ll remember seeing that it opened with a +TCP three way handshake (SYN - SYN ACK - ACK) and terminated with a graceful +close (FIN ACK - FIN ACK - ACK). + +Finally, the ``history`` field contains the string ``ShADadFf``. Remember that +capitalized letters indicate an action by the connection originator. Lowercase +letters indicate an action by the responder. This means that ``ShADadFf`` +translates to the following: + +:: + + S - The originator sent a SYN segment. + h - The responder sent a SYN ACK segment. + A - The originator sent an ACK segment. + D - The originator sent at least one segment with payload data. In this case, that was HTTP over TCP. + a - The responder replied with an ACK segment. + d - The responder replied with at least one segment with payload data. + F - The originator sent a FIN ACK segment. + f - The responder replied with a FIN ACK segment. + +This log entry demonstrates how Zeek is able to pack so much information into a +compact representation. + +Understanding the First :file:`conn.log` Entry +============================================== + +Now let’s turn to the first :file:`conn.log` entry, reproduced below for easy +reference. + +:: + + { + "ts": 1591367999.305988, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "service": "dns", + "duration": 0.06685185432434082, + "orig_bytes": 62, + "resp_bytes": 141, + "conn_state": "SF", + "missed_bytes": 0, + "history": "Dd", + "orig_pkts": 2, + "orig_ip_bytes": 118, + "resp_pkts": 2, + "resp_ip_bytes": 197, + "ip_proto": 17 + } + +For the first entry, ``192.168.4.76`` talked to ``192.168.4.1``. + +The log timestamp is ``1591367999.305988``, which translates as shown below, +courtesy of the Unix :program:`date` command: + +.. code-block:: console + + zeek@zeek:~zeek-test/json$ date -d @"1591367999.305988" + +:: + + Fri Jun 5 14:39:59 UTC 2020 + +The two systems’ “conversation” only lasted ``0.06685185432434082`` seconds. +(Again, such precision!) + +They spoke the Domain Name System (DNS) protocol, identified by Zeek as DNS +over UDP using UDP port 53 listening on ``192.168.4.1``. + +The connection state for this conversation is listed as ``SF``, the same as the +TCP version. However, UDP has no concept of state, leaving that duty to a +higher level protocol. In the context of UDP, ``SF`` means that Zeek assesses +the conversations as “normal establishment and termination” of the +“connection.” + +Similarly, the ``history`` field is simply ``Dd``, indicating that each party +to the conversation sent data to the other. + +The ``ip_proto`` Field +====================== + +.. versionadded:: 7.1 + +The numeric ``ip_proto`` field reports the `IP protocol number +`_ of +the connection. It relates to the ``proto`` field, but while the former +represents a :zeek:type:`transport_proto` value that exclusively covers +*transport* protocols Zeek knows how to parse (and ties into Zeek's +:zeek:type:`port` type), the ``ip_proto`` field is always present, including for +non-transport IP packet flows such as IGMP or OSPF. For example, an OSPF flow +might look as follows: + +:: + + { + "ts": 1098361214.420459, + "uid": "C9EV8R4fN8bfSj08f", + "id.orig_h": "192.168.170.2", + "id.orig_p": 0, + "id.resp_h": "224.0.0.6", + "id.resp_p": 0, + "proto": "unknown_transport", + "duration": 6.437546968460083, + "orig_bytes": 0, + "resp_bytes": 0, + "conn_state": "OTH", + "local_orig": true, + "local_resp": false, + "missed_bytes": 0, + "orig_pkts": 4, + "orig_ip_bytes": 768, + "resp_pkts": 0, + "resp_ip_bytes": 0, + "ip_proto": 89 + } + +You can adapt this feature in several ways. Load the +:doc:`/scripts/policy/protocols/conn/ip-proto-name-logging.zeek` policy script +to add an ``ip_proto_name`` column with a string version of the ``ip_proto`` +value. Also, you may disable the whole feature by loading the +:doc:`/scripts/policy/protocols/conn/disable-unknown-ip-proto-support.zeek` +script, returning :file:`conn.log` to its pre-7.1 state. Zeek's :ref:`logging framework +` supports additional customizations. + +The ``uid`` and Other Fields +============================ + +Notice that both :file:`conn.log` entries contain ``uid`` fields. These are +unique identifiers assigned by Zeek that we will use to track related activity +in other transaction logs. + +There are other fields which may appear in the :file:`conn.log`, depending on +the protocol being summarized. For details on the meaning of those fields, see +:zeek:see:`Conn::Info`. + +Conclusion +========== + +Zeek’s :file:`conn.log` is a foundational log that offers a great deal of +information on its own. However, it becomes even more useful when it acts as +the starting point for investigating related Zeek logs. We turn to that +capability in the following sections. diff --git a/doc/logs/dhcp.rst b/doc/logs/dhcp.rst new file mode 100644 index 0000000000..f64d2d7492 --- /dev/null +++ b/doc/logs/dhcp.rst @@ -0,0 +1,439 @@ +======== +dhcp.log +======== + +Dynamic Host Configuration Protocol is a core protocol found in Internet +Protocol (IP) networks. Using the protocol, DHCP servers provide clients with +IP addresses and other key information needed to make use of the network. This +entry will describe some aspects of Zeek’s :file:`dhcp.log` that may be of use to +network and security personnel. + +As with all entries in this chapter, see :zeek:see:`DHCP::Info` for full +explanation of each field in the log. + +DORA via Tcpdump +================ + +The method by which a client requests and receives an IP address and other +parameters from a DHCP server is represented by the acronym DORA. DORA stands +for Discover - Offer - Request - Acknowledge. The following :program:`tcpdump` +output of a complete DORA exchange demonstrates this protocol in action. + +.. code-block:: console + + $ tcpdump -n -r snort.log.1601610971.bootp.pcap + +.. literal-emph:: + + reading from file snort.log.1601610971.bootp.pcap, link-type EN10MB (Ethernet) + + 04:14:39.119370 IP **0.0.0.0.68 > 255.255.255.255.67**: BOOTP/DHCP, Request from 3c:58:c2:2f:91:21, length 302 + 04:14:39.120138 IP **192.168.4.1.67 > 192.168.4.152.68**: BOOTP/DHCP, Reply, length 302 + 04:14:39.158211 IP **0.0.0.0.68 > 255.255.255.255.67**: BOOTP/DHCP, Request from 3c:58:c2:2f:91:21, length 337 + 04:14:39.456915 IP **192.168.4.1.67 > 192.168.4.152.68**: BOOTP/DHCP, Reply, length 302 + +The default output for :program:`tcpdump` doesn’t say much, other than showing +the IP addresses (or lack thereof, in the case of the ``0.0.0.0``` source IP +addresses). It is helpful to see this “simplified” output, however, before +delving into the details. It is slightly deceptive in the “request” and “reply” +messages, as strictly speaking these are more detailed and are DORA messages. + +DORA via Tcpdump Verbose Mode +============================= + +We can add the ``-vvv`` flag to :program:`tcpdump` to provide more verbose +output, as shown in the examples that follow. + +The first datagram shows that a host that does not have an IP address set +(i.e., it’s using ``0.0.0.0``) sends a broadcast to ``255.255.255.255`` on port +67 UDP. This client has had an IP address before as shown by its request for +``192.168.4.152``. Note the hostname and the presence of a Microsoft 5.0 vendor +class. + +This is a DHCP Discover message from a client to any DHCP server listening on +the local network: + +.. literal-emph:: + + 04:14:39.119370 IP (tos 0x0, ttl 128, id 44414, offset 0, flags [none], **proto UDP** (17), length 330) + **0.0.0.0.68 > 255.255.255.255.67**: [udp sum ok] BOOTP/DHCP, Request from 3c:58:c2:2f:91:21, length 302, **xid 0xfd9859a7**, Flags [none] (0x0000) + **Client-Ethernet-Address 3c:58:c2:2f:91:21** + Vendor-rfc1048 Extensions + Magic Cookie 0x63825363 + **DHCP-Message Option 53, length 1: Discover** + Client-ID Option 61, length 7: ether 3c:58:c2:2f:91:21 + **Requested-IP Option 50, length 4: 192.168.4.152** + **Hostname Option 12, length 15: "3071N0098017422"** + **Vendor-Class Option 60, length 8: "MSFT 5.0"** + Parameter-Request Option 55, length 14: + Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name + Router-Discovery, Static-Route, Vendor-Option, Netbios-Name-Server + Netbios-Node, Netbios-Scope, Option 119, Classless-Static-Route + Classless-Static-Route-Microsoft, Option 252 + END Option 255, length 0 + +The second datagram is a reply from the local DHCP server running on +``192.168.4.1``. The server replies directly to ``192.168.4.152``, which in +this case will end up at the system using MAC address ``3c:58:c2:2f:91:21``, +such that the destination IP address is probably not relevant here. Remember +that if the client at MAC address ``3c:58:c2:2f:91:21`` had no IP address to +begin with, it would only receive the DHCP offer by virtue of the DHCP offer +datagram being addressed to its MAC address. The server is not offering a +specified domain name other than “localdomain.” + +This is a DHCP Offer message, from the DHCP server to the client: + +.. literal-emph:: + + 04:14:39.120138 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 330) + **192.168.4.1.67 > 192.168.4.152.68**: [udp sum ok] **BOOTP/DHCP, Reply**, length 302, **xid 0xfd9859a7**, Flags [none] (0x0000) + **Your-IP 192.168.4.152** + **Client-Ethernet-Address 3c:58:c2:2f:91:21** + Vendor-rfc1048 Extensions + Magic Cookie 0x63825363 + **DHCP-Message Option 53, length 1: Offer** + **Server-ID Option 54, length 4: 192.168.4.1** + **Lease-Time Option 51, length 4: 86400** + **Subnet-Mask Option 1, length 4: 255.255.255.0** + **Default-Gateway Option 3, length 4: 192.168.4.1** + **Domain-Name-Server Option 6, length 4: 192.168.4.1** + Domain-Name Option 15, length 11: "localdomain" + T119 Option 119, length 13: 11.108.111.99.97.108.100.111.109.97.105.110.0 + END Option 255, length 0 + +The third datagram is a reply to the server’s reply. Here the client requests +the IP address ``192.168.4.152``. We also see it provide a fully qualified +domain name (FQDN) for itself, belonging to the FCPS educational domain. Again +note the client does not include an IP address for itself in the layer 3 +header. It uses ``0.0.0.0`` as in the initial Discover message. + +This is a DHCP Request message from the client to the DHCP server: + +.. literal-emph:: + + 04:14:39.158211 IP (tos 0x0, ttl 128, id 44415, offset 0, flags [none], proto UDP (17), length 365) + **0.0.0.0.68 > 255.255.255.255.67**: [udp sum ok] **BOOTP/DHCP, Request from 3c:58:c2:2f:91:21**, length 337, **xid 0xfd9859a7**, Flags [none] (0x0000) + **Client-Ethernet-Address 3c:58:c2:2f:91:21** + Vendor-rfc1048 Extensions + Magic Cookie 0x63825363 + **DHCP-Message Option 53, length 1: Request** + **Client-ID Option 61, length 7: ether 3c:58:c2:2f:91:21** + **Requested-IP Option 50, length 4: 192.168.4.152** + **Server-ID Option 54, length 4: 192.168.4.1** + Hostname Option 12, length 15: "3071N0098017422" + **FQDN Option 81, length 27: "3071N0098017422.fcps.edu"** + **Vendor-Class Option 60, length 8: "MSFT 5.0"** + Parameter-Request Option 55, length 14: + Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name + Router-Discovery, Static-Route, Vendor-Option, Netbios-Name-Server + Netbios-Node, Netbios-Scope, Option 119, Classless-Static-Route + Classless-Static-Route-Microsoft, Option 252 + END Option 255, length 0 + +Finally the server sends its last message, essentially confirming the +information sent in the DHCP Offer message. Note that :program:`tcpdump` is +unable to make sense of what it renders as ``T119 Option 119``. We will return +to that shortly. + +This is a DHCP Acknowledgement message, sent from the DHCP server to the client: + +.. literal-emph:: + + 04:14:39.456915 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 330) + **192.168.4.1.67 > 192.168.4.152.68**: [udp sum ok] **BOOTP/DHCP, Reply**, length 302, xid 0xfd9859a7, Flags [none] (0x0000) + **Your-IP 192.168.4.152** + **Client-Ethernet-Address 3c:58:c2:2f:91:21** + Vendor-rfc1048 Extensions + Magic Cookie 0x63825363 + **DHCP-Message Option 53, length 1: ACK** + **Server-ID Option 54, length 4: 192.168.4.1** + **Lease-Time Option 51, length 4: 86400** + **Subnet-Mask Option 1, length 4: 255.255.255.0** + **Default-Gateway Option 3, length 4: 192.168.4.1** + **Domain-Name-Server Option 6, length 4: 192.168.4.1** + Domain-Name Option 15, length 11: "localdomain" + T119 Option 119, length 13: 11.108.111.99.97.108.100.111.109.97.105.110.0 + END Option 255, length 0 + +Acknowledgement via :program:`tshark` +===================================== + +We could look at the entire trace using :program:`tshark` (the command line +version of Wireshark), but it would largely be redundant. Rather, I would like +to look at the Acknowledgment message to explain about the T119 Option that +:program:`tcpdump` could not decode. + +To find the datagram of interest, I tell :program:`tshark` to read the packet +capture of interest. I tell it to look for the “bootp” transaction identifier +associated with the DORA exchange of interest. (BOOTP refers to Bootstrap, a +precursor protocol that Tshark still uses for DHCP filters.) I also tell +:program:`tshark` to look for the specific BOOTP (DHCP) option value (5) +associated with the ACK message. + +.. code-block:: console + + $ tshark -V -n -r snort.log.1601610971.bootp.pcap bootp.id == 0xfd9859a7 and bootp.option.dhcp == 5 + +.. literal-emph:: + + Frame 4: 344 bytes on wire (2752 bits), 344 bytes captured (2752 bits) on interface 0 + Interface id: 0 (unknown) + Interface name: unknown + Encapsulation type: Ethernet (1) + Arrival Time: Oct 2, 2020 04:14:39.456915000 UTC + [Time shift for this packet: 0.000000000 seconds] + Epoch Time: 1601612079.456915000 seconds + [Time delta from previous captured frame: 0.298704000 seconds] + [Time delta from previous displayed frame: 0.000000000 seconds] + [Time since reference or first frame: 0.337545000 seconds] + Frame Number: 4 + Frame Length: 344 bytes (2752 bits) + Capture Length: 344 bytes (2752 bits) + [Frame is marked: False] + [Frame is ignored: False] + [Protocols in frame: eth:ethertype:ip:udp:bootp] + **Ethernet II, Src: fc:ec:da:49:e0:10, Dst: 3c:58:c2:2f:91:21** + Destination: 3c:58:c2:2f:91:21 + Address: 3c:58:c2:2f:91:21 + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Source: fc:ec:da:49:e0:10 + Address: fc:ec:da:49:e0:10 + .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) + .... ...0 .... .... .... .... = IG bit: Individual address (unicast) + Type: IPv4 (0x0800) + **Internet Protocol Version 4, Src: 192.168.4.1, Dst: 192.168.4.152** + 0100 .... = Version: 4 + .... 0101 = Header Length: 20 bytes (5) + Differentiated Services Field: 0x10 (DSCP: Unknown, ECN: Not-ECT) + 0001 00.. = Differentiated Services Codepoint: Unknown (4) + .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0) + Total Length: 330 + Identification: 0x0000 (0) + Flags: 0x0000 + 0... .... .... .... = Reserved bit: Not set + .0.. .... .... .... = Don't fragment: Not set + ..0. .... .... .... = More fragments: Not set + ...0 0000 0000 0000 = Fragment offset: 0 + Time to live: 128 + Protocol: UDP (17) + Header checksum: 0xafa9 [validation disabled] + [Header checksum status: Unverified] + Source: 192.168.4.1 + Destination: 192.168.4.152 + **User Datagram Protocol, Src Port: 67, Dst Port: 68** + Source Port: 67 + Destination Port: 68 + Length: 310 + Checksum: 0x92db [unverified] + [Checksum Status: Unverified] + [Stream index: 1] + **Bootstrap Protocol (ACK)** + Message type: Boot Reply (2) + Hardware type: Ethernet (0x01) + Hardware address length: 6 + Hops: 0 + **Transaction ID: 0xfd9859a7** + Seconds elapsed: 0 + Bootp flags: 0x0000 (Unicast) + 0... .... .... .... = Broadcast flag: Unicast + .000 0000 0000 0000 = Reserved flags: 0x0000 + Client IP address: 0.0.0.0 + **Your (client) IP address: 192.168.4.152** + Next server IP address: 0.0.0.0 + Relay agent IP address: 0.0.0.0 + **Client MAC address: 3c:58:c2:2f:91:21** + Client hardware address padding: 00000000000000000000 + Server host name not given + Boot file name not given + Magic cookie: DHCP + **Option: (53) DHCP Message Type (ACK)** + Length: 1 + **DHCP: ACK (5)** + Option: (54) DHCP Server Identifier + Length: 4 + **DHCP Server Identifier: 192.168.4.1** + Option: (51) IP Address Lease Time + Length: 4 + IP Address Lease Time: (86400s) 1 day + Option: (1) Subnet Mask + Length: 4 + **Subnet Mask: 255.255.255.0** + Option: (3) Router + Length: 4 + **Router: 192.168.4.1** + Option: (6) Domain Name Server + Length: 4 + **Domain Name Server: 192.168.4.1** + Option: (15) Domain Name + Length: 11 + Domain Name: localdomain + **Option: (119) Domain Search** + **Length: 13** + **FQDN: localdomain** + Option: (255) End + Option End: 255 + +This output looks similar to what :program:`tcpdump` reported, except here we +can see the decode for Option 119. It looks like the DHCP server is providing +the FQDN of “localdomain.” + +Zeek’s Rendition of DORA +======================== + +With this background, let’s look at Zeek’s depiction of this DHCP exchange. + +:: + + { + "ts": "2020-10-02T04:14:39.135304Z", + "uids": [ + "COoA8M1gbTowuPlVT", + "CapFoX32zVg3R6TATc" + ], + "client_addr": "192.168.4.152", + "server_addr": "192.168.4.1", + "mac": "3c:58:c2:2f:91:21", + "host_name": "3071N0098017422", + "client_fqdn": "3071N0098017422.fcps.edu", + "domain": "localdomain", + "requested_addr": "192.168.4.152", + "assigned_addr": "192.168.4.152", + "lease_time": 86400, + "msg_types": [ + "DISCOVER", + "OFFER", + "REQUEST", + "ACK" + ], + "duration": 0.416348934173584 + } + +As you can see, Zeek has taken the important elements from all four DORA +messages and produced a single log entry. Every field is interesting, so I did +not highlight them all. + +Two UIDs +======== + +You might be wondering why there are two UID fields for this single DHCP +exchange. Let’s look at the two corresponding :file:`conn.log` entries. + +The first one shows a “conversation” between ``0.0.0.0`` and ``255.255.255.0``. +This represents the DHCP Discover message, caused by a client not knowing its +source IP address, sending its search to the local network for a DHCP server. + +.. literal-emph:: + + { + "ts": "2020-10-02T04:14:14.443346Z", + "uid": "COoA8M1gbTowuPlVT", + **"id.orig_h": "0.0.0.0",** + **"id.orig_p": 68,** + **"id.resp_h": "255.255.255.255",** + **"id.resp_p": 67,** + "proto": "udp", + "service": "dhcp", + "duration": 63.16645097732544, + "orig_bytes": 1211, + "resp_bytes": 0, + "conn_state": "S0", + "local_orig": false, + "local_resp": false, + "missed_bytes": 0, + "history": "D", + **"orig_pkts": 4,** + "orig_ip_bytes": 1323, + "resp_pkts": 0, + "resp_ip_bytes": 0, + "ip_proto": 17 + } + +Notice that Zeek has tracked 4 “orig packets” here, which does not strictly +correspond to the 2 datagrams from ``0.0.0.0`` to ``255.255.255.255``. Remember +the DORA via :program:`tcpdump` output? + +It’s possible Zeek included other packets involving ``0.0.0.0`` and +``255.255.255.255`` when it created this log entry since this is a broadcast +and Zeek generally may trouble with that because it doesn't fit the +"connection" abstraction. + +The second message shows a conversation between ``192.168.4.152``, the DHCP +client, and ``192.168.4.1``, the DHCP server. + +.. literal-emph:: + + { + "ts": "2020-10-02T04:14:39.120138Z", + "uid": "CapFoX32zVg3R6TATc", + **"id.orig_h": "192.168.4.152",** + **"id.orig_p": 68,** + **"id.resp_h": "192.168.4.1",** + **"id.resp_p": 67,** + "proto": "udp", + "service": "dhcp", + "duration": 0.3367769718170166, + "orig_bytes": 0, + "resp_bytes": 604, + "conn_state": "SHR", + "local_orig": true, + "local_resp": true, + "missed_bytes": 0, + "history": "^d", + "orig_pkts": 0, + "orig_ip_bytes": 0, + "resp_pkts": 2, + "resp_ip_bytes": 660, + "ip_proto": 17 + } + +Here the count of 2 ``resp_pkts`` is correct. + +Enumerating DHCP Servers +======================== + +Analysts can use Zeek’s :file:`dhcp.log` to enumerate systems providing DHCP +services. Consider the output of the following query. + +.. code-block:: console + + $ find . -name "dhcp**.gz" | while read -r file; do zcat -f "$file"; done | jq -c '[."server_addr"]' | sort | uniq -c | sort -nr | head -10 + +:: + + 1337 [null] + 119 ["192.168.4.1"] + +Here we see that ``192.168.4.1`` is providing DHCP services on this network. +The null entries refer to DHCP log entries that do not have a ``server_addr`` +field. One example is Zeek’s log for this DHCP Discover message: + +.. literal-emph:: + + { + "ts": "2020-10-06T23:59:48.577749Z", + "uids": [ + "CctZMx18mIK1qj9Vci" + ], + "mac": "80:ee:73:52:eb:59", + "host_name": "ds61", + "msg_types": [ + **"DISCOVER"** + ], + "duration": 0 + } + +This log entry does not have a ``server_addr`` field, so the query above returns a null result. + +Conclusion +========== + +DHCP is crucial to the proper operation of any IP network. DHCP logs help +analysts map IP addresses to MAC addresses, and may also reveal hostnames. When +investigating suspicious or malicious activity, analysts need to know what +system was assigned what IP address, as DHCP leases expire. However, depending +on the network, systems may retain specific IP addresses for a long time as +they may request an old address as was seen in this example. Of course, +administrators who have configured DHCP to provide fixed IP addresses based on +MAC address will ensure that these machines receive the same IP address, +despite relying on the “dynamic” nature of DHCP. diff --git a/doc/logs/dns.rst b/doc/logs/dns.rst new file mode 100644 index 0000000000..ee670b7061 --- /dev/null +++ b/doc/logs/dns.rst @@ -0,0 +1,267 @@ +======= +dns.log +======= + +The Domain Name System (DNS) log, or :file:`dns.log`, is one of the most +important data sources generated by Zeek. Although recent developments in +domain name resolution have challenged traditional methods for collecting DNS +data, :file:`dns.log` remains a powerful tool for security and network +administrators. + +Those interested in getting details on every element of the :file:`dns.log` +should refer to :zeek:see:`DNS::Info`. + +Throughout the sections that follow, we will inspect Zeek logs in JSON format. + +Inspecting the :file:`dns.log` +============================== + +To inspect the :file:`dns.log`, we will use the same techniques we learned +earlier in the manual. First, we have a JSON-formatted log file, either +collected by Zeek watching a live interface, or by Zeek processing stored +traffic. We use the :program:`jq` utility to review the contents. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ jq . -c dns.log + +:: + + {"ts":1591367999.306059,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":8555,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":28,"qtype_name":"AAAA","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":false,"Z":0,"rejected":false} + + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":19671,"rtt":0.06685185432434082,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":1,"qtype_name":"A","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":true,"Z":0,"answers":["31.3.245.133"],"TTLs":[3600],"rejected":false} + +As before, we could see each field printed on its own line: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ jq . dns.log + +:: + + { + "ts": 1591367999.306059, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 8555, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 28, + "qtype_name": "AAAA", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": false, + "Z": 0, + "rejected": false + } + { + "ts": 1591367999.305988, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 19671, + "rtt": 0.06685185432434082, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 1, + "qtype_name": "A", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": true, + "Z": 0, + "answers": [ + "31.3.245.133" + ], + "TTLs": [ + 3600 + ], + "rejected": false + } + +As emphasized in the :file:`conn.log` material, what an analyst derives from +any log is a function of the questions that he or she is trying to ask of it. +The :file:`dns.log` captures application-level name resolution activity, +assuming that traffic is not encrypted, as is the case with DNS over HTTPS +(DoH) or DNS over TLS (DoT). Applications mainly use DNS to resolve names to IP +addresses, IP addresses to names, and certain other functions. Intruders use +DNS for the same purposes, but may also subvert the protocol to carry +command-and-control traffic, obfuscated or encrypted payload data, or other +unwanted functions. DNS is a suitable protocol for these nefarious activities +because administrators tend to allow it throughout their purview, as it is +necessary for normal network operation. + +In brief, when looking at the :file:`dns.log`, analysts will primarily want to +know who is asking a question, what is the nature of the question, who answered +the question, and how was the question answered. + +Understanding the Second :file:`dns.log` Entry +============================================== + +Let’s use this framework to parse the two log entries. We will start with the +second entry. For reference, that entry is the following: + +:: + + { + "ts": 1591367999.305988, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 19671, + "rtt": 0.06685185432434082, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 1, + "qtype_name": "A", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": true, + "Z": 0, + "answers": [ + "31.3.245.133" + ], + "TTLs": [ + 3600 + ], + "rejected": false + } + +According to this log entry, ``192.168.4.76`` asked ``192.168.4.1`` for the A +record of the host ``testmyids.com``, and received the answer ``31.3.245.133``. +There are more details in the log, but those are the key elements an analyst +should be able to extract. + +Understanding the First :file:`dns.log` Entry +============================================= + +Let’s take a look at the first :file:`dns.log` entry. For reference, that entry +is the following: + +:: + + { + "ts": 1591367999.306059, + "uid": "CMdzit1AMNsmfAIiQc", + "id.orig_h": "192.168.4.76", + "id.orig_p": 36844, + "id.resp_h": "192.168.4.1", + "id.resp_p": 53, + "proto": "udp", + "trans_id": 8555, + "query": "testmyids.com", + "qclass": 1, + "qclass_name": "C_INTERNET", + "qtype": 28, + "qtype_name": "AAAA", + "rcode": 0, + "rcode_name": "NOERROR", + "AA": false, + "TC": false, + "RD": true, + "RA": false, + "Z": 0, + "rejected": false + } + +According to this log entry, ``192.168.4.76`` asked ``192.168.4.1`` for the +AAAA record of the host ``testmyids.com``, and did not receive an answer. + +This is technically true, but it is not the whole story. If we augment stock +Zeek with an additional script available from the project, we get a bit more +information. + +Specifically, we can enable a new script, +:doc:`/scripts/policy/protocols/dns/auth-addl.zeek`. + +We can invoke the script using this syntax: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json2$ zeek -C LogAscii::use_json=T protocols/dns/auth-addl.zeek -r ../tm1t.pcap + +The end result shows more information for the first :file:`dns.log` entry: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json2$ cat dns.log | head -1 + +.. literal-emph:: + + {"ts":1591367999.306059,"uid":"CQsafSKqmlOyqrgC6","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":8555,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":28,"qtype_name":"AAAA","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":false,"Z":0,"rejected":false,**"auth":["ns59.1and1.co.uk"]**} + +The bolded ``auth`` item in the log entry shows that ``ns59.1and1.co.uk`` is the +authoritative name server that is designated to answer questions about the AAAA +record for ``testmyids.com``. + +There are more details in the log, but those are the key elements an analyst +should be able to extract. + +The ``uid`` and Other Fields +============================ + +Note the ``uid`` field in both log entries is ``CMdzit1AMNsmfAIiQc``. This is +the same UID value that appeared in the :file:`conn.log` entry for a DNS +record. That means the DNS activity in the :file:`conn.log` and the DNS +activity in this :file:`dns.log` entry are the same. + +You could have used the UID in the :file:`conn.log` to search for the +corresponding records in the :file:`dns.log` using this UID. For example: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ grep CMdzit1AMNsmfAIiQc dns.log + +:: + + {"ts":1591367999.306059,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":8555,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":28,"qtype_name":"AAAA","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":false,"Z":0,"rejected":false} + + {"ts":1591367999.305988,"uid":"CMdzit1AMNsmfAIiQc","id.orig_h":"192.168.4.76","id.orig_p":36844,"id.resp_h":"192.168.4.1","id.resp_p":53,"proto":"udp","trans_id":19671,"rtt":0.06685185432434082,"query":"testmyids.com","qclass":1,"qclass_name":"C_INTERNET","qtype":1,"qtype_name":"A","rcode":0,"rcode_name":"NOERROR","AA":false,"TC":false,"RD":true,"RA":true,"Z":0,"answers":["31.3.245.133"],"TTLs":[3600.0],"rejected":false} + +Note the matching ``uid`` fields in the :file:`dns.log` entries. In this simple +example, these are the only two entries in the :file:`dns.log`. Extrapolate +this technique to logs with billions of records and you will appreciate the +value! + +Remember that a single :file:`conn.log` entry summarized all of the DNS traffic +associate with the “connection” bearing UID ``CMdzit1AMNsmfAIiQc``. Zeek +treated the 4 packets associated with this conversation as a connection because +they shared the same source and destination IP addresses and ports, and +occurred over the UDP protocol. The single :file:`conn.log` entry had the +timestamp ``1591367999.305988``, which is also the timestamp of the first +:file:`dns.log` entry. + +Zeek’s DNS protocol analyzer created two log entries because it recognized two +different DNS exchanges. The first involved a query and response for +IPv6-related information, i.e., a AAAA record for ``testmyids.com``. The second +involved a query and response for IPv4-related information, i.e., an A record +for ``testmyids.com``. It is interesting to note that the DNS resolver on the +``192.168.4.76`` system requested IPv6 information first, and then IPv4. + +Conclusion +========== + +Zeek’s :file:`dns.log` is a critical log that offers a great deal of +information on how systems are interacting with the Internet and each other. In +the next section we will look at other core Internet protocols. diff --git a/doc/logs/files.rst b/doc/logs/files.rst new file mode 100644 index 0000000000..be625d9ac0 --- /dev/null +++ b/doc/logs/files.rst @@ -0,0 +1,371 @@ +========= +files.log +========= + +One of Zeek’s powerful features is the ability to extract content from network +traffic and write it to disk as a file, via its +:ref:`File Analysis framework `. This is easiest to understand with a +protocol like File Transfer Protocol (FTP), a classic means to exchange files +over a channel separate from that used to exchange commands. Protocols like +HTTP are slightly more complicated, as it includes headers which must be +interpreted and not included in any file content transferred by the protocol. + +Zeek’s :file:`files.log` is a record of files that Zeek observed while +inspecting network traffic. The existence of an entry in :file:`files.log` does +not mean that Zeek necessarily extracted file content and wrote it to disk. +Analysts must configure Zeek to extract files by type in order to have them +written to disk. + +In the following example, an analyst has configured Zeek to extract files of +MIME type ``application/x-dosexec`` and write them to disk. To understand the +chain of events that result in having a file on disk, we will start with the +:file:`conn.log`, progress to the :file:`http.log`, and conclude with the +:file:`files.log`. + +The Zeek scripting manual, derived from the Zeek source code, completely +explains the meaning of each field in the :file:`files.log` (and other logs). +It would be duplicative to manually recreate that information in another format +here. Therefore, this entry seeks to show how an analyst would make use of the +information in the :file:`files.log`. Those interested in getting details on +every element of the :file:`files.log` should refer to :zeek:see:`Files::Info`. + +Throughout the sections that follow, we will inspect Zeek logs in JSON format. +As we have shown how to access logs like this previously using the command +line, we will only show the log entries themselves. + +Inspecting the :file:`conn.log` +=============================== + +The log with which we begin our analysis for this case is the :file:`conn.log`. +It contains the following entry of interest. + +.. literal-emph:: + + { + "ts": 1596820191.94147, + **"uid": "CzoFRWTQ6YIzfFXHk"**, + **"id.orig_h": "192.168.4.37",** + "id.orig_p": 58264, + **"id.resp_h": "23.195.64.241",** + **"id.resp_p": 80,** + "proto": "tcp", + **"service": "http",** + "duration": 0.050640106201171875, + "orig_bytes": 211, + "resp_bytes": 179604, + "conn_state": "SF", + "missed_bytes": 0, + "history": "ShADadtFf", + "orig_pkts": 93, + "orig_ip_bytes": 5091, + "resp_pkts": 129, + "resp_ip_bytes": 186320 + } + +We see that ``192.168.4.37`` contacted ``23.195.64.241`` via HTTP and connected +to port 80 TCP. The responder sent 179604 bytes of data during the +conversation. + +Because this conversation appears to have taken place using HTTP, a clear text +protocol, there is a good chance that we can directly inspect the HTTP headers +and the payloads that were exchanged. + +We will use the UID, ``CzoFRWTQ6YIzfFXHk``, to find corresponding entries in +other log sources to better understand what happened during this conversation. + +Inspecting the :file:`http.log` +=============================== + +We search our :file:`http.log` files for samples containing the UID of interest +and find the following entry: + +.. literal-emph:: + + { + "ts": 1596820191.94812, + **"uid": "CzoFRWTQ6YIzfFXHk",** + "id.orig_h": "192.168.4.37", + "id.orig_p": 58264, + "id.resp_h": "23.195.64.241", + "id.resp_p": 80, + "trans_depth": 1, + **"method": "GET",** + **"host": "download.microsoft.com",** + **"uri": "/download/d/e/5/de5351d6-4463-4cc3-a27c-3e2274263c43/wfetch.exe",** + "version": "1.1", + **"user_agent": "Wget/1.19.4 (linux-gnu)",** + "request_body_len": 0, + "response_body_len": 179272, + **"status_code": 200,** + **"status_msg": "OK",** + "tags": [], + "resp_fuids": [ + **"FBbQxG1GXLXgmWhbk9"** + ], + "resp_mime_types": [ + **"application/x-dosexec"** + ] + } + +The most interesting elements of this log entry include the following:: + + "method": "GET", + "host": "download.microsoft.com", + "uri": "/download/d/e/5/de5351d6-4463-4cc3-a27c-3e2274263c43/wfetch.exe", + +This shows us what file the client was trying to retrieve, ``wfetch.exe``, +from what site, ``download.microsoft.com``. + +The following element shows us the client that made the request:: + + "user_agent": "Wget/1.19.4 (linux-gnu)", + +According to this log entry, the user agent was not a Microsoft product, but +was a Linux version of the :program:`wget` utility. User agent fields can be +manipulated, so we cannot trust that this was exactly what happened. It is +probable however that :program:`wget` was used in this case. + +The following entry shows us that the Web server responding positively to the +request:: + + "status_code": 200, + "status_msg": "OK", + +Based on this entry and the amount of bytes transferred, it is likely that the +client received the file it requested. + +The final two entries of interest tell us something more about the content that +was transferred and how to locate it:: + + "resp_fuids": [ + "FBbQxG1GXLXgmWhbk9" + ], + "resp_mime_types": [ + "application/x-dosexec" + +The first entry provides a file identifier. This is similar to the connection +identifier in the :file:`conn.log`, except that we use the file identifier to +locate specific file contents when written to disk. + +The second entry shows that Zeek recognized the file content as +``application/x-dosexec``, which likely means that the client retrieved a +Windows executable file. + +Inspecting the :file:`files.log` +================================ + +Armed with the file identifier value, we can search any of our +:file:`files.log` repositories for matching values. By searching for the FUID +of ``FBbQxG1GXLXgmWhbk9`` we find the following entry. + +.. literal-emph:: + + { + "ts": 1596820191.969902, + **"fuid": "FBbQxG1GXLXgmWhbk9",** + "uid": "CzoFRWTQ6YIzfFXHk", + "id.orig_h": "192.168.4.37", + "id.orig_p": 58264, + "id.resp_h": "23.195.64.241", + "id.resp_p": 80, + "source": "HTTP", + "depth": 0, + "analyzers": [ + "EXTRACT", + "PE" + ], + **"mime_type": "application/x-dosexec",** + "duration": 0.015498876571655273, + "is_orig": false, + "seen_bytes": 179272, + "total_bytes": 179272, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": false, + **"extracted": "HTTP-FBbQxG1GXLXgmWhbk9.exe",** + "extracted_cutoff": false + } + +Note that this :file:`files.log` entry also contains the UID we found in the +:file:`conn.log`, e.g., ``CzoFRWTQ6YIzfFXHk``. Theoretically we could have just +searched for that UID value and not bothered to locate the FUID in the +:file:`http.log`. However, I find that it makes sense to follow this sort of +progression, as we cannot rely on this same analytical workflow for all cases. + +In this :file:`files.log` data, we see that the ``EXTRACT`` and ``PE`` analyzer +events were activated. Zeek saw 179272 bytes transferred and does not appear to +have missed any bytes. Zeek extracted the file it saw as +``HTTP-FBbQxG1GXLXgmWhbk9.exe``, which means we should be able to locate that +file on disk. + +The ``is_orig`` field in a :file:`files.log` entry can be used to determine +which endpoint sent the file. When ``is_orig`` is ``false``, the responder of +the connection is sending the file. In the example above we can tell that +the HTTP server at ``23.195.64.241`` is sending the file and ``192.168.4.37`` +is receiving it. + +Inspecting the Extracted File +============================= + +The location for extracted files will vary depending on your Zeek +configuration. In my example, Zeek wrote extracted files to a directory called +:file:`extract_files/`. Here is the file in question: + +.. code-block:: console + + $ ls -al HTTP-FBbQxG1GXLXgmWhbk9.exe + +:: + + -rw-rw-r-- 1 zeek zeek 179272 Aug 7 17:23 HTTP-FBbQxG1GXLXgmWhbk9.exe + +Note the byte count, 179272, matches the value in the :file:`files.log`. + +Here is what the Linux file command thinks of this file. + +.. code-block:: console + + $ file HTTP-FBbQxG1GXLXgmWhbk9.exe + +:: + + HTTP-FBbQxG1GXLXgmWhbk9.exe: PE32 executable (GUI) Intel 80386, for MS Windows, MS CAB-Installer self-extracting archive + +This looks like a Windows executable. You can use the :program:`md5sum` utility to +generate a MD5 hash of the file. + +.. code-block:: console + + $ md5sum HTTP-FBbQxG1GXLXgmWhbk9.exe + +:: + + 6711727adf76599bf50c9426057a35fe HTTP-FBbQxG1GXLXgmWhbk9.exe + +We can search by the hash value on VirusTotal using the :program:`vt` command +line tool, provided we have registered and initialized :program:`vt` with our +free API key. + +.. code-block:: console + + $ ./vt file 6711727adf76599bf50c9426057a35fe + +:: + + - _id: "82f39086658ce80df4da6a49fef9d3062a00fd5795a4dd5042de32907bcb5b89" + _type: "file" + authentihash: "2a07d356273d32bf0c5aff83ea847351128fc3971b44052f92b6fb4f45c2272f" + creation_date: 1030609542 # 2002-08-29 08:25:42 +0000 UTC + first_submission_date: 1354191312 # 2012-11-29 12:15:12 +0000 UTC + last_analysis_date: 1592215708 # 2020-06-15 10:08:28 +0000 UTC + last_analysis_results: + ALYac: + category: "undetected" + engine_name: "ALYac" + engine_update: "20200615" + engine_version: "1.1.1.5" + method: "blacklist" + ...edited… + last_analysis_stats: + confirmed-timeout: 0 + failure: 0 + harmless: 0 + malicious: 0 + suspicious: 0 + timeout: 0 + type-unsupported: 2 + undetected: 74 + last_modification_date: 1592220693 # 2020-06-15 11:31:33 +0000 UTC + last_submission_date: 1539056691 # 2018-10-09 03:44:51 +0000 UTC + magic: "PE32 executable for MS Windows (GUI) Intel 80386 32-bit" + md5: "6711727adf76599bf50c9426057a35fe" + meaningful_name: "WEXTRACT.EXE" + names: + - "Wextract" + - "WEXTRACT.EXE" + - "wfetch.exe" + - "583526" + packers: + F-PROT: "CAB, ZIP" + PEiD: "Microsoft Visual C++ v6.0 SPx" + pe_info: + entry_point: 23268 + imphash: "1494de9b53e05fc1f40cb92afbdd6ce4" + import_list: + - imported_functions: + - "GetLastError" + - "IsDBCSLeadByte" + - "DosDateTimeToFileTime" + - "ReadFile" + - "GetStartupInfoA" + - "GetSystemInfo" + - "lstrlenA" + ...edited... + size: 179272 + ssdeep: "3072:BydJq5oyVzs+h0Jk5irDStDD5QOsP0CLRQq8ZZ3xlf/AQnFlFuKIUaKJH:UW2+AiDWOsPxQq8HHf/A07namH" + tags: + - "invalid-signature" + - "peexe" + - "signed" + - "overlay" + times_submitted: 33 + total_votes: + harmless: 1 + malicious: 0 + trid: + - file_type: "Microsoft Update - Self Extracting Cabinet" + probability: 46.3 + - file_type: "Win32 MS Cabinet Self-Extractor (WExtract stub)" + probability: 41.4 + - file_type: "Win32 Executable MS Visual C++ (generic)" + probability: 4.2 + - file_type: "Win64 Executable (generic)" + probability: 3.7 + - file_type: "Win16 NE executable (generic)" + probability: 1.9 + type_description: "Win32 EXE" + type_tag: "peexe" + unique_sources: 24 + vhash: " size: 179272 + ssdeep: "3072:BydJq5oyVzs+h0Jk5irDStDD5QOsP0CLRQq8ZZ3xlf/AQnFlFuKIUaKJH:UW2+AiDWOsPxQq8HHf/A07namH" + tags: + - "invalid-signature" + - "peexe" + - "signed" + - "overlay" + times_submitted: 33 + total_votes: + harmless: 1 + malicious: 0 + trid: + - file_type: "Microsoft Update - Self Extracting Cabinet" + probability: 46.3 + - file_type: "Win32 MS Cabinet Self-Extractor (WExtract stub)" + probability: 41.4 + - file_type: "Win32 Executable MS Visual C++ (generic)" + probability: 4.2 + - file_type: "Win64 Executable (generic)" + probability: 3.7 + - file_type: "Win16 NE executable (generic)" + probability: 1.9 + type_description: "Win32 EXE" + type_tag: "peexe" + unique_sources: 24 + vhash: "0150366d1570e013z1004cmz1f03dz" + +You can access the entire report `via the Web here +`_. + +It appears this is a harmless Windows executable. However, by virtue of having +it extracted from network traffic, analysts have many options for investigation +when the file is not considered benign. + +Conclusion +========== + +Zeek’s file extraction capabilities offer many advantages to analysts. +Administrators can configure Zeek to compute MD5 hashes of files that Zeek sees +in network traffic. Rather than computing a hash on a file written to disk, +Zeek could simply compute the hash as part of its inspection process. The +purpose of this section was to show some of the data in the :file:`files.log`, +how it relates to other Zeek logs, and how analysts might make use of it. diff --git a/doc/logs/ftp.rst b/doc/logs/ftp.rst new file mode 100644 index 0000000000..ec4ad6c69e --- /dev/null +++ b/doc/logs/ftp.rst @@ -0,0 +1,313 @@ +======= +ftp.log +======= + +Zeek’s :file:`ftp.log` summarizes activity using the File Transfer Protocol +(FTP). Similar to the :file:`http.log`, :file:`ftp.log` captures the essential +information an analyst would likely need to understand how a client and server +interact using FTP. + +FTP is an interesting protocol in the sense that it uses one TCP connection as +a control channel and a second TCP connection as a file transfer channel. The +control channel usually involves a FTP server listening on port 21 TCP. The +file transfer channel, however, depends on the choices made by the client and +server. With “passive FTP,” the server advertises a second TCP port to which +the client should connect, and the client connects to that TCP port to initiate +the file transfer. With “active FTP,” the server connects to a TCP port +advertised by the client, although the server uses a source port of 20 TCP. It +is more common to see passive FTP on the Internet today due to middleboxes +(such as firewalls or other filtering devices) interfering with active FTP +connections inbound to clients. + +For full details on each field in the :file:`ftp.log` file, please refer to +:zeek:see:`FTP::Info`. + +Finding the :file:`ftp.log` +=========================== + +In the following example, an analyst knows to look for Zeek logs on a specific +day bearing a specific UID. They search in the specified directory using the +:program:`zgrep` command and pipe the results to the Unix command +:program:`sed`, removing characters prior to the ``.gz:`` that would appear in +the output. This facilitates piping the results into the :program:`jq` utility +for easier viewing. + +.. code-block:: console + + $ zgrep "CLkXf2CMo11hD8FQ5" 2020-08-16/* | sed 's/.*gz://' | jq . + +:: + + { + "_path": "conn", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:10.266225Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:01.485394Z", + "uid": "CLkXf2CMo11hD8FQ5", + "id.orig_h": "192.168.4.76", + "id.orig_p": 53380, + "id.resp_h": "196.216.2.24", + "id.resp_p": 21, + "proto": "tcp", + "service": "ftp", + "duration": 3.780829906463623, + "orig_bytes": 184, + "resp_bytes": 451, + "conn_state": "SF", + "local_orig": true, + "local_resp": false, + "missed_bytes": 0, + "history": "ShAdDafF", + "orig_pkts": 20, + "orig_ip_bytes": 1232, + "resp_pkts": 17, + "resp_ip_bytes": 1343, + "ip_proto": 6, + "community_id": "1:lEESxqaSVYqFZvWNb4OccTa9sTs=" + } + { + "_path": "ftp", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:04.077276Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:03.553287Z", + "uid": "CLkXf2CMo11hD8FQ5", + "id.orig_h": "192.168.4.76", + "id.orig_p": 53380, + "id.resp_h": "196.216.2.24", + "id.resp_p": 21, + "user": "anonymous", + "password": "ftp@example.com", + "command": "EPSV", + "reply_code": 229, + "reply_msg": "Entering Extended Passive Mode (|||31746|).", + "data_channel.passive": true, + "data_channel.orig_h": "192.168.4.76", + "data_channel.resp_h": "196.216.2.24", + "data_channel.resp_p": 31746 + } + { + "_path": "ftp", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:05.117287Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:04.597290Z", + "uid": "CLkXf2CMo11hD8FQ5", + "id.orig_h": "192.168.4.76", + "id.orig_p": 53380, + "id.resp_h": "196.216.2.24", + "id.resp_p": 21, + "user": "anonymous", + "password": "ftp@example.com", + "command": "RETR", + "arg": "ftp://196.216.2.24/pub/stats/afrinic/delegated-afrinic-extended-latest.md5", + "file_size": 74, + "reply_code": 226, + "reply_msg": "Transfer complete.", + "fuid": "FueF95uKPrUuDnMc4" + } + +This output presents three log files. The first is a :file:`conn.log` entry for +the FTP control channel connection involving port 21 TCP. The second two +describe what happened during the FTP control channel. + +Before looking at the details, let’s see a reconstruction of the FTP control +channel. + +Reconstructing the FTP Control Channel +====================================== + +In the following example, we use the :program:`tcpflow` program introduced in +the :file:`http.log` section to reconstruct the FTP control channel. By using +the ``-c`` option, we can tell :program:`tcpflow`` to interleave the traffic +sent by both sides of the conversation. I pass it the port 53380 parameter to +be sure I reconstruct traffic involving that connection, which was the source +port for the FTP client. (If I chose something like 21 TCP instead, I could +have reconstructed numerous FTP sessions beyond the one in question here.) + +In this example, ``196.216.2.24`` is the FTP server, and ``192.168.4.76`` is +the FTP client. + +After the first two entries, I have manually edited the output for readability. + +.. code-block:: console + + $ tcpflow -c -r snort.log.1597554100-196.216.2.24.pcap port 53380 + +.. literal-emph:: + + 196.216.002.024.00021-192.168.004.076.53380 [**server** to client]: 220 ::::: Welcome to the AFRINIC FTP service :::::: + + 192.168.004.076.53380-196.216.002.024.00021 [**client** to server]: USER anonymous + + server: 331 Please specify the password. + + client: PASS ftp@example.com + + server: 230 Login successful. + + client: PWD + + server: 257 "/" + + client: CWD pub + + server: 250 Directory successfully changed. + + client: CWD stats + + server: 250 Directory successfully changed. + + client: CWD afrinic + + server: 250 Directory successfully changed. + + client: EPSV + + server: 229 Entering Extended Passive Mode (|||31746|). + + client: TYPE I + + server: 200 Switching to Binary mode. + + client: SIZE delegated-afrinic-extended-latest.md5 + + server: 213 74 + + client: RETR delegated-afrinic-extended-latest.md5 + + server: 150 Opening BINARY mode data connection for delegated-afrinic-extended-latest.md5 (74 bytes). + + server: 226 Transfer complete. + + client: QUIT + + server: 221 Goodbye. + +Reading this transcript, some important items include the following: + +* This is a FTP server that allows anonymous access. +* The data channel occurs using passive FTP. +* The FTP server opens port 31746 TCP to accept the FTP connection over which + it will transfer the requested file. +* The file transferred is ``delegated-afrinic-extended-latest.md5``, a 74 byte + file. + +With this understanding in place, let’s see how Zeek represents this activity. + +Inspecting the :file:`ftp.log` +============================== + +Let’s take a second look at the two :file:`ftp.log` entries. + +:: + + { + "_path": "ftp", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:04.077276Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:03.553287Z", + "uid": "CLkXf2CMo11hD8FQ5", + "id.orig_h": "192.168.4.76", + "id.orig_p": 53380, + "id.resp_h": "196.216.2.24", + "id.resp_p": 21, + "user": "anonymous", + "password": "ftp@example.com", + "command": "EPSV", + "reply_code": 229, + "reply_msg": "Entering Extended Passive Mode (|||31746|).", + "data_channel.passive": true, + "data_channel.orig_h": "192.168.4.76", + "data_channel.resp_h": "196.216.2.24", + "data_channel.resp_p": 31746 + } + +The first :file:`ftp.log` entry shows us that the FTP client logged in as user +``ftp@example.com``, requested a form of passive connection for its data +channel, and the server offered port 31746 TCP for that connection. + +:: + + { + "_path": "ftp", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:05.117287Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:04.597290Z", + "uid": "CLkXf2CMo11hD8FQ5", + "id.orig_h": "192.168.4.76", + "id.orig_p": 53380, + "id.resp_h": "196.216.2.24", + "id.resp_p": 21, + "user": "anonymous", + "password": "ftp@example.com", + "command": "RETR", + "arg": "ftp://196.216.2.24/pub/stats/afrinic/delegated-afrinic-extended-latest.md5", + "file_size": 74, + "reply_code": 226, + "reply_msg": "Transfer complete.", + "fuid": "FueF95uKPrUuDnMc4" + } + +The second :file:`ftp.log` entry gives details on the file retrieved from the +FTP server, such as the path on the server, its name, and the fact that the +file transfer completed. We also have a file identifier (``FueF95uKPrUuDnMc4``) +that we could use to find the file on disk, if we configured Zeek to extract +and save this sort of content. + +Finding the Data Channel +======================== + +For the sake of completeness, let’s take a look at the FTP data channel using +port 31746 TCP as our guide. I grep for the port number and the TCP protocol to +try to be more specific, although I could have added the source and destination +IP addresses too. + +.. code-block:: console + + $ zcat 2020-08-16/conn_20200816_06\:00\:00-07\:00\:00+0000.log.gz | grep 31746 | grep tcp | sed 's/.*gz://' | jq . + +:: + + { + "_path": "conn", + "_system_name": "ds61", + "_write_ts": "2020-08-16T06:26:09.771034Z", + "_node": "worker-01", + "ts": "2020-08-16T06:26:03.774520Z", + "uid": "CzLMFA3Eh8KBlY4kS7", + "id.orig_h": "192.168.4.76", + "id.orig_p": 60474, + "id.resp_h": "196.216.2.24", + "id.resp_p": 31746, + "proto": "tcp", + "service": "ftp-data", + "duration": 0.9965000152587891, + "orig_bytes": 0, + "resp_bytes": 74, + "conn_state": "SF", + "local_orig": true, + "local_resp": false, + "missed_bytes": 0, + "history": "ShAdfFa", + "orig_pkts": 4, + "orig_ip_bytes": 216, + "resp_pkts": 4, + "resp_ip_bytes": 290, + "ip_proto": 6, + "community_id": "1:DNwvGR6Ots6pISvsdXBUIaG8y3Q=" + } + +Zeek notes that this is a ``ftp-data`` service, which is another way we could +have used to find this connection. + +Conclusion +========== + +FTP is still in use, despite the fact that encrypted alternatives abound. +Zeek’s :file:`ftp.log` provides a compact way to summarize the salient features +of a FTP control channel, pointing out details of the control activity and how +to locate the data channel. diff --git a/doc/logs/http.rst b/doc/logs/http.rst new file mode 100644 index 0000000000..4a5e99cf71 --- /dev/null +++ b/doc/logs/http.rst @@ -0,0 +1,174 @@ +======== +http.log +======== + +The HyperText Transfer Protocol (HTTP) log, or :file:`http.log`, is another +core data source generated by Zeek. With the transition from clear-text HTTP to +encrypted HTTPS traffic, the :file:`http.log` is less active in many +environments. In some cases, however, organizations implement technologies or +practices to expose HTTPS as HTTP. Whether you’re looking at legacy HTTP on the +wire, or HTTPS that has been exposed as HTTP, Zeek’s :file:`http.log` offers +utility for examining normal, suspicious, and malicious activity. + +The Zeek scripting manual, derived from the Zeek source code, completely +explains the meaning of each field in the :file:`http.log` (and other logs). It +would be duplicative to manually recreate that information in another format +here. Therefore, this entry seeks to show how an analyst would make use of the +information in the :file:`http.log`. Those interested in getting details on +every element of the :file:`http.log` should refer to :zeek:see:`HTTP::Info`. + +Throughout the sections that follow, we will inspect Zeek logs in JSON format. + +Inspecting the :file:`http.log` +=============================== + +To inspect the :file:`http.log`, we will use the same techniques we learned +earlier in the manual. First, we have a JSON-formatted log file, either +collected by Zeek watching a live interface, or by Zeek processing stored +traffic. We use the :program:`jq` utility to review the contents. + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ jq . -c http.log + +:: + + {"ts":1591367999.512593,"uid":"C5bLoe2Mvxqhawzqqd","id.orig_h":"192.168.4.76","id.orig_p":46378,"id.resp_h":"31.3.245.133","id.resp_p":80,"trans_depth":1,"method":"GET","host":"testmyids.com","uri":"/","version":"1.1","user_agent":"curl/7.47.0","request_body_len":0,"response_body_len":39,"status_code":200,"status_msg":"OK","tags":[],"resp_fuids":["FEEsZS1w0Z0VJIb5x4"],"resp_mime_types":["text/plain"]} + +This is a very simple :file:`http.log`. With only one entry, it’s the simplest +possible entry. As before, we could see each field printed on its own line: + +.. code-block:: console + + zeek@zeek:~/zeek-test/json$ jq . http.log + +:: + + { + "ts": 1591367999.512593, + "uid": "C5bLoe2Mvxqhawzqqd", + "id.orig_h": "192.168.4.76", + "id.orig_p": 46378, + "id.resp_h": "31.3.245.133", + "id.resp_p": 80, + "trans_depth": 1, + "method": "GET", + "host": "testmyids.com", + "uri": "/", + "version": "1.1", + "user_agent": "curl/7.47.0", + "request_body_len": 0, + "response_body_len": 39, + "status_code": 200, + "status_msg": "OK", + "tags": [], + "resp_fuids": [ + "FEEsZS1w0Z0VJIb5x4" + ], + "resp_mime_types": [ + "text/plain" + ] + } + +HTTP is a protocol that was initially fairly simple. Over time it has become +increasingly complicated. It’s not the purpose of this manual to describe how +HTTP can be used and abused. Rather, we will take a brief look at the most +important elements of this :file:`http.log` entry, which is almost all of them. + +Understanding the :file:`http.log` Entry +======================================== + +Similar to the previous :file:`dns.log`, the :file:`http.log` is helpful +because it combines elements from the conversation between the source and +destination in one log entry. The most fundamental elements of the log answer +questions concerning who made a request, who responded, and the nature of the +request and response. + +In this entry, we see that ``192.168.4.76`` made a request to ``31.3.245.133``. +The originator made a HTTP version 1.1 GET request for the ``/`` or root of the +site ``testmyids.com`` hosted by the responder, passing a user agent of +``curl/7.47.0``. + +The responder replied with a 200 OK message, with a MIME (Multipurpose Internet +Mail Extensions) type of ``text/plain``. Zeek provides us a file ID (or +``fuid``) of ``FEEsZS1w0Z0VJIb5x4``. If we had configured Zeek to log files of +type ``text/plain``, we could look at the content returned by the responder. + +Finally, note the UID of ``C5bLoe2Mvxqhawzqqd``. This is the same UID found in +the :file:`conn.log` for this TCP connection. This allows us to link the +:file:`conn.log` entry with this :file:`http.log` entry. + +Reviewing the Original Traffic +============================== + +To better understand the original traffic, and how it relates to the Zeek +:file:`http.log`, let’s look at the contents manually. HTTP is a clear-text +protocol. Assuming the contents are also clear text, and not obfuscated or +encrypted, we can look at the contents. In the following example I use the +venerable program :program:`tcpflow` to create two files. One contains data +from the originator to the responder, while the second contains data from the +responder to the originator. + +.. code-block:: console + + zeek@zeek:~/zeek-test$ tcpflow -r tm1t.pcap port 80 + +Let’s first look at the data from the originator to the responder. + +.. code-block:: console + + zeek@zeek:~/zeek-test$ cat 192.168.004.076.46378-031.003.245.133.00080 + +:: + + GET / HTTP/1.1 + Host: testmyids.com + User-Agent: curl/7.47.0 + Accept: */* + +Here is the data from the responder to the originator. + +.. code-block:: console + + zeek@zeek:~/zeek-test$ cat 031.003.245.133.00080-192.168.004.076.46378 + +:: + + HTTP/1.1 200 OK + Server: nginx/1.16.1 + Date: Fri, 05 Jun 2020 14:40:07 GMT + Content-Type: text/html; charset=UTF-8 + Content-Length: 39 + Connection: keep-alive + Last-Modified: Fri, 10 Jan 2020 21:36:02 GMT + ETag: "27-59bcfe9932c32" + Accept-Ranges: bytes + + uid=0(root) gid=0(root) groups=0(root) + +As you can see, there are elements, particularly in the response, that do not +appear in the :file:`http.log`. For example, the Server type of +``nginx/1.16.1`` is not logged. If an analyst or administrator decided that he +or she wished to include that data in his or her :file:`http.log`, it is +possible to make adjustments. + +The data from the responder also shows the application payload it sent:: + + uid=0(root) gid=0(root) groups=0(root) + +This is the output of a Unix ``uname -a`` command. It is hosted at the server +``testmyids.com`` to trigger a “GPL ATTACK_RESPONSE id check returned root” +alert found in open source intrusion detection engine rule sets, such as that +supported by Suricata. Analysts sometimes use this site to test if their +intrusion detection engines are functioning properly. A more modern option with +many different tests can be found at https://github.com/0xtf/testmynids.org. + +Conclusion +========== + +Zeek’s :file:`http.log` is another important log that offers a great deal of +information on how systems are interacting with the Internet and each other. In +the example in this section we looked at a very simple interaction between an +originator and a responder. We could see the benefit of summarizing an HTTP +request and response in a single log entry. In the next section we will look +at other core Internet protocols. diff --git a/doc/logs/index.rst b/doc/logs/index.rst new file mode 100644 index 0000000000..6350dee59f --- /dev/null +++ b/doc/logs/index.rst @@ -0,0 +1,31 @@ +========= +Zeek Logs +========= + +.. toctree:: + :maxdepth: 1 + + analyzer + conn + dns + http + files + ftp + ssl + x509 + smtp + ssh + pe + dhcp + ntp + smb + irc + ldap + postgresql + quic + rdp + traceroute + tunnel + known-and-software + weird-and-notice + capture-loss-and-reporter diff --git a/doc/logs/irc.rst b/doc/logs/irc.rst new file mode 100644 index 0000000000..56fbe10fa2 --- /dev/null +++ b/doc/logs/irc.rst @@ -0,0 +1,475 @@ +======= +irc.log +======= + +Internet Relay Chat (IRC) is an older protocol that enables real time chat and +collaboration. The Zeek project hosted an IRC channel for many years to support +development and discussion. Some intruders eventually began using IRC to +control botnets, primarily for two reasons. First, as IRC had legitimate uses, +it may not have been suspicious or malicious to see IRC traffic on the wire. +Second, IRC enabled command-and-control, thanks to the ability for operators to +issue instructions to clients that controlled compromised systems. + +Traditionally, IRC clients connect via a clear-text TCP session to an IRC +server listening on port 6667. The commands and responses are text-based, +making it possible for an analyst to manually inspect them. More recent +implementations of IRC servers offer IRC over TLS, with the servers listening +on port 6697 TCP. However, for both unencrypted or encrypted sessions, IRC +servers can listen on any TCP port. + +For full details on each field in the :file:`irc.log` file, please see +:zeek:see:`IRC::Info`. + +Reconstructing an IRC Session +============================= + +Before examining the data provided by Zeek’s :file:`irc.log`, it might be +useful to see the contents of an IRC session. I generated the following +activity using the Hexchat IRC client. + +I have edited the transcript to focus on essential items. Text in bold was sent +by the IRC client. The server sent the remaining text. + +.. literal-emph:: + + **CAP LS 302** + :barjavel.freenode.net NOTICE * :*** Looking up your hostname... + **NICK zeektest** + **USER zeektest 0 * :realname** + :barjavel.freenode.net NOTICE * :*** Checking Ident + :barjavel.freenode.net NOTICE * :*** Found your hostname + :barjavel.freenode.net NOTICE * :*** No Ident response + :barjavel.freenode.net CAP * LS :account-notify away-notify cap-notify chghost extended-join identify-msg multi-prefix sasl tls + **CAP REQ :account-notify away-notify cap-notify chghost extended-join identify-msg multi-prefix** + **:barjavel.freenode.net CAP zeektest ACK :account-notify away-notify cap-notify chghost extended-join identify-msg multi-prefix ** + **CAP END** + :barjavel.freenode.net 001 zeektest :Welcome to the freenode Internet Relay Chat Network zeektest + :barjavel.freenode.net 002 zeektest :Your host is barjavel.freenode.net[195.154.200.232/6667], running version ircd-seven-1.1.9 + :barjavel.freenode.net 003 zeektest :This server was created Thu Dec 19 2019 at 20:10:02 UTC + :barjavel.freenode.net 004 zeektest barjavel.freenode.net ircd-seven-1.1.9 DOQRSZaghilopsuwz CFILMPQSbcefgijklmnopqrstuvz bkloveqjfI + :barjavel.freenode.net 005 zeektest CHANTYPES=# EXCEPTS INVEX CHANMODES=eIbq,k,flj,CFLMPQScgimnprstuz CHANLIMIT=#:120 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=freenode STATUSMSG=@+ CALLERID=g CASEMAPPING=rfc1459 :are supported by this server + :barjavel.freenode.net 005 zeektest CHARSET=ascii NICKLEN=16 CHANNELLEN=50 TOPICLEN=390 DEAF=D FNC TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,ajrxz CLIENTVER=3.0 WHOX KNOCK CPRIVMSG :are supported by this server + :barjavel.freenode.net 005 zeektest CNOTICE ETRACE SAFELIST ELIST=CTU MONITOR=100 :are supported by this server + :barjavel.freenode.net 251 zeektest :There are 101 users and 82081 invisible on 31 servers + :barjavel.freenode.net 252 zeektest 43 :IRC Operators online + :barjavel.freenode.net 253 zeektest 45 :unknown connection(s) + :barjavel.freenode.net 254 zeektest 41982 :channels formed + :barjavel.freenode.net 255 zeektest :I have 3809 clients and 1 servers + :barjavel.freenode.net 265 zeektest 3809 5891 :Current local users 3809, max 5891 + :barjavel.freenode.net 266 zeektest 82182 90930 :Current global users 82182, max 90930 + :barjavel.freenode.net 250 zeektest :Highest connection count: 5892 (5891 clients) (1543159 connections received) + :barjavel.freenode.net 375 zeektest :- barjavel.freenode.net Message of the Day - + :barjavel.freenode.net 372 zeektest :- Welcome to barjavel.freenode.net in Paris, FR, EU. + ...edited… + :barjavel.freenode.net 372 zeektest :- Thank you for using freenode! + :barjavel.freenode.net 376 zeektest :End of /MOTD command. + :zeektest MODE zeektest :+i + **JOIN #freenode** + :zeektest!~zeektest@pool-XX-XXX-XXX-XX.washdc.fios.verizon.net JOIN #freenode * :realname + :barjavel.freenode.net 332 zeektest #freenode :Welcome to #freenode | Don't copy/paste spam | No politics. | Feel free to message staff at any time. You can find us using /stats p (shows immediately-available staff) or /who freenode/staff/* (shows all staff) + :barjavel.freenode.net 333 zeektest #freenode deadk 1604191950 + ...edited… + :ChanServ!ChanServ@services. NOTICE zeektest :+[#freenode] Please read the topic. + :services. 328 zeektest #freenode :https://freenode.net/ + **WHO #freenode %chtsunfra,152** + :barjavel.freenode.net 324 zeektest #freenode +CLPcntjf 5:10 #freenode-overflow + ...edited… + **PING LAG641756037** + :barjavel.freenode.net PONG barjavel.freenode.net :LAG641756037 + :willcl_ark!~quassel@cpc123780-trow7-2-0-cust177.18-1.cable.virginm.net AWAY :Away + :EGH!~EGH@79.142.76.202 JOIN #freenode EGH :Erik + **PRIVMSG #freenode :One more test... thanks everyone.** + **QUIT :Leaving** + :zeektest!~zeektest@pool-XX-XXX-XXX-XX.washdc.fios.verizon.net QUIT :Client Quit + ERROR :Closing Link: pool-XX-XXX-XXX-XX.washdc.fios.verizon.net (Client Quit) + +As you can see, there is a lot of detail about the IRC server and the channels +and users it supports. The client uses the nickname ``zeektest`` and joins the +``#freenode`` channel. It issues one message. ``One more test… thanks +everyone``, and then quits. + +I captured this traffic by manually setting disabling TLS. Otherwise, the +protocol exchange would have been opaque to Zeek (and other NSM tools). + +With this basic background on IRC, let’s see how Zeek renders this activity. + +Port 6667 :file:`conn.log` +========================== + +Zeek generated the following :file:`conn.log` entry for the example traffic. + +.. literal-emph:: + + { + "ts": 1607009493.558305, + "uid": "CDsHGC2ZJuJh10XNbk", + "id.orig_h": "192.168.4.142", + "id.orig_p": 52856, + "id.resp_h": "195.154.200.232", + **"id.resp_p": 6667,** + **"proto": "tcp",** + **"service": "irc",** + "duration": 55.26594305038452, + "orig_bytes": 311, + "resp_bytes": 239330, + "conn_state": "RSTO", + "missed_bytes": 0, + "history": "ShADadfR", + "orig_pkts": 41, + "orig_ip_bytes": 1963, + "resp_pkts": 185, + "resp_ip_bytes": 246742, + "ip_proto": 6 + } + +We see that Zeek correctly identified this traffic as IRC. We can expect to see +an :file:`irc.log` entry. + +Port 6667 :file:`irc.log` +========================= + +Zeek generated the following three :file:`irc.log` entries: + +.. literal-emph:: + + { + "ts": 1607009493.733304, + "uid": "CDsHGC2ZJuJh10XNbk", + "id.orig_h": "192.168.4.142", + "id.orig_p": 52856, + "id.resp_h": "195.154.200.232", + "id.resp_p": 6667, + **"command": "NICK",** + **"value": "zeektest"** + } + { + "ts": 1607009493.733304, + "uid": "CDsHGC2ZJuJh10XNbk", + "id.orig_h": "192.168.4.142", + "id.orig_p": 52856, + "id.resp_h": "195.154.200.232", + "id.resp_p": 6667, + **"nick": "zeektest",** + **"command": "USER",** + **"value": "zeektest",** + "addl": "0 * realname" + } + { + "ts": 1607009514.481161, + "uid": "CDsHGC2ZJuJh10XNbk", + "id.orig_h": "192.168.4.142", + "id.orig_p": 52856, + "id.resp_h": "195.154.200.232", + "id.resp_p": 6667, + **"nick": "zeektest",** + **"user": "zeektest",** + **"command": "JOIN",** + **"value": "#freenode",** + "addl": "" + } + +We see that Zeek collected information on three aspects of the IRC activity. It +captured the setting of the NICK and USER values, as well as a JOIN command. + +Looking at the Zeek scripting reference, it looks like Zeek will also track +Direct Client-to-Client (or Direct Client Connection, also known as DCC) +activity, usually used to exchange files via IRC. + +Now that we know what a traditional unencrypted IRC session looks like, let’s +see how a modern TLS-encrypted IRC session appears. + +Port 6697 :file:`conn.log` +========================== + +Running Zeek against a capture of IRC over TLS, Zeek produces the following +:file:`conn.log` entry. + +.. literal-emph:: + + { + "ts": 1607009173.307125, + "uid": "CxLRXG3BJ8KYCW6flg", + "id.orig_h": "192.168.4.142", + "id.orig_p": 59423, + "id.resp_h": "185.30.166.38", + **"id.resp_p": 6697,** + **"proto": "tcp",** + **"service": "ssl",** + "duration": 80.66936779022217, + "orig_bytes": 1162, + "resp_bytes": 251941, + "conn_state": "RSTR", + "missed_bytes": 0, + "history": "ShADadfr", + "orig_pkts": 49, + "orig_ip_bytes": 3134, + "resp_pkts": 197, + "resp_ip_bytes": 259833 + } + +Here we see that Zeek only knows that it is looking at a TLS session. + +Port 6697 :file:`ssl.log` and :file:`x509.log` +============================================== + +Because this traffic is encrypted via TLS, Zeek produced :file:`ssl.log` and +:file:`x509.log` entries. + +First, let’s look at :file:`ssl.log`: + +.. literal-emph:: + + { + "ts": 1607009173.826036, + "uid": "CxLRXG3BJ8KYCW6flg", + "id.orig_h": "192.168.4.142", + "id.orig_p": 59423, + "id.resp_h": "185.30.166.38", + "id.resp_p": 6697, + "version": "TLSv12", + "cipher": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "curve": "secp256r1", + **"server_name": "chat.freenode.net",** + "resumed": false, + "established": true, + "cert_chain_fuids": [ + "F6pDkA4niQwyXPxugf", + "F1JGJ81fmUN17LOYnk" + ], + "client_cert_chain_fuids": [], + **"subject": "CN=verne.freenode.net",** + "issuer": "CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US" + } + +The references to Freenode and ``chat`` can help clue an analyst to the +likelihood that the client is engaging in IRC sessions. + +Now let’s look at the :file:`x509.log`: + +.. literal-emph:: + + { + "ts": 1607009173.828159, + "id": "F6pDkA4niQwyXPxugf", + "certificate.version": 3, + "certificate.serial": "040831FAE9EF9E4D666A4B9EDE996878C79B", + "certificate.subject": "CN=verne.freenode.net", + "certificate.issuer": "CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US", + "certificate.not_valid_before": 1605501336, + "certificate.not_valid_after": 1613277336, + "certificate.key_alg": "rsaEncryption", + "certificate.sig_alg": "sha256WithRSAEncryption", + "certificate.key_type": "rsa", + "certificate.key_length": 4096, + "certificate.exponent": "65537", + "san.dns": [ + **"chat.au.freenode.com",** + **"chat.au.freenode.net",** + **"chat.au.freenode.org",** + **"chat.eu.freenode.com",** + **"chat.eu.freenode.net",** + **"chat.eu.freenode.org",** + **"chat.freenode.com",** + **"chat.freenode.net",** + **"chat.freenode.org",** + **"chat.ipv4.freenode.com",** + **"chat.ipv4.freenode.net",** + **"chat.ipv4.freenode.org",** + **"chat.ipv6.freenode.com",** + **"chat.ipv6.freenode.net",** + **"chat.ipv6.freenode.org",** + **"chat.us.freenode.com",** + **"chat.us.freenode.net",** + **"chat.us.freenode.org",** + **"ipv6.chat.freenode.net",** + **"ipv6.irc.freenode.net",** + **"irc.au.freenode.com",** + **"irc.au.freenode.net",** + **"irc.au.freenode.org",** + **"irc.eu.freenode.com",** + **"irc.eu.freenode.net",** + **"irc.eu.freenode.org",** + **"irc.freenode.com",** + **"irc.freenode.net",** + **"irc.freenode.org",** + **"irc.ipv4.freenode.com",** + **"irc.ipv4.freenode.net",** + **"irc.ipv4.freenode.org",** + **"irc.ipv6.freenode.com",** + **"irc.ipv6.freenode.net",** + **"irc.ipv6.freenode.org",** + **"irc.us.freenode.com",** + **"irc.us.freenode.net",** + **"irc.us.freenode.org",** + **"verne.freenode.net"** + ], + "basic_constraints.ca": false + } + { + "ts": 1607009173.828159, + "id": "F1JGJ81fmUN17LOYnk", + "certificate.version": 3, + "certificate.serial": "0A0141420000015385736A0B85ECA708", + "certificate.subject": "CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US", + "certificate.issuer": "CN=DST Root CA X3,O=Digital Signature Trust Co.", + "certificate.not_valid_before": 1458232846, + "certificate.not_valid_after": 1615999246, + "certificate.key_alg": "rsaEncryption", + "certificate.sig_alg": "sha256WithRSAEncryption", + "certificate.key_type": "rsa", + "certificate.key_length": 2048, + "certificate.exponent": "65537", + "basic_constraints.ca": true, + "basic_constraints.path_len": 0 + } + +The bolded entries containing strings with “IRC”, “chat”, and Freenode are +again clues that IRC is in play here. + +Port 31337 :file:`conn.log` +=========================== + +Here is a different session where port 31337 TCP offered clear-text IRC +connections. Zeek produced three :file:`conn.log` entries, involving clients +with IP addresses of ``10.240.0.3``, ``10.240.0.4``, and ``10.240.0.5``. Here +is an entry for the client ``10.240.0.5``. + +.. literal-emph:: + + { + "ts": 1461774814.057057, + "uid": "Cs0hwm3slMw4IBDU0h", + "id.orig_h": "10.240.0.5", + "id.orig_p": 42277, + "id.resp_h": "10.240.0.2", + **"id.resp_p": 31337,** + **"proto": "tcp",** + **"service": "irc",** + "duration": 787.9501581192017, + "orig_bytes": 1026, + "resp_bytes": 10425, + "conn_state": "SF", + "missed_bytes": 0, + "history": "ShADadfF", + "orig_pkts": 95, + "orig_ip_bytes": 5974, + "resp_pkts": 87, + "resp_ip_bytes": 14957 + } + +Zeek identified the protocol as IRC by using its dynamic port detection +functionality. It did not need to see IRC on port 6667 TCP in order to +recognize the protocol. + +Port 31337 :file:`irc.log` +========================== + +Zeek produced many entries in the :file:`irc.log` for this activity, so I +extracted the key values. + +.. code-block:: console + + $ jq -c '[."id.orig_h", ."nick", ."user", ."command", ."value", ."addl"]' irc.log + +:: + + ["10.240.0.3",null,null,"NICK","Matir",null] + ["10.240.0.3","Matir",null,"USER","root-poppopret","root-poppopret 10.240.0.2 matir"] + ["10.240.0.3","Matir","root-poppopret","JOIN","#ctf",""] + ["10.240.0.4",null,null,"NICK","andrewg",null] + ["10.240.0.4","andrewg",null,"USER","root-poppopret","root-poppopret 10.240.0.2 andrewg"] + ["10.240.0.4","andrewg","root-poppopret","JOIN","#ctf",""] + ["10.240.0.5",null,null,"NICK","itsl0wk3y",null] + ["10.240.0.5","itsl0wk3y",null,"USER","root-poppopret","root-poppopret 10.240.0.2 l0w"] + ["10.240.0.5","itsl0wk3y","root-poppopret","JOIN","#ctf",""] + +As with the previous :file:`irc.log`, you can see elements like the nickname, +username, commands, and additional data for the connections. You do not see any +details of what users said to each other. + +Botnet IRC Traffic +================== + +The following example is an excerpt from a case provided by the Malware Capture +Facility, a sister project to the Stratosphere IPS Project. The case is +CTU-IoT-Malware-Capture-3-1, located here: + +https://mcfp.felk.cvut.cz/publicDatasets/IoTDatasets/CTU-IoT-Malware-Capture-3-1/ + +The case includes IRC traffic caused by systems compromised and under the +control of the Muhstihk botnet. More details are available in this blog post: + +https://blog.netlab.360.com/botnet-muhstik-is-actively-exploiting-drupal-cve-2018-7600-in-a-worm-style-en/ + +Here is a summary of the :file:`conn.log` for the malicious IRC traffic. + +.. code-block:: console + + $ jq -c '[."id.orig_h", ."id.resp_h", ."id.resp_p", ."proto", ."service"]' conn.log + +:: + + ["192.168.2.5","111.230.241.23",2407,"tcp","irc"] + ["192.168.2.5","51.38.81.99",2407,"tcp","irc"] + ["192.168.2.5","185.61.149.22",2407,"tcp",null] + ["192.168.2.5","54.39.23.28",2407,"tcp","irc"] + ["192.168.2.5","54.39.23.28",2407,"tcp","irc"] + ["192.168.2.5","185.47.129.56",2407,"tcp",null] + ["213.140.50.114","192.168.2.5",1,"icmp",null] + ["192.168.2.5","111.230.241.23",2407,"tcp","irc"] + ["192.168.2.5","54.39.23.28",2407,"tcp","irc"] + +We see the victim, ``192.168.2.5``, connecting to multiple IRC servers on port +2407 TCP. Note that Zeek does not recognize all of the IRC traffic using its +IRC protocol analyzer. Zeek does see six IRC sessions that it parses in the +:file:`irc.log`. + +Here is a summary of the :file:`irc.log` for the IRC traffic created by this +botnet client. + +.. code-block:: console + + $ jq -c '[."id.orig_h", ."id.resp_h", ."nick", ."user", ."command", ."value", ."addl"]' irc.log + +:: + + ["192.168.2.5","111.230.241.23",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","111.230.241.23","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","51.38.81.99",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","51.38.81.99","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","51.38.81.99","A5|1|5358668|black-pe","muhstik","JOIN","#a925d765"," with channel key: ':8974'"] + ["192.168.2.5","54.39.23.28",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe","muhstik","JOIN","#a925d765"," with channel key: ':8974'"] + ["192.168.2.5","54.39.23.28",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe","muhstik","JOIN","#a925d765"," with channel key: ':8974'"] + ["192.168.2.5","111.230.241.23",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","111.230.241.23","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","111.230.241.23","A5|1|5358668|black-pe","muhstik","JOIN","#a925d765"," with channel key: ':8974'"] + ["192.168.2.5","54.39.23.28",null,null,"NICK","A5|1|5358668|black-pe",null] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe",null,"USER","muhstik","localhost localhost muhstik-11052018"] + ["192.168.2.5","54.39.23.28","A5|1|5358668|black-pe","muhstik","JOIN","#a925d765"," with channel key: ':8974'"] + +Here is an example transcript for one of the IRC sessions: + +.. literal-emph:: + + **NICK A5|1|5358668|black-pe** + **USER muhstik localhost localhost :muhstik-11052018** + PING :A2A5630 + **PONG :A2A5630** + :x4.tipu 010 A5|1|5358668|black-pe x4.tipu 0 + :x4.tipu 010 A5|1|5358668|black-pe pomf 6667 + ERROR :Closing Link: A5|1|5358668|black-pe[109.81.208.168] (This server is full.) + +Thankfully for the analyst, it declares itself using the easily-searchable name +``muhstik``. This makes it easy to do open source research and identify the +malicious nature of the activity. + +Conclusion +========== + +Security analysts may still encounter IRC when botnets and other malware use it +for command-and-control. As other forms of modern collaboration and chat have +become prevalent, the normality of IRC has become a remnant of a bygone era. diff --git a/doc/logs/known-and-software.rst b/doc/logs/known-and-software.rst new file mode 100644 index 0000000000..f2187f683c --- /dev/null +++ b/doc/logs/known-and-software.rst @@ -0,0 +1,137 @@ +============================ +known_*.log and software.log +============================ + +Zeek produces several logs that help summarize certain aspects of the network +it monitors. These logs track a few aspects of the local network, such as +SSL/TLS certificates, host IP addresses, services, and applications. + +The sections which follow will present examples of entries in +:file:`known_certs.log`, :file:`known_hosts.log`, :file:`known_services.log`, +and :file:`software.log` files collected on live networks. + +For full details on each field of those log files, see +:zeek:see:`Known::CertsInfo`, :zeek:see:`Known::HostsInfo`, +:zeek:see:`Known::ServicesInfo`, and :zeek:see:`Software::Info`. + +:file:`known_certs.log` +======================= + +The :file:`known_certs.log` captures information about SSL/TLS certificates +seen on the local network. Here is one example:: + + { + "ts": "2020-12-31T15:15:53.690221Z", + "host": "192.168.4.1", + "port_num": 443, + "subject": "L=San Jose,ST=CA,O=Ubiquiti Networks,CN=UBNT Router UI,C=US", + "issuer_subject": "L=San Jose,ST=CA,O=Ubiquiti Networks,CN=UBNT Router UI,C=US", + "serial": "98D0AD47D748CDD6" + } + +This example shows a device offering a TLS server on port 443 TCP, with a +certificate associated with Ubiquiti Networks. + +:file:`known_hosts.log` +======================= + +The :file:`known_hosts.log` simply records a timestamp and an IP address when +Zeek observes a new system on the local network. + +:: + + {"ts":"2021-01-03T01:19:26.260073Z","host":"192.168.4.25"} + {"ts":"2021-01-03T01:19:27.353353Z","host":"192.168.4.29"} + {"ts":"2021-01-03T01:19:32.488179Z","host":"192.168.4.43"} + {"ts":"2021-01-03T01:19:58.792683Z","host":"192.168.4.142"} + ...edited... + {"ts":"2021-01-03T12:17:22.496004Z","host":"192.168.4.115"} + +This edited example shows how this log could be part of an IP address inventory +program. + +:file:`known_services.log` +========================== + +The :file:`known_services.log` records a timestamp, IP, port number, protocol, +and service (if available) when Zeek observes a system offering a new service +on the local network. Here is what a single entry looks like:: + + { + "ts": "2021-01-03T01:19:36.242774Z", + "host": "192.168.4.1", + "port_num": 53, + "port_proto": "udp", + "service": [ + "DNS" + ] + } + +For the following list, I used the :program:`jq` utility to remove the +timestamp but show the other log values. + +:: + + ["192.168.4.43",51472,"tcp",[]] + ["192.168.4.1",443,"tcp",["SSL"]] + ["192.168.4.1",80,"tcp",["HTTP"]] + ["192.168.4.1",22,"tcp",["SSH"]] + ["192.168.4.1",53,"tcp",["DNS"]] + ["192.168.4.1",123,"udp",["NTP"]] + ["192.168.4.50",49745,"tcp",[]] + ["192.168.4.158",4500,"udp",[]] + ["192.168.4.159",53032,"tcp",[]] + ["192.168.4.142",36807,"udp",[]] + ["192.168.4.1",53,"udp",["DNS"]] + ["192.168.4.149",8080,"tcp",["HTTP"]] + ["192.168.4.1",67,"udp",["DHCP"]] + ["192.168.4.43",64744,"tcp",[]] + ["192.168.4.43",52793,"tcp",[]] + ["192.168.4.29",52827,"tcp",[]] + ["192.168.4.43",64807,"tcp",[]] + ["192.168.4.43",64752,"tcp",[]] + ["192.168.4.149",3478,"udp",[]] + +Note how many of the services do not have names associated with them. + +:file:`software.log` +==================== + +Zeek’s :file:`software.log` collects details on applications operated by the +hosts it sees on the local network. The log captures information like the +following:: + + { + "ts": "2021-01-03T00:16:22.694616Z", + "host": "192.168.4.25", + "software_type": "HTTP::BROWSER", + "name": "Windows-Update-Agent", + "version.major": 10, + "version.minor": 0, + "version.minor2": 10011, + "version.minor3": 16384, + "version.addl": "Client", + "unparsed_version": "Windows-Update-Agent/10.0.10011.16384 Client-Protocol/2.0" + } + +It is amazing in 2021 that so many modern applications still use clear text +protocols subject to collection and analysis by software like Zeek. + +Services beyond HTTP may also reveal interesting details. Consider these three +entries:: + + ["192.168.4.1","SSH::SERVER","OpenSSH",6,6,1,null,"p1","OpenSSH_6.6.1p1 Debian-4~bpo70+1"] + ["192.168.4.37","SSH::CLIENT","OpenSSH",6,6,1,null,"p1","OpenSSH_6.6.1p1 Debian-4~bpo70+1"] + ["192.168.4.37","SSH::CLIENT","OpenSSH",7,6,null,null,"p1","OpenSSH_7.6p1"] + +These examples show an SSH server and two different SSH clients. + +Conclusion +========== + +Details recorded in :file:`known_certs.log`, :file:`known_hosts.log`, +:file:`known_services.log`, and :file:`software.log` files can help network and +security analysts better understand the nature of the activity in their +environment. Some of this information relies on capturing clear text, while +other aspects are based solely on the presence of the services and hosts on the +network. diff --git a/doc/logs/ldap.rst b/doc/logs/ldap.rst new file mode 100644 index 0000000000..d8e073a76b --- /dev/null +++ b/doc/logs/ldap.rst @@ -0,0 +1,140 @@ +============================ +ldap.log and ldap_search.log +============================ + +.. versionadded:: 6.1 + +The Lightweight Directory Access Protocol (LDAP) is a +widely observed protocol commonly used for authenticating, directory lookups, +centralizing organisational information and accessing client information on +email servers. Accordingly, the protocol attracts significant attention from +those with adversarial intention. + + +LDAP Protocol Overview +====================== + +LDAP communicates using a client-server model. The LDAP server contains the +directory information and the LDAP client performs operations against this +information. This is a quick overview of how the protocol works: + + Sessions: An LDAP session begins with a client connecting to an LDAP server, + optionally securing the connection with encryption, and then binding to the + server by providing credentials. + + Queries: Clients search for entries in the LDAP directory using LDAP + queries, which consist of a base Distinguished Name (DN), a scope (such + as one level or the entire subtree), and a filter to match entries. Queries + are read only. + + Operations: Clients with the correct privileges can perform a variety of + operations; in addition to search, they can add, delete or modify. + + Data Format: LDAP data entries are formatted as records consisting of a + DN and a set of attributes. Each attribute has a name and one or more values. + +The LDAP analyzer outputs two LDAP related logs. :file:`ldap.log` contains +details about the LDAP session except those related to searches. +:file:`ldap_search.log` contains information related to LDAP searches. + +For details on every element of the :file:`ldap.log` and :file:`ldap_search.log` +refer to :zeek:see:`LDAP::MessageInfo` and :zeek:see:`LDAP::SearchInfo`, respectively. +Below is an inspection of the :file:`ldap.log` and :file:`ldap_search.log` in JSON format. + +:file:`ldap.log` +================ + +An example of an :file:`ldap.log`. + +.. code-block:: console + + zeek@zeek-6.1:~ zeek -C LogAscii::use_json=T LDAP::default_log_search_attributes=T -r ldap-simpleauth.pcap + zeek@zeek-6.1:~ jq . ldap.log + +:: + + { + "ts": 1463256456.051759, + "uid": "ChD43F3guxAmJ5f2aj", + "id.orig_h": "10.0.0.1", + "id.orig_p": 25936, + "id.resp_h": "10.0.0.2", + "id.resp_p": 3268, + "message_id": 3, + "version": 3, + "opcode": "bind simple", + "result": "success", + "object": "CN=xxxxxxxx,OU=Users,OU=Accounts,DC=xx,DC=xxx,DC=xxxxx,DC=net", + "argument": "REDACTED" + } + + +:file:`ldap_search.log` +======================= + +An example of an :file:`ldap_search.log`. Note the default for +:zeek:see:`LDAP::default_log_search_attributes` is F, excluding attributes +from the log. + +.. code-block:: console + + zeek@zeek-6.1:~ zeek -C LogAscii::use_json=T LDAP::default_log_search_attributes=T -r ldap-simpleauth.pcap + zeek@zeek-6.1:~ jq . ldap_search.log + +:: + + { + "ts": 1463256456.047579, + "uid": "CAOF1l3FR8UzQ7mIb8", + "id.orig_h": "10.0.0.1", + "id.orig_p": 25936, + "id.resp_h": "10.0.0.2", + "id.resp_p": 3268, + "message_id": 2, + "scope": "tree", + "deref_aliases": "always", + "base_object": "DC=xx,DC=xxx,DC=xxxxx,DC=net", + "result_count": 1, + "result": "success", + "filter": "(&(objectclass=*)(sAMAccountName=xxxxxxxx))", + "attributes": [ + "sAMAccountName" + ] + } + + +StartTLS +======== + +.. versionadded:: 7.0 + +Zeek's LDAP analyzer supports the +`extended StartTLS `_ +operation, handing off analysis to Zeek's TLS analyzer. The following shows an +example :file:`ldap.log` entry for the StartTLS request. + +.. code-block:: console + + $ zeek -C LogAscii::use_json=T -r ldap-starttls.pcap + $ jq < ldap.log + { + "ts": 1721218680.158341, + "uid": "CW0qzo9A3QsrCWL4k", + "id.orig_h": "127.0.0.1", + "id.orig_p": 45936, + "id.resp_h": "127.0.1.1", + "id.resp_p": 389, + "message_id": 1, + "opcode": "extended", + "result": "success", + "object": "1.3.6.1.4.1.1466.20037 (StartTLS)" + } + +The :file:`conn.log`'s history field will contain ``ssl`` and ``ldap`` in +the ``service`` field. + +Conclusion +========== + +The Zeek LDAP logs provide additional insights that help improve observability +into this protocol. diff --git a/doc/logs/ntp.rst b/doc/logs/ntp.rst new file mode 100644 index 0000000000..73bd570280 --- /dev/null +++ b/doc/logs/ntp.rst @@ -0,0 +1,294 @@ +======= +ntp.log +======= + +Network Time Protocol (NTP) is another core protocol found in IP networks. NTP +is a mechanism by which clients can adjust their local clocks to more closely +match those of NTP servers. Many devices ship with NTP clients already +configured to contact public NTP servers. Administrators can use Zeek logs to +identify NTP clients and servers, and determine if they are operating as +expected. + +As with all entries in this chapter, see :zeek:see:`NTP::Info` for full +explanation of each field in the log. + +NTP via :program:`tcpdump` +========================== + +NTP is a request-response protocol, as demonstrated by the following exchange +decoded by :program:`tcpdump`:: + + 00:29:07.927672 IP 192.168.4.49.38461 > 208.79.89.249.123: NTPv4, Client, length 48 + 00:29:07.995844 IP 208.79.89.249.123 > 192.168.4.49.38461: NTPv4, Server, length 48 + +Using the verbose feature, we see the following details:: + + 00:29:07.927672 IP (tos 0x10, ttl 64, id 3186, offset 0, flags [DF], proto UDP (17), length 76) + 192.168.4.49.38461 > 208.79.89.249.123: [udp sum ok] NTPv4, length 48 + Client, Leap indicator: (0), Stratum 0 (unspecified), poll 0 (1s), precision 0 + Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: (unspec) + Reference Timestamp: 0.000000000 + Originator Timestamp: 0.000000000 + Receive Timestamp: 0.000000000 + Transmit Timestamp: 3811105747.215585991 (2020/10/08 00:29:07) + Originator - Receive Timestamp: 0.000000000 + Originator - Transmit Timestamp: 3811105747.215585991 (2020/10/08 00:29:07) + + 00:29:07.995844 IP (tos 0x0, ttl 56, id 18045, offset 0, flags [DF], proto UDP (17), length 76) + 208.79.89.249.123 > 192.168.4.49.38461: [udp sum ok] NTPv4, length 48 + Server, Leap indicator: (0), Stratum 2 (secondary reference), poll 3 (8s), precision -24 + Root Delay: 0.009216, Root dispersion: 0.021224, Reference-ID: 127.67.113.92 + Reference Timestamp: 3811105455.942204197 (2020/10/08 00:24:15) + Originator Timestamp: 3811105747.215585991 (2020/10/08 00:29:07) + Receive Timestamp: 3811105747.964280626 (2020/10/08 00:29:07) + Transmit Timestamp: 3811105747.964314032 (2020/10/08 00:29:07) + Originator - Receive Timestamp: +0.748694635 + Originator - Transmit Timestamp: +0.748728040 + +A look at :rfc:`5905`, explaining NTPv4, helps us understand the timestamps +shown in the decoded output:: + + LI Leap Indicator (leap): 2-bit integer warning of an impending leap second + to be inserted or deleted in the last minute of the current month with values + defined in Figure 9. + + +-------+----------------------------------------+ + | Value | Meaning | + +-------+----------------------------------------+ + | 0 | no warning | + | 1 | last minute of the day has 61 seconds | + | 2 | last minute of the day has 59 seconds | + | 3 | unknown (clock unsynchronized) | + +-------+----------------------------------------+ + + Figure 9: Leap Indicator + + VN Version Number (version): 3-bit integer representing the NTP version + number, currently 4. + + Mode (mode): 3-bit integer representing the mode, with values defined in + Figure 10. + + +-------+--------------------------+ + | Value | Meaning | + +-------+--------------------------+ + | 0 | reserved | + | 1 | symmetric active | + | 2 | symmetric passive | + | 3 | client | + | 4 | server | + | 5 | broadcast | + | 6 | NTP control message | + | 7 | reserved for private use | + +-------+--------------------------+ + + Figure 10: Association Modes + + Stratum (stratum): 8-bit integer representing the stratum, with values + defined in Figure 11. + + +--------+-----------------------------------------------------+ + | Value | Meaning | + +--------+-----------------------------------------------------+ + | 0 | unspecified or invalid | + | 1 | primary server (e.g., equipped with a GPS receiver) | + | 2-15 | secondary server (via NTP) | + | 16 | unsynchronized | + | 17-255 | reserved | + +--------+-----------------------------------------------------+ + + Figure 11: Packet Stratum + + Poll: 8-bit signed integer representing the maximum interval between + successive messages, in log2 seconds. + + Precision: 8-bit signed integer representing the precision of the system + clock, in log2 seconds. For instance, a value of -18 corresponds to a + precision of about one microsecond. + + Root Delay (rootdelay): Total round-trip delay to the reference clock, in NTP + short format. + + Root Dispersion (rootdisp): Total dispersion to the reference clock, in NTP + short format. + + Reference ID (refid): 32-bit code identifying the particular server or + reference clock. + + Reference Timestamp: Time when the system clock was last set or corrected, in + NTP timestamp format. + + Origin Timestamp (org): Time at the client when the request departed for the + server, in NTP timestamp format. + + Receive Timestamp (rec): Time at the server when the request arrived from the + client, in NTP timestamp format. + + Transmit Timestamp (xmt): Time at the server when the response left for the + client, in NTP timestamp format. + + Destination Timestamp (dst): Time at the client when the reply arrived from + the server, in NTP timestamp format. + +It makes sense that the reference, originator, and receive timestamps would be +zero in the client request, but non-zero in the server reply. + +NTP via :program:`tcpdump` and :program:`tshark` +================================================ + +Let’s look at :program:`tshark`’s decode for the NTP-specific data, to see if +:program:`tcpdump` missed anything:: + + Client to server: + + Network Time Protocol (NTP Version 4, client) + Flags: 0x23, Leap Indicator: no warning, Version number: NTP Version 4, Mode: client + 00.. .... = Leap Indicator: no warning (0) + ..10 0... = Version number: NTP Version 4 (4) + .... .011 = Mode: client (3) + Peer Clock Stratum: unspecified or invalid (0) + Peer Polling Interval: invalid (0) + Peer Clock Precision: 1.000000 sec + Root Delay: 0 seconds + Root Dispersion: 0 seconds + Reference ID: NULL + Reference Timestamp: Jan 1, 1970 00:00:00.000000000 UTC + Origin Timestamp: Jan 1, 1970 00:00:00.000000000 UTC + Receive Timestamp: Jan 1, 1970 00:00:00.000000000 UTC + Transmit Timestamp: Oct 8, 2020 00:29:07.215585991 UTC + + Server to client: + + Network Time Protocol (NTP Version 4, server) + Flags: 0x24, Leap Indicator: no warning, Version number: NTP Version 4, Mode: server + 00.. .... = Leap Indicator: no warning (0) + ..10 0... = Version number: NTP Version 4 (4) + .... .100 = Mode: server (4) + Peer Clock Stratum: secondary reference (2) + Peer Polling Interval: invalid (3) + Peer Clock Precision: 0.000000 sec + Root Delay: 0.00921630859375 seconds + Root Dispersion: 0.0212249755859375 seconds + Reference ID: 127.67.113.92 + Reference Timestamp: Oct 8, 2020 00:24:15.942204197 UTC + Origin Timestamp: Oct 8, 2020 00:29:07.215585991 UTC + Receive Timestamp: Oct 8, 2020 00:29:07.964280626 UTC + Transmit Timestamp: Oct 8, 2020 00:29:07.964314032 UTC + +It does not appear that :program:`tshark` reveals any details that +:program:`tcpdump` did not. One difference is that for the client reference, +origin, and receive timestamps, Tshark renders the 0 values as the Unix epoch, +i.e., ``Jan 1, 1970 00:00:00.000000000 UTC``. + +NTP via Zeek +============ + +Here is how Zeek summarizes this NTP activity: + +.. literal-emph:: + + { + "ts": "2020-10-08T00:29:07.977170Z", + "uid": "CqlPpF1AQVLMPgGiL5", + "id.orig_h": "192.168.4.49", + "id.orig_p": 38461, + "id.resp_h": "208.79.89.249", + "id.resp_p": 123, + "version": 4, + **"mode": 3,** + "stratum": 0, + "poll": 1, + "precision": 1, + "root_delay": 0, + "root_disp": 0, + "ref_id": "\\x00\\x00\\x00\\x00", + "ref_time": "1970-01-01T00:00:00.000000Z", + "org_time": "1970-01-01T00:00:00.000000Z", + "rec_time": "1970-01-01T00:00:00.000000Z", + "xmt_time": "2020-10-08T00:29:07.215586Z", + "num_exts": 0 + } + + { + "ts": "2020-10-08T00:29:08.081209Z", + "uid": "CqlPpF1AQVLMPgGiL5", + "id.orig_h": "192.168.4.49", + "id.orig_p": 38461, + "id.resp_h": "208.79.89.249", + "id.resp_p": 123, + "version": 4, + **"mode": 4,** + "stratum": 2, + "poll": 8, + "precision": 5.960464477539063e-08, + "root_delay": 0.00921630859375, + "root_disp": 0.0212249755859375, + "ref_id": "127.67.113.92", + "ref_time": "2020-10-08T00:24:15.942204Z", + "org_time": "2020-10-08T00:29:07.215586Z", + "rec_time": "2020-10-08T00:29:07.964281Z", + "xmt_time": "2020-10-08T00:29:07.964314Z", + "num_exts": 0 + } + +By looking at the mode field in each log, we see that the first entry is a NTP +client request (mode 3), and the second is the server’s reply (mode 4). + +These log entries make an interesting comparison with those for DHCP. Zeek’s +DHCP logs seek to summarize potentially up to four individual datagrams (for +the DORA exchange) into one log entry. In contrast, Zeek’s NTP logs create an +entry for each NTP message. + +Identifying NTP Servers +======================= + +As with DHCP servers, Zeek can help identify NTP servers used by clients. The +following query shows a subset of systems and the NTP servers they have +queried: + +.. code-block:: console + + $ find . -name "ntp**.gz" | while read -r file; do zcat -f "$file"; done | jq -c '[."id.orig_h", ."id.resp_h"]' | sort | uniq -c | sort -nr | head -10 + +:: + + 570 ["192.168.4.48","193.0.0.229"] + 271 ["192.168.4.76","91.189.91.157"] + 271 ["192.168.4.76","216.229.0.50"] + 270 ["192.168.4.76","74.6.168.73"] + 270 ["192.168.4.76","72.30.35.88"] + 270 ["192.168.4.76","38.229.71.1"] + 216 ["192.168.4.149","84.16.73.33"] + 206 ["192.168.4.48","50.205.244.21"] + 164 ["192.168.4.57","216.239.35.12"] + 162 ["192.168.4.57","216.239.35.8"] + +The following query summarizes only the NTP servers seen by Zeek: + +.. code-block:: console + + $ find . -name "ntp**.gz" | while read -r file; do zcat -f "$file"; done | jq -c '[."id.resp_h"]' | sort | uniq -c | sort -nr | head -10 + +:: + + 570 ["193.0.0.229"] + 470 ["17.253.20.253"] + 468 ["17.253.20.125"] + 357 ["91.189.91.157"] + 287 ["216.229.0.50"] + 286 ["74.6.168.73"] + 276 ["72.30.35.88"] + 270 ["38.229.71.1"] + 221 ["84.16.73.33"] + 206 ["50.205.244.21"] + +Security and network administrators can use queries like this to identify +systems that are polling unauthorized NTP servers. + +Conclusion +========== + +NTP is an important protocol for modern network administration. Without +accurate clocks, many systems will not be able to complete cryptographic +exchanges. Be sure systems are kept up to date using the NTP servers you expect +them to query. diff --git a/doc/logs/pe.rst b/doc/logs/pe.rst new file mode 100644 index 0000000000..9c4f4090a6 --- /dev/null +++ b/doc/logs/pe.rst @@ -0,0 +1,506 @@ +====== +pe.log +====== + +Earlier we looked at the data provided by Zeek’s :file:`files.log`. In this +section we will take a step further for one type of log -- Zeek’s +:file:`pe.log`. In this instance, “pe” stands for portable executable, a format +associated with Microsoft binaries. + +For more details on the specifics of the format, please refer to +:zeek:see:`PE::Info`. + +Starting with :file:`conn.log` +============================== + +This example starts with the :file:`conn.log`. It’s not strictly necessary to +explain the :file:`pe.log`, although I wanted to include a recent example +of a modern application conducting activities via HTTP. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:31.210053Z", + "uid": "Cq2b9jR12c4lqZafg", + **"id.orig_h": "192.168.4.152",** + "id.orig_p": 59125, + **"id.resp_h": "63.88.73.83",** + **"id.resp_p": 80,** + "proto": "tcp", + **"service": "http",** + "duration": 25.614583015441895, + "orig_bytes": 5753, + "resp_bytes": 1975717, + "conn_state": "SF", + "local_orig": true, + "local_resp": false, + "missed_bytes": 0, + "history": "ShADadttFf", + "orig_pkts": 521, + "orig_ip_bytes": 29041, + "resp_pkts": 1367, + "resp_ip_bytes": 2030409, + "ip_proto": 6 + } + +This example shows a host, ``192.168.4.152``, conducting a HTTP session with +``63.88.73.83`` over port 80 TCP. The server sends 2 MB of content to the +client. + +Continuing with :file:`http.log` +================================ + +The :file:`http.log` entries associated with UID ``Cq2b9jR12c4lqZafg`` are +fascinating. There are multiple entries. I have reproduced a sample of them +below. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:31.235201Z", + "uid": "Cq2b9jR12c4lqZafg", + **"id.orig_h": "192.168.4.152",** + "id.orig_p": 59125, + **"id.resp_h": "63.88.73.83",** + **"id.resp_p": 80,** + "trans_depth": 1, + **"method": "HEAD",** + **"host": "r8---sn-8xgp1vo-p5ql.gvt1.com",** + **"uri": "/edgedl/release2/chrome/SAWXCyZhLAbPfxC5kv_Fkw_85.0.4183.121/85.0.4183.121_85.0.4183.102_chrome_updater.exe?cms_redirect=yes&mh=t-&mip=-public-ip-edited-&mm=28&mn=sn-8xgp1vo-p5ql&ms=nvh&mt=1600820539&mv=m&mvi=8&pl=19&shardbypass=yes",** + "version": "1.1", + **"user_agent": "Microsoft BITS/7.8",** + "request_body_len": 0, + "response_body_len": 0, + **"status_code": 200,** + **"status_msg": "OK",** + "tags": [] + } + +The first entry shown above provides details on a HEAD request for a binary +titled ``85.0.4183.121_85.0.4183.102_chrome_updater.exe``. The user agent is +the Microsoft Background Intelligent Transfer Service (BITS). The server +responses with a successful message, 200 OK. Note that I have inserted +``-public-ip-edited-`` in the URI rather than expose the public IP address of +the system requesting this file. + +The fact that the BITS client provides the public IP address in the URI +indicates that either the server is sending this information to the client, or +that the client is requesting this information from an Internet-residing +system. There is no native way for this client to know its public IP address +when it is sitting behind a network address (port) translation device. + +This aspect of the URI could help administrators better understand their +networks, as it can sometimes be difficult to map private IP addresses (like +``192.168.4.152``) to their public representations (here +``-public-ip-edited-``). + +Also note the value for the host field showing +``r8---sn-8xgp1vo-p5ql.gvt1.com``. I resolved the odd name to see the +following: + +.. code-block:: console + + $ host r8---sn-8xgp1vo-p5ql.gvt1.com + +:: + + r8---sn-8xgp1vo-p5ql.gvt1.com is an alias for r8.sn-8xgp1vo-p5ql.gvt1.com. + r8.sn-8xgp1vo-p5ql.gvt1.com has address 63.88.73.83 + r8.sn-8xgp1vo-p5ql.gvt1.com has IPv6 address 2600:803:f00:1::13 + +Let’s look at the next :file:`http.log` entry. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:31.334435Z", + "uid": "Cq2b9jR12c4lqZafg", + **"id.orig_h": "192.168.4.152",** + "id.orig_p": 59125, + **"id.resp_h": "63.88.73.83",** + **"id.resp_p": 80,** + "trans_depth": 2, + **"method": "GET",** + **"host": "r8---sn-8xgp1vo-p5ql.gvt1.com",** + **"uri": "/edgedl/release2/chrome/SAWXCyZhLAbPfxC5kv_Fkw_85.0.4183.121/85.0.4183.121_85.0.4183.102_chrome_updater.exe?cms_redirect=yes&mh=t-&mip=-public-ip-edited-&mm=28&mn=sn-8xgp1vo-p5ql&ms=nvh&mt=1600820539&mv=m&mvi=8&pl=19&shardbypass=yes",** + "version": "1.1", + **"user_agent": "Microsoft BITS/7.8",** + "request_body_len": 0, + "response_body_len": 1392, + **"status_code": 206,** + **"status_msg": "Partial Content",** + "tags": [], + "resp_fuids": [ + **"FGYKX64SkXc4OcvlFf"** + ] + } + +In the previous :file:`http.log` entry we see that the BITS client has made a +GET request for the same file. The server is providing it via “partial +content”, represented by the 206 status code. + +Also note we now have a file UID present in the :file:`http.log`: +``FGYKX64SkXc4OcvlFf``. + +The next :file:`http.log` entry is similar, although the amount of data sent is +different. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:35.247333Z", + "uid": "Cq2b9jR12c4lqZafg", + "id.orig_h": "192.168.4.152", + "id.orig_p": 59125, + "id.resp_h": "63.88.73.83", + "id.resp_p": 80, + "trans_depth": 3, + "method": "GET", + "host": "r8---sn-8xgp1vo-p5ql.gvt1.com", + "uri": "/edgedl/release2/chrome/SAWXCyZhLAbPfxC5kv_Fkw_85.0.4183.121/85.0.4183.121_85.0.4183.102_chrome_updater.exe?cms_redirect=yes&mh=t-&mip=-public-ip-edited-&mm=28&mn=sn-8xgp1vo-p5ql&ms=nvh&mt=1600820539&mv=m&mvi=8&pl=19&shardbypass=yes", + "version": "1.1", + "user_agent": "Microsoft BITS/7.8", + "request_body_len": 0, + **"response_body_len": 1995,** + "status_code": 206, + "status_msg": "Partial Content", + "tags": [] + } + +I have removed the half a dozen or so intervening messages as they are very +similar to the preceding entries. I include the last one for reference. It is +similar to the previous entries, although the response body length shows much +more data was sent. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:46.547359Z", + "uid": "Cq2b9jR12c4lqZafg", + "id.orig_h": "192.168.4.152", + "id.orig_p": 59125, + "id.resp_h": "63.88.73.83", + "id.resp_p": 80, + "trans_depth": 12, + "method": "GET", + "host": "r8---sn-8xgp1vo-p5ql.gvt1.com", + "uri": "/edgedl/release2/chrome/SAWXCyZhLAbPfxC5kv_Fkw_85.0.4183.121/85.0.4183.121_85.0.4183.102_chrome_updater.exe?cms_redirect=yes&mh=t-&mip=-public-ip-edited-&mm=28&mn=sn-8xgp1vo-p5ql&ms=nvh&mt=1600820539&mv=m&mvi=8&pl=19&shardbypass=yes", + "version": "1.1", + "user_agent": "Microsoft BITS/7.8", + "request_body_len": 0, + **"response_body_len": 652148,** + "status_code": 206, + "status_msg": "Partial Content", + "tags": [] + } + +That concludes the relevant :file:`http.log` entries. Using the file UID we can +search the :file:`files.log` next. + +Continuing with :file:`files.log` +================================= + +The relevant :file:`files.log` entry contains the following: + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:31.334435Z", + "fuid": "FGYKX64SkXc4OcvlFf", + "uid": "Cq2b9jR12c4lqZafg", + "id.orig_h": "192.168.4.152", + "id.orig_p": 59125, + "id.resp_h": "63.88.73.83", + "id.resp_p": 80, + **"source": "HTTP",** + "depth": 0, + "analyzers": [ + "MD5", + **"PE",** + "SHA1", + "EXTRACT" + ], + **"mime_type": "application/x-dosexec",** + "duration": 15.468528032302856, + "local_orig": false, + "is_orig": false, + "seen_bytes": 1967360, + "total_bytes": 1967360, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": false, + **"md5": "a5843bd951f148e99b7265e5bd159fb7",** + "sha1": "fc8b8deb5b34fec1f3f094e579667b2bddee0b21", + **"extracted": "/nsm/zeek/extracted/HTTP-FGYKX64SkXc4OcvlFf.exe",** + "extracted_cutoff": false + } + +This :file:`files.log` entry shows that the content returned by the BITS server +included a Windows executable. Zeek calculates MD5 and SHA1 hashes, and also +shows the location on disk for the extracted file. + +Do you remember a similar entry from the Zeek documentation on +:file:`files.log`? + +:: + + "analyzers": [ + "EXTRACT", + "PE" + ], + +In that example, we have active extract and PE analyzers. + +In the current :file:`files.log`, we have additional analyzers present: + +.. literal-emph:: + + "analyzers": [ + "MD5", + **"PE",** + "SHA1", + "EXTRACT" + ], + +Thanks to these analyzers, we have the MD5 and SHA1 hashes, along with a +:file:`pe.log` entry and an extracted file. + +Continuing with :file:`pe.log` +============================== + +Finally we come to the :file:`pe.log`. We are able to connect it with the +appropriate activity using the file UID ``FGYKX64SkXc4OcvlFf``. + +.. literal-emph:: + + { + "ts": "2020-09-23T00:24:36.395445Z", + **"id": "FGYKX64SkXc4OcvlFf",** + "machine": "AMD64", + **"compile_ts": "2020-09-19T00:10:08.000000Z",** + **"os": "Windows XP x64 or Server 2003",** + **"subsystem": "WINDOWS_GUI",** + **"is_exe": true,** + **"is_64bit": true,** + "uses_aslr": true, + "uses_dep": true, + "uses_code_integrity": false, + "uses_seh": true, + "has_import_table": true, + "has_export_table": false, + "has_cert_table": true, + "has_debug_data": true, + "section_names": [ + ".text", + ".rdata", + ".data", + ".pdata", + ".00cfg", + ".rsrc", + ".reloc" + ] + } + +The compile time is one of the more interesting details for analysts. This is a +freshly compiled Windows executable. + +Reviewing the Extracted Binary +============================== + +As we did in the :file:`files.log` documentation, we can analyze our extracted +file using the command line version of VirusTotal. + +Here is the extracted file on disk. Notice the filename includes the file UID +calculated by Zeek, i.e., ``FGYKX64SkXc4OcvlFf``. + +.. code-block:: console + + $ file /nsm/zeek/extracted/HTTP-FGYKX64SkXc4OcvlFf.exe + +:: + + /nsm/zeek/extracted/HTTP-FGYKX64SkXc4OcvlFf.exe: PE32+ executable (GUI) x86-64, for MS Windows + +We use the Linux :program:`md5sum` utility to calculate the MD5 hash. + +.. code-block:: console + + $ md5sum /nsm/zeek/extracted/HTTP-FGYKX64SkXc4OcvlFf.exe + +:: + + a5843bd951f148e99b7265e5bd159fb7 /nsm/zeek/extracted/HTTP-FGYKX64SkXc4OcvlFf.exe + +Note the MD5 hash matches the one provided by Zeek in the :file:`files.log` +entry. + +Next we submit the hash, not the binary, to VirusTotal for analysis. Whenever +possible, submit hashes to cloud file analysis engines. This preserves the +confidentiality of your sample. + +The output is edited for readability. + +.. code-block:: console + + $ vt file a5843bd951f148e99b7265e5bd159fb7 + +.. literal-emph:: + + - _id: "14a1b9947b77174244a6f6bfd2cd7e1b1c860a09b3b5d74f07b81e45b5548de4" + _type: "file" + authentihash: "a4a6a1011bb3e33af37a1dce19bd41b72d5360dc4175d570ec7260d1d9815747" + **creation_date: 1600474208 # 2020-09-19 00:10:08 +0000 UTC** + **first_submission_date: 1600711798 # 2020-09-21 18:09:58 +0000 UTC** + **last_analysis_date: 1600840562 # 2020-09-23 05:56:02 +0000 UTC** + last_analysis_results: + ALYac: + category: "undetected" + engine_name: "ALYac" + engine_update: "20200923" + engine_version: "1.1.1.5" + method: "blacklist" + ...edited... + eGambit: + category: "undetected" + engine_name: "eGambit" + engine_update: "20200923" + method: "blacklist" + last_analysis_stats: + confirmed-timeout: 0 + failure: 0 + harmless: 0 + malicious: 0 + suspicious: 0 + timeout: 0 + type-unsupported: 4 + undetected: 69 + last_modification_date: 1600878930 # 2020-09-23 16:35:30 +0000 UTC + last_submission_date: 1600830769 # 2020-09-23 03:12:49 +0000 UTC + magic: "PE32+ executable for MS Windows (GUI) Mono/.Net assembly" + md5: "a5843bd951f148e99b7265e5bd159fb7" + **meaningful_name: "mini_installer"** + names: + **- "85.0.4183.121_85.0.4183.102_chrome_updater.exe"** + - "mini_installer" + **- "HTTP-FjcOYuaXbbQFV1cJj.exe"** + pe_info: + entry_point: 4096 + imphash: "ec06ab323a50409817b4a6a54b98f157" + import_list: + - imported_functions: + - "CommandLineToArgvW" + library_name: "SHELL32.dll" + - imported_functions: + - "GetLastError" + - "GetVolumePathNameW" + ...edited... + - "GetEnvironmentVariableW" + library_name: "KERNEL32.dll" + machine_type: 34404 + overlay: + chi2: 1124223.375 + entropy: 4.492208003997803 + filetype: "binary Computer Graphics Metafile" + md5: "ddc7adbbc3760a81d8510e57fedbe055" + offset: 1951232 + size: 16128 + resource_details: + - chi2: 286.0988464355469 + entropy: 7.999892711639404 + filetype: "Data" + lang: "ENGLISH US" + sha256: "133ccfebc6cebb05333ed1677bb419716a8ad00b39417f2f4fa6ee45bdbb92df" + type: "B7" + ...edited... + timestamp: 1600474208 + reputation: 0 + sha1: "fc8b8deb5b34fec1f3f094e579667b2bddee0b21" + sha256: "14a1b9947b77174244a6f6bfd2cd7e1b1c860a09b3b5d74f07b81e45b5548de4" + signature_info: + copyright: "Copyright 2020 Google LLC. All rights reserved." + counter signers: "TIMESTAMP-SHA256-2019-10-15; DigiCert SHA2 Assured ID Timestamping CA; DigiCert" + counter signers details: + - algorithm: "sha256RSA" + cert issuer: "DigiCert SHA2 Assured ID Timestamping CA" + name: "TIMESTAMP-SHA256-2019-10-15" + serial number: "04 CD 3F 85 68 AE 76 C6 1B B0 FE 71 60 CC A7 6D" + status: "Valid" + thumbprint: "0325BD505EDA96302DC22F4FA01E4C28BE2834C5" + valid from: "12:00 AM 10/01/2019" + valid to: "12:00 AM 10/17/2030" + valid usage: "Timestamp Signing" + - algorithm: "sha256RSA" + cert issuer: "DigiCert Assured ID Root CA" + name: "DigiCert SHA2 Assured ID Timestamping CA" + serial number: "0A A1 25 D6 D6 32 1B 7E 41 E4 05 DA 36 97 C2 15" + status: "Valid" + thumbprint: "3BA63A6E4841355772DEBEF9CDCF4D5AF353A297" + valid from: "12:00 PM 01/07/2016" + valid to: "12:00 PM 01/07/2031" + valid usage: "Timestamp Signing" + - algorithm: "sha1RSA" + cert issuer: "DigiCert Assured ID Root CA" + name: "DigiCert" + serial number: "0C E7 E0 E5 17 D8 46 FE 8F E5 60 FC 1B F0 30 39" + status: "Valid" + thumbprint: "0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43" + valid from: "12:00 AM 11/10/2006" + valid to: "12:00 AM 11/10/2031" + valid usage: "Client Auth, Code Signing, Email Protection, Server Auth, Timestamp Signing" + **description: "Google Chrome Installer"** + **file version: "85.0.4183.121"** + **internal name: "mini_installer"** + **product: "Google Chrome Installer"** + signers: "Google LLC; DigiCert SHA2 Assured ID Code Signing CA; DigiCert" + signers details: + - algorithm: "sha256RSA" + cert issuer: "DigiCert SHA2 Assured ID Code Signing CA" + name: "Google LLC" + serial number: "0C 15 BE 4A 15 BB 09 03 C9 01 B1 D6 C2 65 30 2F" + status: "Valid" + thumbprint: "CB7E84887F3C6015FE7EDFB4F8F36DF7DC10590E" + valid from: "12:00 AM 11/07/2018" + valid to: "12:00 PM 11/17/2021" + valid usage: "Code Signing" + ...edited... + ssdeep: "49152:zS2WLLoAgkZlbpkJDy5KrwM4wN9UT90hZv6AFV56vt9IWA:m2WvgSbpkFAKrwMpTZJV5kgW" + tags: + - "peexe" + - "assembly" + - "overlay" + - "runtime-modules" + - "signed" + - "64bits" + - "trusted" + times_submitted: 2 + total_votes: + harmless: 0 + malicious: 0 + trid: + - file_type: "OS/2 Executable (generic)" + probability: 33.6 + - file_type: "Generic Win/DOS Executable" + probability: 33.1 + - file_type: "DOS Executable Generic" + probability: 33.1 + **trusted_verdict:** + **filename: "85.0.4183.121_85.0.4183.102_chrome_updater.exe"** + **link: "https://dl.google.com/dl/release2/chrome/SAWXCyZhLAbPfxC5kv_Fkw_85.0.4183.121/85.0.4183.121_85.0.4183.102_chrome_updater.exe"** + **organization: "Google"** + **verdict: "goodware"** + type_description: "Win32 EXE" + type_tag: "peexe" + unique_sources: 2 + vhash: "016076651d151515751az36hz1lz" + +This file appears to be a component of the Google Chrome Installer. It is not +malicious software. + +Conclusion +========== + +Although the :file:`pe.log` was only part of this section, I wanted to show an +integrated set of Zeek logs for this example, beginning with the +:file:`conn.log`, continuing with the :file:`http.log` and :file:`files.log`, +and concluding with the :file:`pe.log`. This is recent activity and shows that +modern software still uses HTTP in some cases! diff --git a/doc/logs/postgresql.rst b/doc/logs/postgresql.rst new file mode 100644 index 0000000000..6477c01809 --- /dev/null +++ b/doc/logs/postgresql.rst @@ -0,0 +1,97 @@ +.. _PostgreSQL protocol: https://www.postgresql.org/docs/current/protocol.html + +============== +postgresql.log +============== + +.. versionadded:: 7.1 + +Overview +======== + +Zeek contains a basic spicy-based `PostgreSQL protocol`_ analyzer. + +Example +======= + +An example of :file:`postgresql.log`. + +.. code-block:: console + + $ zeek -C LogAscii::use_json=T -r psql-create-insert-select-delete-drop.pcap + $ jq < postgresql.log + { + "ts": 1725368066.79174, + "uid": "C68Wxi3EStaTmxaUVl", + "id.orig_h": "127.0.0.1", + "id.orig_p": 40190, + "id.resp_h": "127.0.0.1", + "id.resp_p": 5432, + "user": "postgres", + "database": "postgres", + "application_name": "psql", + "frontend": "simple_query", + "frontend_arg": "CREATE TABLE IF NOT EXISTS t (i int, s varchar, t time);", + "success": true, + "rows": 0 + } + { + "ts": 1725368066.80694, + "uid": "C68Wxi3EStaTmxaUVl", + "id.orig_h": "127.0.0.1", + "id.orig_p": 40190, + "id.resp_h": "127.0.0.1", + "id.resp_p": 5432, + "user": "postgres", + "database": "postgres", + "application_name": "psql", + "frontend": "simple_query", + "frontend_arg": "INSERT INTO t VALUES (42, 'forty-two', now());", + "success": true, + "rows": 0 + } + + +:zeek:see:`PostgreSQL::Info` provides further details about the current output of the +:file:`postgresql.log`. + +TLS +=== + +The PostgreSQL protocol provides a mechanism to upgrade client-server connections +to TLS. The analyzer detects this mechanism and hands off analysis to Zeek's +TLS analyzer. The :file:`postgresql.log` and :file:`conn.log` files will look +as follows: + +.. code-block:: console + + $ zeek -C LogAscii::use_json=T -r testing/btest/Traces/postgresql/psql-aws-ssl-preferred.pcap + $ jq < postgresql.log + { + "ts": 1670520068.267888, + "uid": "CAcbxM1ou0N1V2cGpe", + "id.orig_h": "192.168.123.132", + "id.orig_p": 39910, + "id.resp_h": "52.200.36.167", + "id.resp_p": 5432, + "frontend": "ssl_request", + "backend": "ssl_reply", + "backend_arg": "S", + "success": true + } + + $ jq < conn.log + { + "ts": 1670520068.15752, + "uid": "CAcbxM1ou0N1V2cGpe", + "id.orig_h": "192.168.123.132", + "id.orig_p": 39910, + "id.resp_h": "52.200.36.167", + "id.resp_p": 5432, + "proto": "tcp", + "service": "postgresql,ssl", + "duration": 0.931433916091919, + "orig_bytes": 786, + "resp_bytes": 4542, + ... + } diff --git a/doc/logs/quic.rst b/doc/logs/quic.rst new file mode 100644 index 0000000000..4bcd21ea3c --- /dev/null +++ b/doc/logs/quic.rst @@ -0,0 +1,88 @@ +======== +quic.log +======== + +.. versionadded:: 6.1 + +Overview +======== + +The QUIC protocol integrates encryption, stream multiplexing and flow control at +the transport layer. QUIC uses TLS 1.3 by default. Zeek's QUIC analyzer +provides greater observability into the protocol's TLS handshake. + + +Example +======= + +An example of a :file:`quic.log`. + +.. code-block:: console + + zeek@zeek-6.1:~ zeek -C LogAscii::use_json=T -r chromium-115.0.5790.110-api-cirrus-com.pcap + zeek@zeek-6.1:~ jq . quic.log + +:: + + { + "ts": 1692198386.837988, + "uid": "CA482y1XJVd3d0RYI7", + "id.orig_h": "82.239.54.117", + "id.orig_p": 53727, + "id.resp_h": "110.213.53.115", + "id.resp_p": 443, + "version": "1", + "client_initial_dcid": "95412c47018cdfe8", + "server_scid": "d5412c47018cdfe8", + "server_name": "api.cirrus-ci.com", + "client_protocol": "h3", + "history": "ISisH" + } + + +:zeek:see:`QUIC::Info` provides further details on the current output of the +:file:`quic.log`. Current fields include: + +- **version**: A string interpretation of the QUIC version number, usually "1" + or "quicv2". + +- **client_initial_dcid**: When QUIC initiates a connection it uses Random + Number Generators to create the first Destination Connection ID (DCID). This + DCID is subsequently used for routing and packet protection by client and + server. + +- **server_scid**: A QUIC-supported server responds to a DCID by selecting a + Source Connection ID (SCID). This usually occurs within the server’s first + ``INITIAL`` packet. This is typically used by the client in subsequent + packets, although the SCID can change to adapt to new network conditions. + +- **client_protocol**: If the ``ClientHello`` packet is successfully extracted + and contains the ALPN extension, the extension's first entry is placed in + ``client_protocol``. + +- **history**: Provides a history of QUIC protocol activity in a connection, + similar to the history fields in conn.log and ssh.log. See the + :zeek:see:`QUIC::Info` documentation for details. In the example above, + the history outlines: + + + An initial packet from the client (I) - a new connection + + + An TLS ``ClientHello`` from the client (S) - the start of a + TLS handshake + + + An initial packet from the server (i) - an acknowledgement + from the server of the new connection + + + A TLS ServerHello response from the server (s) - the + selection of a cipher suite from the options provided by the + client + + + A handshake packet from the client (H) + + +Conclusion +========== + +The QUIC analyzer provides some observability into QUIC network traffic, +particularly around connection establishment. Introduced in version 6.1, it's +one of Zeek's newer parsers, so feedback is particularly welcome. diff --git a/doc/logs/rdp.rst b/doc/logs/rdp.rst new file mode 100644 index 0000000000..cfe17bf0ab --- /dev/null +++ b/doc/logs/rdp.rst @@ -0,0 +1,216 @@ +======= +rdp.log +======= + +Remote Desktop Protocol (RDP) is a protocol Microsoft developed to enable +remote graphical communication. RDP implementations exist for other operating +systems, but RDP is most popular on systems running Windows NT 4.0 and newer. + +Older versions of RDP are unencrypted, while newer versions offer SSL and TLS +encryption. + +Standard RDP servers listen on port 3389 TCP. Administrators can configure the +service to listen on any port, however. The following material investigates the +process by which a simulated intruder gains access to a system via RDP. First +he makes many connections to the RDP server, testing usernames and passwords. +Following the correct guessing of a username and password, he connects and +briefly interacts with the system offering access via RDP. + +For full details on each field in the :file:`rdp.log` file, please refer to +:zeek:see:`RDP::Info`. + +:file:`conn.log` +================ + +Let’s start with the :file:`conn.log` for the activity in question. I’ve broken +it into two sets of activities. The first is the reconnaissance and the second +is the interactive session. + +I’ve summarized the first set of :file:`conn.log` entries using the following syntax: + +.. code-block:: console + + $ jq -c '[."id.orig_h", ."id.resp_h", ."id.resp_p", ."service", ."orig_bytes", ."resp_bytes"]' conn.log | sort | uniq -c + +:: + + 38 ["192.168.4.160","192.168.4.161",3389,"ssl",1392,1238] + 1 ["192.168.4.160","192.168.4.161",3389,"ssl",3365,4855] + +We see 38 sessions which contain the same number of bytes sent and received by +the client and server, and 1 session which contains a different number of +bytes. That could indicate a successful connection. Port 3389 TCP is the +destination, but remember that any TCP port could host a RDP server. Also note +Zeek reports the service as SSL, because this RDP session is encrypted by TLS. + +The second set of :file:`conn.log` entries contains the following session: + +.. literal-emph:: + + { + "ts": 1607353272.790635, + "uid": "CFdEZNjN5MtPzGMS8", + **"id.orig_h": "192.168.4.160",** + "id.orig_p": 59758, + **"id.resp_h": "192.168.4.161",** + **"id.resp_p": 3389,** + "proto": "tcp", + **"service": "ssl",** + "duration": 109.49137687683105, + **"orig_bytes": 66747,** + **"resp_bytes": 1823511,** + "conn_state": "RSTR", + "missed_bytes": 0, + "history": "ShADdaFr", + "orig_pkts": 2913, + "orig_ip_bytes": 183287, + "resp_pkts": 2250, + "resp_ip_bytes": 1913523 + } + +This activity is similar to the previous, except that the client and server +have sent many more bytes of data. + +:file:`rdp.log` +=============== + +The following syntax summarizes the relevant content in the first set of Zeek +:file:`rdp.log` entries, caused by the simulated intruder’s RDP reconnaissance: + +.. code-block:: console + + $ jq -c '[."id.orig_h", ."id.resp_h", ."id.resp_p", ."cookie", ."result", ."security_protocol", ."cert_count"]' rdp.log | sort | uniq -c + +:: + + 39 ["192.168.4.160","192.168.4.161",3389,"test","encrypted","HYBRID",0] + +There is nothing in these logs to indicate whether the session was successful +or not. However, Zeek was able to determine that RDP was in use, based on its +recognition of the protocol. + +Here is the entire :file:`rdp.log` entry for the interactive RDP session: + +.. literal-emph:: + + { + "ts": 1607353272.791158, + "uid": "CFdEZNjN5MtPzGMS8", + **"id.orig_h": "192.168.4.160",** + "id.orig_p": 59758, + **"id.resp_h": "192.168.4.161",** + **"id.resp_p": 3389,** + "cookie": "test", + "result": "encrypted", + "security_protocol": "HYBRID", + "cert_count": 0 + } + +As before, there is nothing stating that this is an interactive session. + +:file:`ssl.log` and :file:`x509.log` +==================================== + +The Zeek logs associated with TLS-encrypted sessions might tell us a bit about +the RDP server. Here is a :file:`ssl.log` entry for the interactive session: + +.. literal-emph:: + + { + "ts": 1607353272.79572, + "uid": "CFdEZNjN5MtPzGMS8", + **"id.orig_h": "192.168.4.160",** + "id.orig_p": 59758, + **"id.resp_h": "192.168.4.161",** + **"id.resp_p": 3389,** + **"version": "TLSv12",** + **"cipher": "TLS_RSA_WITH_AES_256_GCM_SHA384",** + **"server_name": "192.168.4.161",** + "resumed": false, + "established": true, + "cert_chain_fuids": [ + **"FWesoX2H43hXhuqoGb"** + ], + "client_cert_chain_fuids": [], + **"subject": "CN=WinDev2010Eval",** + **"issuer": "CN=WinDev2010Eval"** + } + +From this information it looks like the target is a Windows development server. + +Here is the corresponding :file:`x509.log` entry. We match it to the preceding +:file:`ssl.log` entry using the ``id`` field. + +.. literal-emph:: + + { + "ts": 1607353272.79572, + **"id": "FWesoX2H43hXhuqoGb",** + "certificate.version": 3, + "certificate.serial": "5578FF9983F26AA6442533AB6AD54C72", + **"certificate.subject": "CN=WinDev2010Eval",** + **"certificate.issuer": "CN=WinDev2010Eval",** + "certificate.not_valid_before": 1602434171, + "certificate.not_valid_after": 1618245371, + "certificate.key_alg": "rsaEncryption", + "certificate.sig_alg": "sha256WithRSAEncryption", + "certificate.key_type": "rsa", + "certificate.key_length": 2048, + "certificate.exponent": "65537" + } + +While this might have some significance in other investigations, here it is not +as important. + +Running the Test +================ + +For those who might want to simulate this activity themselves, I wanted to +share how I conducted this experiment. + +.. code-block:: console + + $ hydra -t 1 -V -f -l test -P wordlist.txt rdp://192.168.4.161 + +.. literal-emph:: + + Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). + + Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2020-12-07 09:46:30 + [WARNING] the rdp module is experimental. Please test, report - and if possible, fix. + [DATA] max 1 task per 1 server, overall 1 task, 4999 login tries (l:1/p:4999), ~4999 tries per task + [DATA] attacking rdp://192.168.4.161:3389/ + [ATTEMPT] target 192.168.4.161 - login "test" - pass "123456" - 1 of 4999 [child 0] (0/0) + [ATTEMPT] target 192.168.4.161 - login "test" - pass "12345" - 2 of 4999 [child 0] (0/0) + [ATTEMPT] target 192.168.4.161 - login "test" - pass "123456789" - 3 of 4999 [child 0] (0/0) + [ATTEMPT] target 192.168.4.161 - login "test" - pass "password" - 4 of 4999 [child 0] (0/0) + ...edited... + [ATTEMPT] target 192.168.4.161 - login "test" - pass "liverpool" - 38 of 4999 [child 0] (0/0) + **[ATTEMPT] target 192.168.4.161 - login "test" - pass "football" - 39 of 4999 [child 0] (0/0)** + **[3389][rdp] host: 192.168.4.161 login: test password: football** + [STATUS] attack finished for 192.168.4.161 (valid pair found) + **1 of 1 target successfully completed, 1 valid password found** + Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2020-12-07 09:46:53 + +I used the reconnaissance tool THC-Hydra by van Hauser/THC & David Maciejak. I +provided a word list that had a password that I had enabled on a test account +on the Windows RDP server at ``192.168.4.161``. I ran Hydra from a Kali Linux +virtual machine against a Windows 10 development virtual machine and captured +the traffic on Kali Linux. I then processed it with Zeek to produce the logs in +this section. + +Conclusion +========== + +When processing unencrypted RDP sessions, Zeek can provide a bit more +information than that provided here. However, in my experience Zeek is most +helpful for identifying systems which should or should not be offering RDP +services. Zeek will also generate records for interactive sessions, helping +analysts identify when authorized or unauthorized users access systems via RDP. + +For more information on analyzing RDP in context of vulnerabilities that +appeared in 2020, please see the following blog posts: + +https://corelight.blog/2019/05/23/how-to-use-corelight-and-zeek-logs-to-mitigate-rds-rdp-vulnerabilities/ + +https://corelight.blog/2020/05/13/analyzing-encrypted-rdp-connections/ diff --git a/doc/logs/smb.rst b/doc/logs/smb.rst new file mode 100644 index 0000000000..7241168585 --- /dev/null +++ b/doc/logs/smb.rst @@ -0,0 +1,1825 @@ + +.. _zkg package manager: https://docs.zeek.org/projects/package-manager/en/stable/ + +======================================= +SMB Logs (plus DCE-RPC, Kerberos, NTLM) +======================================= + +Server Message Block (SMB) is a protocol most commonly associated with +Microsoft Windows enterprise administration. While there are implementations +for other operating systems, such as Linux, Mac OS, FreeBSD, and the like, many +security and network analysts seek information on SMB due to its use in Windows +environments. + +Introduction +============ + +For the most part, the log analyses in this section address a single +Zeek log, such as :file:`conn.log` or :file:`dns.log`. When Zeek encounters SMB +protocol usage, it usually creates multiple logs of varying types. In addition +to the ubiquitous :file:`conn.log`, Zeek may generate :file:`dce_rpc.log`, +:file:`kerberos.log`, :file:`ntlm.log`, :file:`smb_cmd.log`, +:file:`smb_files.log`, :file:`smb_mapping.log`, :file:`pe.log`, and even +:file:`notice.log` entries. + +This section will build upon a paper by Nate Marx published December 20, 2017 +titled “An Introduction to SMB for Network Security Analysts.” The paper +analyzes a set of packet captures that contain activity in a simulated +compromised Windows environment. + +The paper is available here: + +https://401trg.github.io/pages/an-introduction-to-smb-for-network-security-analysts.html + +The packet captures are available here: + +https://github.com/401trg/detections/tree/master/pcaps + +Thorough documentation of several versions of SMB are available online thanks +to Microsoft. + +SMB version 1 is posted here: + +https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb/f210069c-7086-4dc2-885e-861d837df688 + +SMB versions 2 and 3 are posted here: + +https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/5606ad47-5ee0-437a-817e-70c366052962 + +For information on the individual field values in these SMB-affiliated logs, +please refer to :zeek:see:`DCE_RPC::Info`, :zeek:see:`KRB::Info`, +:zeek:see:`NTLM::Info`, :zeek:see:`SMB::CmdInfo`, :zeek:see:`SMB::FileInfo`, +and :zeek:see:`SMB::TreeInfo`. + +When presenting information in this section, my general convention is to bold +commands and items of interest in the resulting output. + +Leveraging BZAR +=============== + +Before looking at individual logs associated with SMB, it’s helpful to first +consider adding the BZAR package to your repertoire. + +BZAR stands for Bro/Zeek ATT&CK-based Analytics and Reporting. Mark Fernandez +and others from MITRE and the Zeek community wrote BZAR to generate +:file:`notice.log` entries when certain patterns of activity appear in some SMB +logs. + +You can learn more about BZAR at https://github.com/mitre-attack/bzar and install +it via the `zkg package manager`_ by saying + +.. literal-emph:: + + zkg install bzar + +I suggest using BZAR when one first begins looking at SMB logs. Without BZAR, +it could be difficult to know what might be worth investigating and what might +be normal. However, even with BZAR, it is no easy feat to differentiate among +normal, suspicious, and malicious SMB activity. Still, leveraging the BZAR +policy script for Zeek will give analysts a place to begin their +investigations. + +Running the ``net user`` Command +================================ + +Let’s start our investigation of SMB logs with the case labelled “RPC” in Nate +Marx’s paper. The relevant packet capture file is titled +:file:`20171220_smb_net_user.pcap`. + +If we process the packet capture with Zeek and BZAR, the following files appear: + +* :file:`conn.log` +* :file:`dce_rpc.log` +* :file:`kerberos.log` +* :file:`notice.log` +* :file:`packet_filter.log` +* :file:`smb_mapping.log` + +Let’s look at the :file:`conn.log` first to get a general overview of the +traffic. + +.. literal-emph:: + + { + "ts": 1507562478.10937, + "uid": "CzgIrZ31Lh5vCHioWi", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49282, + **"id.resp_h": "192.168.10.10",** + **"id.resp_p": 445,** + "proto": "tcp", + "service": "gssapi,smb,dce_rpc,krb", + "duration": 0.22932004928588867, + "orig_bytes": 16271, + "resp_bytes": 13720, + "conn_state": "S1", + "missed_bytes": 0, + "history": "ShADda", + "orig_pkts": 78, + "orig_ip_bytes": 19403, + "resp_pkts": 77, + "resp_ip_bytes": 16812, + "ip_proto": 6 + } + +We see that ``192.168.10.31`` initiated a connection to ``192.168.10.10``. The +destination port is 445 TCP, which is associated with SMB activity. Note that +Zeek observed the services on this connection as ``gssapi,smb,dce_rpc,krb``, +which represents Generic Security Service Application Programming Interface, +Server Message Block, Distributed Computing Environment Remote Procedure Call, +and Kerberos. + +The GSS-API reference likely relates to authentication, as noted in the Windows +protocol guide for SMB versions 2 and 3. It does not produce any logs named +``gssapi``. SMB is expected as we are looking for it in this case, and will +create smb-named logs. DCE-RPC is a protocol associated with Windows networking +and command execution between machines, and will likely create a +:file:`dce_rpc.log` entry. Kerberos is an authentication protocol that will +likely create a :file:`kerberos.log` entry. + +:file:`notice.log` +------------------ + +Let’s see what the :file:`notice.log` has to say about this activity. + +.. literal-emph:: + + { + "ts": 1507562478.117387, + **"note": "ATTACK::Discovery",** + **"msg": "Detected activity from host 192.168.10.31, total attempts 5 within timeframe 5.0 mins",** + "actions": [ + "Notice::ACTION_LOG" + ], + "suppress_for": 3600 + } + { + "ts": 1507562478.124176, + **"note": "ATTACK::Discovery",** + **"msg": "Detected activity from host 192.168.10.31, total attempts 10 within timeframe 5.0 mins",** + "actions": [ + "Notice::ACTION_LOG" + ], + "suppress_for": 3600 + } + { + "ts": 1507562478.138992, + **"note": "ATTACK::Discovery",** + **"msg": "Detected activity from host 192.168.10.31, total attempts 15 within timeframe 5.0 mins",** + "actions": [ + "Notice::ACTION_LOG" + ], + "suppress_for": 3600 + } + +These three entries all indicate the same sort of activity: ``192.168.10.31`` +is doing some sort of “discovery” action. We do not know the nature of the +reconnaissance nor do we know the target. However, when combined with the +:file:`conn.log` we saw previously, we can assume that ``192.168.10.10`` is the +target. + +:file:`dce_rpc.log` +------------------- + +The :file:`notice.log` alerted us to suspicious or malicious activity from +``192.168.10.31``. Perhaps the :file:`dce_rpc.log` can help us understand what +is happening? + +Let’s look at the first entry in :file:`dce_rpc.log`. + +.. literal-emph:: + + { + "ts": 1507562478.112879, + "uid": "CzgIrZ31Lh5vCHioWi", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49282, + **"id.resp_h": "192.168.10.10",** + **"id.resp_p": 445,** + "rtt": 0.0003020763397216797, + **"named_pipe": "\\pipe\\lsass",** + **"endpoint": "samr",** + **"operation": "SamrConnect5"** + } + +This entry shows that ``192.168.10.31`` connected to ``192.168.10.10`` via a +named pipe titled ``lsass``. Microsoft’s documentation says “a pipe is a +section of shared memory that processes use for communication. The process that +creates a pipe is the pipe server. A process that connects to a pipe is a pipe +client… Named pipes can be used to provide communication between processes on +the same computer or between processes on different computers across a +network.” + +Ref: https://docs.microsoft.com/en-us/windows/win32/ipc/pipes + +The lsass named pipe refers to the Local Security Authority Subsystem Service +(LSASS). The endpoint, ``samr``, refers to the Security Accounts Manager. +Microsoft’s documentation says “the SamrConnect5 method obtains a handle to a +server object.” + +Ref: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-samr/c842a897-0a42-4ca5-a607-2afd05271dae + +Even if you do not fully understand all of these details (and who does!), it +appears that ``192.168.10.31`` is trying to remotely access ``192.168.10.10`` +in a way that requires security authentication on the client, via DCE-RPC over +SMB. + +All of the entries in the :file:`dce_rpc.log` have the same source and +destination addresses and ports. We can summarize them by extracting only the +relevant fields using :program:`jq`: + +If we look at every one of the 46 entries in the :file:`dce_rpc.log`, we will +see repeats of some commands. These do not add to our general understanding of +what is happening. To show a reduced set of commands, I invoke :program:`jq` +and pipe the output through uniq to only show unique outputs: + +.. code-block:: console + + $ jq -c '[."named_pipe", ."endpoint", ."operation"]' dce_rpc.log | uniq + +.. literal-emph:: + + ["\\pipe\\lsass","samr","SamrConnect5"] + ["\\pipe\\lsass","samr","**SamrEnumerateDomainsInSamServer**"] + ["\\pipe\\lsass","samr","SamrLookupDomainInSamServer"] + ["\\pipe\\lsass","samr","SamrOpenDomain"] + ["\\pipe\\lsass","samr","**SamrLookupNamesInDomain**"] + ["\\pipe\\lsass","samr","SamrOpenUser"] + ["\\pipe\\lsass","samr","**SamrQueryInformationUser**"] + ["\\pipe\\lsass","samr","SamrQuerySecurityObject"] + ["\\pipe\\lsass","samr","**SamrGetGroupsForUser**"] + ["\\pipe\\lsass","samr","SamrGetAliasMembership"] + ["\\pipe\\lsass","samr","SamrCloseHandle"] + ["\\pipe\\lsass","samr","SamrConnect5"] + ["\\pipe\\lsass","samr","SamrEnumerateDomainsInSamServer"] + ["\\pipe\\lsass","samr","SamrLookupDomainInSamServer"] + ["\\pipe\\lsass","samr","SamrOpenDomain"] + ["\\pipe\\lsass","samr","SamrQueryInformationDomain"] + ["\\pipe\\lsass","samr","SamrCloseHandle"] + ["\\pipe\\lsass","lsarpc","LsarOpenPolicy2"] + ["\\pipe\\lsass","lsarpc","LsarQueryInformationPolicy"] + ["\\pipe\\lsass","samr","SamrConnect5"] + ["\\pipe\\lsass","samr","SamrOpenDomain"] + ["\\pipe\\lsass","samr","SamrCloseHandle"] + ["\\pipe\\lsass","lsarpc","LsarLookupNames3"] + ["\\pipe\\lsass","samr","SamrGetAliasMembership"] + ["\\pipe\\lsass","samr","SamrCloseHandle"] + ["\\pipe\\lsass","lsarpc","LsarClose"] + ["\\pipe\\lsass","samr","SamrConnect5"] + ["\\pipe\\lsass","samr","SamrEnumerateDomainsInSamServer"] + ["\\pipe\\lsass","samr","SamrLookupDomainInSamServer"] + ["\\pipe\\lsass","samr","SamrOpenDomain"] + ["\\pipe\\lsass","samr","SamrLookupNamesInDomain"] + ["\\pipe\\lsass","samr","SamrOpenUser"] + ["\\pipe\\lsass","samr","SamrGetGroupsForUser"] + ["\\pipe\\lsass","samr","SamrLookupIdsInDomain"] + ["\\pipe\\lsass","samr","SamrCloseHandle"] + +The bolded entries indicate that ``192.168.10.31`` is performing some sort of +user enumeration against ``192.168.10.10``. Again, we don’t necessarily know +exactly what all of this means, but if there is no reason from +``192.168.10.31`` to be performing this action, then it’s worth investigating! + +:file:`kerberos.log` and :file:`smb_mapping.log` +------------------------------------------------ + +Let’s see if the :file:`kerberos.log` has anything new to add to our +investigation. + +.. literal-emph:: + + { + "ts": 1507562478.110863, + "uid": "CzgIrZ31Lh5vCHioWi", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49282, + **"id.resp_h": "192.168.10.10",** + **"id.resp_p": 445** + } + +These are the same details we found through the :file:`conn.log`, but it +confirms that Zeek identified Kerberos authentication in use. + +The :file:`smb_mapping.log` offers one entry as well: + +.. literal-emph:: + + { + "ts": 1507562478.111677, + "uid": "CzgIrZ31Lh5vCHioWi", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49282, + "id.resp_h": "192.168.10.10", + "id.resp_p": 445, + **"path": "\\\\DC1.contoso.local\\IPC$",** + "share_type": "PIPE" + } + +Here we see the first mention of the ``IPC$`` share. As noted in Mr. Marx’s +paper, Windows uses the ``IPC$`` share as a means to enable remote procedure +calls. We knew this was the case when we reviewed the :file:`dce_rpc.log`. It’s +possible that the ``DC1`` in the path value for this log means that +``192.168.10.10`` is a domain controller. It’s likely that there is user +reconnaissance occurring. + +If we look at the explanation for this activity noted in Mr. Marx’s paper, he +says that a simulated intruder on ``192.168.10.31`` executed the ``net user`` +command against ``192.168.10.10``. The intruder took this action to enumerate +the user list on the target. + +In the next two cases we will see what it looks like when simulated intruders move files from one system to another. + +Connecting to a SMB Share and Uploading a File +============================================== + +We continue our exploration of SMB logs by reviewing the first case discussed +in Mr. Marx’s paper. The relevant packet capture file is titled +:file:`20171220_smb_mimikatz_copy.pcap`. Mr. Marx’s discussion appears in the +section “The Basics” in his paper. + +If we process the packet capture with Zeek and BZAR, the following files appear: + +* :file:`conn.log` +* :file:`extract_files/` +* :file:`files.log` +* :file:`kerberos.log` +* :file:`notice.log` +* :file:`packet_filter.log` +* :file:`pe.log` +* :file:`smb_files.log` +* :file:`smb_mapping.log` + +Let’s look at the :file:`conn.log` first to get a general overview of the +traffic. + +:file:`conn.log` +---------------- + +The :file:`conn.log` has two entries: + +.. literal-emph:: + + { + "ts": 1507565438.203425, + "uid": "CR7Vww4LuLkMzi4jMd", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49238, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 445,** + "proto": "tcp", + **"service": "krb,smb,gssapi",** + "duration": 1.1398930549621582, + "orig_bytes": 814051, + "resp_bytes": 11657, + "conn_state": "S1", + "missed_bytes": 0, + "history": "ShADda", + "orig_pkts": 66, + "orig_ip_bytes": 816703, + "resp_pkts": 91, + "resp_ip_bytes": 15309, + "ip_proto": 6 + } + { + "ts": 1507565425.183882, + "uid": "CyeWAg1QrRKQL0HHMi", + "id.orig_h": "192.168.10.30", + "id.orig_p": 138, + **"id.resp_h": "192.168.10.255",** + **"id.resp_p": 138,** + "proto": "udp", + "conn_state": "S0", + "missed_bytes": 0, + "history": "D", + "orig_pkts": 1, + "orig_ip_bytes": 207, + "resp_pkts": 0, + "resp_ip_bytes": 0, + "ip_proto": 17 + } + +The first entry shows a connection initiated by ``192.168.10.31`` to +``192.168.10.30``. + +The second entry is likely a SMB-related Windows broadcast, as seen by the +destination IP address of ``192.168.10.255``. According to a Wireshark decode +of that datagram, it’s a Windows Browser Protocol message, namely a "Become +backup browser" command with the "browser to promote" being "VICTIM-PC". +“Browser” in this case does not refer to a Web browser; it’s about accessing +resources on the local network. + +Let’s next turn to the :file:`notice.log`. + +:file:`notice.log` +------------------ + +I have selected examples of the two unique log types appearing in +:file:`notice.log`. + +.. literal-emph:: + + { + "ts": 1507565439.130425, + **"uid": "CR7Vww4LuLkMzi4jMd",** + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49238, + **"id.resp_h": "192.168.10.30",** + "id.resp_p": 445, + "proto": "tcp", + **"note": "ATTACK::Lateral_Movement",** + **"msg": "Detected SMB::FILE_WRITE to admin file share '\\\\admin-pc\\c$temp\\mimikatz.exe'",** + **"sub": "T1021.002 Remote Services: SMB/Windows Admin Shares + T1570 Lateral Tool Transfer",** + **"src": "192.168.10.31",** + **"dst": "192.168.10.30",** + "p": 445, + "actions": [ + "Notice::ACTION_LOG" + ], + "suppress_for": 3600 + } + + { + "ts": 1507565439.343318, + "uid": "CR7Vww4LuLkMzi4jMd", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49238, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + "fuid": "FwVZpk12AKBjE11UNg", + "file_mime_type": "application/x-dosexec", + "file_desc": "temp", + "proto": "tcp", + **"note": "ATTACK::Lateral_Movement_Extracted_File",** + **"msg": "Saved a copy of the file written to SMB admin file share",** + **"sub": "CR7Vww4LuLkMzi4jMd_FwVZpk12AKBjE11UNg__admin-pc_c$temp_mimikatz.exe",** + **"src": "192.168.10.31",** + **"dst": "192.168.10.30",** + "p": 445, + "actions": [ + "Notice::ACTION_LOG" + ], + "suppress_for": 3600 + } + +My processing of the packet capture produced 13 of the first entry and 1 of the +second entry. + +These two entries in the :file:`notice.log` tell us a lot, but also provide +material for additional investigation. + +First, the note, msg, and sub entries of each log provide useful information. + +Both notes relate to “lateral movement.” If a new analyst is not familiar with +that term, the sub field in the first log entry provides a reference to “T1570 +Lateral Tool Transfer.” T1570 refers to the MITRE ATT&CK technique number 1570, +which is described here: + +https://attack.mitre.org/techniques/T1570/ + +The ATT&CK Web site explains Lateral Tool Transfer thus: + + “**Adversaries may transfer tools or other files between systems in a + compromised environment**. Files may be copied from one system to another to + stage adversary tools or other files over the course of an operation. + Adversaries may copy files laterally between internal victim systems to + support lateral movement using inherent file sharing protocols such as file + sharing over **SMB** to connected network shares or with authenticated + connections with **SMB/Windows Admin Shares** or Remote Desktop Protocol. Files + can also be copied over on Mac and Linux with native tools like scp, rsync, + and sftp.” (emphasis added) + +With this understanding, the msg from the first log makes more sense:: + + Detected SMB::FILE_WRITE to admin file share '\\\\admin-pc\\c$temp\\mimikatz.exe' + +Zeek is trying to tell us that the BZAR script detected a transfer of a file +called ``mikikatz.exe``. + +The details from the second log tell us what actions Zeek took when it noticed +this activity:: + + "msg": "Saved a copy of the file written to SMB admin file share", + "sub": "CR7Vww4LuLkMzi4jMd_FwVZpk12AKBjE11UNg__admin-pc_c$temp_mimikatz.exe", + +This means we should be able to look in a directory associated with our run of +Zeek to find an extracted copy of this file. + +Finally, as with many Zeek logs, we have an id (in this case, +``CR7Vww4LuLkMzi4jMd``), and IP addresses which we can use to pivot through other +Zeek data. Note the src and dst entries in both logs indicate that +``192.168.10.31`` copied a file to ``192.168.10.30``. + +:file:`extract_files/`, :file:`files.log`, and :file:`pe.log`, and VirusTotal +----------------------------------------------------------------------------- + +Next, let’s look for the extracted file. We can use the Linux :program:`file` +command to get some details: + +.. code-block:: console + + $ file extract_files/CR7Vww4LuLkMzi4jMd_FwVZpk12AKBjE11UNg__admin-pc_c\$temp_mimikatz.exe + +:: + + extract_files/CR7Vww4LuLkMzi4jMd_FwVZpk12AKBjE11UNg__admin-pc_c$temp_mimikatz.exe: PE32+ executable (console) x86-64, for MS Windows + +As we learned in the :file:`files.log` documentation, we can look in that data +for similar information on extracted files: + +.. literal-emph:: + + { + "ts": 1507565439.130425, + "fuid": "FwVZpk12AKBjE11UNg", + "uid": "CR7Vww4LuLkMzi4jMd", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49238, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445 + "source": "SMB", + "depth": 0, + "analyzers": [ + "SHA1", + "SHA256", + "PE", + "MD5", + "EXTRACT" + ], + **"mime_type": "application/x-dosexec",** + **"filename": "temp\\mimikatz.exe",** + "duration": 0.0034439563751220703, + "is_orig": true, + "seen_bytes": 804352, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": true, + **"md5": "2c527d980eb30daa789492283f9bf69e",** + "sha1": "d007f64dae6bc5fdfe4ff30fe7be9b7d62238012", + "sha256": "fb55414848281f804858ce188c3dc659d129e283bd62d58d34f6e6f568feab37", + "extracted": "CR7Vww4LuLkMzi4jMd_FwVZpk12AKBjE11UNg__admin-pc_c$temp_mimikatz.exe", + "extracted_cutoff": false + } + +Here I highlighted the MIME type, showing a Windows executable, as well as the +filename, which includes a directory. + +Let’s take a quick look at the :file:`pe.log` entry: + +.. literal-emph:: + + { + "ts": 1507565439.130425, + "id": "FwVZpk12AKBjE11UNg", + "machine": "AMD64", + **"compile_ts": 1502638084,** + "os": "Windows XP x64 or Server 2003", + "subsystem": "WINDOWS_CUI", + "is_exe": true, + "is_64bit": true, + "uses_aslr": true, + "uses_dep": true, + "uses_code_integrity": false, + "uses_seh": true, + "has_import_table": true, + "has_export_table": false, + "has_cert_table": false, + "has_debug_data": false, + "section_names": [ + ".text", + ".rdata", + ".data", + ".pdata", + ".rsrc", + ".reloc" + ] + } + +There’s some interesting information in this log, like the compile time. We can +convert it to a human readable form using the Linux :program:`date` command. + + +.. code-block:: console + + $ date -d @1502638084 + +:: + + Sun Aug 13 15:28:04 UTC 2017 + +Finally, we can use the md5 from the :file:`file.log` entry to query +VirusTotal, as we also did previously: + +.. code-block:: console + + $ vt file "2c527d980eb30daa789492283f9bf69e" + +:: + + - _id: "fb55414848281f804858ce188c3dc659d129e283bd62d58d34f6e6f568feab37" + _type: "file" + authentihash: "02c86c9977c85a08f18ac1dae02f1cdda569eaba51ec6d17aed6f4ebc2adaf21" + creation_date: 1502638084 # 2017-08-13 15:28:04 +0000 UTC + crowdsourced_yara_results: + - description: "mimikatz" + rule_name: "mimikatz" + ruleset_id: "00043243d1" + ruleset_name: "gen_mimikatz" + source: "https://github.com/Neo23x0/signature-base" + - description: "Detects Mimikatz strings" + rule_name: "Mimikatz_Strings" + ruleset_id: "00043243d1" + ruleset_name: "gen_mimikatz" + source: "https://github.com/Neo23x0/signature-base" + - description: "Detects Mimikatz SkeletonKey in Memory" + rule_name: "HKTL_Mimikatz_SkeletonKey_in_memory_Aug20_1" + ruleset_id: "00043243d1" + ruleset_name: "gen_mimikatz" + source: "https://github.com/Neo23x0/signature-base" + - description: "Detects Powerkatz - a Mimikatz version prepared to run in memory via Powershell (overlap with other Mimikatz versions is possible)" + rule_name: "Powerkatz_DLL_Generic" + ruleset_id: "000d2a7a67" + ruleset_name: "gen_powerkatz" + source: "https://github.com/Neo23x0/signature-base" + - description: "Detects Mimikatz by using some special strings" + rule_name: "Mimikatz_Gen_Strings" + ruleset_id: "000be577b3" + ruleset_name: "thor-hacktools" + source: "https://github.com/Neo23x0/signature-base" + first_submission_date: 1502652611 # 2017-08-13 19:30:11 +0000 UTC + last_analysis_date: 1602435563 # 2020-10-11 16:59:23 +0000 UTC + +I reproduced the first set of results generated by VirusTotal’s +crowdsourced_yara_results to show that this is indeed a copy of Mimikatz, the +ubiquitous credential-dumping tool used for lateral movement in Windows +environments. + +:file:`kerberos.log`, :file:`smb_mapping.log`, and :file:`smb_files.log` +------------------------------------------------------------------------ + +We have learned that ``192.168.10.31`` copied :file:`mimikatz.exe` to +``192.168.10.30``. This is probably the most important aspect of the activity, +and it is based on BZAR’s interpretation of the SMB logs. Let’s take a quick +look at those logs to see if we can glean anything more from them. + +The :file:`kerberos.log` has a single short entry: + +:: + + { + "ts": 1507565438.204785, + "uid": "CR7Vww4LuLkMzi4jMd", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49238, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445 + } + +This indicates that Kerberos, an authentication measure used by Windows, had a +role in this connection. + +The :file:`smb_mapping.log` also has a single short entry: + +.. literal-emph:: + + { + "ts": 1507565438.205583, + "uid": "CR7Vww4LuLkMzi4jMd", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49238, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"path": "\\\\admin-pc\\c$",** + "share_type": "DISK" + } + +We see evidence of connecting to the administrative file share on +``192.168.10.30``. + +The :file:`smb_files.log` has many entries. The first looks like this: + +.. literal-emph:: + + { + "ts": 1507565438.205868, + "uid": "CR7Vww4LuLkMzi4jMd", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49238, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"action": "SMB::FILE_OPEN",** + **"path": "\\\\admin-pc\\c$",** + **"name": "",** + "size": 4096, + "times.modified": 1507316839.5820882, + "times.accessed": 1507316839.5820882, + "times.created": 1247539136.5268176, + "times.changed": 1507316839.5820882 + } + +All of the entries have the same ``uid``, ``id.orig_h``, ``id.orig_p``, +``id.resp_h``, and ``id.resp_p``. The ``size`` and ``times`` entries aren’t +especially interesting here. + +I include the specific :program:`jq` syntax in case you’ve forgotten how to +tell :program:`jq` what fields you want to see: + +.. code-block:: console + + $ jq -c '[."action", ."path", ."name"]' smb_files.log + +:: + + ["SMB::FILE_OPEN","\\\\admin-pc\\c$",""] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + ["SMB::FILE_WRITE","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + ["SMB::FILE_WRITE","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + +These results do not tell us anything we did not know from the entries the BZAR +script made in the :file:`notice.log`. However, I include them here to help +show how BZAR decided to write in the :file:`notice.log` that it detected +lateral movement via the copy of the file :file:`mimikatz.exe` from +``192.168.10.31`` to ``192.168.10.30``. + +Connecting to a SMB Share and Downloading a File +================================================ + +We continue our exploration of SMB logs by reviewing the second case discussed +in Nate Marx’s paper. The relevant packet capture file is titled +:file:`20171220_smb_mimikatz_copy_to_host.pcap`. Mr. Marx’s discussion appears +at the end of the section titled “The Basics” in his paper. + +If we process the packet capture with Zeek and BZAR, the following files appear: + +* :file:`conn.log` +* :file:`files.log` +* :file:`kerberos.log` +* :file:`packet_filter.log` +* :file:`pe.log` +* :file:`smb_files.log` +* :file:`smb_mapping.log` + +Note that this time we do not have an :file:`extract_files/` directory nor a +:file:`notice.log`! + +We’ll start with the :file:`conn.log` as we did with the previous case. + +:file:`conn.log` +---------------- + +The :file:`conn.log` for this case has only one entry: + +.. literal-emph:: + + { + "ts": 1512585460.295445, + "uid": "C4j5Ds3VyExc2ZAOh9", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 1112, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 445,** + "proto": "tcp", + "service": "krb,gssapi,smb", + "duration": 13.435487985610962, + "orig_bytes": 5762, + "resp_bytes": 812728, + "conn_state": "S1", + "missed_bytes": 0, + "history": "ShADda", + "orig_pkts": 74, + "orig_ip_bytes": 8734, + "resp_pkts": 575, + "resp_ip_bytes": 835740, + "ip_proto": 6 + } + +We see the same pattern: ``192.168.10.31`` initiated a connection to +``192.168.10.30``, to port 445 TCP. In the previous case and the current case, +``192.168.10.31`` connected to a Windows share on ``192.168.10.30``. What +happened next was different. + +In the first case, ``192.168.10.31`` uploaded a file to ``192.168.10.30``. + +In the second case, ``192.168.10.31`` downloaded a file from ``192.168.10.30``. + +Now let’s look at the :file:`files.log` and :file:`pe.log`, as we do not have a +:file:`notice.log` to check. + +:file:`files.log` and :file:`pe.log` +------------------------------------ + +We see one entry in :file:`files.log`: + +.. literal-emph:: + + { + "ts": 1512585460.300969, + "fuid": "FNMweB3f2OvTZ4UZLe", + "uid": "CR7Vww4LuLkMzi4jMd", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49238, + **"id.resp_h": "192.168.10.30",** + "id.resp_p": 445 + "source": "SMB", + "source": "SMB", + "depth": 0, + "analyzers": [ + "PE" + ], + "mime_type": "application/x-dosexec", + **"filename": "temp\\mimikatz.exe",** + "duration": 0.010069131851196289, + **"is_orig": false**, + "seen_bytes": 804352, + "total_bytes": 804352, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": false + } + +This :file:`files.log` entry is similar to that seen in the previous case, +except the ``is_orig`` value is ``false``. This +indicates that ``192.168.10.30`` sent a file titled :file:`mimikatz.exe` to +``192.168.10.31``, or, said differently, ``192.168.10.31`` downloaded a file +from ``192.168.10.30``. + +With either language, the file started at ``192.168.10.30`` (the responder) +and ended up on ``192.168.10.31`` (the originator). + +This is the reverse of the previous case. + +Here is the :file:`pe.log`: + +.. literal-emph:: + + { + "ts": 1512585460.300969, + "id": "FNMweB3f2OvTZ4UZLe", + "machine": "AMD64", + **"compile_ts": 1502638084,** + "os": "Windows XP x64 or Server 2003", + "subsystem": "WINDOWS_CUI", + "is_exe": true, + "is_64bit": true, + "uses_aslr": true, + "uses_dep": true, + "uses_code_integrity": false, + "uses_seh": true, + "has_import_table": true, + "has_export_table": false, + "has_cert_table": false, + "has_debug_data": false, + "section_names": [ + ".text", + ".rdata", + ".data", + ".pdata", + ".rsrc", + ".reloc" + ] + } + +This output is the same as the previous case, to include the compile time. +There is a different id field because this file was transferred in a different +connection. + +:file:`kerberos.log`, :file:`smb_mapping`.log, and :file:`smb_files.log` +------------------------------------------------------------------------ + +Let’s see what the other relevant files say. + +The :file:`kerberos.log` has one entry: + +:: + + { + "ts": 1512585460.296744, + "uid": "C4j5Ds3VyExc2ZAOh9", + "id.orig_h": "192.168.10.31", + "id.orig_p": 1112, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445 + } + +This is very similar to the previous :file:`kerberos.log` entry, because the +direction of the connection and the authentication is the same. + +The :file:`smb_mapping.log` has one entry: + +:: + + { + "ts": 1512585460.297722, + "uid": "C4j5Ds3VyExc2ZAOh9", + "id.orig_h": "192.168.10.31", + "id.orig_p": 1112, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + "path": "\\\\admin-pc\\c$", + "share_type": "DISK" + } + +This is also very similar to the previous :file:`smb_mapping.log` entry, +because the direction of the connection and the share access is the same. + +The :file:`smb_files.log` only has two entries: + +:: + + { + "ts": 1512585460.298136, + "uid": "C4j5Ds3VyExc2ZAOh9", + "id.orig_h": "192.168.10.31", + "id.orig_p": 1112, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + "action": "SMB::FILE_OPEN", + "path": "\\\\admin-pc\\c$", + "name": "temp\\mimikatz.exe", + "size": 804352, + "times.modified": 1512171135.77705, + "times.accessed": 1512585399.9219997, + "times.created": 1512585399.9219997, + "times.changed": 1512585399.9376247 + } + { + "ts": 1512585460.299373, + "uid": "C4j5Ds3VyExc2ZAOh9", + "id.orig_h": "192.168.10.31", + "id.orig_p": 1112, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + "action": "SMB::FILE_OPEN", + "path": "\\\\admin-pc\\c$", + "name": "temp", + "size": 0, + "times.modified": 1512585399.9219997, + "times.accessed": 1512585399.9219997, + "times.created": 1512585360.2032497, + "times.changed": 1512585399.9219997 + } + +These entries are similar to those from the previous case, at least as far as +the ``id.orig_h`` and ``id.resp_h`` IP addresses and the ``id.resp_p`` port +values. + +Summarizing these two logs, as we did for the previous case, yields these +values: + +.. code-block:: console + + $ jq -c '[."action", ."path", ."name"]' smb_files.log + +:: + + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp\\mimikatz.exe"] + ["SMB::FILE_OPEN","\\\\admin-pc\\c$","temp"] + +Looking at these logs, I would not as an analyst be able to tell exactly what +is happening here, other than to say it looks like :file:`mimikatz.exe` is +being transferred. Only the :file:`files.log` entry makes it possible to see +the direction of the transfer: + +The file started at ``192.168.10.30`` and ended up on ``192.168.10.31``. This +conclusion is drawn from the originator and responder information and the +``is_orig`` value for the given entry being ``false``. + +In the next section we will look at how someone might execute a file once it is +present on a target. + +Scheduling Mimikatz via the At Service +====================================== + +The following analysis is based on the :file:`20171220_smb_at_schedule.pcap` +and appears near the end of the RPC section of Mr. Marx’s paper. + +After processing the packet capture with Zeek and BZAR, we have the following +logs: + +* :file:`conn.log` +* :file:`files.log` +* :file:`packet_filter.log` +* :file:`smb_files.log` + +This is a short set of logs to analyze. We will start with the :file:`conn.log`. + +:file:`conn.log` +---------------- + +Looking at the :file:`conn.log`, we see one entry: + +.. literal-emph:: + + { + "ts": 1508525002.992213, + "uid": "Cirxt14nybZjVhpOAk", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49266, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 445,** + "proto": "tcp", + **"service": "dce_rpc,smb",** + "duration": 12.397327899932861, + "orig_bytes": 1155, + "resp_bytes": 1037, + "conn_state": "OTH", + "missed_bytes": 0, + "history": "DdAR", + "orig_pkts": 11, + "orig_ip_bytes": 1595, + "resp_pkts": 9, + "resp_ip_bytes": 1397, + "ip_proto": 6 + } + +We see ``192.168.10.31`` initiated a connection to ``192.168.10.30``, port 445 +TCP. Zeek recognized this as DCE RPC and SMB traffic. Note that for some +reason Zeek did not create a :file:`dce_rpc.log` for this activity. + +:file:`smb_files.log` +--------------------- + +The :file:`smb_files.log` holds the next clue to this activity. It contains +three entries: + +.. literal-emph:: + + { + "ts": 1508525002.992213, + "uid": "Cirxt14nybZjVhpOAk", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49266, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"action": "SMB::FILE_OPEN",** + **"name": "atsvc",** + "size": 0 + } + { + "ts": 1508525002.992213, + "uid": "Cirxt14nybZjVhpOAk", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49266, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"action": "SMB::FILE_WRITE",** + **"name": "atsvc",** + "size": 0, + "data_offset_req": 0, + "data_len_req": 160 + } + { + "ts": 1508525002.992213, + "uid": "Cirxt14nybZjVhpOAk", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49266, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"fuid": "Fw42Pp34N0CC79C5Ua",** + **"action": "SMB::FILE_WRITE",** + **"name": "atsvc",** + "size": 0, + "data_offset_req": 0, + "data_len_req": 160 + } + +We see SMB ``FILE_OPEN`` and ``FILE_WRITE`` messages to the ``atsvc``. This +indicates that ``192.168.10.31`` is accessing the Windows At service, used for +scheduling processes on Windows. Note that Windows and hence Zeek treats the At +service as a “file,” even though it is a service offered by Windows. + +:file:`files.log` +----------------- + +An odd result of Windows providing the At service as a “file” is that Zeek +creates a :file:`files.log` entry for it. Here is that entry: + +.. literal-emph:: + + { + "ts": 1508525002.992817, + "fuid": "Fw42Pp34N0CC79C5Ua", + "uid": "Cirxt14nybZjVhpOAk", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49266, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"source": "SMB",** + "depth": 0, + "analyzers": [], + **"filename": "atsvc",** + "duration": 0.00038909912109375, + "is_orig": true, + "seen_bytes": 160, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": false + } + +This file does not tell us anything we did not already know. Zeek did not +extract a file either, because the “file” in this instance is an abstraction +used to represent the At service on the Windows target. + +Reviewing the Packet Capture with :program:`tshark` +=================================================== + +If administrators are authorized to use the At service to schedule jobs, from +the indicated source to the indicated destination, then it may not be possible +for a security analyst to identify this as malicious activity. We might be able +to learn a bit more about the activity by looking at the packet capture +directly. + +To create the following output, I told :program:`tshark` to only display the +source IP address, the protocol, and the information field for each frame. I +also specified that it look at SMB version 2 traffic. + +.. code-block:: console + + $ tshark -r 20171220_smb_at_schedule.pcap -T fields -e _ws.col.No. -e _ws.col.Source -e _ws.col.Protocol -e _ws.col.Info -Y smb2 + +.. literal-emph:: + + **1 192.168.10.31 SMB2 Create Request File: atsvc** + 2 192.168.10.30 SMB2 Create Response File: atsvc + 3 192.168.10.31 SMB2 GetInfo Request FILE_INFO/SMB2_FILE_STANDARD_INFO File: atsvc + 4 192.168.10.30 SMB2 GetInfo Response + 5 192.168.10.31 DCERPC Bind: call_id: 2, Fragment: Single, 3 context items: ATSVC V1.0 (32bit NDR), ATSVC V1.0 (64bit NDR), ATSVC V1.0 (6cb71c2c-9812-4540-0300-000000000000) + 6 192.168.10.30 SMB2 Write Response + 7 192.168.10.31 SMB2 Read Request Len:1024 Off:0 File: atsvc + 8 192.168.10.30 DCERPC Bind_ack: call_id: 2, Fragment: Single, max_xmit: 4280 max_recv: 4280, 3 results: Provider rejection, Acceptance, Negotiate ACK + **9 192.168.10.31 ATSVC JobAdd request** + 10 192.168.10.30 SMB2 Ioctl Response, Error: STATUS_PENDING + 11 192.168.10.30 ATSVC JobAdd response + 13 192.168.10.31 SMB2 Close Request File: atsvc + 14 192.168.10.30 SMB2 Close Response + 16 192.168.10.31 SMB2 Tree Disconnect Request + 17 192.168.10.30 SMB2 Tree Disconnect Response + 18 192.168.10.31 SMB2 Session Logoff Request + 19 192.168.10.30 SMB2 Session Logoff Response + +Right away in frame 1 we see the request to create a “file” for the ``atsvc``. + +Frame 9 might have the details of the Atsvc request. We can look at the details +using :program:`tshark`. The -O (capital letter O) command specifies which +layer of the decode we want to see. + +.. code-block:: console + + $ tshark -r 20171220_smb_at_schedule.pcap -V -Y frame.number==9 -O atsvc + +.. literal-emph:: + + Frame 9: 338 bytes on wire (2704 bits), 338 bytes captured (2704 bits) + Ethernet II, Src: 08:00:27:7f:b5:8b, Dst: 08:00:27:a1:27:e8 + Internet Protocol Version 4, Src: 192.168.10.31, Dst: 192.168.10.30 + Transmission Control Protocol, Src Port: 49266, Dst Port: 445, Seq: 636, Ack: 541, Len: 284 + NetBIOS Session Service + SMB2 (Server Message Block Protocol version 2) + Distributed Computing Environment / Remote Procedure Call (DCE/RPC) Request, Fragment: Single, FragLen: 160, Call: 2, Ctx: 1 + Microsoft AT-Scheduler Service, JobAdd + Operation: JobAdd (0) + Pointer to Servername (uint16): \\admin-pc + Referent ID: 0x0000000000020000 + Max Count: 11 + Offset: 0 + Actual Count: 11 + Server: \\admin-pc + Pointer to Job Info (atsvc_JobInfo) + JobInfo + Job Time: 47100000 + Days Of Month: 0x00000000: (No values set) + .... .... .... .... .... .... .... ...0 = First: First is NOT SET + .... .... .... .... .... .... .... ..0. = Second: Second is NOT SET + .... .... .... .... .... .... .... .0.. = Third: Third is NOT SET + .... .... .... .... .... .... .... 0... = Fourth: Fourth is NOT SET + .... .... .... .... .... .... ...0 .... = Fifth: Fifth is NOT SET + .... .... .... .... .... .... ..0. .... = Sixth: Sixth is NOT SET + .... .... .... .... .... .... .0.. .... = Seventh: Seventh is NOT SET + .... .... .... .... .... .... 0... .... = Eight: Eight is NOT SET + .... .... .... .... .... ...0 .... .... = Ninth: Ninth is NOT SET + .... .... .... .... .... ..0. .... .... = Tenth: Tenth is NOT SET + .... .... .... .... .... .0.. .... .... = Eleventh: Eleventh is NOT SET + .... .... .... .... .... 0... .... .... = Twelfth: Twelfth is NOT SET + .... .... .... .... ...0 .... .... .... = Thitteenth: Thitteenth is NOT SET + .... .... .... .... ..0. .... .... .... = Fourteenth: Fourteenth is NOT SET + .... .... .... .... .0.. .... .... .... = Fifteenth: Fifteenth is NOT SET + .... .... .... .... 0... .... .... .... = Sixteenth: Sixteenth is NOT SET + .... .... .... ...0 .... .... .... .... = Seventeenth: Seventeenth is NOT SET + .... .... .... ..0. .... .... .... .... = Eighteenth: Eighteenth is NOT SET + .... .... .... .0.. .... .... .... .... = Ninteenth: Ninteenth is NOT SET + .... .... .... 0... .... .... .... .... = Twentyth: Twentyth is NOT SET + .... .... ...0 .... .... .... .... .... = Twentyfirst: Twentyfirst is NOT SET + .... .... ..0. .... .... .... .... .... = Twentysecond: Twentysecond is NOT SET + .... .... .0.. .... .... .... .... .... = Twentythird: Twentythird is NOT SET + .... .... 0... .... .... .... .... .... = Twentyfourth: Twentyfourth is NOT SET + .... ...0 .... .... .... .... .... .... = Twentyfifth: Twentyfifth is NOT SET + .... ..0. .... .... .... .... .... .... = Twentysixth: Twentysixth is NOT SET + .... .0.. .... .... .... .... .... .... = Twentyseventh: Twentyseventh is NOT SET + .... 0... .... .... .... .... .... .... = Twentyeighth: Twentyeighth is NOT SET + ...0 .... .... .... .... .... .... .... = Twentyninth: Twentyninth is NOT SET + ..0. .... .... .... .... .... .... .... = Thirtieth: Thirtieth is NOT SET + .0.. .... .... .... .... .... .... .... = Thirtyfirst: Thirtyfirst is NOT SET + Days Of Week: 0x00: (No values set) + .... ...0 = DAYSOFWEEK MONDAY: DAYSOFWEEK_MONDAY is NOT SET + .... ..0. = DAYSOFWEEK TUESDAY: DAYSOFWEEK_TUESDAY is NOT SET + .... .0.. = DAYSOFWEEK WEDNESDAY: DAYSOFWEEK_WEDNESDAY is NOT SET + .... 0... = DAYSOFWEEK THURSDAY: DAYSOFWEEK_THURSDAY is NOT SET + ...0 .... = DAYSOFWEEK FRIDAY: DAYSOFWEEK_FRIDAY is NOT SET + ..0. .... = DAYSOFWEEK SATURDAY: DAYSOFWEEK_SATURDAY is NOT SET + .0.. .... = DAYSOFWEEK SUNDAY: DAYSOFWEEK_SUNDAY is NOT SET + Flags: 0x00: (No values set) + .... ...0 = JOB RUN PERIODICALLY: JOB_RUN_PERIODICALLY is NOT SET + .... ..0. = JOB EXEC ERROR: JOB_EXEC_ERROR is NOT SET + .... .0.. = JOB RUNS TODAY: JOB_RUNS_TODAY is NOT SET + .... 0... = JOB ADD CURRENT DATE: JOB_ADD_CURRENT_DATE is NOT SET + ...0 .... = JOB NONINTERACTIVE: JOB_NONINTERACTIVE is NOT SET + **Pointer to Command (uint16): c:\mimikatz.exe** + **Referent ID: 0x0000000000020000** + **Max Count: 16** + **Offset: 0** + **Actual Count: 16** + **Command: c:\mimikatz.exe** + +Once you get past the spelling errors in the “Days of Month” section, we see in +the “Pointer to Command” section a reference to :file:`c:\mimikatz.exe`. This +detail was not available in the Zeek logs, but this additional information +helps us recognize this activity as being likely malicious. + +We can look to see if the command succeeded by reviewing the details of frame +11. + +.. code-block:: console + + $ tshark -r 20171220_smb_at_schedule.pcap -V -Y frame.number==11 -O atsvc + +.. literal-emph:: + + Frame 11: 202 bytes on wire (1616 bits), 202 bytes captured (1616 bits) + Ethernet II, Src: 08:00:27:a1:27:e8, Dst: 08:00:27:7f:b5:8b + Internet Protocol Version 4, Src: 192.168.10.30, Dst: 192.168.10.31 + Transmission Control Protocol, Src Port: 445, Dst Port: 49266, Seq: 618, Ack: 920, Len: 148 + NetBIOS Session Service + SMB2 (Server Message Block Protocol version 2) + Distributed Computing Environment / Remote Procedure Call (DCE/RPC) Response, Fragment: Single, FragLen: 32, Call: 2, Ctx: 1, [Req: #9] + Microsoft AT-Scheduler Service, JobAdd + Operation: JobAdd (0) + [Request in frame: 9] + Pointer to Job Id (uint32) + Job Id: 2 + **NT Error: STATUS_SUCCESS (0x00000000)** + +The ``NT Error`` message shows ``STATUS_SUCCESS``, which indicates that the job +was scheduled via the At service. + +In the next section we will introduce another capability associated with +Windows lateral movement. + +Using PsExec to Retrieve a File from a Target +============================================= + +Microsoft describes PsExec in the following terms: + + “PsExec is a light-weight telnet-replacement that lets you execute processes + on other systems, complete with full interactivity for console applications, + without having to manually install client software. PsExec's most powerful + uses include launching interactive command-prompts on remote systems and + remote-enabling tools like IpConfig that otherwise do not have the ability to + show information about remote systems.” + +Ref: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec + +Intruders are fond of PsExec for the very capabilities that Microsoft +describes. + +The following analysis is based on the +:file:`20171220_smb_psexec_mimikatz_ticket_dump.pcap` file described in the +PsExec section of Nate Marx’s paper. + +Zeek creates the following output for this packet capture, along with an +:file:`extract_files/` directory. I use the :program:`wc` command to show how +many lines appear in each file. + +.. code-block:: console + + $ wc -l *.log + +:: + + 9 conn.log + 20 dce_rpc.log + 9 dns.log + 1 files.log + 2 kerberos.log + 8 notice.log + 1 packet_filter.log + 1 pe.log + 5 smb_files.log + 2 smb_mapping.log + +We’ll start with the :file:`conn.log` but move to the :file:`notice.log` +quickly thereafter. + +:file:`conn.log` +---------------- + +Because we saw that there were 9 entries in the :file:`conn.log`, I’m going to +summarize them using the following command: + +.. code-block:: console + + $ jq -c '[."uid", ."id.orig_h", ."id.resp_h", ."id.resp_p", ."proto", ."service"]' conn.log + +:: + + ["CT7qITytKtae83Tyi","192.168.10.31","192.168.10.10",88,"tcp","krb_tcp"] + ["CBFaLB1HJivXnb9Jw2","192.168.10.31","192.168.10.30",135,"tcp","dce_rpc"] + ["CqgZIa4KYnX4cNHJo8","192.168.10.31","192.168.10.30",49155,"tcp","dce_rpc"] + ["C95D4lsjb4GjGbBq2","192.168.10.31","192.168.10.255",137,"udp","dns"] + ["CEcy2LEJUZQrLwO4b","192.168.10.31","192.168.10.10",53,"udp","dns"] + ["CPlgJVWL9yrKdUsX8","192.168.10.31","192.168.10.10",53,"udp","dns"] + ["C6zoLD2QgM71nvWdX5","192.168.10.30","192.168.10.255",137,"udp","dns"] + ["C6HQVsDf8VCu0XTJe","192.168.10.31","192.168.10.30",445,"tcp","smb,krb,gssapi"] + ["Cishox1cH3JLghxiV8","192.168.10.31","192.168.10.10",3,"icmp",null] + +The 4 TCP connections likely are the sessions we want to investigate in this +case. However, because we have a :file:`notice.log` for this activity, it’s +smartest to look at those entries next. + +:file:`notice.log` +------------------ + +The :file:`notice.log` for this activity has 8 entries. I tried to distill them +to the bare minimum required to convey what is happening, according to Zeek and +BZAR. + +.. code-block:: console + + $ jq -c '[."uid", ."note", ."msg", ."sub", ."src", ."dst"]' notice.log | uniq + +.. literal-emph:: + + ["C6HQVsDf8VCu0XTJe","ATTACK::Lateral_Movement","Detected SMB::FILE_WRITE to admin file share '\\\\admin-pc\\ADMIN$PSEXESVC.exe'","T1021.002 Remote Services: SMB/Windows Admin Shares + **T1570 Lateral Tool Transfer**","192.168.10.31","192.168.10.30"] + + ["C6HQVsDf8VCu0XTJe","ATTACK::Lateral_Movement_Extracted_File","**Saved a copy of the file written to SMB admin file share**","C6HQVsDf8VCu0XTJe_FtIFnm3ZqI1s96P74l__admin-pc_ADMIN$**PSEXESVC.exe**","192.168.10.31","192.168.10.30"] + + ["CqgZIa4KYnX4cNHJo8","ATTACK::Execution","svcctl::CreateServiceWOW64W","T1569.002 **System Services: Service Execution**","192.168.10.31","192.168.10.30"] + + [null,"ATTACK::Lateral_Movement_and_Execution","**Detected activity against host 192.168.10.30**, total score 1004 within timeframe 10.0 mins",null,null,null] + + ["CqgZIa4KYnX4cNHJo8","ATTACK::Execution","svcctl::StartServiceW","T1569.002 System Services: **Service Execution**","192.168.10.31","192.168.10.30"] + +The highlighted fields indicate suspicious or malicious activity. We see +evidence of lateral tool transfer to ``192.168.10.30`` via SMB of a file named +:file:`psexecsvc.exe`, then service execution. + +:file:`dce_rpc.log` +------------------- + +Let’s see if the :file:`dce_rpc.log` adds any useful details. We saw earlier +that this log has 20 entries. The first two shows us the pattern that occupies +all 20 entries. + +.. literal-emph:: + + { + "ts": 1507565599.588936, + "uid": "CBFaLB1HJivXnb9Jw2", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49240, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 135,** + "rtt": 0.0002448558807373047, + "named_pipe": "135", + **"endpoint": "epmapper",** + "operation": "ept_map" + } + + { + "ts": 1507565599.601632, + "uid": "CqgZIa4KYnX4cNHJo8", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49241, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 49155,** + "rtt": 0.0003237724304199219, + "named_pipe": "49155", + "endpoint": "svcctl", + "operation": "OpenSCManagerW" + } + +The first entry shows a call to the Windows endpoint mapper, ``epmapper``, on +port 135 TCP on ``192.168.10.30``. The response from this service directs the +client ``192.168.10.31`` to port 49155 TCP on ``192.168.10.30``. The second and +subsequent :file:`dce_rpc.log` entries involve port 49155 TCP on the target, which is +offering ``svcctrl``. + +We see the target IP address is ``192.168.10.30``, confirming the activity in +the :file:`notice.log`. As we did with a previous :file:`dce_rpc.log`, we can +simplify this one into the following entries: + +.. code-block:: console + + $ jq -c '[."named_pipe", ."endpoint", ."operation"]' dce_rpc.log | uniq + +:: + + ["135","epmapper","ept_map"] + ["49155","svcctl","OpenSCManagerW"] + ["49155","svcctl","CreateServiceWOW64W"] + ["49155","svcctl","CloseServiceHandle"] + ["49155","svcctl","OpenServiceW"] + ["49155","svcctl","StartServiceW"] + ["49155","svcctl","QueryServiceStatus"] + ["49155","svcctl","CloseServiceHandle"] + ["49155","svcctl","OpenSCManagerW"] + ["49155","svcctl","OpenServiceW"] + ["49155","svcctl","ControlService"] + ["49155","svcctl","QueryServiceStatus"] + ["49155","svcctl","CloseServiceHandle"] + ["49155","svcctl","OpenServiceW"] + ["49155","svcctl","DeleteService"] + ["49155","svcctl","CloseServiceHandle"] + +We see some sort of successful interaction with the ``svcctrl`` service on the target. + +Incidentally, we can’t see much more using a protocol analyzer like +:program:`tshark`, either: + +.. code-block:: console + + $ tshark -r 20171220_smb_psexec_mimikatz_ticket_dump.pcap -V -Y frame.number==76 -O svcctl + +.. literal-emph:: + + Frame 76: 258 bytes on wire (2064 bits), 258 bytes captured (2064 bits) + Ethernet II, Src: 08:00:27:7f:b5:8b, Dst: 08:00:27:a1:27:e8 + Internet Protocol Version 4, Src: 192.168.10.31, Dst: 192.168.10.30 + Transmission Control Protocol, Src Port: 49241, Dst Port: 49155, Seq: 1945, Ack: 366, Len: 204 + Distributed Computing Environment / Remote Procedure Call (DCE/RPC) Request, Fragment: Single, FragLen: 204, Call: 2, Ctx: 0 + Microsoft Service Control, OpenSCManagerW + Operation: OpenSCManagerW (15) + **Encrypted stub data: 02353eb074e7e350b9632e05b550f725c99d41d419165110...** + +As Mr. Marx notes in his paper, the content of these exchanges are encrypted +within the Microsoft Service Control layer. + +:file:`kerberos.log` +-------------------- + +The :file:`kerberos.log` contains two entries: + +.. literal-emph:: + + { + "ts": 1507565599.590346, + "uid": "CT7qITytKtae83Tyi", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49242, + **"id.resp_h": "192.168.10.10",** + **"id.resp_p": 88,** + "request_type": "TGS", + **"client": "RonHD/CONTOSO.LOCAL",** + **"service": "HOST/admin-pc",** + "success": true, + "till": 2136422885, + "cipher": "aes256-cts-hmac-sha1-96", + "forwardable": true, + "renewable": true + } + { + "ts": 1507565599.575721, + "uid": "C6HQVsDf8VCu0XTJe", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49239, + **"id.resp_h": "192.168.10.30",** + "id.resp_p": 445 + } + +The first entry includes the acronym TGS, which means Ticket Granting service. +The system ``192.168.10.10`` appears to be a domain controller, as we saw in an +earlier case. We gather some information on the intruder’s system, namely that +it is ``RonHD`` in the ``CONTOSO.LOCAL`` domain. + +The second entry shows that the aggressor ``192.168.10.31`` used Kerberos to +authenticate to the target ``192.168.10.30``. + +:file:`smb_mapping.log` +----------------------- + +The :file:`smb_mapping.log` contains two entries: + +.. literal-emph:: + + { + "ts": 1507565599.576613, + "uid": "C6HQVsDf8VCu0XTJe", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49239, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"path": "\\\\admin-pc\\ADMIN$",** + "share_type": "DISK" + } + { + "ts": 1507565599.729707, + "uid": "C6HQVsDf8VCu0XTJe", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49239, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + **"path": "\\\\admin-pc\\IPC$",** + "share_type": "PIPE" + } + +As we learned earlier, connections to the ``ADMIN$`` and ``IPC$`` shares on a +target system are suspicious or malicious if they are not already authorized. + +:file:`smb_files.log` +--------------------- + +There are many entries in the :file:`smb_files.log`. The first looks like +this: + +.. literal-emph:: + + { + "ts": 1507565599.576942, + "uid": "C6HQVsDf8VCu0XTJe", + **"id.orig_h": "192.168.10.31",** + "id.orig_p": 49239, + **"id.resp_h": "192.168.10.30",** + **"id.resp_p": 445,** + "action": "SMB::FILE_OPEN", + "path": "\\\\admin-pc\\ADMIN$", + **"name": "PSEXESVC.exe",** + "size": 0, + "times.modified": 1507565599.607777, + "times.accessed": 1507565599.607777, + "times.created": 1507565599.607777, + "times.changed": 1507565599.607777 + } + +As we noted earlier, use of :file:`psexecsvc.exe` is likely malicious as +intruders use it to run :program:`PsExec` on remote systems. + +We can summarize all of the entries in :file:`smb_files.log` with the following +syntax: + +.. code-block:: console + + $ jq -c '[."action", ."path", ."name"]' smb_files.log + +:: + + ["SMB::FILE_OPEN","\\\\admin-pc\\ADMIN$","PSEXESVC.exe"] + ["SMB::FILE_WRITE","\\\\admin-pc\\ADMIN$","PSEXESVC.exe"] + ["SMB::FILE_WRITE","\\\\admin-pc\\ADMIN$","PSEXESVC.exe"] + ["SMB::FILE_OPEN","\\\\admin-pc\\ADMIN$","PSEXESVC.exe"] + ["SMB::FILE_DELETE","\\\\admin-pc\\ADMIN$","PSEXESVC.exe"] + +This does not give us any more context but it shows the sorts of data in the +:file:`smb_files.log`. + +:file:`extract_files/`, :file:`files.log`, and :file:`pe.log`, and VirusTotal +----------------------------------------------------------------------------- + +As we did in a previous case, we can look into the files that Zeek and BZAR +captured for this activity. + +The :file:`extract_files/` directory contains one executable file:: + + extract_files/C6HQVsDf8VCu0XTJe_FtIFnm3ZqI1s96P74l__admin-pc_ADMIN$PSEXESVC.exe: PE32 executable (console) Intel 80386, for MS Windows + +Zeek’s :file:`files.log` says the following about it: + +.. literal-emph:: + + { + "ts": 1507565599.578328, + "fuid": "FtIFnm3ZqI1s96P74l", + "uid": "C6HQVsDf8VCu0XTJe", + "id.orig_h": "192.168.10.31", + "id.orig_p": 49239, + "id.resp_h": "192.168.10.30", + "id.resp_p": 445, + "source": "SMB", + "depth": 0, + "analyzers": [ + "MD5", + "SHA1", + "PE", + "EXTRACT", + "SHA256" + ], + "mime_type": "application/x-dosexec", + **"filename": "PSEXESVC.exe",** + "duration": 0.0006651878356933594, + "is_orig": true, + "seen_bytes": 145568, + "missing_bytes": 0, + "overflow_bytes": 0, + "timedout": false, + "md5": "75b55bb34dac9d02740b9ad6b6820360", + "sha1": "a17c21b909c56d93d978014e63fb06926eaea8e7", + "sha256": "141b2190f51397dbd0dfde0e3904b264c91b6f81febc823ff0c33da980b69944", + "extracted": "C6HQVsDf8VCu0XTJe_FtIFnm3ZqI1s96P74l__admin-pc_ADMIN$PSEXESVC.exe", + "extracted_cutoff": false + } + +Zeek’s :file:`pe.log` says the following: + +.. literal-emph:: + + { + "ts": 1507565599.578328, + "id": "FtIFnm3ZqI1s96P74l", + "machine": "I386", + **"compile_ts": 1467139314,** + "os": "Windows XP", + "subsystem": "WINDOWS_CUI", + "is_exe": true, + "is_64bit": false, + "uses_aslr": true, + "uses_dep": true, + "uses_code_integrity": false, + "uses_seh": true, + "has_import_table": true, + "has_export_table": false, + "has_cert_table": true, + "has_debug_data": false, + "section_names": [ + ".text", + ".rdata", + ".data", + ".rsrc", + ".reloc" + ] + } + +The compile time translates to human readable format as this: + +.. code-block:: console + + $ date -d @1467139314 + +:: + + Tue Jun 28 18:41:54 UTC 2016 + +We can also check VirusTotal using the MD5 hash: + +.. code-block:: console + + $ vt file "75b55bb34dac9d02740b9ad6b6820360" + +.. literal-emph:: + + - _id: "141b2190f51397dbd0dfde0e3904b264c91b6f81febc823ff0c33da980b69944" + _type: "file" + authentihash: "62287971b29db5858ceaf92e9db310862e9082608f9dd3ac7f5ed3f71c7cfc38" + **creation_date: 1467139314 # 2016-06-28 18:41:54 +0000 UTC** + **first_seen_itw_date: 1463443155 # 2016-05-16 23:59:15 +0000 UTC** + **first_submission_date: 1467293310 # 2016-06-30 13:28:30 +0000 UTC** + **last_analysis_date: 1606108041 # 2020-11-23 05:07:21 +0000 UTC** + last_analysis_results: + ALYac: + category: "undetected" + engine_name: "ALYac" + engine_update: "20201123" + engine_version: "1.1.1.5" + method: "blacklist" + ...truncated… + +The various dates for this copy of :program:`PsExecSvc` are interesting. + +I am not sure how to account for a first seen in the wild date that precedes +the creation date. I think it’s interesting that only a few hours before I +worked with this sample, someone else was doing the same thing, but via +uploading the executable! + +After this analysis, all we know is that :program:`PsExecSvc` is being used +successfully against ``192.168.10.31``. Mr. Marx’s paper notes that his +activity involved retrieving a file from the target. We cannot tell that from +these logs. This is an example of using Zeek logs to identify suspicious or +malicious activity, and then pivoting to host-centric data to determine exactly +what is happening. + +:file:`ntlm.log` +---------------- + +One log we have not seen in any of these cases is the :file:`ntlm.log`. This +log captures old-style Windows NT Lan Manager (NTLM) authentication details. +The packet capture :file:`smb-on-windows-10.pcapng` provided by the Wireshark +project produces a :file:`ntlm.log` when Zeek processes it. + +Ref: https://wiki.wireshark.org/SMB2 + +.. literal-emph:: + + { + "ts": 1476605364.033848, + "uid": "CNicnvp8Qdqbqm96a", + "id.orig_h": "192.168.199.133", + "id.orig_p": 49672, + "id.resp_h": "192.168.199.1", + "id.resp_p": 139, + "hostname": "DESKTOP-V1FA0UQ", + "server_nb_computer_name": "SCV", + "server_dns_computer_name": "SCV", + **"success": true** + } + { + "ts": 1476605590.442053, + "uid": "CLVEN87g2bfZgXqP5", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49670, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "user", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ" + } + { + "ts": 1476605590.474118, + "uid": "C74tDzQl0ttE8v813", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49671, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "user", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ" + } + { + "ts": 1476605590.484196, + "uid": "CzLJgJ2nrXGMxvnXze", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49672, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "user", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ" + } + { + "ts": 1476605590.496004, + "uid": "Ct46uQ2dOQuqnp5YPj", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49673, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "user", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ" + } + { + "ts": 1476605609.93236, + "uid": "CQorcF2L5fLEA4EImh", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49674, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "Tim Tester", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ" + } + { + "ts": 1476605761.4297, + "uid": "CBbRT6X875vQPAgJj", + "id.orig_h": "192.168.199.132", + "id.orig_p": 49675, + "id.resp_h": "192.168.199.133", + "id.resp_p": 445, + "username": "Willi Wireshark", + "hostname": "DESKTOP-2AEFM7G", + "domainname": "DESKTOP-2AEFM7G", + "server_nb_computer_name": "DESKTOP-V1FA0UQ", + "server_dns_computer_name": "DESKTOP-V1FA0UQ", + **"success": true** + } + +This pcap produces a lot of Zeek logs, so I wanted to only show these entries. +Analysts would probably take two investigative steps. First, should +``192.168.199.132`` be trying to access these other systems? Second, should the +authentication have succeeded, as denoted by the two “true” results? + +Conclusion +========== + +This has been a large section, but the goal was to present a set of cases and +show how Zeek and BZAR (when available) made sense of them. I recommend reading +Mr. Marx’s paper for more details as well. diff --git a/doc/logs/smtp.rst b/doc/logs/smtp.rst new file mode 100644 index 0000000000..1e190480c0 --- /dev/null +++ b/doc/logs/smtp.rst @@ -0,0 +1,847 @@ +======== +smtp.log +======== + +In the section discussing the :file:`http.log`, we noted that most HTTP traffic +is now encrypted and transmitted as HTTPS. We face a similar situation with +Simple Mail Transfer Protocol (SMTP). For a protocol with “simple” in its name, +modern instantiations of SMTP are surprisingly complex. + +For the purpose of this article, it’s sufficient to recognize that a mail user +agent (MUA) seeking to submit email via SMTP will contact a mail submission +agent (MSA). Modern implementations will use ports 587 or 465 TCP, which is +encrypted using TLS. Unencrypted implementations will use port 25 TCP. + +Because SMTP traffic on ports 587 or 465 TCP is encrypted, we will not see +individual emails when observing traffic using those protocols. This section +will demonstrate how Zeek reports on email traffic using ports 25, 465, and 587 +TCP. + +Remember that to see the meaning of each field in the :file:`smtp.log`, check +:zeek:see:`SMTP::Info`. + +Inspecting SMTP Traffic +======================= + +The following is a capture of an SMTP session retrieved from an online packet +capture database. I have reconstructed the session using :program:`tcpflow` and +edited it to remove material not necessary to make my point. + +.. literal-emph:: + + SMTP server: 220-xc90.websitewelcome.com ESMTP Exim 4.69 #1 Mon, 05 Oct 2009 01:05:54 -0500 + 220-We do not authorize the use of this system to transport unsolicited, + 220 and/or bulk e-mail. + + SMTP client: **EHLO GP** + + SMTP server: 250-xc90.websitewelcome.com Hello GP [122.162.143.157] + 250-SIZE 52428800 + 250-PIPELINING + 250-AUTH PLAIN LOGIN + 250-STARTTLS + 250 HELP + + SMTP client: **AUTH LOGIN** + + SMTP server: 334 VXNlcm5hbWU6 + + SMTP client: **Z3VycGFydGFwQHBhdHJpb3RzLmlu** + + SMTP server: 334 UGFzc3dvcmQ6 + + SMTP client: **cHVuamFiQDEyMw==** + + SMTP server: 235 Authentication succeeded + + SMTP client: **MAIL FROM: ** + + SMTP server: 250 OK + + SMTP client: **RCPT TO: ** + + SMTP server: 250 Accepted + + SMTP client: **DATA** + + SMTP server: 354 Enter message, ending with "." on a line by itself + + SMTP client: **From: "Gurpartap Singh" ** + **To: ** + **Subject: SMTP** + **Date: Mon, 5 Oct 2009 11:36:07 +0530** + **Message-ID: <000301ca4581$ef9e57f0$cedb07d0$@in>** + **MIME-Version: 1.0** + **Content-Type: multipart/mixed;** + **.boundary="----=_NextPart_000_0004_01CA45B0.095693F0"** + **X-Mailer: Microsoft Office Outlook 12.0** + **Thread-Index: AcpFgem9BvjjZEDeR1Kh8i+hUyVo0A==** + **Content-Language: en-us** + **x-cr-hashedpuzzle: SeA= AAR2 ADaH BpiO C4G1 D1gW FNB1 FPkR Fn+W HFCP HnYJ JO7s Kum6 KytW LFcI LjUt;1;cgBhAGoAXwBkAGUAbwBsADIAMAAwADIAaQBuAEAAeQBhAGgAbwBvAC4AYwBvAC4AaQBuAA==;Sosha1_v1;7;{CAA37F59-1850-45C7-8540-AA27696B5398};ZwB1AHIAcABhAHIAdABhAHAAQABwAGEAdAByAGkAbwB0AHMALgBpAG4A;Mon, 05 Oct 2009 06:06:01 GMT;UwBNAFQAUAA=** + **x-cr-puzzleid: {CAA37F59-1850-45C7-8540-AA27696B5398}** + + **This is a multipart message in MIME format.** + + **------=_NextPart_000_0004_01CA45B0.095693F0** + **Content-Type: multipart/alternative;** + **.boundary="----=_NextPart_001_0005_01CA45B0.095693F0"** + + + **------=_NextPart_001_0005_01CA45B0.095693F0** + **Content-Type: text/plain;** + **.charset="us-ascii"** + **Content-Transfer-Encoding: 7bit** + + **Hello** + + + + **I send u smtp pcap file** + + **Find the attachment** + + + + **GPS** + + + **------=_NextPart_001_0005_01CA45B0.095693F0** + **Content-Type: text/html;** + **.charset="us-ascii"** + **Content-Transfer-Encoding: quoted-printable** + + **** + + **** + **** + **** + **

    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 z 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%0A*uB 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 TbyK41k>pLj0UT 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%0DO+trj8+rxF6(al-vk;!bo~G5 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 literal 0 HcmV?d00001 diff --git a/doc/frameworks/netcontrol-openflow.png b/doc/frameworks/netcontrol-openflow.png new file mode 100644 index 0000000000000000000000000000000000000000..e760c9b074a1caeae9de6db0b6996d84adad77b5 GIT binary patch literal 85749 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