From e1c65f68d1239351fe3da7cc57bfb032cf7fdb82 Mon Sep 17 00:00:00 2001 From: Eric <26614684+MakoWish@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:37:01 -0600 Subject: [PATCH] [Arista NG Firewall] Initial Release (#6347) --- .github/CODEOWNERS | 1 + packages/arista_ngfw/_dev/build/build.yml | 3 + .../arista_ngfw/_dev/build/docs/README.md | 29 + .../_dev/deploy/docker/docker-compose.yml | 12 + .../deploy/docker/sample_logs/admin-login.log | 10 + .../docker/sample_logs/firewall-event.log | 20 + .../docker/sample_logs/http-request.log | 10 + .../docker/sample_logs/http-response.log | 10 + .../docker/sample_logs/interface-stats.log | 20 + .../sample_logs/intrusion-detection.log | 10 + .../docker/sample_logs/session-event.log | 20 + .../docker/sample_logs/system-stats.log | 20 + .../deploy/docker/sample_logs/web-filter.log | 10 + packages/arista_ngfw/changelog.yml | 6 + .../_dev/test/pipeline/test-admin-login.log | 10 + .../test-admin-login.log-expected.json | 575 +++++ .../_dev/test/pipeline/test-common-config.yml | 10 + .../test/pipeline/test-firewall-event.log | 20 + .../test-firewall-event.log-expected.json | 984 ++++++++ .../_dev/test/pipeline/test-http-request.log | 10 + .../test-http-request.log-expected.json | 1220 ++++++++++ .../_dev/test/pipeline/test-http-response.log | 10 + .../test-http-response.log-expected.json | 1322 +++++++++++ .../test/pipeline/test-interface-stats.log | 20 + .../test-interface-stats.log-expected.json | 1064 +++++++++ .../pipeline/test-intrusion-detection.log | 10 + ...test-intrusion-detection.log-expected.json | 869 +++++++ .../_dev/test/pipeline/test-session-event.log | 20 + .../test-session-event.log-expected.json | 2111 +++++++++++++++++ .../_dev/test/pipeline/test-system-stats.log | 20 + .../test-system-stats.log-expected.json | 2084 ++++++++++++++++ .../test-unsupported-mesage-class.log | 1 + ...unsupported-mesage-class.log-expected.json | 5 + .../_dev/test/pipeline/test-web-filter.log | 10 + .../test-web-filter.log-expected.json | 1283 ++++++++++ .../log/_dev/test/system/test-tcp-config.yml | 9 + .../log/_dev/test/system/test-udp-config.yml | 9 + .../data_stream/log/agent/stream/tcp.yml.hbs | 38 + .../data_stream/log/agent/stream/udp.yml.hbs | 41 + .../ingest_pipeline/admin_login.yml | 71 + .../elasticsearch/ingest_pipeline/default.yml | 826 +++++++ .../ingest_pipeline/http_event.yml | 109 + .../ingest_pipeline/interface_stats.yml | 41 + .../ingest_pipeline/intrusion_prevention.yml | 58 + .../ingest_pipeline/system_stats.yml | 122 + .../ingest_pipeline/web_filter.yml | 34 + .../data_stream/log/fields/agent.yml | 207 ++ .../data_stream/log/fields/base-fields.yml | 19 + .../data_stream/log/fields/ecs.yml | 296 +++ .../data_stream/log/fields/fields.yml | 175 ++ .../arista_ngfw/data_stream/log/manifest.yml | 163 ++ .../data_stream/log/sample_event.json | 80 + packages/arista_ngfw/docs/README.md | 351 +++ packages/arista_ngfw/img/arista-logo.svg | 1 + .../img/screenshot_add_integration.png | Bin 0 -> 366473 bytes .../arista_ngfw/img/screenshot_package.png | Bin 0 -> 481283 bytes packages/arista_ngfw/manifest.yml | 31 + 57 files changed, 14520 insertions(+) create mode 100755 packages/arista_ngfw/_dev/build/build.yml create mode 100755 packages/arista_ngfw/_dev/build/docs/README.md create mode 100755 packages/arista_ngfw/_dev/deploy/docker/docker-compose.yml create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/admin-login.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/firewall-event.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-request.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-response.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/interface-stats.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/intrusion-detection.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/session-event.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/system-stats.log create mode 100755 packages/arista_ngfw/_dev/deploy/docker/sample_logs/web-filter.log create mode 100755 packages/arista_ngfw/changelog.yml create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-common-config.yml create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log create mode 100644 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log-expected.json create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/system/test-tcp-config.yml create mode 100755 packages/arista_ngfw/data_stream/log/_dev/test/system/test-udp-config.yml create mode 100755 packages/arista_ngfw/data_stream/log/agent/stream/tcp.yml.hbs create mode 100755 packages/arista_ngfw/data_stream/log/agent/stream/udp.yml.hbs create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/admin_login.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/http_event.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/interface_stats.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/intrusion_prevention.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/system_stats.yml create mode 100755 packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/web_filter.yml create mode 100755 packages/arista_ngfw/data_stream/log/fields/agent.yml create mode 100755 packages/arista_ngfw/data_stream/log/fields/base-fields.yml create mode 100755 packages/arista_ngfw/data_stream/log/fields/ecs.yml create mode 100755 packages/arista_ngfw/data_stream/log/fields/fields.yml create mode 100755 packages/arista_ngfw/data_stream/log/manifest.yml create mode 100755 packages/arista_ngfw/data_stream/log/sample_event.json create mode 100755 packages/arista_ngfw/docs/README.md create mode 100755 packages/arista_ngfw/img/arista-logo.svg create mode 100755 packages/arista_ngfw/img/screenshot_add_integration.png create mode 100755 packages/arista_ngfw/img/screenshot_package.png create mode 100755 packages/arista_ngfw/manifest.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d68b9c78c9b..8e685c413a4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,6 +12,7 @@ /packages/apache @elastic/obs-infraobs-integrations /packages/apache_spark @elastic/obs-infraobs-integrations /packages/apache_tomcat @elastic/obs-infraobs-integrations +/packages/arista_ngfw @elastic/security-external-integrations /packages/atlassian_bitbucket @elastic/security-external-integrations /packages/atlassian_confluence @elastic/security-external-integrations /packages/atlassian_jira @elastic/security-external-integrations diff --git a/packages/arista_ngfw/_dev/build/build.yml b/packages/arista_ngfw/_dev/build/build.yml new file mode 100755 index 00000000000..875463aaf47 --- /dev/null +++ b/packages/arista_ngfw/_dev/build/build.yml @@ -0,0 +1,3 @@ +dependencies: + ecs: + reference: git@8.8 diff --git a/packages/arista_ngfw/_dev/build/docs/README.md b/packages/arista_ngfw/_dev/build/docs/README.md new file mode 100755 index 00000000000..361b286afc5 --- /dev/null +++ b/packages/arista_ngfw/_dev/build/docs/README.md @@ -0,0 +1,29 @@ +# Arista NG Firewall + +This integration is for [Arista NG Firewall](https://edge.arista.com/ng-firewall/) (previously Untangle NG Firewall) event logs and metrics. The package processes syslog messages from Arista NG Firewall devices. + +## Configuration + +Arista NG Firewall supports several syslog output rules that may be configured on the [Events](https://wiki.edge.arista.com/index.php/Events) tab in the firewall's configuration. + +## Supported Event types: + +* Admin Login Event +* Firewall Event +* HTTP Request Event +* HTTP Response Event +* Interface Stat Event +* Intrusion Prevention Log Event +* Session Event +* System Stat Event +* Web Filter Event + +## Logs + +### Arista NG Firewall + +The `log` dataset collects the Arista NG Firewall logs. + +{{event "log"}} + +{{fields "log"}} diff --git a/packages/arista_ngfw/_dev/deploy/docker/docker-compose.yml b/packages/arista_ngfw/_dev/deploy/docker/docker-compose.yml new file mode 100755 index 00000000000..4c515b66b1d --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/docker-compose.yml @@ -0,0 +1,12 @@ +version: "2.3" +services: + arista-ngfw-tcp: + image: docker.elastic.co/observability/stream:v0.6.2 + volumes: + - ./sample_logs:/sample_logs:ro + command: log --start-signal=SIGHUP --delay=5s --addr elastic-agent:9514 -p=tcp /sample_logs/*.log + arista-ngfw-udp: + image: docker.elastic.co/observability/stream:v0.6.2 + volumes: + - ./sample_logs:/sample_logs:ro + command: log --start-signal=SIGHUP --delay=5s --addr elastic-agent:9514 -p=udp /sample_logs/*.log diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/admin-login.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/admin-login.log new file mode 100755 index 00000000000..372e517b6ed --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/admin-login.log @@ -0,0 +1,10 @@ +<174>May 24 13:09:53 INFO uvm[0]: {"timeStamp":"2023-05-24 13:09:53.477","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 23 10:06:57 INFO uvm[0]: {"timeStamp":"2023-05-23 10:06:57.518","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 23 13:35:42 INFO uvm[0]: {"timeStamp":"2023-05-23 13:35:42.611","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 22 13:47:59 INFO uvm[0]: {"timeStamp":"2023-05-22 13:47:59.495","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 21 09:58:40 INFO uvm[0]: {"timeStamp":"2023-05-21 09:58:40.25","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 20 08:12:47 INFO uvm[0]: {"timeStamp":"2023-05-20 08:12:47.018","reason":"U","login":"admin","clientAddress":"10.0.1.5","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":false} +<174>May 18 15:08:14 INFO uvm[0]: {"timeStamp":"2023-05-18 15:08:14.224","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 18 06:58:38 INFO uvm[0]: {"timeStamp":"2023-05-18 06:58:38.36","login":"admin","clientAddress":"10.0.1.144","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 17 15:04:03 INFO uvm[0]: {"timeStamp":"2023-05-17 15:04:03.772","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 12 09:09:40 INFO uvm[0]: {"timeStamp":"2023-05-12 09:09:40.787","login":"admin","clientAddress":"10.0.0.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/firewall-event.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/firewall-event.log new file mode 100755 index 00000000000..3bfcdf52e23 --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/firewall-event.log @@ -0,0 +1,20 @@ +<174>May 22 16:32:28 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:28.771","flagged":false,"blocked":false,"sessionId":110221865377229,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:28 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:28.194","flagged":false,"blocked":false,"sessionId":110221865377228,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:27 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:27.875","flagged":false,"blocked":false,"sessionId":110221865377227,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:26 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:26.743","flagged":false,"blocked":false,"sessionId":110221865377226,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:26 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:26.686","flagged":false,"blocked":false,"sessionId":110221865377225,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:25 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:25.504","flagged":false,"blocked":false,"sessionId":110221865377221,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:15 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:15.43","flagged":false,"blocked":false,"sessionId":110221865772671,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:14 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:14.164","flagged":false,"blocked":false,"sessionId":110221865772670,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:12 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:12.916","flagged":false,"blocked":false,"sessionId":110221865772669,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.806","flagged":false,"blocked":false,"sessionId":110221865772668,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.718","flagged":false,"blocked":false,"sessionId":110221865772667,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.699","flagged":false,"blocked":false,"sessionId":110221865772666,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.348","flagged":false,"blocked":false,"sessionId":110221865772664,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.214","flagged":false,"blocked":false,"sessionId":110221865772663,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.123","flagged":false,"blocked":false,"sessionId":110221865772662,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:10 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:10.907","flagged":false,"blocked":false,"sessionId":110221865772661,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:10 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:10.382","flagged":false,"blocked":false,"sessionId":110221865772657,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.861","flagged":false,"blocked":false,"sessionId":110221865772656,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.807","flagged":false,"blocked":false,"sessionId":110221865772655,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.738","flagged":false,"blocked":false,"sessionId":110221865772654,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-request.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-request.log new file mode 100755 index 00000000000..67c10652562 --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-request.log @@ -0,0 +1,10 @@ +<174>May 25 09:07:44 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:44.093","method":"GET","requestId":110221859354811,"domain":"amer.ng.msg.teams.microsoft.com","host":"amer.ng.msg.teams.microsoft.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":443,"protocolName":"TCP","serverLatitude":37.3388,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866487132,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":59560,"timeStamp":"2023-05-25 09:07:44.062","serverLongitude":-121.8914,"clientIntf":2,"policyId":1,"SClientPort":13485,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","username":"johndoe","tagsString":""}} +<174>May 25 09:07:34 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:34.395","method":"GET","requestId":110221859354809,"domain":"mozilla.cloudflare-dns.com","host":"mozilla.cloudflare-dns.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"81.2.69.142","remoteAddr":"81.2.69.142","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866487106,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":16040,"timeStamp":"2023-05-25 09:07:34.386","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":15128,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.142","tagsString":""}} +<174>May 25 09:07:33 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:33.314","method":"GET","requestId":110221859354806,"domain":"sb.scorecardresearch.com","host":"sb.scorecardresearch.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487103,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":51598,"timeStamp":"2023-05-25 09:07:33.273","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":45333,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:30 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:30.333","method":"GET","requestId":110221859354805,"domain":"www.gstatic.com","host":"www.gstatic.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487093,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":50548,"timeStamp":"2023-05-25 09:07:30.316","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":39662,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:30 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:30.118","method":"GET","requestId":110221859354804,"domain":"inapps.appsflyer.com","host":"inapps.appsflyer.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487086,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":36398,"timeStamp":"2023-05-25 09:07:30.072","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":40425,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:29 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:29.775","method":"GET","requestId":110221859354791,"domain":"data.pendo.io","host":"data.pendo.io","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487071,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":40596,"timeStamp":"2023-05-25 09:07:29.763","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":32984,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:28 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:28.758","method":"GET","requestId":110221859354783,"domain":"telemetry.elastic.co","host":"telemetry.elastic.co","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Elastic","CServerPort":443,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.200.15","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.200.15","serverCountry":"US","sessionId":110221866487052,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":52762,"timeStamp":"2023-05-25 09:07:28.754","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":30035,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:28 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:28.187","method":"GET","requestId":110221859354760,"domain":"wn0.rumble.com","host":"wn0.rumble.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"XU","sessionId":110221866487028,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":57482,"timeStamp":"2023-05-25 09:07:28.157","clientIntf":2,"policyId":1,"SClientPort":13556,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:27 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:27.517","method":"GET","requestId":110221859354759,"domain":"play-fe.googleapis.com","host":"play-fe.googleapis.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487026,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":60308,"timeStamp":"2023-05-25 09:07:27.498","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":21706,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:27 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:27.295","method":"GET","requestId":110221859354758,"domain":"api.accuweather.com","host":"api.accuweather.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487024,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":48988,"timeStamp":"2023-05-25 09:07:27.284","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":48278,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-response.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-response.log new file mode 100755 index 00000000000..50559e95532 --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/http-response.log @@ -0,0 +1,10 @@ +<174>May 25 13:59:11 INFO uvm[0]: {"timeStamp":"2023-05-25 13:59:11.622","contentLength":8,"requestLine":"GET http://detectportal.firefox.com/success.txt?ipv4","contentType":"text/plain","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:59:11.613","method":"GET","requestId":110221859378971,"domain":"detectportal.firefox.com","host":"detectportal.firefox.com","contentLength":0,"requestUri":"/success.txt?ipv4","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.200.25","SServerAddr":"67.43.156.91","remoteAddr":"67.43.156.91","serverIntf":1,"CClientAddr":"192.168.200.25","serverCountry":"US","sessionId":110221866602155,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":41968,"timeStamp":"2023-05-25 13:55:24.843","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":47164,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.91","tagsString":""}}} +<174>May 25 13:28:56 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:56.752","contentLength":0,"requestLine":"GET http://ocsp.entrust.net/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:56.741","method":"GET","requestId":110221859376527,"domain":"ocsp.entrust.net","host":"ocsp.entrust.net","contentLength":0,"requestUri":"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.17","remoteAddr":"67.43.156.17","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866590454,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":62349,"timeStamp":"2023-05-25 13:28:56.735","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":15108,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.17","username":"eric","tagsString":""}}} +<174>May 25 13:28:56 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:56.693","contentLength":0,"requestLine":"GET http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da","contentType":"application/vnd.ms-cab-compressed","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:56.684","method":"GET","requestId":110221859376526,"domain":"ctldl.windowsupdate.com","host":"ctldl.windowsupdate.com","contentLength":0,"requestUri":"/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.52","remoteAddr":"67.43.156.52","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866590452,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":62348,"timeStamp":"2023-05-25 13:28:56.656","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":19844,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.52","username":"eric","tagsString":""}}} +<174>May 25 13:28:17 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:17.055","contentLength":1736,"requestLine":"POST http://dmd.metaservices.microsoft.com/metadata.svc","contentType":"text/xml","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:17.019","method":"POST","requestId":110221859376508,"domain":"dmd.metaservices.microsoft.com","host":"dmd.metaservices.microsoft.com","contentLength":1270,"requestUri":"/metadata.svc","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.3388,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.7","remoteAddr":"67.43.156.7","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866589634,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19486,"timeStamp":"2023-05-25 13:28:11.523","serverLongitude":-121.8914,"clientIntf":2,"policyId":1,"SClientPort":31487,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.7","tagsString":""}}} +<174>May 25 13:28:17 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:17.015","contentLength":0,"requestLine":"POST http://go.microsoft.com/fwlink/?LinkID=252669&clcid=0x409","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:17.007","method":"POST","requestId":110221859376507,"domain":"go.microsoft.com","host":"go.microsoft.com","contentLength":1270,"requestUri":"/fwlink/?LinkID=252669&clcid=0x409","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.101","remoteAddr":"67.43.156.101","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866589745,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19498,"timeStamp":"2023-05-25 13:28:17.002","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":48711,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.101","tagsString":""}}} +<174>May 25 13:20:58 INFO uvm[0]: {"timeStamp":"2023-05-25 13:20:58.327","contentLength":0,"requestLine":"GET http://connectivitycheck.gstatic.com/generate_204","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:20:58.316","method":"GET","requestId":110221859376191,"domain":"connectivitycheck.gstatic.com","host":"connectivitycheck.gstatic.com","contentLength":0,"requestUri":"/generate_204","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.56","remoteAddr":"67.43.156.56","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866586859,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":44148,"timeStamp":"2023-05-25 13:20:57.995","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":31260,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.56","tagsString":""}}} +<174>May 25 13:18:39 INFO uvm[0]: {"timeStamp":"2023-05-25 13:18:39.717","contentLength":471,"requestLine":"POST http://ocsp.digicert.com/","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:18:39.707","method":"POST","requestId":110221859376170,"domain":"ocsp.digicert.com","host":"ocsp.digicert.com","contentLength":83,"requestUri":"/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.35","remoteAddr":"67.43.156.35","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866586366,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19427,"timeStamp":"2023-05-25 13:18:39.704","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":43090,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.35","tagsString":""}}} +<174>May 25 12:20:36 INFO uvm[0]: {"timeStamp":"2023-05-25 12:20:36.57","contentLength":1048576,"contentFilename":"microsoft.bingweather_4.53.51361.0_neutral_~_8wekyb3d8bbwe.appxbundle","requestLine":"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131&P2=404&P3=2&P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d","contentType":"application/octet-stream","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 12:20:36.509","method":"GET","requestId":110221859374271,"domain":"2.tlu.dl.delivery.mp.microsoft.com","host":"2.tlu.dl.delivery.mp.microsoft.com","contentLength":0,"requestUri":"/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131&P2=404&P3=2&P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.172","remoteAddr":"67.43.156.172","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866571317,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":54631,"timeStamp":"2023-05-25 12:20:36.113","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":49992,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.172","username":"eric","tagsString":""}}} +<174>May 25 12:20:35 INFO uvm[0]: {"timeStamp":"2023-05-25 12:20:35.953","contentLength":1048576,"contentFilename":"microsoft.microsoftofficehub_18.2304.1202.0_neutral_~_8wekyb3d8bbwe.appxbundle","requestLine":"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689&P2=404&P3=2&P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d","contentType":"application/octet-stream","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 12:20:35.738","method":"GET","requestId":110221859374261,"domain":"2.tlu.dl.delivery.mp.microsoft.com","host":"2.tlu.dl.delivery.mp.microsoft.com","contentLength":0,"requestUri":"/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689&P2=404&P3=2&P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.173","remoteAddr":"67.43.156.173","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866571313,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":54628,"timeStamp":"2023-05-25 12:20:35.702","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":26442,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.173","username":"eric","tagsString":""}}} +<174>May 25 09:28:51 INFO uvm[0]: {"timeStamp":"2023-05-25 09:28:51.57","contentLength":1551,"requestLine":"GET http://ocsp.verisign.com/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 09:28:51.333","method":"GET","requestId":110221859359026,"domain":"ocsp.verisign.com","host":"ocsp.verisign.com","contentLength":0,"requestUri":"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.128","remoteAddr":"67.43.156.128","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866498840,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":17824,"timeStamp":"2023-05-25 09:28:51.329","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":10848,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.128","tagsString":""}}} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/interface-stats.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/interface-stats.log new file mode 100755 index 00000000000..ebe7c80c25f --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/interface-stats.log @@ -0,0 +1,20 @@ +<174>May 23 12:01:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:27.41","rxBytes":159622,"txBytes":423935,"txRate":42389.261073892616,"interfaceId":1,"rxRate":15960.60393960604,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:27.41","rxBytes":667791,"txBytes":450851,"txRate":45080.59194080592,"interfaceId":2,"rxRate":66772.42275772423,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:17.41","rxBytes":136902,"txBytes":399149,"txRate":39918.89188918892,"interfaceId":1,"rxRate":13691.569156915692,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:17.41","rxBytes":650327,"txBytes":438330,"txRate":43837.383738373836,"interfaceId":2,"rxRate":65039.203920392036,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:07.411","rxBytes":180740,"txBytes":426706,"txRate":42670.6,"interfaceId":1,"rxRate":18074,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:07.411","rxBytes":682539,"txBytes":506359,"txRate":50635.9,"interfaceId":2,"rxRate":68253.9,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:57 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:57.41","rxBytes":195720,"txBytes":493180,"txRate":49318,"interfaceId":1,"rxRate":19572,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:57 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:57.41","rxBytes":728322,"txBytes":466260,"txRate":46626,"interfaceId":2,"rxRate":72832.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:47 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:47.41","rxBytes":165362,"txBytes":435029,"txRate":43502.9,"interfaceId":1,"rxRate":16536.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:47 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:47.41","rxBytes":672056,"txBytes":437547,"txRate":43754.7,"interfaceId":2,"rxRate":67205.6,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:37 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:37.41","rxBytes":186602,"txBytes":432016,"txRate":43201.6,"interfaceId":1,"rxRate":18660.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:37 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:37.41","rxBytes":726961,"txBytes":531437,"txRate":53143.7,"interfaceId":2,"rxRate":72696.1,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:27.41","rxBytes":158720,"txBytes":427071,"txRate":42707.1,"interfaceId":1,"rxRate":15872,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:27.41","rxBytes":715354,"txBytes":474231,"txRate":47423.1,"interfaceId":2,"rxRate":71535.4,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:17.411","rxBytes":162030,"txBytes":405801,"txRate":40580.1,"interfaceId":1,"rxRate":16203,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:17.411","rxBytes":638682,"txBytes":424345,"txRate":42434.5,"interfaceId":2,"rxRate":63868.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:07.41","rxBytes":190799,"txBytes":459103,"txRate":45910.3,"interfaceId":1,"rxRate":19079.9,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:07.41","rxBytes":701037,"txBytes":456315,"txRate":45631.5,"interfaceId":2,"rxRate":70103.7,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 11:59:57 INFO uvm[0]: {"timeStamp":"2023-05-23 11:59:57.41","rxBytes":127092,"txBytes":396485,"txRate":39648.5,"interfaceId":1,"rxRate":12709.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 11:59:57 INFO uvm[0]: {"timeStamp":"2023-05-23 11:59:57.41","rxBytes":631382,"txBytes":378006,"txRate":37800.6,"interfaceId":2,"rxRate":63138.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/intrusion-detection.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/intrusion-detection.log new file mode 100755 index 00000000000..2cb222c4642 --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/intrusion-detection.log @@ -0,0 +1,10 @@ +<174>May 23 15:55:44 INFO uvm[0]: {"msg":"ET CINS Active Threat Intelligence Poor Reputation IP group 35","ipDestination":"1.128.0.72","ipSource":"216.160.83.56","classtype":"misc-attack","signatureId":2403334,"sportItype":60000,"timeStamp":"2023-05-23 15:55:44.77","generatorId":1,"protocol":"ip","blocked":true,"category":"ciarmy","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":7122,"timestamp":1682460288061} +<174>May 23 15:55:44 INFO uvm[0]: {"msg":"ET SCAN NMAP -sS window 1024","ipDestination":"1.128.0.72","ipSource":"81.2.69.142","classtype":"attempted-recon","signatureId":2009582,"sportItype":58524,"timeStamp":"2023-05-23 15:55:44.769","generatorId":1,"protocol":"tcp","blocked":true,"category":"scan","ruleId":"2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":29884,"timestamp":1682459871616} +<174>May 23 15:55:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.116","classtype":"misc-attack","signatureId":2402000,"sportItype":49454,"timeStamp":"2023-05-23 15:55:14.729","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":5916,"timestamp":1682460118153} +<174>May 23 15:55:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.115","classtype":"misc-attack","signatureId":2402000,"sportItype":36152,"timeStamp":"2023-05-23 15:55:14.729","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":40855,"timestamp":1682460229999} +<174>May 23 15:54:44 INFO uvm[0]: {"msg":"ET SCAN NMAP -sS window 1024","ipDestination":"1.128.0.72","ipSource":"89.160.20.154","classtype":"attempted-recon","signatureId":2009582,"sportItype":58417,"timeStamp":"2023-05-23 15:54:44.691","generatorId":1,"protocol":"tcp","blocked":true,"category":"scan","ruleId":"2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":27596,"timestamp":1682460151501} +<174>May 23 15:54:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.154","classtype":"misc-attack","signatureId":2402000,"sportItype":51637,"timeStamp":"2023-05-23 15:54:14.651","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":111,"timestamp":1682460505628} +<174>May 23 15:54:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2402000,"sportItype":52549,"timeStamp":"2023-05-23 15:54:14.65","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":9443,"timestamp":1682460389092} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2402000,"sportItype":35612,"timeStamp":"2023-05-23 15:53:44.612","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":30106,"timestamp":1682460533195} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET CINS Active Threat Intelligence Poor Reputation IP group 83","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2403382,"sportItype":21442,"timeStamp":"2023-05-23 15:53:44.612","generatorId":1,"protocol":"ip","blocked":true,"category":"ciarmy","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":10001,"timestamp":1682460428327} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"175.16.199.172","classtype":"misc-attack","signatureId":2402000,"sportItype":43132,"timeStamp":"2023-05-23 15:53:44.611","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":12300,"timestamp":1682460344918} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/session-event.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/session-event.log new file mode 100755 index 00000000000..f0617ff3338 --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/session-event.log @@ -0,0 +1,20 @@ +<174>May 19 11:52:37 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"Host1","CServerPort":9930,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.21","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"216.160.83.56","remoteAddr":"216.160.83.56","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221863965041,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":59881,"timeStamp":"2023-05-19 11:52:37.962","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":59881,"bypassed":false,"SServerPort":9930,"CServerAddr":"216.160.83.56","tagsString":""} +<174>May 19 11:52:36 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":443,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.6","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"81.2.69.207","remoteAddr":"81.2.69.207","serverIntf":1,"CClientAddr":"10.0.0.6","serverCountry":"US","sessionId":110221863965040,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":45028,"timeStamp":"2023-05-19 11:52:36.589","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":45028,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.207","tagsString":""} +<174>May 19 11:52:35 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"LAPTOP1","CServerPort":443,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.17","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.121","remoteAddr":"67.43.156.121","serverIntf":1,"CClientAddr":"10.0.0.17","serverCountry":"US","sessionId":110221863965038,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":63136,"timeStamp":"2023-05-19 11:52:35.486","serverLongitude":-91.0329,"clientIntf":2,"policyId":1,"SClientPort":63136,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.121","username":"john","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374876,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":33646,"timeStamp":"2023-05-22 16:25:58.947","clientIntf":2,"policyId":1,"SClientPort":33646,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"iPhone","CServerPort":443,"protocolName":"UDP","serverLatitude":37.751,"localAddr":"10.0.0.10","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"81.2.69.192","remoteAddr":"81.2.69.192","serverIntf":1,"CClientAddr":"10.0.0.10","serverCountry":"US","sessionId":110221865374875,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":58377,"timeStamp":"2023-05-22 16:25:58.908","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":58377,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.192","username":"jane","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374869,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":44558,"timeStamp":"2023-05-22 16:25:58.889","clientIntf":2,"policyId":1,"SClientPort":12495,"bypassed":false,"SServerPort":443,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374868,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":33586,"timeStamp":"2023-05-22 16:25:58.888","clientIntf":2,"policyId":1,"SClientPort":30896,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 23 15:11:14 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771938,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36050,"timeStamp":"2023-05-23 15:11:14.323","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36050,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:13 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771937,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36048,"timeStamp":"2023-05-23 15:11:13.104","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":34178,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:12 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":9930,"protocolName":"UDP","serverLatitude":39.0481,"localAddr":"10.0.0.0","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"175.16.199.25","remoteAddr":"175.16.199.25","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221865771936,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":37004,"timeStamp":"2023-05-23 15:11:12.179","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":37004,"bypassed":false,"SServerPort":9930,"CServerAddr":"175.16.199.25","tagsString":""} +<174>May 23 15:11:11 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771935,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36038,"timeStamp":"2023-05-23 15:11:11.892","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36038,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:10 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771933,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36026,"timeStamp":"2023-05-23 15:11:10.669","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36026,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:09 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771929,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36330,"timeStamp":"2023-05-23 15:11:09.425","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36330,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:08 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771928,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36322,"timeStamp":"2023-05-23 15:11:08.187","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36322,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:06 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771927,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36308,"timeStamp":"2023-05-23 15:11:06.92","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":46905,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:05 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771926,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36296,"timeStamp":"2023-05-23 15:11:05.679","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":29004,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:05 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":9930,"protocolName":"UDP","serverLatitude":39.0481,"localAddr":"10.0.0.0","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"175.16.199.25","remoteAddr":"175.16.199.25","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221865771922,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":59969,"timeStamp":"2023-05-23 15:11:05.128","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":59969,"bypassed":false,"SServerPort":9930,"CServerAddr":"175.16.199.25","tagsString":""} +<174>May 23 15:11:04 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771920,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36286,"timeStamp":"2023-05-23 15:11:04.435","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":41723,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:04 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865771919,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":54494,"timeStamp":"2023-05-23 15:11:04.104","clientIntf":2,"policyId":1,"SClientPort":54494,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 23 15:11:03 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771918,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36274,"timeStamp":"2023-05-23 15:11:03.201","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36274,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/system-stats.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/system-stats.log new file mode 100755 index 00000000000..4f84f610f9d --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/system-stats.log @@ -0,0 +1,20 @@ +<174>May 22 16:35:47 INFO uvm[0]: {"diskFreePercent":0.7586661,"cpuSystem":0.0017623364,"diskUsedPercent":0.24133387,"diskTotal":30109741056,"diskFree":22843240448,"cpuUser":0.25352466,"memUsedPercent":0.3411992,"diskUsed":7266500608,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717704192,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.99,"memBuffers":0,"activeHosts":18,"load1":0.96,"timeStamp":"2023-05-22 16:35:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407524864,"memFreePercent":0.6588008,"memCache":160874496} +<174>May 22 16:34:47 INFO uvm[0]: {"diskFreePercent":0.75867105,"cpuSystem":0.0012578616,"diskUsedPercent":0.24132898,"diskTotal":30109741056,"diskFree":22843387904,"cpuUser":0.25383648,"memUsedPercent":0.3418982,"diskUsed":7266353152,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2714820608,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:34:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1410408448,"memFreePercent":0.6581018,"memCache":160874496} +<174>May 22 16:33:47 INFO uvm[0]: {"diskFreePercent":0.75867766,"cpuSystem":0.0017596782,"diskUsedPercent":0.24132231,"diskTotal":30109741056,"diskFree":22843588608,"cpuUser":0.25364506,"memUsedPercent":0.34161127,"diskUsed":7266152448,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2716004352,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:33:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1409224704,"memFreePercent":0.65838873,"memCache":160874496} +<174>May 22 16:32:47 INFO uvm[0]: {"diskFreePercent":0.7586854,"cpuSystem":0.001759236,"diskUsedPercent":0.24131456,"diskTotal":30109741056,"diskFree":22843822080,"cpuUser":0.25307867,"memUsedPercent":0.34237581,"diskUsed":7265918976,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2712850432,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:32:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1412378624,"memFreePercent":0.6576242,"memCache":160874496} +<174>May 22 16:31:47 INFO uvm[0]: {"diskFreePercent":0.75869167,"cpuSystem":0.0017605633,"diskUsedPercent":0.2413083,"diskTotal":30109741056,"diskFree":22844010496,"cpuUser":0.25251508,"memUsedPercent":0.34223184,"diskUsed":7265730560,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2713444352,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:31:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1411784704,"memFreePercent":0.6577682,"memCache":160874496} +<174>May 22 16:30:47 INFO uvm[0]: {"diskFreePercent":0.75869834,"cpuSystem":0.0015064022,"diskUsedPercent":0.24130164,"diskTotal":30109741056,"diskFree":22844211200,"cpuUser":0.25282452,"memUsedPercent":0.34295666,"diskUsed":7265529856,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2710454272,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:30:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1414774784,"memFreePercent":0.65704334,"memCache":160874496} +<174>May 22 16:29:47 INFO uvm[0]: {"diskFreePercent":0.7587046,"cpuSystem":0.0012578616,"diskUsedPercent":0.24129538,"diskTotal":30109741056,"diskFree":22844399616,"cpuUser":0.25308177,"memUsedPercent":0.34260815,"diskUsed":7265341440,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2711891968,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:29:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1413337088,"memFreePercent":0.65739185,"memCache":160874496} +<174>May 22 16:28:47 INFO uvm[0]: {"diskFreePercent":0.75871116,"cpuSystem":0.0012559658,"diskUsedPercent":0.24128886,"diskTotal":30109741056,"diskFree":22844596224,"cpuUser":0.2534539,"memUsedPercent":0.3425863,"diskUsed":7265144832,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2711982080,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:28:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1413246976,"memFreePercent":0.6574137,"memCache":160874496} +<174>May 22 16:27:47 INFO uvm[0]: {"diskFreePercent":0.7587205,"cpuSystem":0.0010062893,"diskUsedPercent":0.24127947,"diskTotal":30109741056,"diskFree":22844878848,"cpuUser":0.25257862,"memUsedPercent":0.34490177,"diskUsed":7264862208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2702430208,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.03,"memBuffers":0,"activeHosts":18,"load1":1.02,"timeStamp":"2023-05-22 16:27:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1422798848,"memFreePercent":0.6550982,"memCache":160874496} +<174>May 22 16:26:47 INFO uvm[0]: {"diskFreePercent":0.7587325,"cpuSystem":0.001507159,"diskUsedPercent":0.24126749,"diskTotal":30109741056,"diskFree":22845239296,"cpuUser":0.25872895,"memUsedPercent":0.34609327,"diskUsed":7264501760,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2697515008,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.04,"memBuffers":0,"activeHosts":18,"load1":1.06,"timeStamp":"2023-05-22 16:26:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1427714048,"memFreePercent":0.6539067,"memCache":160870400} +<174>May 22 16:25:47 INFO uvm[0]: {"diskFreePercent":0.75875455,"cpuSystem":0.002264151,"diskUsedPercent":0.24124545,"diskTotal":30109741056,"diskFree":22845902848,"cpuUser":0.2573585,"memUsedPercent":0.34592348,"diskUsed":7263838208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2698215424,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.03,"memBuffers":0,"activeHosts":18,"load1":1.07,"timeStamp":"2023-05-22 16:25:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1427013632,"memFreePercent":0.6540765,"memCache":160870400} +<174>May 22 16:24:47 INFO uvm[0]: {"diskFreePercent":0.7587838,"cpuSystem":0.0022618747,"diskUsedPercent":0.24121621,"diskTotal":30109741056,"diskFree":22846783488,"cpuUser":0.25559187,"memUsedPercent":0.34654307,"diskUsed":7262957568,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2695659520,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1.02,"timeStamp":"2023-05-22 16:24:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1429569536,"memFreePercent":0.6534569,"memCache":160870400} +<174>May 22 16:23:47 INFO uvm[0]: {"diskFreePercent":0.7588185,"cpuSystem":0.010574019,"diskUsedPercent":0.24118152,"diskTotal":30109741056,"diskFree":22847827968,"cpuUser":0.23690836,"memUsedPercent":0.3186948,"diskUsed":7261913088,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2810540032,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1.05,"timeStamp":"2023-05-22 16:23:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1314689024,"memFreePercent":0.6813052,"memCache":160866304} +<174>May 22 16:22:47 INFO uvm[0]: {"diskFreePercent":0.7588285,"cpuSystem":0.010340479,"diskUsedPercent":0.24117145,"diskTotal":30109741056,"diskFree":22848131072,"cpuUser":0.2406053,"memUsedPercent":0.34309766,"diskUsed":7261609984,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2709872640,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1.14,"timeStamp":"2023-05-22 16:22:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1415356416,"memFreePercent":0.6569024,"memCache":160866304} +<174>May 22 16:21:47 INFO uvm[0]: {"diskFreePercent":0.758837,"cpuSystem":0.009329299,"diskUsedPercent":0.24116302,"diskTotal":30109741056,"diskFree":22848385024,"cpuUser":0.2397882,"memUsedPercent":0.34130543,"diskUsed":7261356032,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717265920,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.99,"memBuffers":0,"activeHosts":18,"load1":0.99,"timeStamp":"2023-05-22 16:21:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407963136,"memFreePercent":0.65869457,"memCache":160866304} +<174>May 22 16:20:47 INFO uvm[0]: {"diskFreePercent":0.75884444,"cpuSystem":0.0017650025,"diskUsedPercent":0.24115553,"diskTotal":30109741056,"diskFree":22848610304,"cpuUser":0.2561775,"memUsedPercent":0.34125578,"diskUsed":7261130752,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717470720,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.98,"memBuffers":0,"activeHosts":18,"load1":0.98,"timeStamp":"2023-05-22 16:20:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407758336,"memFreePercent":0.6587442,"memCache":160866304} +<174>May 22 16:19:47 INFO uvm[0]: {"diskFreePercent":0.75885034,"cpuSystem":0.0010070493,"diskUsedPercent":0.2411497,"diskTotal":30109741056,"diskFree":22848786432,"cpuUser":0.2540282,"memUsedPercent":0.3412399,"diskUsed":7260954624,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717536256,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.97,"memBuffers":0,"activeHosts":18,"load1":0.93,"timeStamp":"2023-05-22 16:19:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407692800,"memFreePercent":0.6587601,"memCache":160866304} +<174>May 22 16:18:47 INFO uvm[0]: {"diskFreePercent":0.7588566,"cpuSystem":0.0015082957,"diskUsedPercent":0.24114344,"diskTotal":30109741056,"diskFree":22848974848,"cpuUser":0.25389645,"memUsedPercent":0.341224,"diskUsed":7260766208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717601792,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.98,"memBuffers":0,"activeHosts":18,"load1":0.92,"timeStamp":"2023-05-22 16:18:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407627264,"memFreePercent":0.658776,"memCache":160866304} +<174>May 22 16:17:47 INFO uvm[0]: {"diskFreePercent":0.7588654,"cpuSystem":0.0012547051,"diskUsedPercent":0.24113458,"diskTotal":30109741056,"diskFree":22849241088,"cpuUser":0.25269762,"memUsedPercent":0.34119326,"diskUsed":7260499968,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717728768,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":0.95,"timeStamp":"2023-05-22 16:17:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407500288,"memFreePercent":0.65880674,"memCache":160866304} +<174>May 23 16:16:47 INFO uvm[0]: {"diskFreePercent":0.7561659,"cpuSystem":0.005280362,"diskUsedPercent":0.24383408,"diskTotal":30109741056,"diskFree":22767960064,"cpuUser":0.24189088,"memUsedPercent":0.34435666,"diskUsed":7341780992,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.02,"swapUsedPercent":0.062222686,"swapFree":2880172032,"memFree":2704678912,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.06,"memBuffers":0,"activeHosts":17,"load1":1.11,"timeStamp":"2023-05-23 15:09:47.41","swapUsed":191102976,"swapFreePercent":0.93777734,"memUsed":1420550144,"memFreePercent":0.65564334,"memCache":159657984} diff --git a/packages/arista_ngfw/_dev/deploy/docker/sample_logs/web-filter.log b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/web-filter.log new file mode 100755 index 00000000000..a4500f1214c --- /dev/null +++ b/packages/arista_ngfw/_dev/deploy/docker/sample_logs/web-filter.log @@ -0,0 +1,10 @@ +<174>May 23 16:34:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://sync.hydra.opendns.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"M31525W10","CServerPort":443,"protocolName":"TCP","serverLatitude":37.3313,"localAddr":"10.0.1.17","SServerAddr":"81.2.69.199","remoteAddr":"81.2.69.199","serverIntf":1,"CClientAddr":"10.0.1.17","serverCountry":"US","sessionId":110221865792041,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":53010,"timeStamp":"2023-05-23 16:34:28.7","serverLongitude":-121.8401,"clientIntf":2,"policyId":1,"SClientPort":28113,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.199","username":"johndoe","tagsString":""},"timeStamp":"2023-05-23 16:34:28.737","flagged":false,"blocked":false,"category":"Computer and Internet Security","ruleId":2,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":2} +<174>May 23 16:34:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792037,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32836,"timeStamp":"2023-05-23 16:34:28.64","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":23625,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:28.682","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 23 16:34:27 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://graph-fallback.instagram.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"iPhone","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.1.10","SServerAddr":"175.16.199.37","remoteAddr":"175.16.199.37","serverIntf":1,"CClientAddr":"10.0.1.10","serverCountry":"US","sessionId":110221865792030,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":51495,"timeStamp":"2023-05-23 16:34:27.742","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":32934,"bypassed":false,"SServerPort":443,"CServerAddr":"175.16.199.37","username":"janedoe","tagsString":""},"timeStamp":"2023-05-23 16:34:27.768","flagged":false,"blocked":false,"category":"Image and Video Search","ruleId":78,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":78} +<174>May 23 16:34:25 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792017,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32808,"timeStamp":"2023-05-23 16:34:25.022","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":38426,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:25.065","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 23 16:34:24 INFO uvm[0]: {"reason":"BLOCK_CATEGORY","appName":"web_filter","requestLine":"GET http://mozilla.cloudflare-dns.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"1.128.0.0","remoteAddr":"1.128.0.0","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792015,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":49260,"timeStamp":"2023-05-23 16:34:24.38","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":10240,"bypassed":false,"SServerPort":443,"CServerAddr":"1.128.0.0","tagsString":""},"timeStamp":"2023-05-23 16:34:24.393","flagged":true,"blocked":true,"category":"Proxy Avoidance and Anonymizers","ruleId":58,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":58} +<174>May 23 16:34:23 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792014,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32794,"timeStamp":"2023-05-23 16:34:23.812","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":16885,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:23.856","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 24 08:27:39 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"POST http://[81.2.69.142:80]/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php","sessionEvent":{"entitled":true,"clientLongitude":9.491,"protocol":6,"hostname":"Proxy","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.55","SServerAddr":"10.0.0.55","remoteAddr":"67.43.156.27","serverIntf":2,"CClientAddr":"67.43.156.27","serverCountry":"XL","sessionId":110221865971300,"SClientAddr":"67.43.156.27","clientLatitude":51.2993,"clientCountry":"DE","policyRuleId":0,"CClientPort":41146,"timeStamp":"2023-05-24 08:27:39.499","clientIntf":1,"policyId":1,"SClientPort":41146,"bypassed":false,"SServerPort":80,"CServerAddr":"81.2.69.142","tagsString":""},"timeStamp":"2023-05-24 08:27:39.666","flagged":false,"blocked":false,"category":"Entertainment and Arts","ruleId":21,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":21} +<174>May 24 07:58:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"POST http://ocsp.digicert.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"175.16.199.20","remoteAddr":"175.16.199.20","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865956519,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":55862,"timeStamp":"2023-05-24 07:58:28.456","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":19642,"bypassed":false,"SServerPort":80,"CServerAddr":"175.16.199.20","tagsString":""},"timeStamp":"2023-05-24 07:58:28.473","flagged":false,"blocked":false,"category":"Computer and Internet Security","ruleId":2,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":2} +<174>May 24 11:41:00 INFO uvm[0]: {"reason":"BLOCK_URL","appName":"web_filter","requestLine":"GET http://ssl.google-analytics.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.1.6","SServerAddr":"67.43.156.22","remoteAddr":"67.43.156.22","serverIntf":1,"CClientAddr":"10.0.1.6","serverCountry":"US","sessionId":110221866049740,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":39554,"timeStamp":"2023-05-24 11:41:00.11","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":21617,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.22","tagsString":""},"timeStamp":"2023-05-24 11:41:00.14","flagged":true,"blocked":true,"ruleId":1662,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 24 11:31:05 INFO uvm[0]: {"reason":"BLOCK_URL","appName":"web_filter","requestLine":"GET http://config.ads.vungle.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"iPhone","CServerPort":443,"protocolName":"TCP","serverLatitude":39.0481,"localAddr":"10.0.1.10","SServerAddr":"67.43.156.0","remoteAddr":"67.43.156.0","serverIntf":1,"CClientAddr":"10.0.1.10","serverCountry":"US","sessionId":110221866046822,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":54996,"timeStamp":"2023-05-24 11:31:05.591","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":22100,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.0","username":"janedoe","tagsString":""},"timeStamp":"2023-05-24 11:31:05.645","flagged":true,"blocked":true,"category":"vungle.com","ruleId":2883,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":52} diff --git a/packages/arista_ngfw/changelog.yml b/packages/arista_ngfw/changelog.yml new file mode 100755 index 00000000000..39035d39499 --- /dev/null +++ b/packages/arista_ngfw/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.0.1" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/6347 diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log new file mode 100755 index 00000000000..372e517b6ed --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log @@ -0,0 +1,10 @@ +<174>May 24 13:09:53 INFO uvm[0]: {"timeStamp":"2023-05-24 13:09:53.477","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 23 10:06:57 INFO uvm[0]: {"timeStamp":"2023-05-23 10:06:57.518","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 23 13:35:42 INFO uvm[0]: {"timeStamp":"2023-05-23 13:35:42.611","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 22 13:47:59 INFO uvm[0]: {"timeStamp":"2023-05-22 13:47:59.495","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 21 09:58:40 INFO uvm[0]: {"timeStamp":"2023-05-21 09:58:40.25","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 20 08:12:47 INFO uvm[0]: {"timeStamp":"2023-05-20 08:12:47.018","reason":"U","login":"admin","clientAddress":"10.0.1.5","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":false} +<174>May 18 15:08:14 INFO uvm[0]: {"timeStamp":"2023-05-18 15:08:14.224","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 18 06:58:38 INFO uvm[0]: {"timeStamp":"2023-05-18 06:58:38.36","login":"admin","clientAddress":"10.0.1.144","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 17 15:04:03 INFO uvm[0]: {"timeStamp":"2023-05-17 15:04:03.772","login":"admin","clientAddress":"10.0.1.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} +<174>May 12 09:09:40 INFO uvm[0]: {"timeStamp":"2023-05-12 09:09:40.787","login":"admin","clientAddress":"10.0.0.21","class":"class com.untangle.uvm.event.AdminLoginEvent","local":false,"succeeded":true} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log-expected.json new file mode 100755 index 00000000000..af569cffce7 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-admin-login.log-expected.json @@ -0,0 +1,575 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-24T13:09:53.477-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 24 13:09:53 INFO uvm[0]: {\"timeStamp\":\"2023-05-24 13:09:53.477\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-23T10:06:57.518-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 10:06:57 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 10:06:57.518\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-23T13:35:42.611-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 13:35:42 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 13:35:42.611\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-22T13:47:59.495-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 22 13:47:59 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 13:47:59.495\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-21T09:58:40.250-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 21 09:58:40 INFO uvm[0]: {\"timeStamp\":\"2023-05-21 09:58:40.25\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-20T08:12:47.018-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 20 08:12:47 INFO uvm[0]: {\"timeStamp\":\"2023-05-20 08:12:47.018\",\"reason\":\"U\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.5\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":false}", + "outcome": "failure", + "provider": "admin_login", + "reason": "U", + "timezone": "America/Denver", + "type": [ + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.5" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.5" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-18T15:08:14.224-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 18 15:08:14 INFO uvm[0]: {\"timeStamp\":\"2023-05-18 15:08:14.224\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-18T06:58:38.360-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 18 06:58:38 INFO uvm[0]: {\"timeStamp\":\"2023-05-18 06:58:38.36\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.144\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.144" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.144" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-17T15:04:03.772-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 17 15:04:03 INFO uvm[0]: {\"timeStamp\":\"2023-05-17 15:04:03.772\",\"login\":\"admin\",\"clientAddress\":\"10.0.1.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.1.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.1.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + }, + { + "@timestamp": "2023-05-12T09:09:40.787-06:00", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "authentication", + "iam" + ], + "kind": "event", + "original": "\u003c174\u003eMay 12 09:09:40 INFO uvm[0]: {\"timeStamp\":\"2023-05-12 09:09:40.787\",\"login\":\"admin\",\"clientAddress\":\"10.0.0.21\",\"class\":\"class com.untangle.uvm.event.AdminLoginEvent\",\"local\":false,\"succeeded\":true}", + "outcome": "success", + "provider": "admin_login", + "timezone": "America/Denver", + "type": [ + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "10.0.0.21" + ], + "user": [ + "admin" + ] + }, + "source": { + "ip": "10.0.0.21" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "admin" + } + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-common-config.yml b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-common-config.yml new file mode 100755 index 00000000000..87fc3bd4ebd --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-common-config.yml @@ -0,0 +1,10 @@ +fields: + tags: + - forwarded + - preserve_original_event + _conf: + tz_offset: America/Denver + interface_id_1_alias: External + interface_id_1_name: eth0 + interface_id_2_alias: Internal + interface_id_2_name: eth1 diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log new file mode 100755 index 00000000000..3bfcdf52e23 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log @@ -0,0 +1,20 @@ +<174>May 22 16:32:28 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:28.771","flagged":false,"blocked":false,"sessionId":110221865377229,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:28 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:28.194","flagged":false,"blocked":false,"sessionId":110221865377228,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:27 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:27.875","flagged":false,"blocked":false,"sessionId":110221865377227,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:26 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:26.743","flagged":false,"blocked":false,"sessionId":110221865377226,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:26 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:26.686","flagged":false,"blocked":false,"sessionId":110221865377225,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 22 16:32:25 INFO uvm[0]: {"timeStamp":"2023-05-22 16:32:25.504","flagged":false,"blocked":false,"sessionId":110221865377221,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:15 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:15.43","flagged":false,"blocked":false,"sessionId":110221865772671,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:14 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:14.164","flagged":false,"blocked":false,"sessionId":110221865772670,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:12 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:12.916","flagged":false,"blocked":false,"sessionId":110221865772669,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.806","flagged":false,"blocked":false,"sessionId":110221865772668,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.718","flagged":false,"blocked":false,"sessionId":110221865772667,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.699","flagged":false,"blocked":false,"sessionId":110221865772666,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.348","flagged":false,"blocked":false,"sessionId":110221865772664,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.214","flagged":false,"blocked":false,"sessionId":110221865772663,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:11 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:11.123","flagged":false,"blocked":false,"sessionId":110221865772662,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:10 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:10.907","flagged":false,"blocked":false,"sessionId":110221865772661,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:10 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:10.382","flagged":false,"blocked":false,"sessionId":110221865772657,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.861","flagged":false,"blocked":false,"sessionId":110221865772656,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.807","flagged":false,"blocked":false,"sessionId":110221865772655,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} +<174>May 23 15:17:09 INFO uvm[0]: {"timeStamp":"2023-05-23 15:17:09.738","flagged":false,"blocked":false,"sessionId":110221865772654,"ruleId":0,"class":"class com.untangle.app.firewall.FirewallEvent"} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log-expected.json new file mode 100755 index 00000000000..528a1b689d4 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-firewall-event.log-expected.json @@ -0,0 +1,984 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-22T16:32:28.771-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377229, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:28 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:28.771\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377229,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:28.194-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377228, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:28 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:28.194\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377228,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:27.875-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377227, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:27.875\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377227,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:26.743-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377226, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:26 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:26.743\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377226,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:26.686-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377225, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:26 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:26.686\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377225,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:25.504-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865377221, + "kind": "event", + "original": "\u003c174\u003eMay 22 16:32:25 INFO uvm[0]: {\"timeStamp\":\"2023-05-22 16:32:25.504\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865377221,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:15.430-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772671, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:15 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:15.43\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772671,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:14.164-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772670, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:14 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:14.164\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772670,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:12.916-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772669, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:12 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:12.916\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772669,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.806-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772668, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.806\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772668,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.718-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772667, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.718\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772667,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.699-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772666, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.699\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772666,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.348-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772664, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.348\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772664,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.214-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772663, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.214\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772663,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:11.123-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772662, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:11.123\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772662,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:10.907-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772661, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:10 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:10.907\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772661,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:10.382-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772657, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:10 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:10.382\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772657,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:09.861-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772656, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:09 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:09.861\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772656,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:09.807-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772655, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:09 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:09.807\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772655,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:17:09.738-06:00", + "arista": { + "flagged": false + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "id": 110221865772654, + "kind": "event", + "original": "\u003c174\u003eMay 23 15:17:09 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 15:17:09.738\",\"flagged\":false,\"blocked\":false,\"sessionId\":110221865772654,\"ruleId\":0,\"class\":\"class com.untangle.app.firewall.FirewallEvent\"}", + "outcome": "success", + "provider": "firewall", + "timezone": "America/Denver", + "type": [ + "connection", + "allowed" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "rule": { + "id": "0" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log new file mode 100755 index 00000000000..67c10652562 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log @@ -0,0 +1,10 @@ +<174>May 25 09:07:44 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:44.093","method":"GET","requestId":110221859354811,"domain":"amer.ng.msg.teams.microsoft.com","host":"amer.ng.msg.teams.microsoft.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":443,"protocolName":"TCP","serverLatitude":37.3388,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866487132,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":59560,"timeStamp":"2023-05-25 09:07:44.062","serverLongitude":-121.8914,"clientIntf":2,"policyId":1,"SClientPort":13485,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","username":"johndoe","tagsString":""}} +<174>May 25 09:07:34 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:34.395","method":"GET","requestId":110221859354809,"domain":"mozilla.cloudflare-dns.com","host":"mozilla.cloudflare-dns.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"81.2.69.142","remoteAddr":"81.2.69.142","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866487106,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":16040,"timeStamp":"2023-05-25 09:07:34.386","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":15128,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.142","tagsString":""}} +<174>May 25 09:07:33 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:33.314","method":"GET","requestId":110221859354806,"domain":"sb.scorecardresearch.com","host":"sb.scorecardresearch.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487103,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":51598,"timeStamp":"2023-05-25 09:07:33.273","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":45333,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:30 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:30.333","method":"GET","requestId":110221859354805,"domain":"www.gstatic.com","host":"www.gstatic.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487093,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":50548,"timeStamp":"2023-05-25 09:07:30.316","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":39662,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:30 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:30.118","method":"GET","requestId":110221859354804,"domain":"inapps.appsflyer.com","host":"inapps.appsflyer.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487086,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":36398,"timeStamp":"2023-05-25 09:07:30.072","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":40425,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:29 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:29.775","method":"GET","requestId":110221859354791,"domain":"data.pendo.io","host":"data.pendo.io","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487071,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":40596,"timeStamp":"2023-05-25 09:07:29.763","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":32984,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:28 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:28.758","method":"GET","requestId":110221859354783,"domain":"telemetry.elastic.co","host":"telemetry.elastic.co","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Elastic","CServerPort":443,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.200.15","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.200.15","serverCountry":"US","sessionId":110221866487052,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":52762,"timeStamp":"2023-05-25 09:07:28.754","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":30035,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:28 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:28.187","method":"GET","requestId":110221859354760,"domain":"wn0.rumble.com","host":"wn0.rumble.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"XU","sessionId":110221866487028,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":57482,"timeStamp":"2023-05-25 09:07:28.157","clientIntf":2,"policyId":1,"SClientPort":13556,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:27 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:27.517","method":"GET","requestId":110221859354759,"domain":"play-fe.googleapis.com","host":"play-fe.googleapis.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487026,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":60308,"timeStamp":"2023-05-25 09:07:27.498","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":21706,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} +<174>May 25 09:07:27 INFO uvm[0]: {"timeStamp":"2023-05-25 09:07:27.295","method":"GET","requestId":110221859354758,"domain":"api.accuweather.com","host":"api.accuweather.com","contentLength":0,"requestUri":"/","class":"class com.untangle.app.http.HttpRequestEvent","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.12","remoteAddr":"67.43.156.12","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866487024,"SClientAddr":"1.128.0.1","clientCountry":"XL","policyRuleId":0,"CClientPort":48988,"timeStamp":"2023-05-25 09:07:27.284","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":48278,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.12","tagsString":""}} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log-expected.json new file mode 100755 index 00000000000..97aab8e6853 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-request.log-expected.json @@ -0,0 +1,1220 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-25T09:07:44.093-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "amer.ng.msg.teams.microsoft.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487132, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:44 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:44.093\",\"method\":\"GET\",\"requestId\":110221859354811,\"domain\":\"amer.ng.msg.teams.microsoft.com\",\"host\":\"amer.ng.msg.teams.microsoft.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"D23613W10\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.3388,\"localAddr\":\"192.168.201.21\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.21\",\"serverCountry\":\"US\",\"sessionId\":110221866487132,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":59560,\"timeStamp\":\"2023-05-25 09:07:44.062\",\"serverLongitude\":-121.8914,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":13485,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"username\":\"johndoe\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:ZZBnUjeOOXuCbvgnorgrTpgPImE=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "amer.ng.msg.teams.microsoft.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.21", + "1.128.0.1" + ], + "user": [ + "johndoe" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.21", + "nat": { + "ip": "1.128.0.1", + "port": 13485 + }, + "port": 59560 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + }, + "user": { + "name": "johndoe" + } + }, + { + "@timestamp": "2023-05-25T09:07:34.395-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "domain": "mozilla.cloudflare-dns.com", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.142", + "nat": { + "ip": "81.2.69.142", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487106, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:34 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:34.395\",\"method\":\"GET\",\"requestId\":110221859354809,\"domain\":\"mozilla.cloudflare-dns.com\",\"host\":\"mozilla.cloudflare-dns.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"RemoteApp1\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.200.50\",\"SServerAddr\":\"81.2.69.142\",\"remoteAddr\":\"81.2.69.142\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.50\",\"serverCountry\":\"US\",\"sessionId\":110221866487106,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":16040,\"timeStamp\":\"2023-05-25 09:07:34.386\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":15128,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.142\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:GrqyxEtuX1I4LBy7uJVYNOpB7Tg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "mozilla.cloudflare-dns.com" + ], + "ip": [ + "81.2.69.142", + "192.168.200.50", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.50", + "nat": { + "ip": "1.128.0.1", + "port": 15128 + }, + "port": 16040 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:33.314-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "sb.scorecardresearch.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487103, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:33 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:33.314\",\"method\":\"GET\",\"requestId\":110221859354806,\"domain\":\"sb.scorecardresearch.com\",\"host\":\"sb.scorecardresearch.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487103,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":51598,\"timeStamp\":\"2023-05-25 09:07:33.273\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":45333,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:lDqy/l2cZln9q0Wwx5RqSnA/CsY=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "sb.scorecardresearch.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 45333 + }, + "port": 51598 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:30.333-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "www.gstatic.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487093, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:30 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:30.333\",\"method\":\"GET\",\"requestId\":110221859354805,\"domain\":\"www.gstatic.com\",\"host\":\"www.gstatic.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487093,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":50548,\"timeStamp\":\"2023-05-25 09:07:30.316\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":39662,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:aGify5EqeYQ2iUD95x/dw/sMWSg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "www.gstatic.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 39662 + }, + "port": 50548 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:30.118-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "inapps.appsflyer.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487086, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:30 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:30.118\",\"method\":\"GET\",\"requestId\":110221859354804,\"domain\":\"inapps.appsflyer.com\",\"host\":\"inapps.appsflyer.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487086,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36398,\"timeStamp\":\"2023-05-25 09:07:30.072\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":40425,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:G+iFYHe2e+HsYdxXl4jOM/7YpRg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "inapps.appsflyer.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 40425 + }, + "port": 36398 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:29.775-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "data.pendo.io", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487071, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:29 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:29.775\",\"method\":\"GET\",\"requestId\":110221859354791,\"domain\":\"data.pendo.io\",\"host\":\"data.pendo.io\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":39.1028,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487071,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":40596,\"timeStamp\":\"2023-05-25 09:07:29.763\",\"serverLongitude\":-94.5778,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":32984,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:hIUXskLOo2fruh08E86vkD9bODg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "data.pendo.io" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 32984 + }, + "port": 40596 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:28.758-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "telemetry.elastic.co", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487052, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:28 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:28.758\",\"method\":\"GET\",\"requestId\":110221859354783,\"domain\":\"telemetry.elastic.co\",\"host\":\"telemetry.elastic.co\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Elastic\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":39.1028,\"localAddr\":\"192.168.200.15\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.15\",\"serverCountry\":\"US\",\"sessionId\":110221866487052,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":52762,\"timeStamp\":\"2023-05-25 09:07:28.754\",\"serverLongitude\":-94.5778,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":30035,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:8TxdtbP4SWeC6tqD49DmADrh09E=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "telemetry.elastic.co" + ], + "ip": [ + "67.43.156.12", + "192.168.200.15", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.15", + "nat": { + "ip": "1.128.0.1", + "port": 30035 + }, + "port": 52762 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:28.187-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "wn0.rumble.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487028, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:28 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:28.187\",\"method\":\"GET\",\"requestId\":110221859354760,\"domain\":\"wn0.rumble.com\",\"host\":\"wn0.rumble.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"XU\",\"sessionId\":110221866487028,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":57482,\"timeStamp\":\"2023-05-25 09:07:28.157\",\"clientIntf\":2,\"policyId\":1,\"SClientPort\":13556,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:cK1xO5l1tjZnzOmbkYJcDMeU7bo=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "wn0.rumble.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 13556 + }, + "port": 57482 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:27.517-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "play-fe.googleapis.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487026, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:27.517\",\"method\":\"GET\",\"requestId\":110221859354759,\"domain\":\"play-fe.googleapis.com\",\"host\":\"play-fe.googleapis.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487026,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":60308,\"timeStamp\":\"2023-05-25 09:07:27.498\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":21706,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:qNs8lD39L/koaYxwITZS9Lhvc5s=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "play-fe.googleapis.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 21706 + }, + "port": 60308 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + }, + { + "@timestamp": "2023-05-25T09:07:27.295-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "api.accuweather.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.12", + "nat": { + "ip": "67.43.156.12", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866487024, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:07:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:07:27.295\",\"method\":\"GET\",\"requestId\":110221859354758,\"domain\":\"api.accuweather.com\",\"host\":\"api.accuweather.com\",\"contentLength\":0,\"requestUri\":\"/\",\"class\":\"class com.untangle.app.http.HttpRequestEvent\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.12\",\"remoteAddr\":\"67.43.156.12\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866487024,\"SClientAddr\":\"1.128.0.1\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":48988,\"timeStamp\":\"2023-05-25 09:07:27.284\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":48278,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.12\",\"tagsString\":\"\"}}", + "provider": "http_request", + "timezone": "America/Denver", + "type": [ + "connection", + "start" + ] + }, + "http": { + "request": { + "bytes": 0, + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:2I91OFqmx4BwgsnVoxBkYObVS1s=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "api.accuweather.com" + ], + "ip": [ + "67.43.156.12", + "192.168.201.6", + "1.128.0.1" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.1", + "port": 48278 + }, + "port": 48988 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "path": "/" + } + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log new file mode 100755 index 00000000000..50559e95532 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log @@ -0,0 +1,10 @@ +<174>May 25 13:59:11 INFO uvm[0]: {"timeStamp":"2023-05-25 13:59:11.622","contentLength":8,"requestLine":"GET http://detectportal.firefox.com/success.txt?ipv4","contentType":"text/plain","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:59:11.613","method":"GET","requestId":110221859378971,"domain":"detectportal.firefox.com","host":"detectportal.firefox.com","contentLength":0,"requestUri":"/success.txt?ipv4","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","serverLatitude":39.1028,"localAddr":"192.168.200.25","SServerAddr":"67.43.156.91","remoteAddr":"67.43.156.91","serverIntf":1,"CClientAddr":"192.168.200.25","serverCountry":"US","sessionId":110221866602155,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":41968,"timeStamp":"2023-05-25 13:55:24.843","serverLongitude":-94.5778,"clientIntf":2,"policyId":1,"SClientPort":47164,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.91","tagsString":""}}} +<174>May 25 13:28:56 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:56.752","contentLength":0,"requestLine":"GET http://ocsp.entrust.net/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:56.741","method":"GET","requestId":110221859376527,"domain":"ocsp.entrust.net","host":"ocsp.entrust.net","contentLength":0,"requestUri":"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.17","remoteAddr":"67.43.156.17","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866590454,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":62349,"timeStamp":"2023-05-25 13:28:56.735","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":15108,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.17","username":"eric","tagsString":""}}} +<174>May 25 13:28:56 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:56.693","contentLength":0,"requestLine":"GET http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da","contentType":"application/vnd.ms-cab-compressed","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:56.684","method":"GET","requestId":110221859376526,"domain":"ctldl.windowsupdate.com","host":"ctldl.windowsupdate.com","contentLength":0,"requestUri":"/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.52","remoteAddr":"67.43.156.52","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866590452,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":62348,"timeStamp":"2023-05-25 13:28:56.656","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":19844,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.52","username":"eric","tagsString":""}}} +<174>May 25 13:28:17 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:17.055","contentLength":1736,"requestLine":"POST http://dmd.metaservices.microsoft.com/metadata.svc","contentType":"text/xml","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:17.019","method":"POST","requestId":110221859376508,"domain":"dmd.metaservices.microsoft.com","host":"dmd.metaservices.microsoft.com","contentLength":1270,"requestUri":"/metadata.svc","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.3388,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.7","remoteAddr":"67.43.156.7","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866589634,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19486,"timeStamp":"2023-05-25 13:28:11.523","serverLongitude":-121.8914,"clientIntf":2,"policyId":1,"SClientPort":31487,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.7","tagsString":""}}} +<174>May 25 13:28:17 INFO uvm[0]: {"timeStamp":"2023-05-25 13:28:17.015","contentLength":0,"requestLine":"POST http://go.microsoft.com/fwlink/?LinkID=252669&clcid=0x409","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:28:17.007","method":"POST","requestId":110221859376507,"domain":"go.microsoft.com","host":"go.microsoft.com","contentLength":1270,"requestUri":"/fwlink/?LinkID=252669&clcid=0x409","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.101","remoteAddr":"67.43.156.101","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866589745,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19498,"timeStamp":"2023-05-25 13:28:17.002","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":48711,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.101","tagsString":""}}} +<174>May 25 13:20:58 INFO uvm[0]: {"timeStamp":"2023-05-25 13:20:58.327","contentLength":0,"requestLine":"GET http://connectivitycheck.gstatic.com/generate_204","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:20:58.316","method":"GET","requestId":110221859376191,"domain":"connectivitycheck.gstatic.com","host":"connectivitycheck.gstatic.com","contentLength":0,"requestUri":"/generate_204","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.6","SServerAddr":"67.43.156.56","remoteAddr":"67.43.156.56","serverIntf":1,"CClientAddr":"192.168.201.6","serverCountry":"US","sessionId":110221866586859,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":44148,"timeStamp":"2023-05-25 13:20:57.995","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":31260,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.56","tagsString":""}}} +<174>May 25 13:18:39 INFO uvm[0]: {"timeStamp":"2023-05-25 13:18:39.717","contentLength":471,"requestLine":"POST http://ocsp.digicert.com/","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 13:18:39.707","method":"POST","requestId":110221859376170,"domain":"ocsp.digicert.com","host":"ocsp.digicert.com","contentLength":83,"requestUri":"/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.35","remoteAddr":"67.43.156.35","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866586366,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":19427,"timeStamp":"2023-05-25 13:18:39.704","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":43090,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.35","tagsString":""}}} +<174>May 25 12:20:36 INFO uvm[0]: {"timeStamp":"2023-05-25 12:20:36.57","contentLength":1048576,"contentFilename":"microsoft.bingweather_4.53.51361.0_neutral_~_8wekyb3d8bbwe.appxbundle","requestLine":"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131&P2=404&P3=2&P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d","contentType":"application/octet-stream","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 12:20:36.509","method":"GET","requestId":110221859374271,"domain":"2.tlu.dl.delivery.mp.microsoft.com","host":"2.tlu.dl.delivery.mp.microsoft.com","contentLength":0,"requestUri":"/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131&P2=404&P3=2&P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.172","remoteAddr":"67.43.156.172","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866571317,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":54631,"timeStamp":"2023-05-25 12:20:36.113","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":49992,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.172","username":"eric","tagsString":""}}} +<174>May 25 12:20:35 INFO uvm[0]: {"timeStamp":"2023-05-25 12:20:35.953","contentLength":1048576,"contentFilename":"microsoft.microsoftofficehub_18.2304.1202.0_neutral_~_8wekyb3d8bbwe.appxbundle","requestLine":"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689&P2=404&P3=2&P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d","contentType":"application/octet-stream","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 12:20:35.738","method":"GET","requestId":110221859374261,"domain":"2.tlu.dl.delivery.mp.microsoft.com","host":"2.tlu.dl.delivery.mp.microsoft.com","contentLength":0,"requestUri":"/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689&P2=404&P3=2&P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d","sessionEvent":{"entitled":true,"protocol":6,"hostname":"D23613W10","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.201.21","SServerAddr":"67.43.156.173","remoteAddr":"67.43.156.173","serverIntf":1,"CClientAddr":"192.168.201.21","serverCountry":"US","sessionId":110221866571313,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":54628,"timeStamp":"2023-05-25 12:20:35.702","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":26442,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.173","username":"eric","tagsString":""}}} +<174>May 25 09:28:51 INFO uvm[0]: {"timeStamp":"2023-05-25 09:28:51.57","contentLength":1551,"requestLine":"GET http://ocsp.verisign.com/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D","contentType":"application/ocsp-response","class":"class com.untangle.app.http.HttpResponseEvent","httpRequestEvent":{"timeStamp":"2023-05-25 09:28:51.333","method":"GET","requestId":110221859359026,"domain":"ocsp.verisign.com","host":"ocsp.verisign.com","contentLength":0,"requestUri":"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D","sessionEvent":{"entitled":true,"protocol":6,"hostname":"RemoteApp1","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"192.168.200.50","SServerAddr":"67.43.156.128","remoteAddr":"67.43.156.128","serverIntf":1,"CClientAddr":"192.168.200.50","serverCountry":"US","sessionId":110221866498840,"SClientAddr":"1.128.0.10","clientCountry":"XL","policyRuleId":0,"CClientPort":17824,"timeStamp":"2023-05-25 09:28:51.329","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":10848,"bypassed":false,"SServerPort":80,"CServerAddr":"67.43.156.128","tagsString":""}}} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log-expected.json new file mode 100755 index 00000000000..9f0f459609c --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-http-response.log-expected.json @@ -0,0 +1,1322 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-25T13:59:11.622-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "detectportal.firefox.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.91", + "nat": { + "ip": "67.43.156.91", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866602155, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:59:11 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:59:11.622\",\"contentLength\":8,\"requestLine\":\"GET http://detectportal.firefox.com/success.txt?ipv4\",\"contentType\":\"text/plain\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:59:11.613\",\"method\":\"GET\",\"requestId\":110221859378971,\"domain\":\"detectportal.firefox.com\",\"host\":\"detectportal.firefox.com\",\"contentLength\":0,\"requestUri\":\"/success.txt?ipv4\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":39.1028,\"localAddr\":\"192.168.200.25\",\"SServerAddr\":\"67.43.156.91\",\"remoteAddr\":\"67.43.156.91\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.25\",\"serverCountry\":\"US\",\"sessionId\":110221866602155,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":41968,\"timeStamp\":\"2023-05-25 13:55:24.843\",\"serverLongitude\":-94.5778,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":47164,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.91\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 8 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:Ehi60QYmFznJqYzlkOoVvtXJMl8=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "detectportal.firefox.com" + ], + "ip": [ + "67.43.156.91", + "192.168.200.25", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.25", + "nat": { + "ip": "1.128.0.10", + "port": 47164 + }, + "port": 41968 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "detectportal.firefox.com", + "extension": "txt", + "full": "http://detectportal.firefox.com/success.txt?ipv4", + "original": "http://detectportal.firefox.com/success.txt?ipv4", + "path": "/success.txt", + "query": "ipv4", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-25T13:28:56.752-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "ocsp.entrust.net", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.17", + "nat": { + "ip": "67.43.156.17", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866590454, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:28:56 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:28:56.752\",\"contentLength\":0,\"requestLine\":\"GET http://ocsp.entrust.net/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D\",\"contentType\":\"application/ocsp-response\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:28:56.741\",\"method\":\"GET\",\"requestId\":110221859376527,\"domain\":\"ocsp.entrust.net\",\"host\":\"ocsp.entrust.net\",\"contentLength\":0,\"requestUri\":\"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"D23613W10\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.21\",\"SServerAddr\":\"67.43.156.17\",\"remoteAddr\":\"67.43.156.17\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.21\",\"serverCountry\":\"US\",\"sessionId\":110221866590454,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":62349,\"timeStamp\":\"2023-05-25 13:28:56.735\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":15108,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.17\",\"username\":\"eric\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 0 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:tJVQMQRSX+0E8TuTqlpWqpI4IzE=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "ocsp.entrust.net" + ], + "ip": [ + "67.43.156.17", + "192.168.201.21", + "1.128.0.10" + ], + "user": [ + "eric" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.21", + "nat": { + "ip": "1.128.0.10", + "port": 15108 + }, + "port": 62349 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ocsp.entrust.net", + "full": "http://ocsp.entrust.net/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D", + "original": "http://ocsp.entrust.net/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r%2F2ztWk1V88CEHHvVXSvNVTDWixp9m9La80%3D", + "path": "/MFEwTzBNMEswSTAJBgUrDgMCGgUABBRr2bwARTxMtEy9aspRAZg5QFhagQQUgrrWPZfOn89x6JI3r/2ztWk1V88CEHHvVXSvNVTDWixp9m9La80=", + "scheme": "http" + }, + "user": { + "name": "eric" + } + }, + { + "@timestamp": "2023-05-25T13:28:56.693-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "ctldl.windowsupdate.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.52", + "nat": { + "ip": "67.43.156.52", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866590452, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:28:56 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:28:56.693\",\"contentLength\":0,\"requestLine\":\"GET http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da\",\"contentType\":\"application/vnd.ms-cab-compressed\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:28:56.684\",\"method\":\"GET\",\"requestId\":110221859376526,\"domain\":\"ctldl.windowsupdate.com\",\"host\":\"ctldl.windowsupdate.com\",\"contentLength\":0,\"requestUri\":\"/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"D23613W10\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.21\",\"SServerAddr\":\"67.43.156.52\",\"remoteAddr\":\"67.43.156.52\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.21\",\"serverCountry\":\"US\",\"sessionId\":110221866590452,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":62348,\"timeStamp\":\"2023-05-25 13:28:56.656\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":19844,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.52\",\"username\":\"eric\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 0 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:WjieyOU2B6Vm2CTrtVAJt+NyEeg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "ctldl.windowsupdate.com" + ], + "ip": [ + "67.43.156.52", + "192.168.201.21", + "1.128.0.10" + ], + "user": [ + "eric" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.21", + "nat": { + "ip": "1.128.0.10", + "port": 19844 + }, + "port": 62348 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ctldl.windowsupdate.com", + "extension": "cab", + "full": "http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da", + "original": "http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab?9d222919ed61d6da", + "path": "/msdownload/update/v3/static/trustedr/en/pinrulesstl.cab", + "query": "9d222919ed61d6da", + "scheme": "http" + }, + "user": { + "name": "eric" + } + }, + { + "@timestamp": "2023-05-25T13:28:17.055-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "dmd.metaservices.microsoft.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.7", + "nat": { + "ip": "67.43.156.7", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866589634, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:28:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:28:17.055\",\"contentLength\":1736,\"requestLine\":\"POST http://dmd.metaservices.microsoft.com/metadata.svc\",\"contentType\":\"text/xml\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:28:17.019\",\"method\":\"POST\",\"requestId\":110221859376508,\"domain\":\"dmd.metaservices.microsoft.com\",\"host\":\"dmd.metaservices.microsoft.com\",\"contentLength\":1270,\"requestUri\":\"/metadata.svc\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"RemoteApp1\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.3388,\"localAddr\":\"192.168.200.50\",\"SServerAddr\":\"67.43.156.7\",\"remoteAddr\":\"67.43.156.7\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.50\",\"serverCountry\":\"US\",\"sessionId\":110221866589634,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":19486,\"timeStamp\":\"2023-05-25 13:28:11.523\",\"serverLongitude\":-121.8914,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":31487,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.7\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "POST" + }, + "response": { + "bytes": 1736 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:okhLt+aUgBSrZau8qx0tf4Aon0g=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "dmd.metaservices.microsoft.com" + ], + "ip": [ + "67.43.156.7", + "192.168.200.50", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.50", + "nat": { + "ip": "1.128.0.10", + "port": 31487 + }, + "port": 19486 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "dmd.metaservices.microsoft.com", + "extension": "svc", + "full": "http://dmd.metaservices.microsoft.com/metadata.svc", + "original": "http://dmd.metaservices.microsoft.com/metadata.svc", + "path": "/metadata.svc", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-25T13:28:17.015-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "go.microsoft.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.101", + "nat": { + "ip": "67.43.156.101", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866589745, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:28:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:28:17.015\",\"contentLength\":0,\"requestLine\":\"POST http://go.microsoft.com/fwlink/?LinkID=252669\u0026clcid=0x409\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:28:17.007\",\"method\":\"POST\",\"requestId\":110221859376507,\"domain\":\"go.microsoft.com\",\"host\":\"go.microsoft.com\",\"contentLength\":1270,\"requestUri\":\"/fwlink/?LinkID=252669\u0026clcid=0x409\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"RemoteApp1\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.200.50\",\"SServerAddr\":\"67.43.156.101\",\"remoteAddr\":\"67.43.156.101\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.50\",\"serverCountry\":\"US\",\"sessionId\":110221866589745,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":19498,\"timeStamp\":\"2023-05-25 13:28:17.002\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":48711,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.101\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "POST" + }, + "response": { + "bytes": 0 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:KA+eDIhIExcY8w4iXSpLmpN1zLc=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "go.microsoft.com" + ], + "ip": [ + "67.43.156.101", + "192.168.200.50", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.50", + "nat": { + "ip": "1.128.0.10", + "port": 48711 + }, + "port": 19498 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "go.microsoft.com", + "full": "http://go.microsoft.com/fwlink/?LinkID=252669\u0026clcid=0x409", + "original": "http://go.microsoft.com/fwlink/?LinkID=252669\u0026clcid=0x409", + "path": "/fwlink/", + "query": "LinkID=252669\u0026clcid=0x409", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-25T13:20:58.327-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "connectivitycheck.gstatic.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.56", + "nat": { + "ip": "67.43.156.56", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866586859, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:20:58 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:20:58.327\",\"contentLength\":0,\"requestLine\":\"GET http://connectivitycheck.gstatic.com/generate_204\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:20:58.316\",\"method\":\"GET\",\"requestId\":110221859376191,\"domain\":\"connectivitycheck.gstatic.com\",\"host\":\"connectivitycheck.gstatic.com\",\"contentLength\":0,\"requestUri\":\"/generate_204\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.6\",\"SServerAddr\":\"67.43.156.56\",\"remoteAddr\":\"67.43.156.56\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.6\",\"serverCountry\":\"US\",\"sessionId\":110221866586859,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":44148,\"timeStamp\":\"2023-05-25 13:20:57.995\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":31260,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.56\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 0 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:JtomnKFjmK/XQk4d/TEtRfOzI2M=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "connectivitycheck.gstatic.com" + ], + "ip": [ + "67.43.156.56", + "192.168.201.6", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.6", + "nat": { + "ip": "1.128.0.10", + "port": 31260 + }, + "port": 44148 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "connectivitycheck.gstatic.com", + "full": "http://connectivitycheck.gstatic.com/generate_204", + "original": "http://connectivitycheck.gstatic.com/generate_204", + "path": "/generate_204", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-25T13:18:39.717-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "ocsp.digicert.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.35", + "nat": { + "ip": "67.43.156.35", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866586366, + "kind": "event", + "original": "\u003c174\u003eMay 25 13:18:39 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 13:18:39.717\",\"contentLength\":471,\"requestLine\":\"POST http://ocsp.digicert.com/\",\"contentType\":\"application/ocsp-response\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 13:18:39.707\",\"method\":\"POST\",\"requestId\":110221859376170,\"domain\":\"ocsp.digicert.com\",\"host\":\"ocsp.digicert.com\",\"contentLength\":83,\"requestUri\":\"/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"RemoteApp1\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.200.50\",\"SServerAddr\":\"67.43.156.35\",\"remoteAddr\":\"67.43.156.35\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.50\",\"serverCountry\":\"US\",\"sessionId\":110221866586366,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":19427,\"timeStamp\":\"2023-05-25 13:18:39.704\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":43090,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.35\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "POST" + }, + "response": { + "bytes": 471 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:EbVlcpdYT1UmSTBV2elMDOu9GVM=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "ocsp.digicert.com" + ], + "ip": [ + "67.43.156.35", + "192.168.200.50", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.50", + "nat": { + "ip": "1.128.0.10", + "port": 43090 + }, + "port": 19427 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ocsp.digicert.com", + "full": "http://ocsp.digicert.com/", + "original": "http://ocsp.digicert.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-25T12:20:36.570-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "2.tlu.dl.delivery.mp.microsoft.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.172", + "nat": { + "ip": "67.43.156.172", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866571317, + "kind": "event", + "original": "\u003c174\u003eMay 25 12:20:36 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 12:20:36.57\",\"contentLength\":1048576,\"contentFilename\":\"microsoft.bingweather_4.53.51361.0_neutral_~_8wekyb3d8bbwe.appxbundle\",\"requestLine\":\"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131\u0026P2=404\u0026P3=2\u0026P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d\",\"contentType\":\"application/octet-stream\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 12:20:36.509\",\"method\":\"GET\",\"requestId\":110221859374271,\"domain\":\"2.tlu.dl.delivery.mp.microsoft.com\",\"host\":\"2.tlu.dl.delivery.mp.microsoft.com\",\"contentLength\":0,\"requestUri\":\"/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131\u0026P2=404\u0026P3=2\u0026P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"D23613W10\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.21\",\"SServerAddr\":\"67.43.156.172\",\"remoteAddr\":\"67.43.156.172\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.21\",\"serverCountry\":\"US\",\"sessionId\":110221866571317,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":54631,\"timeStamp\":\"2023-05-25 12:20:36.113\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":49992,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.172\",\"username\":\"eric\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "file": { + "name": "microsoft.bingweather_4.53.51361.0_neutral_~_8wekyb3d8bbwe.appxbundle" + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 1048576 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:653wVOSuvFUbsunJ0YLbOeMCs1s=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "2.tlu.dl.delivery.mp.microsoft.com" + ], + "ip": [ + "67.43.156.172", + "192.168.201.21", + "1.128.0.10" + ], + "user": [ + "eric" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.21", + "nat": { + "ip": "1.128.0.10", + "port": 49992 + }, + "port": 54631 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "2.tlu.dl.delivery.mp.microsoft.com", + "full": "http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131\u0026P2=404\u0026P3=2\u0026P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d", + "original": "http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686?P1=1685040131\u0026P2=404\u0026P3=2\u0026P4=Vf%2fpxph%2fQJH7%2bPZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm%2fbGOxnQU8ZrFgGnsw8Ipj14OS%2fVkJglNd6A%3d%3d", + "path": "/filestreamingservice/files/39e27d1a-be46-4e95-be41-1fc48d1ba686", + "query": "P1=1685040131\u0026P2=404\u0026P3=2\u0026P4=Vf/pxph/QJH7+PZqc3Xz67gngLpb9rnmPKNOcGPYlicP6iPXjtm/bGOxnQU8ZrFgGnsw8Ipj14OS/VkJglNd6A==", + "scheme": "http" + }, + "user": { + "name": "eric" + } + }, + { + "@timestamp": "2023-05-25T12:20:35.953-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "2.tlu.dl.delivery.mp.microsoft.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.173", + "nat": { + "ip": "67.43.156.173", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866571313, + "kind": "event", + "original": "\u003c174\u003eMay 25 12:20:35 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 12:20:35.953\",\"contentLength\":1048576,\"contentFilename\":\"microsoft.microsoftofficehub_18.2304.1202.0_neutral_~_8wekyb3d8bbwe.appxbundle\",\"requestLine\":\"GET http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689\u0026P2=404\u0026P3=2\u0026P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d\",\"contentType\":\"application/octet-stream\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 12:20:35.738\",\"method\":\"GET\",\"requestId\":110221859374261,\"domain\":\"2.tlu.dl.delivery.mp.microsoft.com\",\"host\":\"2.tlu.dl.delivery.mp.microsoft.com\",\"contentLength\":0,\"requestUri\":\"/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689\u0026P2=404\u0026P3=2\u0026P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"D23613W10\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.201.21\",\"SServerAddr\":\"67.43.156.173\",\"remoteAddr\":\"67.43.156.173\",\"serverIntf\":1,\"CClientAddr\":\"192.168.201.21\",\"serverCountry\":\"US\",\"sessionId\":110221866571313,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":54628,\"timeStamp\":\"2023-05-25 12:20:35.702\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":26442,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.173\",\"username\":\"eric\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "file": { + "name": "microsoft.microsoftofficehub_18.2304.1202.0_neutral_~_8wekyb3d8bbwe.appxbundle" + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 1048576 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:Tzc0b1doRMBijrmehRMWXmvHed8=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "2.tlu.dl.delivery.mp.microsoft.com" + ], + "ip": [ + "67.43.156.173", + "192.168.201.21", + "1.128.0.10" + ], + "user": [ + "eric" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.201.21", + "nat": { + "ip": "1.128.0.10", + "port": 26442 + }, + "port": 54628 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "2.tlu.dl.delivery.mp.microsoft.com", + "full": "http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689\u0026P2=404\u0026P3=2\u0026P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d", + "original": "http://2.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123?P1=1685039689\u0026P2=404\u0026P3=2\u0026P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE%2fWRUlfYgNfcHUzyzDSl9S5jMYOK%2fY9Gqjg%3d%3d", + "path": "/filestreamingservice/files/faa30c4e-450f-45b5-9ba8-d999d270c123", + "query": "P1=1685039689\u0026P2=404\u0026P3=2\u0026P4=J5KXMJWKulWN6iU7zXXnBHsN5grFqq4jTLeBolgTSTDCAvNAorpE/WRUlfYgNfcHUzyzDSl9S5jMYOK/Y9Gqjg==", + "scheme": "http" + }, + "user": { + "name": "eric" + } + }, + { + "@timestamp": "2023-05-25T09:28:51.570-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "httpRequestEvent": {}, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "domain": "ocsp.verisign.com", + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.128", + "nat": { + "ip": "67.43.156.128", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866498840, + "kind": "event", + "original": "\u003c174\u003eMay 25 09:28:51 INFO uvm[0]: {\"timeStamp\":\"2023-05-25 09:28:51.57\",\"contentLength\":1551,\"requestLine\":\"GET http://ocsp.verisign.com/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D\",\"contentType\":\"application/ocsp-response\",\"class\":\"class com.untangle.app.http.HttpResponseEvent\",\"httpRequestEvent\":{\"timeStamp\":\"2023-05-25 09:28:51.333\",\"method\":\"GET\",\"requestId\":110221859359026,\"domain\":\"ocsp.verisign.com\",\"host\":\"ocsp.verisign.com\",\"contentLength\":0,\"requestUri\":\"/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"RemoteApp1\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"192.168.200.50\",\"SServerAddr\":\"67.43.156.128\",\"remoteAddr\":\"67.43.156.128\",\"serverIntf\":1,\"CClientAddr\":\"192.168.200.50\",\"serverCountry\":\"US\",\"sessionId\":110221866498840,\"SClientAddr\":\"1.128.0.10\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":17824,\"timeStamp\":\"2023-05-25 09:28:51.329\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":10848,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"67.43.156.128\",\"tagsString\":\"\"}}}", + "provider": "http_response", + "timezone": "America/Denver", + "type": [ + "connection", + "end" + ] + }, + "http": { + "request": { + "method": "GET" + }, + "response": { + "bytes": 1551 + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:HLY1I4JGyAZgaBLSPYjq0t2PJf4=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "hosts": [ + "ocsp.verisign.com" + ], + "ip": [ + "67.43.156.128", + "192.168.200.50", + "1.128.0.10" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "192.168.200.50", + "nat": { + "ip": "1.128.0.10", + "port": 10848 + }, + "port": 17824 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ocsp.verisign.com", + "full": "http://ocsp.verisign.com/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D", + "original": "http://ocsp.verisign.com/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo%2FX8AUm7%2BPSp50CECnEX2U8xxBTGE6%2BVZZgJjI%3D", + "path": "/MFEwTzBNMEswSTAJBgUrDgMCGgUABBTSqZMG5M8TA9rdzkbCnNwuMAd5VgQUz5mp6nsm9EvJjo/X8AUm7+PSp50CECnEX2U8xxBTGE6+VZZgJjI=", + "scheme": "http" + } + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log new file mode 100755 index 00000000000..ebe7c80c25f --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log @@ -0,0 +1,20 @@ +<174>May 23 12:01:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:27.41","rxBytes":159622,"txBytes":423935,"txRate":42389.261073892616,"interfaceId":1,"rxRate":15960.60393960604,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:27.41","rxBytes":667791,"txBytes":450851,"txRate":45080.59194080592,"interfaceId":2,"rxRate":66772.42275772423,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:17.41","rxBytes":136902,"txBytes":399149,"txRate":39918.89188918892,"interfaceId":1,"rxRate":13691.569156915692,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:17.41","rxBytes":650327,"txBytes":438330,"txRate":43837.383738373836,"interfaceId":2,"rxRate":65039.203920392036,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:07.411","rxBytes":180740,"txBytes":426706,"txRate":42670.6,"interfaceId":1,"rxRate":18074,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:01:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:01:07.411","rxBytes":682539,"txBytes":506359,"txRate":50635.9,"interfaceId":2,"rxRate":68253.9,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:57 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:57.41","rxBytes":195720,"txBytes":493180,"txRate":49318,"interfaceId":1,"rxRate":19572,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:57 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:57.41","rxBytes":728322,"txBytes":466260,"txRate":46626,"interfaceId":2,"rxRate":72832.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:47 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:47.41","rxBytes":165362,"txBytes":435029,"txRate":43502.9,"interfaceId":1,"rxRate":16536.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:47 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:47.41","rxBytes":672056,"txBytes":437547,"txRate":43754.7,"interfaceId":2,"rxRate":67205.6,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:37 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:37.41","rxBytes":186602,"txBytes":432016,"txRate":43201.6,"interfaceId":1,"rxRate":18660.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:37 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:37.41","rxBytes":726961,"txBytes":531437,"txRate":53143.7,"interfaceId":2,"rxRate":72696.1,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:27.41","rxBytes":158720,"txBytes":427071,"txRate":42707.1,"interfaceId":1,"rxRate":15872,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:27 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:27.41","rxBytes":715354,"txBytes":474231,"txRate":47423.1,"interfaceId":2,"rxRate":71535.4,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:17.411","rxBytes":162030,"txBytes":405801,"txRate":40580.1,"interfaceId":1,"rxRate":16203,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:17 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:17.411","rxBytes":638682,"txBytes":424345,"txRate":42434.5,"interfaceId":2,"rxRate":63868.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:07.41","rxBytes":190799,"txBytes":459103,"txRate":45910.3,"interfaceId":1,"rxRate":19079.9,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 12:00:07 INFO uvm[0]: {"timeStamp":"2023-05-23 12:00:07.41","rxBytes":701037,"txBytes":456315,"txRate":45631.5,"interfaceId":2,"rxRate":70103.7,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 11:59:57 INFO uvm[0]: {"timeStamp":"2023-05-23 11:59:57.41","rxBytes":127092,"txBytes":396485,"txRate":39648.5,"interfaceId":1,"rxRate":12709.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} +<174>May 23 11:59:57 INFO uvm[0]: {"timeStamp":"2023-05-23 11:59:57.41","rxBytes":631382,"txBytes":378006,"txRate":37800.6,"interfaceId":2,"rxRate":63138.2,"class":"class com.untangle.uvm.logging.InterfaceStatEvent"} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log-expected.json new file mode 100755 index 00000000000..a1a9f4afd42 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-interface-stats.log-expected.json @@ -0,0 +1,1064 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-23T12:01:27.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 159622, + "rate": 15960.604 + }, + "transmitted": { + "bytes": 423935, + "rate": 42389.26 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:27.41\",\"rxBytes\":159622,\"txBytes\":423935,\"txRate\":42389.261073892616,\"interfaceId\":1,\"rxRate\":15960.60393960604,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:01:27.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 667791, + "rate": 66772.42 + }, + "transmitted": { + "bytes": 450851, + "rate": 45080.594 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:27.41\",\"rxBytes\":667791,\"txBytes\":450851,\"txRate\":45080.59194080592,\"interfaceId\":2,\"rxRate\":66772.42275772423,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:01:17.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 136902, + "rate": 13691.569 + }, + "transmitted": { + "bytes": 399149, + "rate": 39918.89 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:17.41\",\"rxBytes\":136902,\"txBytes\":399149,\"txRate\":39918.89188918892,\"interfaceId\":1,\"rxRate\":13691.569156915692,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:01:17.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 650327, + "rate": 65039.203 + }, + "transmitted": { + "bytes": 438330, + "rate": 43837.383 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:17.41\",\"rxBytes\":650327,\"txBytes\":438330,\"txRate\":43837.383738373836,\"interfaceId\":2,\"rxRate\":65039.203920392036,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:01:07.411-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 180740, + "rate": 18074.0 + }, + "transmitted": { + "bytes": 426706, + "rate": 42670.6 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:07 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:07.411\",\"rxBytes\":180740,\"txBytes\":426706,\"txRate\":42670.6,\"interfaceId\":1,\"rxRate\":18074,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:01:07.411-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 682539, + "rate": 68253.9 + }, + "transmitted": { + "bytes": 506359, + "rate": 50635.9 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:01:07 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:01:07.411\",\"rxBytes\":682539,\"txBytes\":506359,\"txRate\":50635.9,\"interfaceId\":2,\"rxRate\":68253.9,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:57.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 195720, + "rate": 19572.0 + }, + "transmitted": { + "bytes": 493180, + "rate": 49318.0 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:57 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:57.41\",\"rxBytes\":195720,\"txBytes\":493180,\"txRate\":49318,\"interfaceId\":1,\"rxRate\":19572,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:57.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 728322, + "rate": 72832.2 + }, + "transmitted": { + "bytes": 466260, + "rate": 46626.0 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:57 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:57.41\",\"rxBytes\":728322,\"txBytes\":466260,\"txRate\":46626,\"interfaceId\":2,\"rxRate\":72832.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:47.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 165362, + "rate": 16536.2 + }, + "transmitted": { + "bytes": 435029, + "rate": 43502.9 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:47 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:47.41\",\"rxBytes\":165362,\"txBytes\":435029,\"txRate\":43502.9,\"interfaceId\":1,\"rxRate\":16536.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:47.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 672056, + "rate": 67205.6 + }, + "transmitted": { + "bytes": 437547, + "rate": 43754.7 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:47 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:47.41\",\"rxBytes\":672056,\"txBytes\":437547,\"txRate\":43754.7,\"interfaceId\":2,\"rxRate\":67205.6,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:37.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 186602, + "rate": 18660.2 + }, + "transmitted": { + "bytes": 432016, + "rate": 43201.6 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:37 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:37.41\",\"rxBytes\":186602,\"txBytes\":432016,\"txRate\":43201.6,\"interfaceId\":1,\"rxRate\":18660.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:37.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 726961, + "rate": 72696.1 + }, + "transmitted": { + "bytes": 531437, + "rate": 53143.7 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:37 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:37.41\",\"rxBytes\":726961,\"txBytes\":531437,\"txRate\":53143.7,\"interfaceId\":2,\"rxRate\":72696.1,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:27.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 158720, + "rate": 15872.0 + }, + "transmitted": { + "bytes": 427071, + "rate": 42707.1 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:27.41\",\"rxBytes\":158720,\"txBytes\":427071,\"txRate\":42707.1,\"interfaceId\":1,\"rxRate\":15872,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:27.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 715354, + "rate": 71535.4 + }, + "transmitted": { + "bytes": 474231, + "rate": 47423.1 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:27 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:27.41\",\"rxBytes\":715354,\"txBytes\":474231,\"txRate\":47423.1,\"interfaceId\":2,\"rxRate\":71535.4,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:17.411-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 162030, + "rate": 16203.0 + }, + "transmitted": { + "bytes": 405801, + "rate": 40580.1 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:17.411\",\"rxBytes\":162030,\"txBytes\":405801,\"txRate\":40580.1,\"interfaceId\":1,\"rxRate\":16203,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:17.411-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 638682, + "rate": 63868.2 + }, + "transmitted": { + "bytes": 424345, + "rate": 42434.5 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:17 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:17.411\",\"rxBytes\":638682,\"txBytes\":424345,\"txRate\":42434.5,\"interfaceId\":2,\"rxRate\":63868.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:07.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 190799, + "rate": 19079.9 + }, + "transmitted": { + "bytes": 459103, + "rate": 45910.3 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:07 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:07.41\",\"rxBytes\":190799,\"txBytes\":459103,\"txRate\":45910.3,\"interfaceId\":1,\"rxRate\":19079.9,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T12:00:07.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 701037, + "rate": 70103.7 + }, + "transmitted": { + "bytes": 456315, + "rate": 45631.5 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 12:00:07 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 12:00:07.41\",\"rxBytes\":701037,\"txBytes\":456315,\"txRate\":45631.5,\"interfaceId\":2,\"rxRate\":70103.7,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T11:59:57.410-06:00", + "arista": { + "interface": { + "id": 1 + }, + "received": { + "bytes": 127092, + "rate": 12709.2 + }, + "transmitted": { + "bytes": 396485, + "rate": 39648.5 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 11:59:57 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 11:59:57.41\",\"rxBytes\":127092,\"txBytes\":396485,\"txRate\":39648.5,\"interfaceId\":1,\"rxRate\":12709.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T11:59:57.410-06:00", + "arista": { + "interface": { + "id": 2 + }, + "received": { + "bytes": 631382, + "rate": 63138.2 + }, + "transmitted": { + "bytes": 378006, + "rate": 37800.6 + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 11:59:57 INFO uvm[0]: {\"timeStamp\":\"2023-05-23 11:59:57.41\",\"rxBytes\":631382,\"txBytes\":378006,\"txRate\":37800.6,\"interfaceId\":2,\"rxRate\":63138.2,\"class\":\"class com.untangle.uvm.logging.InterfaceStatEvent\"}", + "provider": "interface_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log new file mode 100755 index 00000000000..2cb222c4642 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log @@ -0,0 +1,10 @@ +<174>May 23 15:55:44 INFO uvm[0]: {"msg":"ET CINS Active Threat Intelligence Poor Reputation IP group 35","ipDestination":"1.128.0.72","ipSource":"216.160.83.56","classtype":"misc-attack","signatureId":2403334,"sportItype":60000,"timeStamp":"2023-05-23 15:55:44.77","generatorId":1,"protocol":"ip","blocked":true,"category":"ciarmy","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":7122,"timestamp":1682460288061} +<174>May 23 15:55:44 INFO uvm[0]: {"msg":"ET SCAN NMAP -sS window 1024","ipDestination":"1.128.0.72","ipSource":"81.2.69.142","classtype":"attempted-recon","signatureId":2009582,"sportItype":58524,"timeStamp":"2023-05-23 15:55:44.769","generatorId":1,"protocol":"tcp","blocked":true,"category":"scan","ruleId":"2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":29884,"timestamp":1682459871616} +<174>May 23 15:55:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.116","classtype":"misc-attack","signatureId":2402000,"sportItype":49454,"timeStamp":"2023-05-23 15:55:14.729","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":5916,"timestamp":1682460118153} +<174>May 23 15:55:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.115","classtype":"misc-attack","signatureId":2402000,"sportItype":36152,"timeStamp":"2023-05-23 15:55:14.729","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":40855,"timestamp":1682460229999} +<174>May 23 15:54:44 INFO uvm[0]: {"msg":"ET SCAN NMAP -sS window 1024","ipDestination":"1.128.0.72","ipSource":"89.160.20.154","classtype":"attempted-recon","signatureId":2009582,"sportItype":58417,"timeStamp":"2023-05-23 15:54:44.691","generatorId":1,"protocol":"tcp","blocked":true,"category":"scan","ruleId":"2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":27596,"timestamp":1682460151501} +<174>May 23 15:54:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.154","classtype":"misc-attack","signatureId":2402000,"sportItype":51637,"timeStamp":"2023-05-23 15:54:14.651","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":111,"timestamp":1682460505628} +<174>May 23 15:54:14 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2402000,"sportItype":52549,"timeStamp":"2023-05-23 15:54:14.65","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":9443,"timestamp":1682460389092} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2402000,"sportItype":35612,"timeStamp":"2023-05-23 15:53:44.612","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":30106,"timestamp":1682460533195} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET CINS Active Threat Intelligence Poor Reputation IP group 83","ipDestination":"1.128.0.72","ipSource":"89.160.20.117","classtype":"misc-attack","signatureId":2403382,"sportItype":21442,"timeStamp":"2023-05-23 15:53:44.612","generatorId":1,"protocol":"ip","blocked":true,"category":"ciarmy","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":10001,"timestamp":1682460428327} +<174>May 23 15:53:44 INFO uvm[0]: {"msg":"ET DROP Dshield Block Listed Source group 1","ipDestination":"1.128.0.72","ipSource":"175.16.199.172","classtype":"misc-attack","signatureId":2402000,"sportItype":43132,"timeStamp":"2023-05-23 15:53:44.611","generatorId":1,"protocol":"ip","blocked":true,"category":"dshield","ruleId":"reserved_classification__2","class":"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent","dportIcode":12300,"timestamp":1682460344918} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log-expected.json new file mode 100755 index 00000000000..788389aa5db --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-intrusion-detection.log-expected.json @@ -0,0 +1,869 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-23T15:55:44.770-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:55:44 INFO uvm[0]: {\"msg\":\"ET CINS Active Threat Intelligence Poor Reputation IP group 35\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"216.160.83.56\",\"classtype\":\"misc-attack\",\"signatureId\":2403334,\"sportItype\":60000,\"timeStamp\":\"2023-05-23 15:55:44.77\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"ciarmy\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":7122,\"timestamp\":1682460288061}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "216.160.83.56" + ] + }, + "rule": { + "category": "ciarmy", + "id": "2403334", + "name": "ET CINS Active Threat Intelligence Poor Reputation IP group 35", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 209 + }, + "geo": { + "city_name": "Milton", + "continent_name": "North America", + "country_iso_code": "US", + "country_name": "United States", + "location": { + "lat": 47.2513, + "lon": -122.3149 + }, + "region_iso_code": "US-WA", + "region_name": "Washington" + }, + "ip": "216.160.83.56" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:55:44.769-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:55:44 INFO uvm[0]: {\"msg\":\"ET SCAN NMAP -sS window 1024\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"81.2.69.142\",\"classtype\":\"attempted-recon\",\"signatureId\":2009582,\"sportItype\":58524,\"timeStamp\":\"2023-05-23 15:55:44.769\",\"generatorId\":1,\"protocol\":\"tcp\",\"blocked\":true,\"category\":\"scan\",\"ruleId\":\"2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":29884,\"timestamp\":1682459871616}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "tcp" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "81.2.69.142" + ] + }, + "rule": { + "category": "scan", + "id": "2009582", + "name": "ET SCAN NMAP -sS window 1024", + "ruleset": "attempted-recon" + }, + "source": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.142" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:55:14.729-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:55:14 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.116\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":49454,\"timeStamp\":\"2023-05-23 15:55:14.729\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":5916,\"timestamp\":1682460118153}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.116" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.116" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:55:14.729-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:55:14 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.115\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":36152,\"timeStamp\":\"2023-05-23 15:55:14.729\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":40855,\"timestamp\":1682460229999}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.115" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.115" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:54:44.691-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:54:44 INFO uvm[0]: {\"msg\":\"ET SCAN NMAP -sS window 1024\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.154\",\"classtype\":\"attempted-recon\",\"signatureId\":2009582,\"sportItype\":58417,\"timeStamp\":\"2023-05-23 15:54:44.691\",\"generatorId\":1,\"protocol\":\"tcp\",\"blocked\":true,\"category\":\"scan\",\"ruleId\":\"2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":27596,\"timestamp\":1682460151501}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "tcp" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.154" + ] + }, + "rule": { + "category": "scan", + "id": "2009582", + "name": "ET SCAN NMAP -sS window 1024", + "ruleset": "attempted-recon" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.154" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:54:14.651-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:54:14 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.154\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":51637,\"timeStamp\":\"2023-05-23 15:54:14.651\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":111,\"timestamp\":1682460505628}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.154" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.154" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:54:14.650-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:54:14 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.117\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":52549,\"timeStamp\":\"2023-05-23 15:54:14.65\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":9443,\"timestamp\":1682460389092}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.117" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.117" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:53:44.612-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:53:44 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.117\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":35612,\"timeStamp\":\"2023-05-23 15:53:44.612\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":30106,\"timestamp\":1682460533195}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.117" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.117" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:53:44.612-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:53:44 INFO uvm[0]: {\"msg\":\"ET CINS Active Threat Intelligence Poor Reputation IP group 83\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"89.160.20.117\",\"classtype\":\"misc-attack\",\"signatureId\":2403382,\"sportItype\":21442,\"timeStamp\":\"2023-05-23 15:53:44.612\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"ciarmy\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":10001,\"timestamp\":1682460428327}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "89.160.20.117" + ] + }, + "rule": { + "category": "ciarmy", + "id": "2403382", + "name": "ET CINS Active Threat Intelligence Poor Reputation IP group 83", + "ruleset": "misc-attack" + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.117" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:53:44.611-06:00", + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.72" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "intrusion_detection" + ], + "kind": "event", + "original": "\u003c174\u003eMay 23 15:53:44 INFO uvm[0]: {\"msg\":\"ET DROP Dshield Block Listed Source group 1\",\"ipDestination\":\"1.128.0.72\",\"ipSource\":\"175.16.199.172\",\"classtype\":\"misc-attack\",\"signatureId\":2402000,\"sportItype\":43132,\"timeStamp\":\"2023-05-23 15:53:44.611\",\"generatorId\":1,\"protocol\":\"ip\",\"blocked\":true,\"category\":\"dshield\",\"ruleId\":\"reserved_classification__2\",\"class\":\"class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent\",\"dportIcode\":12300,\"timestamp\":1682460344918}", + "outcome": "failure", + "provider": "intrusion_prevention", + "timezone": "America/Denver", + "type": [ + "denied", + "denied" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "direction": "external", + "iana_number": "ip" + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.72", + "175.16.199.172" + ] + }, + "rule": { + "category": "dshield", + "id": "2402000", + "name": "ET DROP Dshield Block Listed Source group 1", + "ruleset": "misc-attack" + }, + "source": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.172" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log new file mode 100755 index 00000000000..f0617ff3338 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log @@ -0,0 +1,20 @@ +<174>May 19 11:52:37 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"Host1","CServerPort":9930,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.21","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"216.160.83.56","remoteAddr":"216.160.83.56","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221863965041,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":59881,"timeStamp":"2023-05-19 11:52:37.962","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":59881,"bypassed":false,"SServerPort":9930,"CServerAddr":"216.160.83.56","tagsString":""} +<174>May 19 11:52:36 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":443,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.6","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"81.2.69.207","remoteAddr":"81.2.69.207","serverIntf":1,"CClientAddr":"10.0.0.6","serverCountry":"US","sessionId":110221863965040,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":45028,"timeStamp":"2023-05-19 11:52:36.589","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":45028,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.207","tagsString":""} +<174>May 19 11:52:35 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"LAPTOP1","CServerPort":443,"protocolName":"UDP","serverLatitude":36.551,"localAddr":"10.0.0.17","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.121","remoteAddr":"67.43.156.121","serverIntf":1,"CClientAddr":"10.0.0.17","serverCountry":"US","sessionId":110221863965038,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":63136,"timeStamp":"2023-05-19 11:52:35.486","serverLongitude":-91.0329,"clientIntf":2,"policyId":1,"SClientPort":63136,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.121","username":"john","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374876,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":33646,"timeStamp":"2023-05-22 16:25:58.947","clientIntf":2,"policyId":1,"SClientPort":33646,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"iPhone","CServerPort":443,"protocolName":"UDP","serverLatitude":37.751,"localAddr":"10.0.0.10","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"81.2.69.192","remoteAddr":"81.2.69.192","serverIntf":1,"CClientAddr":"10.0.0.10","serverCountry":"US","sessionId":110221865374875,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":58377,"timeStamp":"2023-05-22 16:25:58.908","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":58377,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.192","username":"jane","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374869,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":44558,"timeStamp":"2023-05-22 16:25:58.889","clientIntf":2,"policyId":1,"SClientPort":12495,"bypassed":false,"SServerPort":443,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 22 16:25:58 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865374868,"SClientAddr":"89.160.20.112","clientCountry":"XL","policyRuleId":0,"CClientPort":33586,"timeStamp":"2023-05-22 16:25:58.888","clientIntf":2,"policyId":1,"SClientPort":30896,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 23 15:11:14 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771938,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36050,"timeStamp":"2023-05-23 15:11:14.323","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36050,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:13 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771937,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36048,"timeStamp":"2023-05-23 15:11:13.104","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":34178,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:12 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":9930,"protocolName":"UDP","serverLatitude":39.0481,"localAddr":"10.0.0.0","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"175.16.199.25","remoteAddr":"175.16.199.25","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221865771936,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":37004,"timeStamp":"2023-05-23 15:11:12.179","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":37004,"bypassed":false,"SServerPort":9930,"CServerAddr":"175.16.199.25","tagsString":""} +<174>May 23 15:11:11 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771935,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36038,"timeStamp":"2023-05-23 15:11:11.892","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36038,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:10 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771933,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36026,"timeStamp":"2023-05-23 15:11:10.669","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36026,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:09 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771929,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36330,"timeStamp":"2023-05-23 15:11:09.425","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36330,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:08 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771928,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36322,"timeStamp":"2023-05-23 15:11:08.187","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36322,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:06 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771927,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36308,"timeStamp":"2023-05-23 15:11:06.92","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":46905,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:05 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771926,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36296,"timeStamp":"2023-05-23 15:11:05.679","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":29004,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:05 INFO uvm[0]: {"entitled":true,"protocol":17,"hostname":"hp_printer","CServerPort":9930,"protocolName":"UDP","serverLatitude":39.0481,"localAddr":"10.0.0.0","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"175.16.199.25","remoteAddr":"175.16.199.25","serverIntf":1,"CClientAddr":"10.0.0.0","serverCountry":"US","sessionId":110221865771922,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":59969,"timeStamp":"2023-05-23 15:11:05.128","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":59969,"bypassed":false,"SServerPort":9930,"CServerAddr":"175.16.199.25","tagsString":""} +<174>May 23 15:11:04 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771920,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36286,"timeStamp":"2023-05-23 15:11:04.435","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":41723,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} +<174>May 23 15:11:04 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"169.254.169.254","remoteAddr":"169.254.169.254","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"XU","sessionId":110221865771919,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":54494,"timeStamp":"2023-05-23 15:11:04.104","clientIntf":2,"policyId":1,"SClientPort":54494,"bypassed":false,"SServerPort":80,"CServerAddr":"169.254.169.254","tagsString":""} +<174>May 23 15:11:03 INFO uvm[0]: {"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","class":"class com.untangle.uvm.app.SessionEvent","SServerAddr":"67.43.156.1","remoteAddr":"67.43.156.1","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865771918,"SClientAddr":"1.128.0.172","clientCountry":"XL","policyRuleId":0,"CClientPort":36274,"timeStamp":"2023-05-23 15:11:03.201","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":36274,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.1","tagsString":""} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log-expected.json new file mode 100755 index 00000000000..1ea8e94a93a --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-session-event.log-expected.json @@ -0,0 +1,2111 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-19T11:52:37.962-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 209 + }, + "geo": { + "city_name": "Milton", + "continent_name": "North America", + "country_iso_code": "US", + "country_name": "United States", + "location": { + "lat": 47.2513, + "lon": -122.3149 + }, + "region_iso_code": "US-WA", + "region_name": "Washington" + }, + "ip": "216.160.83.56", + "nat": { + "ip": "216.160.83.56", + "port": 9930 + }, + "port": 9930 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221863965041, + "kind": "alert", + "original": "\u003c174\u003eMay 19 11:52:37 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"Host1\",\"CServerPort\":9930,\"protocolName\":\"UDP\",\"serverLatitude\":36.551,\"localAddr\":\"10.0.0.21\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"216.160.83.56\",\"remoteAddr\":\"216.160.83.56\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.0\",\"serverCountry\":\"US\",\"sessionId\":110221863965041,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":59881,\"timeStamp\":\"2023-05-19 11:52:37.962\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":59881,\"bypassed\":false,\"SServerPort\":9930,\"CServerAddr\":\"216.160.83.56\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:6bM335YJXwBVkN/AI+y1a65Xr0U=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "216.160.83.56", + "10.0.0.0", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.0", + "nat": { + "ip": "1.128.0.172", + "port": 59881 + }, + "port": 59881 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-19T11:52:36.589-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.207", + "nat": { + "ip": "81.2.69.207", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221863965040, + "kind": "alert", + "original": "\u003c174\u003eMay 19 11:52:36 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"hp_printer\",\"CServerPort\":443,\"protocolName\":\"UDP\",\"serverLatitude\":36.551,\"localAddr\":\"10.0.0.6\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"81.2.69.207\",\"remoteAddr\":\"81.2.69.207\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.6\",\"serverCountry\":\"US\",\"sessionId\":110221863965040,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":45028,\"timeStamp\":\"2023-05-19 11:52:36.589\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":45028,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.207\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:U9ajD8z3hzPdshHG9OHyRc0J3zA=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.207", + "10.0.0.6", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.6", + "nat": { + "ip": "1.128.0.172", + "port": 45028 + }, + "port": 45028 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-19T11:52:35.486-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.121", + "nat": { + "ip": "67.43.156.121", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221863965038, + "kind": "alert", + "original": "\u003c174\u003eMay 19 11:52:35 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"LAPTOP1\",\"CServerPort\":443,\"protocolName\":\"UDP\",\"serverLatitude\":36.551,\"localAddr\":\"10.0.0.17\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.121\",\"remoteAddr\":\"67.43.156.121\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.17\",\"serverCountry\":\"US\",\"sessionId\":110221863965038,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":63136,\"timeStamp\":\"2023-05-19 11:52:35.486\",\"serverLongitude\":-91.0329,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":63136,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.121\",\"username\":\"john\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:MwCjO1g/k7jHZOGUYQGEDXIuAuI=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.121", + "10.0.0.17", + "1.128.0.172" + ], + "user": [ + "john" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.17", + "nat": { + "ip": "1.128.0.172", + "port": 63136 + }, + "port": 63136 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "john" + } + }, + { + "@timestamp": "2023-05-22T16:25:58.947-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "ip": "169.254.169.254", + "nat": { + "ip": "169.254.169.254", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865374876, + "kind": "alert", + "original": "\u003c174\u003eMay 22 16:25:58 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"169.254.169.254\",\"remoteAddr\":\"169.254.169.254\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"XU\",\"sessionId\":110221865374876,\"SClientAddr\":\"89.160.20.112\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":33646,\"timeStamp\":\"2023-05-22 16:25:58.947\",\"clientIntf\":2,\"policyId\":1,\"SClientPort\":33646,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"169.254.169.254\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:FppMa8wQ8teZLluDNFs9mNrjnao=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "169.254.169.254", + "10.0.0.25", + "89.160.20.112" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "89.160.20.112", + "port": 33646 + }, + "port": 33646 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:25:58.908-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.192", + "nat": { + "ip": "81.2.69.192", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865374875, + "kind": "alert", + "original": "\u003c174\u003eMay 22 16:25:58 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"iPhone\",\"CServerPort\":443,\"protocolName\":\"UDP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.10\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"81.2.69.192\",\"remoteAddr\":\"81.2.69.192\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.10\",\"serverCountry\":\"US\",\"sessionId\":110221865374875,\"SClientAddr\":\"89.160.20.112\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":58377,\"timeStamp\":\"2023-05-22 16:25:58.908\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":58377,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.192\",\"username\":\"jane\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:MIovQCFZ6yRNe6zjojk22BuU8U4=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.192", + "10.0.0.10", + "89.160.20.112" + ], + "user": [ + "jane" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.10", + "nat": { + "ip": "89.160.20.112", + "port": 58377 + }, + "port": 58377 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "user": { + "name": "jane" + } + }, + { + "@timestamp": "2023-05-22T16:25:58.889-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "ip": "169.254.169.254", + "nat": { + "ip": "169.254.169.254", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865374869, + "kind": "alert", + "original": "\u003c174\u003eMay 22 16:25:58 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"169.254.169.254\",\"remoteAddr\":\"169.254.169.254\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"XU\",\"sessionId\":110221865374869,\"SClientAddr\":\"89.160.20.112\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":44558,\"timeStamp\":\"2023-05-22 16:25:58.889\",\"clientIntf\":2,\"policyId\":1,\"SClientPort\":12495,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"169.254.169.254\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:0h9fasHbrKr+Z9oC3+7yFb7GVA0=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "169.254.169.254", + "10.0.0.25", + "89.160.20.112" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "89.160.20.112", + "port": 12495 + }, + "port": 44558 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:25:58.888-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "ip": "169.254.169.254", + "nat": { + "ip": "169.254.169.254", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865374868, + "kind": "alert", + "original": "\u003c174\u003eMay 22 16:25:58 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"169.254.169.254\",\"remoteAddr\":\"169.254.169.254\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"XU\",\"sessionId\":110221865374868,\"SClientAddr\":\"89.160.20.112\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":33586,\"timeStamp\":\"2023-05-22 16:25:58.888\",\"clientIntf\":2,\"policyId\":1,\"SClientPort\":30896,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"169.254.169.254\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:7uHKCCcj3z9bAx37peOtQfKxJuc=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "169.254.169.254", + "10.0.0.25", + "89.160.20.112" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "89.160.20.112", + "port": 30896 + }, + "port": 33586 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:14.323-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771938, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:14 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771938,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36050,\"timeStamp\":\"2023-05-23 15:11:14.323\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36050,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:431xNiKMAZ7S69xe3B7F3xpDU98=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36050 + }, + "port": 36050 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:13.104-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771937, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:13 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771937,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36048,\"timeStamp\":\"2023-05-23 15:11:13.104\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":34178,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:hGCQ2cq0Cf2c0jzld4bh4vwyDx0=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 34178 + }, + "port": 36048 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:12.179-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.25", + "nat": { + "ip": "175.16.199.25", + "port": 9930 + }, + "port": 9930 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771936, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:12 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"hp_printer\",\"CServerPort\":9930,\"protocolName\":\"UDP\",\"serverLatitude\":39.0481,\"localAddr\":\"10.0.0.0\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"175.16.199.25\",\"remoteAddr\":\"175.16.199.25\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.0\",\"serverCountry\":\"US\",\"sessionId\":110221865771936,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":37004,\"timeStamp\":\"2023-05-23 15:11:12.179\",\"serverLongitude\":-77.4728,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":37004,\"bypassed\":false,\"SServerPort\":9930,\"CServerAddr\":\"175.16.199.25\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:YMQP56nqnrX4Mayp8jCBqyZl9M4=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "175.16.199.25", + "10.0.0.0", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.0", + "nat": { + "ip": "1.128.0.172", + "port": 37004 + }, + "port": 37004 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:11.892-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771935, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:11 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771935,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36038,\"timeStamp\":\"2023-05-23 15:11:11.892\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36038,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:DbidgTjU+GK85yXgn3llK6Ko5N8=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36038 + }, + "port": 36038 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:10.669-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771933, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:10 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771933,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36026,\"timeStamp\":\"2023-05-23 15:11:10.669\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36026,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:WoTrVDydpdmc1W9nM2+u3OHUQlc=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36026 + }, + "port": 36026 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:09.425-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771929, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:09 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771929,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36330,\"timeStamp\":\"2023-05-23 15:11:09.425\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36330,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:msg77EExzdSgM4J//bbEuYRjoYA=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36330 + }, + "port": 36330 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:08.187-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771928, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:08 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771928,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36322,\"timeStamp\":\"2023-05-23 15:11:08.187\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36322,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:8U2yQ04esaMNLa1ZpFhiWGAo0jI=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36322 + }, + "port": 36322 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:06.920-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771927, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:06 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771927,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36308,\"timeStamp\":\"2023-05-23 15:11:06.92\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":46905,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:zk3jG+VA4sSqkIfeGM4Od2XcLws=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 46905 + }, + "port": 36308 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:05.679-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771926, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:05 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771926,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36296,\"timeStamp\":\"2023-05-23 15:11:05.679\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":29004,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:+ZGg+mdXj3/y0O9PWUiJTT8k+iM=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 29004 + }, + "port": 36296 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:05.128-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.25", + "nat": { + "ip": "175.16.199.25", + "port": 9930 + }, + "port": 9930 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771922, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:05 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"hp_printer\",\"CServerPort\":9930,\"protocolName\":\"UDP\",\"serverLatitude\":39.0481,\"localAddr\":\"10.0.0.0\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"175.16.199.25\",\"remoteAddr\":\"175.16.199.25\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.0\",\"serverCountry\":\"US\",\"sessionId\":110221865771922,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":59969,\"timeStamp\":\"2023-05-23 15:11:05.128\",\"serverLongitude\":-77.4728,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":59969,\"bypassed\":false,\"SServerPort\":9930,\"CServerAddr\":\"175.16.199.25\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:FzJ2aCor/14r+1lP2/j6TbTynlE=", + "direction": "outbound", + "iana_number": "17", + "transport": "UDP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "175.16.199.25", + "10.0.0.0", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.0", + "nat": { + "ip": "1.128.0.172", + "port": 59969 + }, + "port": 59969 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:04.435-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771920, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:04 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771920,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36286,\"timeStamp\":\"2023-05-23 15:11:04.435\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":41723,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:x67IOlyRDzd1S5on65qHdKWfXjc=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 41723 + }, + "port": 36286 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:04.104-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "ip": "169.254.169.254", + "nat": { + "ip": "169.254.169.254", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771919, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:04 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"169.254.169.254\",\"remoteAddr\":\"169.254.169.254\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"XU\",\"sessionId\":110221865771919,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":54494,\"timeStamp\":\"2023-05-23 15:11:04.104\",\"clientIntf\":2,\"policyId\":1,\"SClientPort\":54494,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"169.254.169.254\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:cHHQs+x5cYnYzQ1GADS6WplcNZ8=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "169.254.169.254", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 54494 + }, + "port": 54494 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:11:03.201-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.1", + "nat": { + "ip": "67.43.156.1", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "session" + ], + "id": 110221865771918, + "kind": "alert", + "original": "\u003c174\u003eMay 23 15:11:03 INFO uvm[0]: {\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"67.43.156.1\",\"remoteAddr\":\"67.43.156.1\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865771918,\"SClientAddr\":\"1.128.0.172\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":36274,\"timeStamp\":\"2023-05-23 15:11:03.201\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":36274,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.1\",\"tagsString\":\"\"}", + "provider": "session_event", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:nm4n0n5YaKG9bVlrHwlQH1UtWLk=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.1", + "10.0.0.25", + "1.128.0.172" + ] + }, + "rule": { + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "1.128.0.172", + "port": 36274 + }, + "port": 36274 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log new file mode 100755 index 00000000000..4f84f610f9d --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log @@ -0,0 +1,20 @@ +<174>May 22 16:35:47 INFO uvm[0]: {"diskFreePercent":0.7586661,"cpuSystem":0.0017623364,"diskUsedPercent":0.24133387,"diskTotal":30109741056,"diskFree":22843240448,"cpuUser":0.25352466,"memUsedPercent":0.3411992,"diskUsed":7266500608,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717704192,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.99,"memBuffers":0,"activeHosts":18,"load1":0.96,"timeStamp":"2023-05-22 16:35:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407524864,"memFreePercent":0.6588008,"memCache":160874496} +<174>May 22 16:34:47 INFO uvm[0]: {"diskFreePercent":0.75867105,"cpuSystem":0.0012578616,"diskUsedPercent":0.24132898,"diskTotal":30109741056,"diskFree":22843387904,"cpuUser":0.25383648,"memUsedPercent":0.3418982,"diskUsed":7266353152,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2714820608,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:34:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1410408448,"memFreePercent":0.6581018,"memCache":160874496} +<174>May 22 16:33:47 INFO uvm[0]: {"diskFreePercent":0.75867766,"cpuSystem":0.0017596782,"diskUsedPercent":0.24132231,"diskTotal":30109741056,"diskFree":22843588608,"cpuUser":0.25364506,"memUsedPercent":0.34161127,"diskUsed":7266152448,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2716004352,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:33:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1409224704,"memFreePercent":0.65838873,"memCache":160874496} +<174>May 22 16:32:47 INFO uvm[0]: {"diskFreePercent":0.7586854,"cpuSystem":0.001759236,"diskUsedPercent":0.24131456,"diskTotal":30109741056,"diskFree":22843822080,"cpuUser":0.25307867,"memUsedPercent":0.34237581,"diskUsed":7265918976,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2712850432,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:32:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1412378624,"memFreePercent":0.6576242,"memCache":160874496} +<174>May 22 16:31:47 INFO uvm[0]: {"diskFreePercent":0.75869167,"cpuSystem":0.0017605633,"diskUsedPercent":0.2413083,"diskTotal":30109741056,"diskFree":22844010496,"cpuUser":0.25251508,"memUsedPercent":0.34223184,"diskUsed":7265730560,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2713444352,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:31:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1411784704,"memFreePercent":0.6577682,"memCache":160874496} +<174>May 22 16:30:47 INFO uvm[0]: {"diskFreePercent":0.75869834,"cpuSystem":0.0015064022,"diskUsedPercent":0.24130164,"diskTotal":30109741056,"diskFree":22844211200,"cpuUser":0.25282452,"memUsedPercent":0.34295666,"diskUsed":7265529856,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2710454272,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:30:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1414774784,"memFreePercent":0.65704334,"memCache":160874496} +<174>May 22 16:29:47 INFO uvm[0]: {"diskFreePercent":0.7587046,"cpuSystem":0.0012578616,"diskUsedPercent":0.24129538,"diskTotal":30109741056,"diskFree":22844399616,"cpuUser":0.25308177,"memUsedPercent":0.34260815,"diskUsed":7265341440,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2711891968,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:29:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1413337088,"memFreePercent":0.65739185,"memCache":160874496} +<174>May 22 16:28:47 INFO uvm[0]: {"diskFreePercent":0.75871116,"cpuSystem":0.0012559658,"diskUsedPercent":0.24128886,"diskTotal":30109741056,"diskFree":22844596224,"cpuUser":0.2534539,"memUsedPercent":0.3425863,"diskUsed":7265144832,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2711982080,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1,"timeStamp":"2023-05-22 16:28:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1413246976,"memFreePercent":0.6574137,"memCache":160874496} +<174>May 22 16:27:47 INFO uvm[0]: {"diskFreePercent":0.7587205,"cpuSystem":0.0010062893,"diskUsedPercent":0.24127947,"diskTotal":30109741056,"diskFree":22844878848,"cpuUser":0.25257862,"memUsedPercent":0.34490177,"diskUsed":7264862208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2702430208,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.03,"memBuffers":0,"activeHosts":18,"load1":1.02,"timeStamp":"2023-05-22 16:27:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1422798848,"memFreePercent":0.6550982,"memCache":160874496} +<174>May 22 16:26:47 INFO uvm[0]: {"diskFreePercent":0.7587325,"cpuSystem":0.001507159,"diskUsedPercent":0.24126749,"diskTotal":30109741056,"diskFree":22845239296,"cpuUser":0.25872895,"memUsedPercent":0.34609327,"diskUsed":7264501760,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2697515008,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.04,"memBuffers":0,"activeHosts":18,"load1":1.06,"timeStamp":"2023-05-22 16:26:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1427714048,"memFreePercent":0.6539067,"memCache":160870400} +<174>May 22 16:25:47 INFO uvm[0]: {"diskFreePercent":0.75875455,"cpuSystem":0.002264151,"diskUsedPercent":0.24124545,"diskTotal":30109741056,"diskFree":22845902848,"cpuUser":0.2573585,"memUsedPercent":0.34592348,"diskUsed":7263838208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2698215424,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.03,"memBuffers":0,"activeHosts":18,"load1":1.07,"timeStamp":"2023-05-22 16:25:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1427013632,"memFreePercent":0.6540765,"memCache":160870400} +<174>May 22 16:24:47 INFO uvm[0]: {"diskFreePercent":0.7587838,"cpuSystem":0.0022618747,"diskUsedPercent":0.24121621,"diskTotal":30109741056,"diskFree":22846783488,"cpuUser":0.25559187,"memUsedPercent":0.34654307,"diskUsed":7262957568,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2695659520,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.01,"memBuffers":0,"activeHosts":18,"load1":1.02,"timeStamp":"2023-05-22 16:24:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1429569536,"memFreePercent":0.6534569,"memCache":160870400} +<174>May 22 16:23:47 INFO uvm[0]: {"diskFreePercent":0.7588185,"cpuSystem":0.010574019,"diskUsedPercent":0.24118152,"diskTotal":30109741056,"diskFree":22847827968,"cpuUser":0.23690836,"memUsedPercent":0.3186948,"diskUsed":7261913088,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2810540032,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1.05,"timeStamp":"2023-05-22 16:23:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1314689024,"memFreePercent":0.6813052,"memCache":160866304} +<174>May 22 16:22:47 INFO uvm[0]: {"diskFreePercent":0.7588285,"cpuSystem":0.010340479,"diskUsedPercent":0.24117145,"diskTotal":30109741056,"diskFree":22848131072,"cpuUser":0.2406053,"memUsedPercent":0.34309766,"diskUsed":7261609984,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.01,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2709872640,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.02,"memBuffers":0,"activeHosts":18,"load1":1.14,"timeStamp":"2023-05-22 16:22:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1415356416,"memFreePercent":0.6569024,"memCache":160866304} +<174>May 22 16:21:47 INFO uvm[0]: {"diskFreePercent":0.758837,"cpuSystem":0.009329299,"diskUsedPercent":0.24116302,"diskTotal":30109741056,"diskFree":22848385024,"cpuUser":0.2397882,"memUsedPercent":0.34130543,"diskUsed":7261356032,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717265920,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.99,"memBuffers":0,"activeHosts":18,"load1":0.99,"timeStamp":"2023-05-22 16:21:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407963136,"memFreePercent":0.65869457,"memCache":160866304} +<174>May 22 16:20:47 INFO uvm[0]: {"diskFreePercent":0.75884444,"cpuSystem":0.0017650025,"diskUsedPercent":0.24115553,"diskTotal":30109741056,"diskFree":22848610304,"cpuUser":0.2561775,"memUsedPercent":0.34125578,"diskUsed":7261130752,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717470720,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.98,"memBuffers":0,"activeHosts":18,"load1":0.98,"timeStamp":"2023-05-22 16:20:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407758336,"memFreePercent":0.6587442,"memCache":160866304} +<174>May 22 16:19:47 INFO uvm[0]: {"diskFreePercent":0.75885034,"cpuSystem":0.0010070493,"diskUsedPercent":0.2411497,"diskTotal":30109741056,"diskFree":22848786432,"cpuUser":0.2540282,"memUsedPercent":0.3412399,"diskUsed":7260954624,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717536256,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.97,"memBuffers":0,"activeHosts":18,"load1":0.93,"timeStamp":"2023-05-22 16:19:47.411","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407692800,"memFreePercent":0.6587601,"memCache":160866304} +<174>May 22 16:18:47 INFO uvm[0]: {"diskFreePercent":0.7588566,"cpuSystem":0.0015082957,"diskUsedPercent":0.24114344,"diskTotal":30109741056,"diskFree":22848974848,"cpuUser":0.25389645,"memUsedPercent":0.341224,"diskUsed":7260766208,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717601792,"memTotal":4125229056,"swapTotal":3071275008,"load5":0.98,"memBuffers":0,"activeHosts":18,"load1":0.92,"timeStamp":"2023-05-22 16:18:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407627264,"memFreePercent":0.658776,"memCache":160866304} +<174>May 22 16:17:47 INFO uvm[0]: {"diskFreePercent":0.7588654,"cpuSystem":0.0012547051,"diskUsedPercent":0.24113458,"diskTotal":30109741056,"diskFree":22849241088,"cpuUser":0.25269762,"memUsedPercent":0.34119326,"diskUsed":7260499968,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1,"swapUsedPercent":0.062393393,"swapFree":2879647744,"memFree":2717728768,"memTotal":4125229056,"swapTotal":3071275008,"load5":1,"memBuffers":0,"activeHosts":18,"load1":0.95,"timeStamp":"2023-05-22 16:17:47.41","swapUsed":191627264,"swapFreePercent":0.93760663,"memUsed":1407500288,"memFreePercent":0.65880674,"memCache":160866304} +<174>May 23 16:16:47 INFO uvm[0]: {"diskFreePercent":0.7561659,"cpuSystem":0.005280362,"diskUsedPercent":0.24383408,"diskTotal":30109741056,"diskFree":22767960064,"cpuUser":0.24189088,"memUsedPercent":0.34435666,"diskUsed":7341780992,"class":"class com.untangle.uvm.logging.SystemStatEvent","load15":1.02,"swapUsedPercent":0.062222686,"swapFree":2880172032,"memFree":2704678912,"memTotal":4125229056,"swapTotal":3071275008,"load5":1.06,"memBuffers":0,"activeHosts":17,"load1":1.11,"timeStamp":"2023-05-23 15:09:47.41","swapUsed":191102976,"swapFreePercent":0.93777734,"memUsed":1420550144,"memFreePercent":0.65564334,"memCache":159657984} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log-expected.json new file mode 100755 index 00000000000..5e9957ba3f3 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-system-stats.log-expected.json @@ -0,0 +1,2084 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-22T16:35:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.96, + "15": 1, + "5": 0.99 + }, + "system": { + "pct": 0.0017623364 + }, + "total": { + "pct": 0.2552869964 + }, + "user": { + "pct": 0.25352466 + } + }, + "disk": { + "free": { + "bytes": 22843240448, + "pct": 0.7586661 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7266500608, + "pct": 0.24133387 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2717704192, + "pct": 0.6588008 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407524864, + "pct": 0.3411992 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:35:47 INFO uvm[0]: {\"diskFreePercent\":0.7586661,\"cpuSystem\":0.0017623364,\"diskUsedPercent\":0.24133387,\"diskTotal\":30109741056,\"diskFree\":22843240448,\"cpuUser\":0.25352466,\"memUsedPercent\":0.3411992,\"diskUsed\":7266500608,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717704192,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":0.99,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.96,\"timeStamp\":\"2023-05-22 16:35:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407524864,\"memFreePercent\":0.6588008,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:34:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1 + }, + "system": { + "pct": 0.0012578616 + }, + "total": { + "pct": 0.2550943416 + }, + "user": { + "pct": 0.25383648 + } + }, + "disk": { + "free": { + "bytes": 22843387904, + "pct": 0.75867105 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7266353152, + "pct": 0.24132898 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2714820608, + "pct": 0.6581018 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1410408448, + "pct": 0.3418982 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:34:47 INFO uvm[0]: {\"diskFreePercent\":0.75867105,\"cpuSystem\":0.0012578616,\"diskUsedPercent\":0.24132898,\"diskTotal\":30109741056,\"diskFree\":22843387904,\"cpuUser\":0.25383648,\"memUsedPercent\":0.3418982,\"diskUsed\":7266353152,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2714820608,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:34:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1410408448,\"memFreePercent\":0.6581018,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:33:47.411-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1 + }, + "system": { + "pct": 0.0017596782 + }, + "total": { + "pct": 0.2554047382 + }, + "user": { + "pct": 0.25364506 + } + }, + "disk": { + "free": { + "bytes": 22843588608, + "pct": 0.75867766 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7266152448, + "pct": 0.24132231 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2716004352, + "pct": 0.65838873 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1409224704, + "pct": 0.34161127 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:33:47 INFO uvm[0]: {\"diskFreePercent\":0.75867766,\"cpuSystem\":0.0017596782,\"diskUsedPercent\":0.24132231,\"diskTotal\":30109741056,\"diskFree\":22843588608,\"cpuUser\":0.25364506,\"memUsedPercent\":0.34161127,\"diskUsed\":7266152448,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2716004352,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:33:47.411\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1409224704,\"memFreePercent\":0.65838873,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:32:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1 + }, + "system": { + "pct": 0.001759236 + }, + "total": { + "pct": 0.254837906 + }, + "user": { + "pct": 0.25307867 + } + }, + "disk": { + "free": { + "bytes": 22843822080, + "pct": 0.7586854 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7265918976, + "pct": 0.24131456 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2712850432, + "pct": 0.6576242 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1412378624, + "pct": 0.34237581 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:32:47 INFO uvm[0]: {\"diskFreePercent\":0.7586854,\"cpuSystem\":0.001759236,\"diskUsedPercent\":0.24131456,\"diskTotal\":30109741056,\"diskFree\":22843822080,\"cpuUser\":0.25307867,\"memUsedPercent\":0.34237581,\"diskUsed\":7265918976,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2712850432,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:32:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1412378624,\"memFreePercent\":0.6576242,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:31:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1.01 + }, + "system": { + "pct": 0.0017605633 + }, + "total": { + "pct": 0.2542756433 + }, + "user": { + "pct": 0.25251508 + } + }, + "disk": { + "free": { + "bytes": 22844010496, + "pct": 0.75869167 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7265730560, + "pct": 0.2413083 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2713444352, + "pct": 0.6577682 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1411784704, + "pct": 0.34223184 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:31:47 INFO uvm[0]: {\"diskFreePercent\":0.75869167,\"cpuSystem\":0.0017605633,\"diskUsedPercent\":0.2413083,\"diskTotal\":30109741056,\"diskFree\":22844010496,\"cpuUser\":0.25251508,\"memUsedPercent\":0.34223184,\"diskUsed\":7265730560,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2713444352,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.01,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:31:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1411784704,\"memFreePercent\":0.6577682,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:30:47.411-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1.01 + }, + "system": { + "pct": 0.0015064022 + }, + "total": { + "pct": 0.2543309222 + }, + "user": { + "pct": 0.25282452 + } + }, + "disk": { + "free": { + "bytes": 22844211200, + "pct": 0.75869834 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7265529856, + "pct": 0.24130164 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2710454272, + "pct": 0.65704334 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1414774784, + "pct": 0.34295666 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:30:47 INFO uvm[0]: {\"diskFreePercent\":0.75869834,\"cpuSystem\":0.0015064022,\"diskUsedPercent\":0.24130164,\"diskTotal\":30109741056,\"diskFree\":22844211200,\"cpuUser\":0.25282452,\"memUsedPercent\":0.34295666,\"diskUsed\":7265529856,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2710454272,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.01,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:30:47.411\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1414774784,\"memFreePercent\":0.65704334,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:29:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1.02 + }, + "system": { + "pct": 0.0012578616 + }, + "total": { + "pct": 0.2543396316 + }, + "user": { + "pct": 0.25308177 + } + }, + "disk": { + "free": { + "bytes": 22844399616, + "pct": 0.7587046 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7265341440, + "pct": 0.24129538 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2711891968, + "pct": 0.65739185 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1413337088, + "pct": 0.34260815 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:29:47 INFO uvm[0]: {\"diskFreePercent\":0.7587046,\"cpuSystem\":0.0012578616,\"diskUsedPercent\":0.24129538,\"diskTotal\":30109741056,\"diskFree\":22844399616,\"cpuUser\":0.25308177,\"memUsedPercent\":0.34260815,\"diskUsed\":7265341440,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2711891968,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.02,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:29:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1413337088,\"memFreePercent\":0.65739185,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:28:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1, + "15": 1, + "5": 1.02 + }, + "system": { + "pct": 0.0012559658 + }, + "total": { + "pct": 0.2547098658 + }, + "user": { + "pct": 0.2534539 + } + }, + "disk": { + "free": { + "bytes": 22844596224, + "pct": 0.75871116 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7265144832, + "pct": 0.24128886 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2711982080, + "pct": 0.6574137 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1413246976, + "pct": 0.3425863 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:28:47 INFO uvm[0]: {\"diskFreePercent\":0.75871116,\"cpuSystem\":0.0012559658,\"diskUsedPercent\":0.24128886,\"diskTotal\":30109741056,\"diskFree\":22844596224,\"cpuUser\":0.2534539,\"memUsedPercent\":0.3425863,\"diskUsed\":7265144832,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2711982080,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.02,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1,\"timeStamp\":\"2023-05-22 16:28:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1413246976,\"memFreePercent\":0.6574137,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:27:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.02, + "15": 1, + "5": 1.03 + }, + "system": { + "pct": 0.0010062893 + }, + "total": { + "pct": 0.2535849093 + }, + "user": { + "pct": 0.25257862 + } + }, + "disk": { + "free": { + "bytes": 22844878848, + "pct": 0.7587205 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7264862208, + "pct": 0.24127947 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160874496 + }, + "free": { + "bytes": 2702430208, + "pct": 0.6550982 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1422798848, + "pct": 0.34490177 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:27:47 INFO uvm[0]: {\"diskFreePercent\":0.7587205,\"cpuSystem\":0.0010062893,\"diskUsedPercent\":0.24127947,\"diskTotal\":30109741056,\"diskFree\":22844878848,\"cpuUser\":0.25257862,\"memUsedPercent\":0.34490177,\"diskUsed\":7264862208,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2702430208,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.03,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.02,\"timeStamp\":\"2023-05-22 16:27:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1422798848,\"memFreePercent\":0.6550982,\"memCache\":160874496}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:26:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.06, + "15": 1.01, + "5": 1.04 + }, + "system": { + "pct": 0.001507159 + }, + "total": { + "pct": 0.260236109 + }, + "user": { + "pct": 0.25872895 + } + }, + "disk": { + "free": { + "bytes": 22845239296, + "pct": 0.7587325 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7264501760, + "pct": 0.24126749 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160870400 + }, + "free": { + "bytes": 2697515008, + "pct": 0.6539067 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1427714048, + "pct": 0.34609327 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:26:47 INFO uvm[0]: {\"diskFreePercent\":0.7587325,\"cpuSystem\":0.001507159,\"diskUsedPercent\":0.24126749,\"diskTotal\":30109741056,\"diskFree\":22845239296,\"cpuUser\":0.25872895,\"memUsedPercent\":0.34609327,\"diskUsed\":7264501760,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1.01,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2697515008,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.04,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.06,\"timeStamp\":\"2023-05-22 16:26:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1427714048,\"memFreePercent\":0.6539067,\"memCache\":160870400}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:25:47.411-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.07, + "15": 1.01, + "5": 1.03 + }, + "system": { + "pct": 0.002264151 + }, + "total": { + "pct": 0.259622651 + }, + "user": { + "pct": 0.2573585 + } + }, + "disk": { + "free": { + "bytes": 22845902848, + "pct": 0.75875455 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7263838208, + "pct": 0.24124545 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160870400 + }, + "free": { + "bytes": 2698215424, + "pct": 0.6540765 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1427013632, + "pct": 0.34592348 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:25:47 INFO uvm[0]: {\"diskFreePercent\":0.75875455,\"cpuSystem\":0.002264151,\"diskUsedPercent\":0.24124545,\"diskTotal\":30109741056,\"diskFree\":22845902848,\"cpuUser\":0.2573585,\"memUsedPercent\":0.34592348,\"diskUsed\":7263838208,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1.01,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2698215424,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.03,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.07,\"timeStamp\":\"2023-05-22 16:25:47.411\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1427013632,\"memFreePercent\":0.6540765,\"memCache\":160870400}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:24:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.02, + "15": 1, + "5": 1.01 + }, + "system": { + "pct": 0.0022618747 + }, + "total": { + "pct": 0.2578537447 + }, + "user": { + "pct": 0.25559187 + } + }, + "disk": { + "free": { + "bytes": 22846783488, + "pct": 0.7587838 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7262957568, + "pct": 0.24121621 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160870400 + }, + "free": { + "bytes": 2695659520, + "pct": 0.6534569 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1429569536, + "pct": 0.34654307 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:24:47 INFO uvm[0]: {\"diskFreePercent\":0.7587838,\"cpuSystem\":0.0022618747,\"diskUsedPercent\":0.24121621,\"diskTotal\":30109741056,\"diskFree\":22846783488,\"cpuUser\":0.25559187,\"memUsedPercent\":0.34654307,\"diskUsed\":7262957568,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2695659520,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.01,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.02,\"timeStamp\":\"2023-05-22 16:24:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1429569536,\"memFreePercent\":0.6534569,\"memCache\":160870400}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:23:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.05, + "15": 1, + "5": 1.02 + }, + "system": { + "pct": 0.010574019 + }, + "total": { + "pct": 0.247482379 + }, + "user": { + "pct": 0.23690836 + } + }, + "disk": { + "free": { + "bytes": 22847827968, + "pct": 0.7588185 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7261913088, + "pct": 0.24118152 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2810540032, + "pct": 0.6813052 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1314689024, + "pct": 0.3186948 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:23:47 INFO uvm[0]: {\"diskFreePercent\":0.7588185,\"cpuSystem\":0.010574019,\"diskUsedPercent\":0.24118152,\"diskTotal\":30109741056,\"diskFree\":22847827968,\"cpuUser\":0.23690836,\"memUsedPercent\":0.3186948,\"diskUsed\":7261913088,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2810540032,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.02,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.05,\"timeStamp\":\"2023-05-22 16:23:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1314689024,\"memFreePercent\":0.6813052,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:22:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.14, + "15": 1.01, + "5": 1.02 + }, + "system": { + "pct": 0.010340479 + }, + "total": { + "pct": 0.250945779 + }, + "user": { + "pct": 0.2406053 + } + }, + "disk": { + "free": { + "bytes": 22848131072, + "pct": 0.7588285 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7261609984, + "pct": 0.24117145 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2709872640, + "pct": 0.6569024 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1415356416, + "pct": 0.34309766 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:22:47 INFO uvm[0]: {\"diskFreePercent\":0.7588285,\"cpuSystem\":0.010340479,\"diskUsedPercent\":0.24117145,\"diskTotal\":30109741056,\"diskFree\":22848131072,\"cpuUser\":0.2406053,\"memUsedPercent\":0.34309766,\"diskUsed\":7261609984,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1.01,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2709872640,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.02,\"memBuffers\":0,\"activeHosts\":18,\"load1\":1.14,\"timeStamp\":\"2023-05-22 16:22:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1415356416,\"memFreePercent\":0.6569024,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:21:47.411-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.99, + "15": 1, + "5": 0.99 + }, + "system": { + "pct": 0.009329299 + }, + "total": { + "pct": 0.24911749900000002 + }, + "user": { + "pct": 0.2397882 + } + }, + "disk": { + "free": { + "bytes": 22848385024, + "pct": 0.758837 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7261356032, + "pct": 0.24116302 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2717265920, + "pct": 0.65869457 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407963136, + "pct": 0.34130543 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:21:47 INFO uvm[0]: {\"diskFreePercent\":0.758837,\"cpuSystem\":0.009329299,\"diskUsedPercent\":0.24116302,\"diskTotal\":30109741056,\"diskFree\":22848385024,\"cpuUser\":0.2397882,\"memUsedPercent\":0.34130543,\"diskUsed\":7261356032,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717265920,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":0.99,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.99,\"timeStamp\":\"2023-05-22 16:21:47.411\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407963136,\"memFreePercent\":0.65869457,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:20:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.98, + "15": 1, + "5": 0.98 + }, + "system": { + "pct": 0.0017650025 + }, + "total": { + "pct": 0.2579425025 + }, + "user": { + "pct": 0.2561775 + } + }, + "disk": { + "free": { + "bytes": 22848610304, + "pct": 0.75884444 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7261130752, + "pct": 0.24115553 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2717470720, + "pct": 0.6587442 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407758336, + "pct": 0.34125578 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:20:47 INFO uvm[0]: {\"diskFreePercent\":0.75884444,\"cpuSystem\":0.0017650025,\"diskUsedPercent\":0.24115553,\"diskTotal\":30109741056,\"diskFree\":22848610304,\"cpuUser\":0.2561775,\"memUsedPercent\":0.34125578,\"diskUsed\":7261130752,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717470720,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":0.98,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.98,\"timeStamp\":\"2023-05-22 16:20:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407758336,\"memFreePercent\":0.6587442,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:19:47.411-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.93, + "15": 1, + "5": 0.97 + }, + "system": { + "pct": 0.0010070493 + }, + "total": { + "pct": 0.2550352493 + }, + "user": { + "pct": 0.2540282 + } + }, + "disk": { + "free": { + "bytes": 22848786432, + "pct": 0.75885034 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7260954624, + "pct": 0.2411497 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2717536256, + "pct": 0.6587601 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407692800, + "pct": 0.3412399 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:19:47 INFO uvm[0]: {\"diskFreePercent\":0.75885034,\"cpuSystem\":0.0010070493,\"diskUsedPercent\":0.2411497,\"diskTotal\":30109741056,\"diskFree\":22848786432,\"cpuUser\":0.2540282,\"memUsedPercent\":0.3412399,\"diskUsed\":7260954624,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717536256,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":0.97,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.93,\"timeStamp\":\"2023-05-22 16:19:47.411\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407692800,\"memFreePercent\":0.6587601,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:18:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.92, + "15": 1, + "5": 0.98 + }, + "system": { + "pct": 0.0015082957 + }, + "total": { + "pct": 0.2554047457 + }, + "user": { + "pct": 0.25389645 + } + }, + "disk": { + "free": { + "bytes": 22848974848, + "pct": 0.7588566 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7260766208, + "pct": 0.24114344 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2717601792, + "pct": 0.658776 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407627264, + "pct": 0.341224 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:18:47 INFO uvm[0]: {\"diskFreePercent\":0.7588566,\"cpuSystem\":0.0015082957,\"diskUsedPercent\":0.24114344,\"diskTotal\":30109741056,\"diskFree\":22848974848,\"cpuUser\":0.25389645,\"memUsedPercent\":0.341224,\"diskUsed\":7260766208,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717601792,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":0.98,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.92,\"timeStamp\":\"2023-05-22 16:18:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407627264,\"memFreePercent\":0.658776,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-22T16:17:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 0.95, + "15": 1, + "5": 1 + }, + "system": { + "pct": 0.0012547051 + }, + "total": { + "pct": 0.2539523251 + }, + "user": { + "pct": 0.25269762 + } + }, + "disk": { + "free": { + "bytes": 22849241088, + "pct": 0.7588654 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7260499968, + "pct": 0.24113458 + } + }, + "hosts": { + "active": 18 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 160866304 + }, + "free": { + "bytes": 2717728768, + "pct": 0.65880674 + }, + "swap": { + "free": { + "bytes": 2879647744, + "pct": 0.93760663 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191627264, + "pct": 0.062393393 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1407500288, + "pct": 0.34119326 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 22 16:17:47 INFO uvm[0]: {\"diskFreePercent\":0.7588654,\"cpuSystem\":0.0012547051,\"diskUsedPercent\":0.24113458,\"diskTotal\":30109741056,\"diskFree\":22849241088,\"cpuUser\":0.25269762,\"memUsedPercent\":0.34119326,\"diskUsed\":7260499968,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1,\"swapUsedPercent\":0.062393393,\"swapFree\":2879647744,\"memFree\":2717728768,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1,\"memBuffers\":0,\"activeHosts\":18,\"load1\":0.95,\"timeStamp\":\"2023-05-22 16:17:47.41\",\"swapUsed\":191627264,\"swapFreePercent\":0.93760663,\"memUsed\":1407500288,\"memFreePercent\":0.65880674,\"memCache\":160866304}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + }, + { + "@timestamp": "2023-05-23T15:09:47.410-06:00", + "arista": { + "cpu": { + "load": { + "1": 1.11, + "15": 1.02, + "5": 1.06 + }, + "system": { + "pct": 0.005280362 + }, + "total": { + "pct": 0.247171242 + }, + "user": { + "pct": 0.24189088 + } + }, + "disk": { + "free": { + "bytes": 22767960064, + "pct": 0.7561659 + }, + "total": { + "bytes": 30109741056 + }, + "used": { + "bytes": 7341780992, + "pct": 0.24383408 + } + }, + "hosts": { + "active": 17 + }, + "memory": { + "buffers": 0, + "cache": { + "bytes": 159657984 + }, + "free": { + "bytes": 2704678912, + "pct": 0.65564334 + }, + "swap": { + "free": { + "bytes": 2880172032, + "pct": 0.93777734 + }, + "total": { + "bytes": 3071275008 + }, + "used": { + "bytes": 191102976, + "pct": 0.062222686 + } + }, + "total": { + "bytes": 4125229056 + }, + "used": { + "bytes": 1420550144, + "pct": 0.34435666 + } + } + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "kind": "metric", + "original": "\u003c174\u003eMay 23 16:16:47 INFO uvm[0]: {\"diskFreePercent\":0.7561659,\"cpuSystem\":0.005280362,\"diskUsedPercent\":0.24383408,\"diskTotal\":30109741056,\"diskFree\":22767960064,\"cpuUser\":0.24189088,\"memUsedPercent\":0.34435666,\"diskUsed\":7341780992,\"class\":\"class com.untangle.uvm.logging.SystemStatEvent\",\"load15\":1.02,\"swapUsedPercent\":0.062222686,\"swapFree\":2880172032,\"memFree\":2704678912,\"memTotal\":4125229056,\"swapTotal\":3071275008,\"load5\":1.06,\"memBuffers\":0,\"activeHosts\":17,\"load1\":1.11,\"timeStamp\":\"2023-05-23 15:09:47.41\",\"swapUsed\":191102976,\"swapFreePercent\":0.93777734,\"memUsed\":1420550144,\"memFreePercent\":0.65564334,\"memCache\":159657984}", + "provider": "system_stats", + "timezone": "America/Denver", + "type": [ + "info" + ] + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ] + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log new file mode 100755 index 00000000000..f6c9c2a4a12 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log @@ -0,0 +1 @@ +<174>May 31 12:10:20 INFO uvm[0]: {"timeStamp":"2023-05-31 12:10:20.992","reason":"/zcvisitor/*","requestId":110464443025878,"action":"BLOCK","class":"class com.untangle.app.ad_blocker.AdBlockerEvent"} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log-expected.json new file mode 100644 index 00000000000..1c2f884a449 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-unsupported-mesage-class.log-expected.json @@ -0,0 +1,5 @@ +{ + "expected": [ + null + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log new file mode 100755 index 00000000000..a4500f1214c --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log @@ -0,0 +1,10 @@ +<174>May 23 16:34:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://sync.hydra.opendns.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"M31525W10","CServerPort":443,"protocolName":"TCP","serverLatitude":37.3313,"localAddr":"10.0.1.17","SServerAddr":"81.2.69.199","remoteAddr":"81.2.69.199","serverIntf":1,"CClientAddr":"10.0.1.17","serverCountry":"US","sessionId":110221865792041,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":53010,"timeStamp":"2023-05-23 16:34:28.7","serverLongitude":-121.8401,"clientIntf":2,"policyId":1,"SClientPort":28113,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.199","username":"johndoe","tagsString":""},"timeStamp":"2023-05-23 16:34:28.737","flagged":false,"blocked":false,"category":"Computer and Internet Security","ruleId":2,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":2} +<174>May 23 16:34:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792037,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32836,"timeStamp":"2023-05-23 16:34:28.64","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":23625,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:28.682","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 23 16:34:27 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://graph-fallback.instagram.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"iPhone","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.1.10","SServerAddr":"175.16.199.37","remoteAddr":"175.16.199.37","serverIntf":1,"CClientAddr":"10.0.1.10","serverCountry":"US","sessionId":110221865792030,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":51495,"timeStamp":"2023-05-23 16:34:27.742","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":32934,"bypassed":false,"SServerPort":443,"CServerAddr":"175.16.199.37","username":"janedoe","tagsString":""},"timeStamp":"2023-05-23 16:34:27.768","flagged":false,"blocked":false,"category":"Image and Video Search","ruleId":78,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":78} +<174>May 23 16:34:25 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792017,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32808,"timeStamp":"2023-05-23 16:34:25.022","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":38426,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:25.065","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 23 16:34:24 INFO uvm[0]: {"reason":"BLOCK_CATEGORY","appName":"web_filter","requestLine":"GET http://mozilla.cloudflare-dns.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"1.128.0.0","remoteAddr":"1.128.0.0","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792015,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":49260,"timeStamp":"2023-05-23 16:34:24.38","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":10240,"bypassed":false,"SServerPort":443,"CServerAddr":"1.128.0.0","tagsString":""},"timeStamp":"2023-05-23 16:34:24.393","flagged":true,"blocked":true,"category":"Proxy Avoidance and Anonymizers","ruleId":58,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":58} +<174>May 23 16:34:23 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"GET http://api.github.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"81.2.69.144","remoteAddr":"81.2.69.144","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865792014,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":32794,"timeStamp":"2023-05-23 16:34:23.812","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":16885,"bypassed":false,"SServerPort":443,"CServerAddr":"81.2.69.144","tagsString":""},"timeStamp":"2023-05-23 16:34:23.856","flagged":false,"blocked":false,"category":"Computer and Internet Info","ruleId":5,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 24 08:27:39 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"POST http://[81.2.69.142:80]/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php","sessionEvent":{"entitled":true,"clientLongitude":9.491,"protocol":6,"hostname":"Proxy","CServerPort":80,"protocolName":"TCP","localAddr":"10.0.0.55","SServerAddr":"10.0.0.55","remoteAddr":"67.43.156.27","serverIntf":2,"CClientAddr":"67.43.156.27","serverCountry":"XL","sessionId":110221865971300,"SClientAddr":"67.43.156.27","clientLatitude":51.2993,"clientCountry":"DE","policyRuleId":0,"CClientPort":41146,"timeStamp":"2023-05-24 08:27:39.499","clientIntf":1,"policyId":1,"SClientPort":41146,"bypassed":false,"SServerPort":80,"CServerAddr":"81.2.69.142","tagsString":""},"timeStamp":"2023-05-24 08:27:39.666","flagged":false,"blocked":false,"category":"Entertainment and Arts","ruleId":21,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":21} +<174>May 24 07:58:28 INFO uvm[0]: {"reason":"DEFAULT","appName":"web_filter","requestLine":"POST http://ocsp.digicert.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"ubuntu","CServerPort":80,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.0.25","SServerAddr":"175.16.199.20","remoteAddr":"175.16.199.20","serverIntf":1,"CClientAddr":"10.0.0.25","serverCountry":"US","sessionId":110221865956519,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":55862,"timeStamp":"2023-05-24 07:58:28.456","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":19642,"bypassed":false,"SServerPort":80,"CServerAddr":"175.16.199.20","tagsString":""},"timeStamp":"2023-05-24 07:58:28.473","flagged":false,"blocked":false,"category":"Computer and Internet Security","ruleId":2,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":2} +<174>May 24 11:41:00 INFO uvm[0]: {"reason":"BLOCK_URL","appName":"web_filter","requestLine":"GET http://ssl.google-analytics.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"Galaxy-S22","CServerPort":443,"protocolName":"TCP","serverLatitude":37.751,"localAddr":"10.0.1.6","SServerAddr":"67.43.156.22","remoteAddr":"67.43.156.22","serverIntf":1,"CClientAddr":"10.0.1.6","serverCountry":"US","sessionId":110221866049740,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":39554,"timeStamp":"2023-05-24 11:41:00.11","serverLongitude":-97.822,"clientIntf":2,"policyId":1,"SClientPort":21617,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.22","tagsString":""},"timeStamp":"2023-05-24 11:41:00.14","flagged":true,"blocked":true,"ruleId":1662,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":5} +<174>May 24 11:31:05 INFO uvm[0]: {"reason":"BLOCK_URL","appName":"web_filter","requestLine":"GET http://config.ads.vungle.com/","sessionEvent":{"entitled":true,"protocol":6,"hostname":"iPhone","CServerPort":443,"protocolName":"TCP","serverLatitude":39.0481,"localAddr":"10.0.1.10","SServerAddr":"67.43.156.0","remoteAddr":"67.43.156.0","serverIntf":1,"CClientAddr":"10.0.1.10","serverCountry":"US","sessionId":110221866046822,"SClientAddr":"81.2.69.142","clientCountry":"XL","policyRuleId":0,"CClientPort":54996,"timeStamp":"2023-05-24 11:31:05.591","serverLongitude":-77.4728,"clientIntf":2,"policyId":1,"SClientPort":22100,"bypassed":false,"SServerPort":443,"CServerAddr":"67.43.156.0","username":"janedoe","tagsString":""},"timeStamp":"2023-05-24 11:31:05.645","flagged":true,"blocked":true,"category":"vungle.com","ruleId":2883,"class":"class com.untangle.app.web_filter.WebFilterEvent","categoryId":52} diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log-expected.json b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log-expected.json new file mode 100755 index 00000000000..00fc4acee2d --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/pipeline/test-web-filter.log-expected.json @@ -0,0 +1,1283 @@ +{ + "expected": [ + { + "@timestamp": "2023-05-23T16:34:28.737-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.199", + "nat": { + "ip": "81.2.69.199", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792041, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:28 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://sync.hydra.opendns.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"M31525W10\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.3313,\"localAddr\":\"10.0.1.17\",\"SServerAddr\":\"81.2.69.199\",\"remoteAddr\":\"81.2.69.199\",\"serverIntf\":1,\"CClientAddr\":\"10.0.1.17\",\"serverCountry\":\"US\",\"sessionId\":110221865792041,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":53010,\"timeStamp\":\"2023-05-23 16:34:28.7\",\"serverLongitude\":-121.8401,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":28113,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.199\",\"username\":\"johndoe\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:28.737\",\"flagged\":false,\"blocked\":false,\"category\":\"Computer and Internet Security\",\"ruleId\":2,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":2}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:rNEYDrkbNLL20GmvxvLr0sFzKLA=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.199", + "10.0.1.17", + "81.2.69.142" + ], + "user": [ + "johndoe" + ] + }, + "rule": { + "category": "Computer and Internet Security", + "id": "2", + "ruleset": "1" + }, + "source": { + "ip": "10.0.1.17", + "nat": { + "ip": "81.2.69.142", + "port": 28113 + }, + "port": 53010 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "sync.hydra.opendns.com", + "full": "http://sync.hydra.opendns.com/", + "original": "http://sync.hydra.opendns.com/", + "path": "/", + "scheme": "http" + }, + "user": { + "name": "johndoe" + } + }, + { + "@timestamp": "2023-05-23T16:34:28.682-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.144", + "nat": { + "ip": "81.2.69.144", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792037, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:28 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://api.github.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"SServerAddr\":\"81.2.69.144\",\"remoteAddr\":\"81.2.69.144\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865792037,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":32836,\"timeStamp\":\"2023-05-23 16:34:28.64\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":23625,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.144\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:28.682\",\"flagged\":false,\"blocked\":false,\"category\":\"Computer and Internet Info\",\"ruleId\":5,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":5}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:60uA8CUJyXXTAVCgntCJoFbQ3EQ=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.144", + "10.0.0.25", + "81.2.69.142" + ] + }, + "rule": { + "category": "Computer and Internet Info", + "id": "5", + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "81.2.69.142", + "port": 23625 + }, + "port": 32836 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "api.github.com", + "full": "http://api.github.com/", + "original": "http://api.github.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-23T16:34:27.768-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.37", + "nat": { + "ip": "175.16.199.37", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792030, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:27 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://graph-fallback.instagram.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"iPhone\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.1.10\",\"SServerAddr\":\"175.16.199.37\",\"remoteAddr\":\"175.16.199.37\",\"serverIntf\":1,\"CClientAddr\":\"10.0.1.10\",\"serverCountry\":\"US\",\"sessionId\":110221865792030,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":51495,\"timeStamp\":\"2023-05-23 16:34:27.742\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":32934,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"175.16.199.37\",\"username\":\"janedoe\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:27.768\",\"flagged\":false,\"blocked\":false,\"category\":\"Image and Video Search\",\"ruleId\":78,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":78}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:cQn55AifT5VoFABQOLLnNnsA0wc=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "175.16.199.37", + "10.0.1.10", + "81.2.69.142" + ], + "user": [ + "janedoe" + ] + }, + "rule": { + "category": "Image and Video Search", + "id": "78", + "ruleset": "1" + }, + "source": { + "ip": "10.0.1.10", + "nat": { + "ip": "81.2.69.142", + "port": 32934 + }, + "port": 51495 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "graph-fallback.instagram.com", + "full": "http://graph-fallback.instagram.com/", + "original": "http://graph-fallback.instagram.com/", + "path": "/", + "scheme": "http" + }, + "user": { + "name": "janedoe" + } + }, + { + "@timestamp": "2023-05-23T16:34:25.065-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.144", + "nat": { + "ip": "81.2.69.144", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792017, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:25 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://api.github.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"SServerAddr\":\"81.2.69.144\",\"remoteAddr\":\"81.2.69.144\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865792017,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":32808,\"timeStamp\":\"2023-05-23 16:34:25.022\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":38426,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.144\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:25.065\",\"flagged\":false,\"blocked\":false,\"category\":\"Computer and Internet Info\",\"ruleId\":5,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":5}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:37nwSQljmwvNcs2oCCEr4aAu0UA=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.144", + "10.0.0.25", + "81.2.69.142" + ] + }, + "rule": { + "category": "Computer and Internet Info", + "id": "5", + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "81.2.69.142", + "port": 38426 + }, + "port": 32808 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "api.github.com", + "full": "http://api.github.com/", + "original": "http://api.github.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-23T16:34:24.393-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 1221, + "organization": { + "name": "Telstra Pty Ltd" + } + }, + "ip": "1.128.0.0", + "nat": { + "ip": "1.128.0.0", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792015, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:24 INFO uvm[0]: {\"reason\":\"BLOCK_CATEGORY\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://mozilla.cloudflare-dns.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"SServerAddr\":\"1.128.0.0\",\"remoteAddr\":\"1.128.0.0\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865792015,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":49260,\"timeStamp\":\"2023-05-23 16:34:24.38\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":10240,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"1.128.0.0\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:24.393\",\"flagged\":true,\"blocked\":true,\"category\":\"Proxy Avoidance and Anonymizers\",\"ruleId\":58,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":58}", + "outcome": "failure", + "provider": "web_filter", + "reason": "BLOCK_CATEGORY", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "denied" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:GYb1qdYCP8xlz86Xw2A9G/jjxx4=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "1.128.0.0", + "10.0.0.25", + "81.2.69.142" + ] + }, + "rule": { + "category": "Proxy Avoidance and Anonymizers", + "id": "58", + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "81.2.69.142", + "port": 10240 + }, + "port": 49260 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "mozilla.cloudflare-dns.com", + "full": "http://mozilla.cloudflare-dns.com/", + "original": "http://mozilla.cloudflare-dns.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-23T16:34:23.856-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.144", + "nat": { + "ip": "81.2.69.144", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865792014, + "kind": "event", + "original": "\u003c174\u003eMay 23 16:34:23 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://api.github.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"SServerAddr\":\"81.2.69.144\",\"remoteAddr\":\"81.2.69.144\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865792014,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":32794,\"timeStamp\":\"2023-05-23 16:34:23.812\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":16885,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"81.2.69.144\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-23 16:34:23.856\",\"flagged\":false,\"blocked\":false,\"category\":\"Computer and Internet Info\",\"ruleId\":5,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":5}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:oLppCVGanA6ksUQWE4W9JrBeWj8=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.144", + "10.0.0.25", + "81.2.69.142" + ] + }, + "rule": { + "category": "Computer and Internet Info", + "id": "5", + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "81.2.69.142", + "port": 16885 + }, + "port": 32794 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "api.github.com", + "full": "http://api.github.com/", + "original": "http://api.github.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-24T08:27:39.666-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.142", + "nat": { + "ip": "10.0.0.55", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865971300, + "kind": "event", + "original": "\u003c174\u003eMay 24 08:27:39 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"POST http://[81.2.69.142:80]/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php\",\"sessionEvent\":{\"entitled\":true,\"clientLongitude\":9.491,\"protocol\":6,\"hostname\":\"Proxy\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"localAddr\":\"10.0.0.55\",\"SServerAddr\":\"10.0.0.55\",\"remoteAddr\":\"67.43.156.27\",\"serverIntf\":2,\"CClientAddr\":\"67.43.156.27\",\"serverCountry\":\"XL\",\"sessionId\":110221865971300,\"SClientAddr\":\"67.43.156.27\",\"clientLatitude\":51.2993,\"clientCountry\":\"DE\",\"policyRuleId\":0,\"CClientPort\":41146,\"timeStamp\":\"2023-05-24 08:27:39.499\",\"clientIntf\":1,\"policyId\":1,\"SClientPort\":41146,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"81.2.69.142\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-24 08:27:39.666\",\"flagged\":false,\"blocked\":false,\"category\":\"Entertainment and Arts\",\"ruleId\":21,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":21}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "POST" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:nTdAONihnmYpgYXT4rCH8iBqwEE=", + "direction": "external", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "ingress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "81.2.69.142", + "10.0.0.55", + "67.43.156.27" + ] + }, + "rule": { + "category": "Entertainment and Arts", + "id": "21", + "ruleset": "1" + }, + "source": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.27", + "nat": { + "ip": "67.43.156.27", + "port": 41146 + }, + "port": 41146 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "full": "http://[81.2.69.142:80]/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php" + } + }, + { + "@timestamp": "2023-05-24T07:58:28.473-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": false, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.20", + "nat": { + "ip": "175.16.199.20", + "port": 80 + }, + "port": 80 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221865956519, + "kind": "event", + "original": "\u003c174\u003eMay 24 07:58:28 INFO uvm[0]: {\"reason\":\"DEFAULT\",\"appName\":\"web_filter\",\"requestLine\":\"POST http://ocsp.digicert.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"ubuntu\",\"CServerPort\":80,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.25\",\"SServerAddr\":\"175.16.199.20\",\"remoteAddr\":\"175.16.199.20\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.25\",\"serverCountry\":\"US\",\"sessionId\":110221865956519,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":55862,\"timeStamp\":\"2023-05-24 07:58:28.456\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":19642,\"bypassed\":false,\"SServerPort\":80,\"CServerAddr\":\"175.16.199.20\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-24 07:58:28.473\",\"flagged\":false,\"blocked\":false,\"category\":\"Computer and Internet Security\",\"ruleId\":2,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":2}", + "outcome": "success", + "provider": "web_filter", + "reason": "DEFAULT", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "allowed" + ] + }, + "http": { + "request": { + "method": "POST" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:UgfKBuWWyO+uGms9Dv0k/kHU9qU=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "175.16.199.20", + "10.0.0.25", + "81.2.69.142" + ] + }, + "rule": { + "category": "Computer and Internet Security", + "id": "2", + "ruleset": "1" + }, + "source": { + "ip": "10.0.0.25", + "nat": { + "ip": "81.2.69.142", + "port": 19642 + }, + "port": 55862 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ocsp.digicert.com", + "full": "http://ocsp.digicert.com/", + "original": "http://ocsp.digicert.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-24T11:41:00.140-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.22", + "nat": { + "ip": "67.43.156.22", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866049740, + "kind": "event", + "original": "\u003c174\u003eMay 24 11:41:00 INFO uvm[0]: {\"reason\":\"BLOCK_URL\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://ssl.google-analytics.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"Galaxy-S22\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.1.6\",\"SServerAddr\":\"67.43.156.22\",\"remoteAddr\":\"67.43.156.22\",\"serverIntf\":1,\"CClientAddr\":\"10.0.1.6\",\"serverCountry\":\"US\",\"sessionId\":110221866049740,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":39554,\"timeStamp\":\"2023-05-24 11:41:00.11\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":21617,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.22\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-24 11:41:00.14\",\"flagged\":true,\"blocked\":true,\"ruleId\":1662,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":5}", + "outcome": "failure", + "provider": "web_filter", + "reason": "BLOCK_URL", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "denied" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:wDbAd0T3Qcp7o4SqPHFeMMQBKMg=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.22", + "10.0.1.6", + "81.2.69.142" + ] + }, + "rule": { + "id": "1662", + "ruleset": "1" + }, + "source": { + "ip": "10.0.1.6", + "nat": { + "ip": "81.2.69.142", + "port": 21617 + }, + "port": 39554 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "ssl.google-analytics.com", + "full": "http://ssl.google-analytics.com/", + "original": "http://ssl.google-analytics.com/", + "path": "/", + "scheme": "http" + } + }, + { + "@timestamp": "2023-05-24T11:31:05.645-06:00", + "arista": { + "bypassed": false, + "entitled": true, + "flagged": true, + "policy": { + "rule_id": 0 + } + }, + "destination": { + "as": { + "number": 35908 + }, + "geo": { + "continent_name": "Asia", + "country_iso_code": "BT", + "country_name": "Bhutan", + "location": { + "lat": 27.5, + "lon": 90.5 + } + }, + "ip": "67.43.156.0", + "nat": { + "ip": "67.43.156.0", + "port": 443 + }, + "port": 443 + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network", + "web" + ], + "id": 110221866046822, + "kind": "event", + "original": "\u003c174\u003eMay 24 11:31:05 INFO uvm[0]: {\"reason\":\"BLOCK_URL\",\"appName\":\"web_filter\",\"requestLine\":\"GET http://config.ads.vungle.com/\",\"sessionEvent\":{\"entitled\":true,\"protocol\":6,\"hostname\":\"iPhone\",\"CServerPort\":443,\"protocolName\":\"TCP\",\"serverLatitude\":39.0481,\"localAddr\":\"10.0.1.10\",\"SServerAddr\":\"67.43.156.0\",\"remoteAddr\":\"67.43.156.0\",\"serverIntf\":1,\"CClientAddr\":\"10.0.1.10\",\"serverCountry\":\"US\",\"sessionId\":110221866046822,\"SClientAddr\":\"81.2.69.142\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":54996,\"timeStamp\":\"2023-05-24 11:31:05.591\",\"serverLongitude\":-77.4728,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":22100,\"bypassed\":false,\"SServerPort\":443,\"CServerAddr\":\"67.43.156.0\",\"username\":\"janedoe\",\"tagsString\":\"\"},\"timeStamp\":\"2023-05-24 11:31:05.645\",\"flagged\":true,\"blocked\":true,\"category\":\"vungle.com\",\"ruleId\":2883,\"class\":\"class com.untangle.app.web_filter.WebFilterEvent\",\"categoryId\":52}", + "outcome": "failure", + "provider": "web_filter", + "reason": "BLOCK_URL", + "timezone": "America/Denver", + "type": [ + "connection", + "end", + "denied" + ] + }, + "http": { + "request": { + "method": "GET" + } + }, + "log": { + "syslog": { + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174, + "severity": { + "code": 6, + "name": "Informational" + } + } + }, + "network": { + "community_id": "1:PGwSsQT7PDqCTKOLFWX5CzdUbWU=", + "direction": "outbound", + "iana_number": "6", + "transport": "TCP" + }, + "observer": { + "egress": { + "interface": { + "alias": "External", + "id": "1", + "name": "eth0" + } + }, + "ingress": { + "interface": { + "alias": "Internal", + "id": "2", + "name": "eth1" + } + }, + "product": "Arista NG Firewall", + "type": "firewall", + "vendor": "Arista" + }, + "related": { + "ip": [ + "67.43.156.0", + "10.0.1.10", + "81.2.69.142" + ], + "user": [ + "janedoe" + ] + }, + "rule": { + "category": "vungle.com", + "id": "2883", + "ruleset": "1" + }, + "source": { + "ip": "10.0.1.10", + "nat": { + "ip": "81.2.69.142", + "port": 22100 + }, + "port": 54996 + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "url": { + "domain": "config.ads.vungle.com", + "full": "http://config.ads.vungle.com/", + "original": "http://config.ads.vungle.com/", + "path": "/", + "scheme": "http" + }, + "user": { + "name": "janedoe" + } + } + ] +} \ No newline at end of file diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/system/test-tcp-config.yml b/packages/arista_ngfw/data_stream/log/_dev/test/system/test-tcp-config.yml new file mode 100755 index 00000000000..2b0fc9d09cf --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/system/test-tcp-config.yml @@ -0,0 +1,9 @@ +service: arista-ngfw-tcp +service_notify_signal: SIGHUP +input: tcp +data_stream: + vars: + tcp_host: 0.0.0.0 + tcp_port: 9514 + preserve_original_event: true + tz_offset: "-0600" diff --git a/packages/arista_ngfw/data_stream/log/_dev/test/system/test-udp-config.yml b/packages/arista_ngfw/data_stream/log/_dev/test/system/test-udp-config.yml new file mode 100755 index 00000000000..0885f94b589 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/_dev/test/system/test-udp-config.yml @@ -0,0 +1,9 @@ +service: arista-ngfw-udp +service_notify_signal: SIGHUP +input: udp +data_stream: + vars: + udp_host: 0.0.0.0 + udp_port: 9514 + preserve_original_event: true + tz_offset: "-0600" diff --git a/packages/arista_ngfw/data_stream/log/agent/stream/tcp.yml.hbs b/packages/arista_ngfw/data_stream/log/agent/stream/tcp.yml.hbs new file mode 100755 index 00000000000..1a4bc0a1f01 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/agent/stream/tcp.yml.hbs @@ -0,0 +1,38 @@ +host: "{{tcp_host}}:{{tcp_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +fields_under_root: true +fields: +{{#if tz_offset}} + _conf: + tz_offset: "{{tz_offset}}" +{{/if}} +{{#if interface_id_1_name}} + _conf: + interface_id_1_name: "{{interface_id_1_name}}" +{{/if}} +{{#if interface_id_1_alias}} + _conf: + interface_id_1_alias: "{{interface_id_1_alias}}" +{{/if}} +{{#if interface_id_2_name}} + _conf: + interface_id_2_name: "{{interface_id_2_name}}" +{{/if}} +{{#if interface_id_2_alias}} + _conf: + interface_id_2_alias: "{{interface_id_2_alias}}" +{{/if}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} diff --git a/packages/arista_ngfw/data_stream/log/agent/stream/udp.yml.hbs b/packages/arista_ngfw/data_stream/log/agent/stream/udp.yml.hbs new file mode 100755 index 00000000000..8a8c232deed --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/agent/stream/udp.yml.hbs @@ -0,0 +1,41 @@ +host: "{{udp_host}}:{{udp_port}}" +{{#if udp_options}} +{{udp_options}} +{{/if}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +fields_under_root: true +fields: +{{#if tz_offset}} + _conf: + tz_offset: "{{tz_offset}}" +{{/if}} +{{#if interface_id_1_name}} + _conf: + interface_id_1_name: "{{interface_id_1_name}}" +{{/if}} +{{#if interface_id_1_alias}} + _conf: + interface_id_1_alias: "{{interface_id_1_alias}}" +{{/if}} +{{#if interface_id_2_name}} + _conf: + interface_id_2_name: "{{interface_id_2_name}}" +{{/if}} +{{#if interface_id_2_alias}} + _conf: + interface_id_2_alias: "{{interface_id_2_alias}}" +{{/if}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/admin_login.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/admin_login.yml new file mode 100755 index 00000000000..2034fa76f52 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/admin_login.yml @@ -0,0 +1,71 @@ +--- +description: Pipeline for processing Arista NG Firewall admin login events +processors: + ######################## + ## Admin Login Events ## + ######################## + - rename: + field: arista.reason + target_field: event.reason + ignore_missing: true + - rename: + field: arista.login + target_field: user.name + ignore_missing: true + - rename: + field: arista.clientAddress + target_field: source.ip + ignore_missing: true + - script: + lang: painless + params: + "false": + category: + - network + - authentication + - iam + kind: event + outcome: failure + type: + - denied + provider: admin_login + "true": + category: + - network + - authentication + - iam + kind: event + outcome: success + type: + - allowed + provider: admin_login + source: >- + if (ctx?.event == null) { + Map map = new HashMap(); + ctx.put('event', map); + } + if (ctx.arista?.succeeded == null || !params.containsKey((ctx.arista.succeeded).toString())) { + return; + } + ctx.event.category = params.get((ctx.arista.succeeded).toString()).get('category').clone(); + ctx.event.kind = params.get((ctx.arista.succeeded).toString()).get('kind'); + ctx.event.outcome = params.get((ctx.arista.succeeded).toString()).get('outcome'); + ctx.event.type = params.get((ctx.arista.succeeded).toString()).get('type').clone(); + ctx.event.provider = params.get((ctx.arista.succeeded).toString()).get('provider'); + ctx.arista.remove('succeeded'); + + ############## + ## Clean Up ## + ############## + - remove: + description: Remove Arista fields that are not necessary after parsing to ECS + field: + - arista.local + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 00000000000..15d227654bd --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,826 @@ +--- +description: Pipeline for processing Arista NG Firewall logs +processors: + ########################### + ## General Event Parsing ## + ########################### + - rename: + field: message + target_field: event.original + ignore_missing: true + - set: + field: ecs.version + value: '8.8.0' + - grok: + field: event.original + patterns: + - '<%{NONNEGINT:log.syslog.priority:int}>%{SYSLOGTIMESTAMP:_temp_.raw_date} %{WORD} %{NOTSPACE}\: %{GREEDYDATA:_temp_.full_message}' + - script: + description: Translate log.syslog.priority to log.syslog.severity.code and log.syslog.facility.code + lang: painless + source: | + if (ctx.log?.syslog?.priority != null) { + def severity = new HashMap(); + severity['code'] = ctx.log.syslog.priority&0x7; + ctx.log.syslog['severity'] = severity; + def facility = new HashMap(); + facility['code'] = ctx.log.syslog.priority>>3; + ctx.log.syslog['facility'] = facility; + } + - script: + description: Translate log.syslog.facility.code to log.syslog.facility.name + lang: painless + params: + "0": Kernel + "1": User + "2": Mail + "3": System + "4": Security + "5": Syslog + "6": "Line printer" + "7": "Network news" + "8": UUCP + "9": Clock + "10": Security + "11": FTPd + "12": NTPd + "13": "Log audit" + "14": "Log alert" + "15": "Clock daemon" + "16": "Local 0" + "17": "Local 1" + "18": "Local 2" + "19": "Local 3" + "20": "Local 4" + "21": "Local 5" + "22": "Local 6" + "23": "Local 7" + source: |- + if (ctx.log?.syslog?.facility?.code == null || !params.containsKey((ctx.log.syslog.facility.code).toString())) { + return; + } + ctx.log.syslog.facility.name = params[(ctx.log.syslog.facility.code).toString()]; + - script: + description: Translate log.syslog.facility.code to log.syslog.facility.name + lang: painless + params: + "0": Emergency + "1": Alert + "2": Critical + "3": Error + "4": Warning + "5": Notice + "6": Informational + "7": Debug + source: |- + if (ctx.log?.syslog?.severity?.code == null || !params.containsKey((ctx.log.syslog.severity.code).toString())) { + return; + } + ctx.log.syslog.severity.name = params[(ctx.log.syslog.severity.code).toString()]; + + # Parse the JSON message to arista.* + - json: + field: _temp_.full_message + target_field: arista + ignore_failure: true + + # Drop messages we cannot yet parse + - drop: + description: Drop events that are not yet supported + if: | + Collection supportedClasses = [ + 'class com.untangle.uvm.event.AdminLoginEvent', + 'class com.untangle.app.firewall.FirewallEvent', + 'class com.untangle.app.http.HttpRequestEvent', + 'class com.untangle.app.http.HttpResponseEvent', + 'class com.untangle.uvm.logging.InterfaceStatEvent', + 'class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent', + 'class com.untangle.uvm.app.SessionEvent', + 'class com.untangle.uvm.logging.SystemStatEvent', + 'class com.untangle.app.web_filter.WebFilterEvent' + ]; + for (String class : supportedClasses) { + if (ctx.arista?.class == class) { + return false; + } + } + return true; + + ############################## + ## Event Specific Pipelines ## + ############################## + - pipeline: + description: Use a separate pipeline for AdminLoginEvent events + if: ctx.arista?.class == 'class com.untangle.uvm.event.AdminLoginEvent' + name: '{{ IngestPipeline "admin_login" }}' + ignore_missing_pipeline: true + - pipeline: + description: Use a separate pipeline for InterfaceStatEvent events + if: ctx.arista?.class == 'class com.untangle.uvm.logging.InterfaceStatEvent' + name: '{{ IngestPipeline "interface_stats" }}' + ignore_missing_pipeline: true + - pipeline: + description: Use a separate pipeline for SystemStatEvent events + if: ctx.arista?.class == 'class com.untangle.uvm.logging.SystemStatEvent' + name: '{{ IngestPipeline "system_stats" }}' + ignore_missing_pipeline: true + - pipeline: + description: Use a separate pipeline for WebFilterEvent events + if: ctx.arista?.class == 'class com.untangle.app.web_filter.WebFilterEvent' + name: '{{ IngestPipeline "web_filter" }}' + ignore_missing_pipeline: true + - pipeline: + description: Use a separate pipeline for IntrusionPreventionLogEvent events + if: ctx.arista?.class == 'class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent' + name: '{{ IngestPipeline "intrusion_prevention" }}' + ignore_missing_pipeline: true + - pipeline: + description: Use a separate pipeline for HttpRequestEvent and HttpResponseEvent events + if: ctx.arista?.class == 'class com.untangle.app.http.HttpRequestEvent' || ctx.arista?.class == 'class com.untangle.app.http.HttpResponseEvent' + name: '{{ IngestPipeline "http_event" }}' + ignore_missing_pipeline: true + + ############################ + ## ECS @timestamp Mapping ## + ############################ + # Set timezone based on config or locale. Defaults to UTC. + - set: + field: _temp_.tz + copy_from: _conf.tz_offset + if: ctx._conf?.tz_offset != null && ctx._conf?.tz_offset != 'local' + - set: + field: _temp_.tz + copy_from: event.timezone + override: false + if: ctx.event?.timezone != null + - set: + field: _temp_.tz + value: UTC + override: false + - set: + field: event.timezone + override: false + copy_from: _temp_.tz + # Parse the timestamp from the event if available + - date: + if: ctx.arista?.timeStamp != null + timezone: "{{{ event.timezone }}}" + field: "arista.timeStamp" + formats: + - "ISO8601" + - "yyyy-MM-dd HH:mm:ss.SSS" + - "yyyy-MM-dd HH:mm:ss.SS" + on_failure: + # Try to re-parse as UTC to catch when TZ is invalid or unknown. + - remove: + field: event.timezone + ignore_missing: true + - date: + if: ctx.arista?.timeStamp != null + field: "arista.timeStamp" + formats: + - "ISO8601" + - "yyyy-MM-dd HH:mm:ss.SSS" + - "yyyy-MM-dd HH:mm:ss.SS" + on_failure: + - append: + field: error.message + value: "Error parsing date from field `arista.timeStamp`. Value of field: {{{ arista.timeStamp }}}: {{{ _ingest.on_failure_message }}}" + # Fall back to the syslog timestamp if the event does not contain a timestamp + - date: + if: ctx._temp_?.raw_date != null && ctx.arista?.timeStamp == null + timezone: "{{{ event.timezone }}}" + field: "_temp_.raw_date" + formats: + - "ISO8601" + - "MMMM dd HH:mm:ss" + on_failure: + # Try to re-parse as UTC to catch when TZ is invalid or unknown. + - remove: + field: event.timezone + ignore_missing: true + - date: + if: ctx._temp_?.raw_date != null + field: "_temp_.raw_date" + formats: + - "ISO8601" + - "yyyy-MM-dd HH:mm:ss.SSS" + - "yyyy-MM-dd HH:mm:ss.SS" + on_failure: + - append: + field: error.message + value: "Error parsing date from syslog timestamp. Value of field: {{{ _temp_.raw_date }}}{{{ _ingest.on_failure_message }}}" + + ############################################## + ## Move SessionEvent Data Before Processing ## + ############################################## + - remove: + if: ctx.arista?.sessionEvent?.timeStamp != null + field: arista.sessionEvent.timeStamp + ignore_missing: true + - foreach: + if: ctx.arista?.sessionEvent != null + field: arista.sessionEvent + processor: + rename: + field: _ingest._value + target_field: arista.{{{_ingest._key}}} + on_failure: + - remove: + field: _ingest._key + - append: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" + ignore_failure: true + + ######################## + ## ECS Source Mapping ## + ######################## + - rename: + field: arista.CClientAddr + target_field: source.ip + ignore_missing: true + - convert: + field: source.ip + type: ip + ignore_missing: true + - rename: + field: arista.CClientPort + target_field: source.port + ignore_missing: true + - rename: + field: arista.SClientAddr + target_field: source.nat.ip + ignore_missing: true + - convert: + field: source.nat.ip + type: ip + ignore_missing: true + - rename: + field: arista.SClientPort + target_field: source.nat.port + ignore_missing: true + - rename: + field: arista.c2pBytes + target_field: source.bytes + ignore_missing: true + - convert: + field: source.bytes + type: integer + ignore_missing: true + # Geolocation for source IP + - geoip: + field: "source.ip" + target_field: "source.geo" + ignore_missing: true + # IP Autonomous System (AS) Lookup + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + + ############################# + ## ECS Destination Mapping ## + ############################# + - rename: + field: arista.CServerAddr + target_field: destination.ip + ignore_failure: true + - convert: + field: destination.ip + type: ip + ignore_missing: true + - rename: + field: arista.CServerPort + target_field: destination.port + ignore_failure: true + - rename: + field: arista.SServerAddr + target_field: destination.nat.ip + ignore_failure: true + - convert: + field: destination.nat.ip + type: ip + ignore_missing: true + - rename: + field: arista.SServerPort + target_field: destination.nat.port + ignore_failure: true + - rename: + field: arista.s2pBytes + target_field: destination.bytes + ignore_failure: true + - convert: + field: destination.bytes + type: integer + ignore_missing: true + # Geolocation for destination IP + - geoip: + field: "destination.ip" + target_field: "destination.geo" + ignore_missing: true + # IP Autonomous System (AS) Lookup + - geoip: + database_file: GeoLite2-ASN.mmdb + field: destination.ip + target_field: destination.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: destination.as.asn + target_field: destination.as.number + ignore_missing: true + - rename: + field: destination.as.organization_name + target_field: destination.as.organization.name + ignore_missing: true + + ####################### + ## ECS Event Mapping ## + ####################### + - rename: + field: arista.reason + target_field: event.reason + ignore_missing: true + - rename: + field: arista.sessionId + target_field: event.id + ignore_missing: true + - script: + lang: painless + source: | + if (ctx?.event == null) { + Map map = new HashMap(); + ctx.put('event', map); + } + if (ctx.arista?.blocked != null) { + if (ctx.arista.blocked) { + ctx.event.outcome = 'failure'; + ctx.event.type = 'denied'; + } else { + ctx.event.outcome = 'success'; + ctx.event.type = 'denied'; + } + } + if (ctx.arista?.filterPrefix != null) { + if (ctx.arista.filterPrefix == 'filter_blocked') { + ctx.event.outcome = 'failure'; + ctx.event.type = 'denied'; + } else if (ctx.arista.filterPrefix == 'invalid_blocked') { + ctx.event.outcome = 'failure'; + ctx.event.type = 'denied'; + } else if (ctx.arista.filterPrefix == 'shield_blocked') { + ctx.event.outcome = 'failure'; + ctx.event.type = 'denied'; + } + } + # Enrich event fields based on arista.class + - script: + lang: painless + params: + "class com.untangle.app.ad_blocker.AdBlockerEvent": + kind: event + category: + - network + type: + - connection + - denied + provider: ad_blocker + "class com.untangle.app.firewall.FirewallEvent": + kind: event + category: + - network + type: + - connection + provider: firewall + "class com.untangle.app.http.HttpRequestEvent": + kind: event + category: + - network + - web + type: + - connection + - start + provider: http_request + "class com.untangle.app.http.HttpResponseEvent": + kind: event + category: + - network + - web + type: + - connection + - end + provider: http_response + "class com.untangle.app.intrusion_prevention.IntrusionPreventionLogEvent": + kind: event + category: + - intrusion_detection + type: + - denied + provider: intrusion_prevention + "class com.untangle.app.web_filter.WebFilterEvent": + kind: event + category: + - network + - web + type: + - connection + - end + provider: web_filter + "class com.untangle.uvm.app.SessionEvent": + kind: alert + category: + - network + - session + type: + - info + provider: session_event + "class com.untangle.uvm.app.SessionStatsEvent": + kind: event + category: + - network + - session + type: + - info + - change + provider: session_stats + "class com.untangle.uvm.DeviceTableEvent": + kind: event + outcome: failure + category: + - database + type: + - change + provider: device_table + "class com.untangle.uvm.HostTableEvent": + kind: event + category: + - authentication + type: + - change + provider: host_table + "class com.untangle.uvm.logging.InterfaceStatEvent": + kind: metric + category: + - host + type: + - info + provider: interface_stats + "class com.untangle.uvm.logging.SystemStatEvent": + kind: metric + category: + - host + type: + - info + provider: system_stats + source: >- + if (ctx?.arista?.class == null || !params.containsKey(ctx.arista.class)) { + return; + } + ctx.event.kind = params.get(ctx.arista.class).get('kind'); + ctx.event.category = params.get(ctx.arista.class).get('category').clone(); + ctx.event.type = params.get(ctx.arista.class).get('type').clone(); + ctx.event.provider = params.get(ctx.arista.class).get('provider'); + if (ctx?.event?.outcome == null) { + return; + } + if (ctx.event.category.contains('network') || ctx.event.category.contains('intrusion_detection')) { + if (ctx.event.outcome == 'success') { + ctx.event.type.add('allowed'); + } + if (ctx.event.outcome == 'failure') { + ctx.event.type.add('denied'); + } + } + + ######################### + ## ECS Network Mapping ## + ######################### + - rename: + field: arista.protocol + target_field: network.iana_number + ignore_missing: true + - convert: + field: network.iana_number + type: string + ignore_missing: true + - rename: + field: arista.protocolName + target_field: network.transport + ignore_missing: true + - script: + description: Calculate network.direction if zones are not configured + lang: painless + if: "ctx?.source?.ip != null && + ctx?.destination?.ip != null" + source: | + boolean isPrivateCIDR(def ip) { + CIDR class_a_network = new CIDR('10.0.0.0/8'); + CIDR class_b_network = new CIDR('172.16.0.0/12'); + CIDR class_c_network = new CIDR('192.168.0.0/16'); + + try { + return class_a_network.contains(ip) || class_b_network.contains(ip) || class_c_network.contains(ip); + } catch (IllegalArgumentException e) { + return false; + } + } + try { + if (ctx?.network == null) { + Map map = new HashMap(); + ctx.put('network', map); + } + + if (!isPrivateCIDR(ctx.source.ip) && isPrivateCIDR(ctx.destination.ip)) { + ctx.network.direction = 'inbound'; + } else if (isPrivateCIDR(ctx.source.ip) && !isPrivateCIDR(ctx.destination.ip)) { + ctx.network.direction = 'outbound'; + } else if (isPrivateCIDR(ctx.source.ip) && isPrivateCIDR(ctx.destination.ip)) { + ctx.network.direction = 'internal'; + } else if (!isPrivateCIDR(ctx.source.ip) && !isPrivateCIDR(ctx.destination.ip)) { + ctx.network.direction = 'external'; + } else { + ctx.network.direction = 'unknown'; + } + } + catch (Exception e) { + ctx.network.direction = null; + } + - community_id: + ignore_missing: true + ignore_failure: true + + ########################## + ## ECS Observer Mapping ## + ########################## + - set: + field: observer.product + value: "Arista NG Firewall" + - set: + field: observer.vendor + value: "Arista" + - set: + field: observer.type + value: "firewall" + - rename: + field: arista.serverIntf + target_field: observer.egress.interface.id + ignore_missing: true + - rename: + field: arista.clientIntf + target_field: observer.ingress.interface.id + ignore_missing: true + - convert: + field: observer.egress.interface.id + type: string + ignore_missing: true + - convert: + field: observer.ingress.interface.id + type: string + ignore_missing: true + # If interface names and aliases were provided, add them here + - script: + description: Set interface aliases and names if provided in config + lang: painless + source: |- + if (ctx.observer?.egress?.interface?.id == "1") { + if (ctx._conf?.interface_id_1_alias != null) { + ctx.observer.egress.interface.alias = ctx._conf.interface_id_1_alias; + } + if (ctx._conf?.interface_id_1_name != null) { + ctx.observer.egress.interface.name = ctx._conf.interface_id_1_name; + } + } else if (ctx?.observer?.egress?.interface?.id == "2") { + if (ctx._conf?.interface_id_2_alias != null) { + ctx.observer.egress.interface.alias = ctx._conf.interface_id_2_alias; + } + if (ctx._conf?.interface_id_2_name != null) { + ctx.observer.egress.interface.name = ctx._conf.interface_id_2_name; + } + } + if (ctx.observer?.ingress?.interface?.id == "1") { + if (ctx._conf?.interface_id_1_alias != null) { + ctx.observer.ingress.interface.alias = ctx._conf.interface_id_1_alias; + } + if (ctx._conf?.interface_id_1_name != null) { + ctx.observer.ingress.interface.name = ctx._conf.interface_id_1_name; + } + } else if (ctx.observer?.ingress?.interface?.id == "2") { + if (ctx._conf?.interface_id_2_alias != null) { + ctx.observer.ingress.interface.alias = ctx._conf.interface_id_2_alias; + } + if (ctx._conf?.interface_id_2_name != null) { + ctx.observer.ingress.interface.name = ctx._conf.interface_id_2_name; + } + } + + ###################### + ## ECS Rule Mapping ## + ###################### + - rename: + field: arista.category + target_field: rule.category + ignore_missing: true + - rename: + field: arista.policyId + target_field: rule.ruleset + ignore_missing: true + - convert: + field: rule.ruleset + type: string + ignore_missing: true + - rename: + field: arista.ruleId + target_field: rule.id + ignore_missing: true + ignore_failure: true + - convert: + field: rule.id + type: string + ignore_missing: true + + ######################## + ## ECS Source Mapping ## + ######################## + - rename: + field: arista.CClientAddr + target_field: source.ip + ignore_failure: true + - convert: + field: source.ip + type: ip + ignore_missing: true + - rename: + field: arista.CClientPort + target_field: source.port + ignore_failure: true + - rename: + field: arista.c2pBytes + target_field: source.bytes + ignore_failure: true + - convert: + field: source.bytes + type: integer + ignore_missing: true + # Geolocation for source IP + - geoip: + field: "source.ip" + target_field: "source.geo" + ignore_missing: true + # IP Autonomous System (AS) Lookup + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + + ###################### + ## ECS Tags Mapping ## + ###################### + - append: + field: tags + value: '{{{arista.tagsString}}}' + if: ctx.arista?.tagsString != null && ctx.arista.tagsString != '' + allow_duplicates: false + ignore_failure: true + + ###################### + ## ECS User Mapping ## + ###################### + - rename: + field: arista.username + target_field: user.name + ignore_missing: true + + ######################### + ## ECS Related Mapping ## + ######################### + # Hosts + - append: + if: ctx.destination?.domain != null + field: related.hosts + value: '{{{destination.domain}}}' + allow_duplicates: false + - append: + if: ctx.source?.domain != null + field: related.hosts + value: '{{{source.domain}}}' + allow_duplicates: false + # IP Addresses + - append: + if: ctx.destination?.ip != null + field: related.ip + value: '{{{destination.ip}}}' + allow_duplicates: false + - append: + if: ctx.destination?.nat?.ip != null + field: related.ip + value: '{{{destination.nat.ip}}}' + allow_duplicates: false + - append: + if: ctx.host?.ip != null + field: related.ip + value: '{{{host.ip}}}' + allow_duplicates: false + - append: + if: ctx.source?.ip != null + field: related.ip + value: '{{{source.ip}}}' + allow_duplicates: false + - append: + if: ctx.source?.nat?.ip != null + field: related.ip + value: '{{{source.nat.ip}}}' + allow_duplicates: false + # Users + - append: + if: ctx.user?.name != null + field: related.user + value: '{{{user.name}}}' + allow_duplicates: false + + ################################# + ## ECS Arista-Specific Mapping ## + ################################# + - rename: + field: arista.policyId + target_field: arista.policy.id + ignore_missing: true + - rename: + field: arista.policyRuleId + target_field: arista.policy.rule_id + ignore_missing: true + + ############## + ## Clean Up ## + ############## + - remove: + description: Remove Arista fields that are not necessary after parsing to ECS + field: + - arista.blocked + - arista.categoryId + - arista.class + - arista.clientCountry + - arista.clientLatitude + - arista.clientLongitude + - arista.filterPrefix + - arista.hostname + - arista.localAddr + - arista.remoteAddr + - arista.httpRequestEvent.sessionEvent + - arista.requestLine + - arista.serverCountry + - arista.serverLatitude + - arista.serverLongitude + - arista.sessionEvent + - arista.tagsString + - arista.timeStamp + ignore_missing: true + - remove: + description: Remove Arista root field if empty + field: arista + if: ctx.arista != null && ctx['arista'].empty + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true + - remove: + field: + - _temp + - _temp_ + - _conf + - _ingest + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/http_event.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/http_event.yml new file mode 100755 index 00000000000..1e653daaae9 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/http_event.yml @@ -0,0 +1,109 @@ +--- +description: Pipeline for processing Arista NG Firewall HTTP request and HTTP response events +processors: + ################# + ## HTTP Events ## + ################# + - remove: + if: ctx.arista?.httpRequestEvent?.timeStamp != null + field: arista.httpRequestEvent.timeStamp + ignore_missing: true + - remove: + if: ctx.arista?.httpRequestEvent?.sessionEvent?.timeStamp != null + field: arista.httpRequestEvent.sessionEvent.timeStamp + ignore_missing: true + - foreach: + if: ctx.arista?.httpRequestEvent?.sessionEvent != null + field: arista.httpRequestEvent.sessionEvent + processor: + rename: + field: _ingest._value + target_field: arista.{{{_ingest._key}}} + on_failure: + - remove: + field: _ingest._key + - append: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" + ignore_failure: true + - remove: + field: arista.httpRequestEvent.contentLength + ignore_missing: true + - rename: + field: arista.httpRequestEvent.domain + target_field: destination.domain + ignore_missing: true + - rename: + field: arista.httpRequestEvent.method + target_field: http.request.method + ignore_missing: true + - rename: + field: arista.httpRequestEvent.requestId + target_field: arista.requestId + ignore_missing: true + - rename: + field: arista.httpRequestEvent.requestUri + target_field: arista.requestUri + ignore_missing: true + - rename: + field: arista.httpRequestEvent.timeStamp + target_field: arista.timeStamp + ignore_missing: true + - rename: + field: arista.domain + target_field: destination.domain + ignore_missing: true + - rename: + field: arista.method + target_field: http.request.method + ignore_missing: true + - rename: + if: ctx.arista?.class == 'class com.untangle.app.http.HttpRequestEvent' + field: arista.contentLength + target_field: http.request.bytes + ignore_missing: true + - rename: + if: ctx.arista?.class == 'class com.untangle.app.http.HttpResponseEvent' + field: arista.contentLength + target_field: http.response.bytes + ignore_missing: true + - rename: + field: arista.requestUri + target_field: url.path + ignore_missing: true + - rename: + field: arista.contentFilename + target_field: file.name + ignore_failure: true + - dissect: + description: Parse HTTP request method and full URL from requestLine + if: ctx.arista?.requestLine != null && ctx.arista.requestLine.contains(' ') + field: arista.requestLine + pattern: '%{http.request.method} %{_temp.url_full}' + - uri_parts: + if: ctx._temp?.url_full != null + field: _temp.url_full + ignore_failure: true + - rename: + field: _temp.url_full + target_field: url.full + ignore_missing: true + + ############## + ## Clean Up ## + ############## + - remove: + description: Remove Arista fields that are not necessary after parsing to ECS + field: + - arista.contentType + - arista.host + - arista.httpRequestEvent.host + - arista.requestId + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/interface_stats.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/interface_stats.yml new file mode 100755 index 00000000000..360d22a4c42 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/interface_stats.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing Arista NG Firewall interface statistics +processors: + ########################## + ## Interface Statistics ## + ########################## + - rename: + field: arista.interfaceId + target_field: arista.interface.id + ignore_missing: true + - rename: + field: arista.rxBytes + target_field: arista.received.bytes + ignore_missing: true + - rename: + field: arista.rxRate + target_field: arista.received.rate + ignore_missing: true + - convert: + field: arista.received.rate + type: float + ignore_missing: true + - rename: + field: arista.txBytes + target_field: arista.transmitted.bytes + ignore_missing: true + - rename: + field: arista.txRate + target_field: arista.transmitted.rate + ignore_missing: true + - convert: + field: arista.transmitted.rate + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/intrusion_prevention.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/intrusion_prevention.yml new file mode 100755 index 00000000000..59eab2d6f55 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/intrusion_prevention.yml @@ -0,0 +1,58 @@ +--- +description: Pipeline for processing Arista NG Firewall intrusion prevention events +processors: + ################################# + ## Intrusion Prevention Events ## + ################################# + - rename: + field: arista.msg + target_field: rule.name + ignore_missing: true + - rename: + field: arista.ipDestination + target_field: destination.ip + ignore_missing: true + - rename: + field: arista.ipSource + target_field: source.ip + ignore_missing: true + - rename: + field: arista.classtype + target_field: rule.ruleset + ignore_missing: true + - rename: + field: arista.category + target_field: rule.category + ignore_missing: true + - remove: + field: rule.id + ignore_missing: true + - rename: + field: arista.signatureId + target_field: rule.id + ignore_missing: true + - convert: + field: rule.id + type: string + ignore_missing: true + + ############## + ## Clean Up ## + ############## + - remove: + description: Remove Arista fields that are not necessary after parsing to ECS + field: + - arista.dportIcode + - arista.generatorId + - arista.ruleId + - arista.signatureId + - arista.sportItype + - arista.timestamp + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/system_stats.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/system_stats.yml new file mode 100755 index 00000000000..a34f857df70 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/system_stats.yml @@ -0,0 +1,122 @@ +--- +description: Pipeline for processing Arista NG Firewall system metrics +processors: + ####################### + ## System Statistics ## + ####################### + # Active Hosts stats + - rename: + field: arista.activeHosts + target_field: arista.hosts.active + ignore_missing: true + # Disk usage stats + - rename: + field: arista.diskTotal + target_field: arista.disk.total.bytes + ignore_missing: true + - rename: + field: arista.diskUsed + target_field: arista.disk.used.bytes + ignore_missing: true + - rename: + field: arista.diskFree + target_field: arista.disk.free.bytes + ignore_missing: true + - rename: + field: arista.diskUsedPercent + target_field: arista.disk.used.pct + ignore_missing: true + - rename: + field: arista.diskFreePercent + target_field: arista.disk.free.pct + ignore_missing: true + # CPU usage stats + - rename: + field: arista.cpuSystem + target_field: arista.cpu.system.pct + ignore_missing: true + - rename: + field: arista.cpuUser + target_field: arista.cpu.user.pct + ignore_missing: true + - script: + description: Adds the system and user CPU usage for a total + if: ctx.arista?.cpu?.system?.pct != null && ctx.arista?.cpu?.user?.pct != null + lang: painless + source: |- + if (ctx.arista?.cpu?.total == null) { + Map map = new HashMap(); + ctx.arista.cpu.put('total', map); + } + if (ctx.arista?.cpu?.system?.pct != null && ctx.arista?.cpu?.user?.pct != null) { + ctx.arista.cpu.total.pct = (ctx.arista.cpu.system.pct + ctx.arista.cpu.user.pct); + } + - rename: + field: arista.load1 + target_field: arista.cpu.load.1 + ignore_missing: true + - rename: + field: arista.load5 + target_field: arista.cpu.load.5 + ignore_missing: true + - rename: + field: arista.load15 + target_field: arista.cpu.load.15 + ignore_missing: true + # Memory usage stats + - rename: + field: arista.memTotal + target_field: arista.memory.total.bytes + ignore_missing: true + - rename: + field: arista.memUsed + target_field: arista.memory.used.bytes + ignore_missing: true + - rename: + field: arista.memFree + target_field: arista.memory.free.bytes + ignore_missing: true + - rename: + field: arista.memCache + target_field: arista.memory.cache.bytes + ignore_missing: true + - rename: + field: arista.memUsedPercent + target_field: arista.memory.used.pct + ignore_missing: true + - rename: + field: arista.memFreePercent + target_field: arista.memory.free.pct + ignore_missing: true + - rename: + field: arista.memBuffers + target_field: arista.memory.buffers + ignore_missing: true + # Swap usage stats + - rename: + field: arista.swapTotal + target_field: arista.memory.swap.total.bytes + ignore_missing: true + - rename: + field: arista.swapUsed + target_field: arista.memory.swap.used.bytes + ignore_missing: true + - rename: + field: arista.swapFree + target_field: arista.memory.swap.free.bytes + ignore_missing: true + - rename: + field: arista.swapUsedPercent + target_field: arista.memory.swap.used.pct + ignore_missing: true + - rename: + field: arista.swapFreePercent + target_field: arista.memory.swap.free.pct + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/web_filter.yml b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/web_filter.yml new file mode 100755 index 00000000000..0bf21660dd6 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/elasticsearch/ingest_pipeline/web_filter.yml @@ -0,0 +1,34 @@ +--- +description: Pipeline for processing Arista NG Firewall system metrics +processors: + ####################### + ## Web Filter Events ## + ####################### + - dissect: + description: Parse HTTP request method and full URL from requestLine + if: ctx.arista?.requestLine != null && ctx.arista.requestLine.contains(' ') + field: arista.requestLine + pattern: '%{http.request.method} %{_temp.url_full}' + - uri_parts: + if: ctx._temp?.url_full != null + field: _temp.url_full + ignore_failure: true + - rename: + field: _temp.url_full + target_field: url.full + ignore_missing: true + ############## + ## Clean Up ## + ############## + - remove: + description: Remove Arista fields that are not necessary after parsing to ECS + field: + - arista.appName + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/arista_ngfw/data_stream/log/fields/agent.yml b/packages/arista_ngfw/data_stream/log/fields/agent.yml new file mode 100755 index 00000000000..d38a70bd6b3 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/fields/agent.yml @@ -0,0 +1,207 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type. +- name: log.offset + type: long + description: Offset of the entry in the log file. +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/arista_ngfw/data_stream/log/fields/base-fields.yml b/packages/arista_ngfw/data_stream/log/fields/base-fields.yml new file mode 100755 index 00000000000..72ed05d751e --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/fields/base-fields.yml @@ -0,0 +1,19 @@ +- external: ecs + name: "@timestamp" +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.dataset + type: constant_keyword + description: Event dataset + value: arista_ngfw.log +- name: event.module + type: constant_keyword + description: Event module + value: arista_ngfw diff --git a/packages/arista_ngfw/data_stream/log/fields/ecs.yml b/packages/arista_ngfw/data_stream/log/fields/ecs.yml new file mode 100755 index 00000000000..376b8ff4da4 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/fields/ecs.yml @@ -0,0 +1,296 @@ +- external: ecs + name: client.domain +- external: ecs + name: client.address +- external: ecs + name: client.port +- external: ecs + name: client.ip +- external: ecs + name: client.user.name +- external: ecs + name: destination.address +- external: ecs + name: destination.as.number +- external: ecs + name: destination.as.organization.name +- external: ecs + name: destination.bytes +- external: ecs + name: destination.domain +- external: ecs + name: destination.geo.city_name +- external: ecs + name: destination.geo.continent_code +- external: ecs + name: destination.geo.continent_name +- external: ecs + name: destination.geo.country_iso_code +- external: ecs + name: destination.geo.country_name +- external: ecs + name: destination.geo.location +- external: ecs + name: destination.geo.postal_code +- external: ecs + name: destination.geo.region_iso_code +- external: ecs + name: destination.geo.region_name +- external: ecs + name: destination.geo.timezone +- external: ecs + name: destination.ip +- external: ecs + name: destination.nat.ip +- external: ecs + name: destination.nat.port +- external: ecs + name: destination.packets +- external: ecs + name: destination.port +- external: ecs + name: destination.user.name +- external: ecs + name: dns.question.name +- external: ecs + name: dns.question.registered_domain +- external: ecs + name: dns.question.subdomain +- external: ecs + name: dns.question.top_level_domain +- external: ecs + name: dns.question.type +- external: ecs + name: dns.response_code +- external: ecs + name: ecs.version +- external: ecs + name: error.message +- external: ecs + name: event.action +- external: ecs + name: event.category +- external: ecs + name: event.code +- external: ecs + name: event.created +- external: ecs + name: event.duration +- external: ecs + name: event.end +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.original +- external: ecs + name: event.outcome +- external: ecs + name: event.provider +- external: ecs + name: event.reason +- external: ecs + name: event.severity +- external: ecs + name: event.start +- external: ecs + name: event.timezone +- external: ecs + name: event.type +- external: ecs + name: file.hash.sha256 +- external: ecs + name: file.name +- external: ecs + name: file.path +- external: ecs + name: file.size +- external: ecs + name: http.request.method +- external: ecs + name: http.request.bytes +- external: ecs + name: http.request.referrer +- external: ecs + name: http.response.bytes +- external: ecs + name: http.response.status_code +- external: ecs + name: labels +- external: ecs + name: log.file.path +- external: ecs + name: log.level +- external: ecs + name: log.syslog.priority +- external: ecs + name: log.syslog.facility.code +- external: ecs + name: log.syslog.facility.name +- external: ecs + name: log.syslog.severity.code +- external: ecs + name: log.syslog.severity.name +- external: ecs + name: message +- external: ecs + name: network.application +- external: ecs + name: network.bytes +- external: ecs + name: network.community_id +- external: ecs + name: network.direction +- external: ecs + name: network.iana_number +- external: ecs + name: network.inner +- external: ecs + name: network.inner.vlan.id +- external: ecs + name: network.inner.vlan.name +- external: ecs + name: network.protocol +- external: ecs + name: network.transport +- external: ecs + name: network.type +- external: ecs + name: observer.egress.interface.alias +- external: ecs + name: observer.egress.interface.id +- external: ecs + name: observer.egress.interface.name +- external: ecs + name: observer.egress.zone +- external: ecs + name: observer.hostname +- external: ecs + name: observer.ingress.interface.alias +- external: ecs + name: observer.ingress.interface.id +- external: ecs + name: observer.ingress.interface.name +- external: ecs + name: observer.ingress.zone +- external: ecs + name: observer.ip +- external: ecs + name: observer.name +- external: ecs + name: observer.product +- external: ecs + name: observer.type +- external: ecs + name: observer.vendor +- external: ecs + name: observer.version +- external: ecs + name: process.name +- external: ecs + name: process.pid +- external: ecs + name: related.hash +- external: ecs + name: related.hosts +- external: ecs + name: related.ip +- external: ecs + name: related.user +- external: ecs + name: rule.category +- external: ecs + name: rule.id +- external: ecs + name: rule.name +- external: ecs + name: rule.ruleset +- external: ecs + name: server.domain +- external: ecs + name: server.address +- external: ecs + name: server.port +- external: ecs + name: server.ip +- external: ecs + name: server.user.name +- external: ecs + name: service.id +- external: ecs + name: source.address +- external: ecs + name: source.as.number +- external: ecs + name: source.as.organization.name +- external: ecs + name: source.bytes +- external: ecs + name: source.domain +- external: ecs + name: source.geo.city_name +- external: ecs + name: source.geo.continent_name +- external: ecs + name: source.geo.country_iso_code +- external: ecs + name: source.geo.country_name +- external: ecs + name: source.geo.location +- external: ecs + name: source.geo.region_iso_code +- external: ecs + name: source.geo.region_name +- external: ecs + name: source.ip +- external: ecs + name: source.nat.ip +- external: ecs + name: source.nat.port +- external: ecs + name: source.packets +- external: ecs + name: source.port +- external: ecs + name: source.user.name +- external: ecs + name: source.user.group.name +- external: ecs + name: tags +- external: ecs + name: url.domain +- external: ecs + name: url.extension +- external: ecs + name: url.fragment +- external: ecs + name: url.full +- external: ecs + name: url.original +- external: ecs + name: url.password +- external: ecs + name: url.path +- external: ecs + name: url.port +- external: ecs + name: url.query +- external: ecs + name: url.registered_domain +- external: ecs + name: url.scheme +- external: ecs + name: url.subdomain +- external: ecs + name: url.top_level_domain +- external: ecs + name: url.username +- external: ecs + name: user.email +- external: ecs + name: user.id +- external: ecs + name: user.name +- external: ecs + name: user_agent.original diff --git a/packages/arista_ngfw/data_stream/log/fields/fields.yml b/packages/arista_ngfw/data_stream/log/fields/fields.yml new file mode 100755 index 00000000000..3bc0f00d2e0 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/fields/fields.yml @@ -0,0 +1,175 @@ +# https://wiki.edge.arista.com/index.php/Event_Definitions#SessionEvent +- name: arista + type: group + fields: + - name: bypassed + type: boolean + description: True if bypassed, false otherwise + - name: cpu + type: group + fields: + - name: load + type: group + fields: + - name: "1" + type: integer + description: Average CPU load over the last 1 minute + - name: "5" + type: integer + description: Average CPU load over the last 5 minutes + - name: "15" + type: integer + description: Average CPU load over the last 15 minutes + - name: system + type: group + fields: + - name: pct + type: float + description: Percentage of CPU used by system processes + - name: total + type: group + fields: + - name: pct + type: float + description: Combined percentage of CPU used by system and user processes + - name: user + type: group + fields: + - name: pct + type: float + description: Percentage of CPU used by user processes + - name: disk + type: group + fields: + - name: free + type: group + fields: + - name: bytes + type: integer + description: Disk space available in bytes + - name: pct + type: float + description: Percentage of disk space available + - name: total + type: group + fields: + - name: bytes + type: integer + description: Total disk space + - name: used + type: group + fields: + - name: bytes + type: integer + description: Disk space used in bytes + - name: pct + type: float + description: Percentage of disk space used + - name: entitled + type: boolean + description: The entitled status + - name: flagged + type: boolean + description: True if flagged, false otherwise + - name: hosts + type: group + fields: + - name: active + type: integer + description: Number of hosts currently active + - name: interface + type: group + fields: + - name: id + type: integer + description: The ID of the network interface + - name: memory + type: group + fields: + - name: buffers + type: integer + description: Number of memory buffers used + - name: cache + type: group + fields: + - name: bytes + type: integer + description: Memory cached in bytes + - name: free + type: group + fields: + - name: bytes + type: integer + description: Memory free in bytes + - name: pct + type: float + description: Percentage of memory free + - name: swap + type: group + fields: + - name: free + type: group + fields: + - name: bytes + type: integer + description: Swap memory free in bytes + - name: pct + type: float + description: Percentage of swap memory free + - name: total + type: group + fields: + - name: bytes + type: integer + description: Total swap memory in bytes + - name: used + type: group + fields: + - name: bytes + type: integer + description: Swap memory used in bytes + - name: pct + type: float + description: Percentage of swap memory used + - name: total + type: group + fields: + - name: bytes + type: integer + description: Total memory in bytes + - name: used + type: group + fields: + - name: bytes + type: integer + description: Memory used in bytes + - name: pct + type: float + description: Percentage of memory used + - name: policy + type: group + fields: + - name: id + type: integer + description: The firewall policy applied to the current event + - name: rule_id + type: integer + description: The firewall policy rule responsible for assigning the current event to its policy + - name: received + type: group + fields: + - name: bytes + type: integer + description: Bytes received since the last metric was reported + - name: rate + type: float + description: The rate in bytes of network traffic being received + - name: transmitted + type: group + fields: + - name: bytes + type: integer + description: Bytes transmitted since the last metric was reported + - name: rate + type: float + description: The rate in bytes of network traffic being transmitted diff --git a/packages/arista_ngfw/data_stream/log/manifest.yml b/packages/arista_ngfw/data_stream/log/manifest.yml new file mode 100755 index 00000000000..49829778814 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/manifest.yml @@ -0,0 +1,163 @@ +title: "Firewall Event" +type: logs +streams: + - input: tcp + title: Arista NG Firewall logs + description: Collect Arista NG Firewall logs via TCP + template_path: tcp.yml.hbs + vars: + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - arista-ngfw + - forwarded + - name: tcp_host + type: text + title: TCP host to listen on + multi: false + required: true + show_user: true + default: localhost + - name: tcp_port + type: integer + title: TCP Port to listen on + multi: false + required: true + show_user: true + default: 9010 + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + - name: tz_offset + type: text + title: Timezone + multi: false + required: false + show_user: false + default: UTC + description: IANA time zone or time offset (e.g. `America/Denver` or `-06:00`) to use when interpreting syslog timestamps without a time zone. + - name: interface_id_0_name + type: text + title: Device name for interface ID 0 + multi: false + required: false + show_user: false + description: Optional device name of the firewall's interface with ID 0 (e.g. `eth0`). + - name: interface_id_0_alias + type: text + title: Alias for interface ID 0 + multi: false + required: false + show_user: false + description: Optional alias of the firewall's interface with ID 0 (e.g. `External`). + - name: interface_id_1_name + type: text + title: Device name for interface ID 1 + multi: false + required: false + show_user: false + description: Optional device name of the firewall's interface with ID 0 (e.g. `eth1`). + - name: interface_id_1_alias + type: text + title: Alias for interface ID 1 + multi: false + required: false + show_user: false + description: Optional alias of the firewall's interface with ID 0 (e.g. `Internal`). + - input: udp + title: Arista NG Firewall logs + description: Collect Arista NG Firewall logs via UDP + template_path: udp.yml.hbs + vars: + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - arista-ngfw + - forwarded + - name: udp_host + type: text + title: UDP host to listen on + multi: false + required: true + show_user: true + default: localhost + - name: udp_port + type: integer + title: UDP Port to listen on + multi: false + required: true + show_user: true + default: 9010 + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + - name: tz_offset + type: text + title: Timezone + multi: false + required: false + show_user: false + default: UTC + description: IANA time zone or time offset (e.g. `America/Denver` or `-06:00`) to use when interpreting syslog timestamps without a time zone. + - name: interface_id_1_name + type: text + title: Device name for interface ID 1 + multi: false + required: false + show_user: false + description: Optional device name of the firewall's interface with ID 1 (e.g. `eth0`). + - name: interface_id_1_alias + type: text + title: Alias for interface ID 1 + multi: false + required: false + show_user: false + description: Optional alias of the firewall's interface with ID 1 (e.g. `External`). + - name: interface_id_2_name + type: text + title: Device name for interface ID 2 + multi: false + required: false + show_user: false + description: Optional device name of the firewall's interface with ID 2 (e.g. `eth1`). + - name: interface_id_2_alias + type: text + title: Alias for interface ID 2 + multi: false + required: false + show_user: false + description: Optional alias of the firewall's interface with ID 2 (e.g. `Internal`). diff --git a/packages/arista_ngfw/data_stream/log/sample_event.json b/packages/arista_ngfw/data_stream/log/sample_event.json new file mode 100755 index 00000000000..b177398b364 --- /dev/null +++ b/packages/arista_ngfw/data_stream/log/sample_event.json @@ -0,0 +1,80 @@ +{ + "@timestamp": "2023-05-19T17:52:37.962Z", + "network": { + "direction": "outbound", + "iana_number": 17, + "transport": "udp" + }, + "host": { + "hostname": "Host1", + "name": "Host1" + }, + "event": { + "entitled": true, + "category": ["session"], + "original": "<174>May 19 11:52:37 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"Host1\",\"CServerPort\":9930,\"protocolName\":\"UDP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.10\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"18.214.195.29\",\"remoteAddr\":\"18.214.195.29\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.10\",\"serverCountry\":\"US\",\"sessionId\":110221863965041,\"SClientAddr\":\"66.113.13.6\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":59881,\"timeStamp\":\"2023-05-19 11:52:37.962\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":59881,\"bypassed\":false,\"SServerPort\":9930,\"CServerAddr\":\"18.214.195.29\",\"tagsString\":\"\"}", + "module": "arista_ngfw", + "kind": "event", + "dataset": "arista_ngfw.log", + "ingested": "2023-05-19T17:52:39Z", + "id": 110221863965041 + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "hostname": "arista1.contoso.com", + "name": "arista1", + "vendor": "Arista" + }, + "log": { + "level": "informational", + "syslog": { + "severity": { + "code": 6, + "name": "Informational" + }, + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174 + } + }, + "source": { + "ip": "10.0.0.10", + "domain": "Host1.contoso.com", + "port": 59881, + "geo": {} + }, + "related": { + "ip": [ + "18.214.195.29", + "10.0.0.10" + ], + "hosts": [ + "EC2-18-214-195-29", + "Host1", + "arista1" + ] + }, + "tags": [], + "destination": { + "ip": "18.214.195.29", + "domain": "EC2-18-214-195-29.COMPUTE-1.AMAZONAWS.COM", + "port": 9930, + "geo": { + "city_name": "Ashburn", + "region_name": "Virginia", + "timezone": "America/New_York", + "region_iso_code": "VA", + "country_name": "United States", + "country_iso_code": "US", + "postal_code": "20149", + "continent_code": "NA", + "location": { + "lon": -77.4903, + "lat": 39.0469 + } + } + } +} \ No newline at end of file diff --git a/packages/arista_ngfw/docs/README.md b/packages/arista_ngfw/docs/README.md new file mode 100755 index 00000000000..58de4478900 --- /dev/null +++ b/packages/arista_ngfw/docs/README.md @@ -0,0 +1,351 @@ +# Arista NG Firewall + +This integration is for [Arista NG Firewall](https://edge.arista.com/ng-firewall/) (previously Untangle NG Firewall) event logs and metrics. The package processes syslog messages from Arista NG Firewall devices. + +## Configuration + +Arista NG Firewall supports several syslog output rules that may be configured on the [Events](https://wiki.edge.arista.com/index.php/Events) tab in the firewall's configuration. + +## Supported Event types: + +* Admin Login Event +* Firewall Event +* HTTP Request Event +* HTTP Response Event +* Interface Stat Event +* Intrusion Prevention Log Event +* Session Event +* System Stat Event +* Web Filter Event + +## Logs + +### Arista NG Firewall + +The `log` dataset collects the Arista NG Firewall logs. + +An example event for `log` looks as following: + +```json +{ + "@timestamp": "2023-05-19T17:52:37.962Z", + "network": { + "direction": "outbound", + "iana_number": 17, + "transport": "udp" + }, + "host": { + "hostname": "Host1", + "name": "Host1" + }, + "event": { + "entitled": true, + "category": [ + "session" + ], + "original": "\u003c174\u003eMay 19 11:52:37 INFO uvm[0]: {\"entitled\":true,\"protocol\":17,\"hostname\":\"Host1\",\"CServerPort\":9930,\"protocolName\":\"UDP\",\"serverLatitude\":37.751,\"localAddr\":\"10.0.0.10\",\"class\":\"class com.untangle.uvm.app.SessionEvent\",\"SServerAddr\":\"18.214.195.29\",\"remoteAddr\":\"18.214.195.29\",\"serverIntf\":1,\"CClientAddr\":\"10.0.0.10\",\"serverCountry\":\"US\",\"sessionId\":110221863965041,\"SClientAddr\":\"66.113.13.6\",\"clientCountry\":\"XL\",\"policyRuleId\":0,\"CClientPort\":59881,\"timeStamp\":\"2023-05-19 11:52:37.962\",\"serverLongitude\":-97.822,\"clientIntf\":2,\"policyId\":1,\"SClientPort\":59881,\"bypassed\":false,\"SServerPort\":9930,\"CServerAddr\":\"18.214.195.29\",\"tagsString\":\"\"}", + "module": "arista_ngfw", + "kind": "event", + "dataset": "arista_ngfw.log", + "ingested": "2023-05-19T17:52:39Z", + "id": 110221863965041 + }, + "observer": { + "product": "Arista NG Firewall", + "type": "firewall", + "hostname": "arista1.contoso.com", + "name": "arista1", + "vendor": "Arista" + }, + "log": { + "level": "informational", + "syslog": { + "severity": { + "code": 6, + "name": "Informational" + }, + "facility": { + "code": 21, + "name": "Local 5" + }, + "priority": 174 + } + }, + "source": { + "ip": "10.0.0.10", + "domain": "Host1.contoso.com", + "port": 59881, + "geo": {} + }, + "related": { + "ip": [ + "18.214.195.29", + "10.0.0.10" + ], + "hosts": [ + "EC2-18-214-195-29", + "Host1", + "arista1" + ] + }, + "tags": [], + "destination": { + "ip": "18.214.195.29", + "domain": "EC2-18-214-195-29.COMPUTE-1.AMAZONAWS.COM", + "port": 9930, + "geo": { + "city_name": "Ashburn", + "region_name": "Virginia", + "timezone": "America/New_York", + "region_iso_code": "VA", + "country_name": "United States", + "country_iso_code": "US", + "postal_code": "20149", + "continent_code": "NA", + "location": { + "lon": -77.4903, + "lat": 39.0469 + } + } + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. | date | +| arista.bypassed | True if bypassed, false otherwise | boolean | +| arista.cpu.load.1 | Average CPU load over the last 1 minute | integer | +| arista.cpu.load.15 | Average CPU load over the last 15 minutes | integer | +| arista.cpu.load.5 | Average CPU load over the last 5 minutes | integer | +| arista.cpu.system.pct | Percentage of CPU used by system processes | float | +| arista.cpu.total.pct | Combined percentage of CPU used by system and user processes | float | +| arista.cpu.user.pct | Percentage of CPU used by user processes | float | +| arista.disk.free.bytes | Disk space available in bytes | integer | +| arista.disk.free.pct | Percentage of disk space available | float | +| arista.disk.total.bytes | Total disk space | integer | +| arista.disk.used.bytes | Disk space used in bytes | integer | +| arista.disk.used.pct | Percentage of disk space used | float | +| arista.entitled | The entitled status | boolean | +| arista.flagged | True if flagged, false otherwise | boolean | +| arista.hosts.active | Number of hosts currently active | integer | +| arista.interface.id | The ID of the network interface | integer | +| arista.memory.buffers | Number of memory buffers used | integer | +| arista.memory.cache.bytes | Memory cached in bytes | integer | +| arista.memory.free.bytes | Memory free in bytes | integer | +| arista.memory.free.pct | Percentage of memory free | float | +| arista.memory.swap.free.bytes | Swap memory free in bytes | integer | +| arista.memory.swap.free.pct | Percentage of swap memory free | float | +| arista.memory.swap.total.bytes | Total swap memory in bytes | integer | +| arista.memory.swap.used.bytes | Swap memory used in bytes | integer | +| arista.memory.swap.used.pct | Percentage of swap memory used | float | +| arista.memory.total.bytes | Total memory in bytes | integer | +| arista.memory.used.bytes | Memory used in bytes | integer | +| arista.memory.used.pct | Percentage of memory used | float | +| arista.policy.id | The firewall policy applied to the current event | integer | +| arista.policy.rule_id | The firewall policy rule responsible for assigning the current event to its policy | integer | +| arista.received.bytes | Bytes received since the last metric was reported | integer | +| arista.received.rate | The rate in bytes of network traffic being received | float | +| arista.transmitted.bytes | Bytes transmitted since the last metric was reported | integer | +| arista.transmitted.rate | The rate in bytes of network traffic being transmitted | float | +| client.address | Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| client.domain | The domain name of the client system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.user.name | Short name or login of the user. | keyword | +| client.user.name.text | Multi-field of `client.user.name`. | match_only_text | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| destination.as.organization.name | Organization name. | keyword | +| destination.as.organization.name.text | Multi-field of `destination.as.organization.name`. | match_only_text | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_code | Two-letter code representing continent's name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.postal_code | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | keyword | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.geo.timezone | The time zone of the location, such as IANA time zone name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.nat.ip | Translated ip of destination based NAT sessions (e.g. internet to private DMZ) Typically used with load balancers, firewalls, or routers. | ip | +| destination.nat.port | Port the source session is translated to by NAT Device. Typically used with load balancers, firewalls, or routers. | long | +| destination.packets | Packets sent from the destination to the source. | long | +| destination.port | Port of the destination. | long | +| destination.user.name | Short name or login of the user. | keyword | +| destination.user.name.text | Multi-field of `destination.user.name`. | match_only_text | +| dns.question.name | The name being queried. If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. | keyword | +| dns.question.registered_domain | The highest registered domain, stripped of the subdomain. For example, the registered domain for "foo.example.com" is "example.com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". | keyword | +| dns.question.subdomain | The subdomain is all of the labels under the registered_domain. If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. | keyword | +| dns.question.top_level_domain | The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". | keyword | +| dns.question.type | The type of record being queried. | keyword | +| dns.response_code | The DNS response code. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| error.message | Error message. | match_only_text | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.provider | Source of the event. Event transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing). | keyword | +| event.reason | Reason why this event happened, according to the source. This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). | keyword | +| event.severity | The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`. | long | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.timezone | This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.hash.sha256 | SHA256 hash. | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| file.size | File size in bytes. Only relevant when `file.type` is "file". | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.bytes | Total size in bytes of the request (body and headers). | long | +| http.request.method | HTTP request method. The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. | keyword | +| http.request.referrer | Referrer for this HTTP request. | keyword | +| http.response.bytes | Total size in bytes of the response (body and headers). | long | +| http.response.status_code | HTTP response status code. | long | +| input.type | Input type. | keyword | +| labels | Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. | object | +| log.file.path | Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. If the event wasn't read from a log file, do not populate this field. | keyword | +| log.level | Original log level of the log event. If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). Some examples are `warn`, `err`, `i`, `informational`. | keyword | +| log.offset | Offset of the entry in the log file. | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| log.syslog.facility.code | The Syslog numeric facility of the log event, if available. According to RFCs 5424 and 3164, this value should be an integer between 0 and 23. | long | +| log.syslog.facility.name | The Syslog text-based facility of the log event, if available. | keyword | +| log.syslog.priority | Syslog numeric priority of the event, if available. According to RFCs 5424 and 3164, the priority is 8 \* facility + severity. This number is therefore expected to contain a value between 0 and 191. | long | +| log.syslog.severity.code | The Syslog numeric severity of the log event, if available. If the event source publishing via Syslog provides a different numeric severity value (e.g. firewall, IDS), your source's numeric severity should go to `event.severity`. If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to `event.severity`. | long | +| log.syslog.severity.name | The Syslog numeric severity of the log event, if available. If the event source publishing via Syslog provides a different severity value (e.g. firewall, IDS), your source's text severity should go to `log.level`. If the event source does not specify a distinct severity, you can optionally copy the Syslog severity to `log.level`. | keyword | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| network.application | When a specific application or service is identified from network connection details (source/dest IPs, ports, certificates, or wire format), this field captures the application's or service's name. For example, the original event identifies the network connection being from a specific web service in a `https` network connection, like `facebook` or `twitter`. The field value must be normalized to lowercase for querying. | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.iana_number | IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. | keyword | +| network.inner | Network.inner fields are added in addition to network.vlan fields to describe the innermost VLAN when q-in-q VLAN tagging is present. Allowed fields include vlan.id and vlan.name. Inner vlan fields are typically used when sending traffic with multiple 802.1q encapsulations to a network sensor (e.g. Zeek, Wireshark.) | object | +| network.inner.vlan.id | VLAN ID as reported by the observer. | keyword | +| network.inner.vlan.name | Optional VLAN name as reported by the observer. | keyword | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| observer.egress.interface.alias | Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. | keyword | +| observer.egress.interface.id | Interface ID as reported by an observer (typically SNMP interface ID). | keyword | +| observer.egress.interface.name | Interface name as reported by the system. | keyword | +| observer.egress.zone | Network zone of outbound traffic as reported by the observer to categorize the destination area of egress traffic, e.g. Internal, External, DMZ, HR, Legal, etc. | keyword | +| observer.hostname | Hostname of the observer. | keyword | +| observer.ingress.interface.alias | Interface alias as reported by the system, typically used in firewall implementations for e.g. inside, outside, or dmz logical interface naming. | keyword | +| observer.ingress.interface.id | Interface ID as reported by an observer (typically SNMP interface ID). | keyword | +| observer.ingress.interface.name | Interface name as reported by the system. | keyword | +| observer.ingress.zone | Network zone of incoming traffic as reported by the observer to categorize the source area of ingress traffic. e.g. internal, External, DMZ, HR, Legal, etc. | keyword | +| observer.ip | IP addresses of the observer. | ip | +| observer.name | Custom name of the observer. This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization. If no custom name is needed, the field can be left empty. | keyword | +| observer.product | The product name of the observer. | keyword | +| observer.type | The type of the observer the data is coming from. There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. | keyword | +| observer.vendor | Vendor name of the observer. | keyword | +| observer.version | Observer version. | keyword | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| process.pid | Process id. | long | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| rule.category | A categorization value keyword used by the entity using the rule for detection of this event. | keyword | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| rule.ruleset | Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member. | keyword | +| server.address | Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| server.domain | The domain name of the server system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.user.name | Short name or login of the user. | keyword | +| server.user.name.text | Multi-field of `server.user.name`. | match_only_text | +| service.id | Unique identifier of the running service. If the service is comprised of many nodes, the `service.id` should be the same for all nodes. This id should uniquely identify the service. This makes it possible to correlate logs and metrics for one specific service, no matter which particular node emitted the event. Note that if you need to see the events from one specific host of the service, you should filter on that `host.name` or `host.id` instead. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.domain | The domain name of the source system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.nat.ip | Translated ip of source based NAT sessions (e.g. internal client to internet) Typically connections traversing load balancers, firewalls, or routers. | ip | +| source.nat.port | Translated port of source based NAT sessions. (e.g. internal client to internet) Typically used with load balancers, firewalls, or routers. | long | +| source.packets | Packets sent from the source to the destination. | long | +| source.port | Port of the source. | long | +| source.user.group.name | Name of the group. | keyword | +| source.user.name | Short name or login of the user. | keyword | +| source.user.name.text | Multi-field of `source.user.name`. | match_only_text | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.fragment | Portion of the url after the `#`, such as "top". The `#` is not part of the fragment. | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.password | Password of the request. | keyword | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.registered_domain | The highest registered url domain, stripped of the subdomain. For example, the registered domain for "foo.example.com" is "example.com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| url.subdomain | The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain. For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. | keyword | +| url.top_level_domain | The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". | keyword | +| url.username | Username of the request. | keyword | +| user.email | User email address. | keyword | +| user.id | Unique identifier of the user. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | + diff --git a/packages/arista_ngfw/img/arista-logo.svg b/packages/arista_ngfw/img/arista-logo.svg new file mode 100755 index 00000000000..f1354d6b6ec --- /dev/null +++ b/packages/arista_ngfw/img/arista-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/arista_ngfw/img/screenshot_add_integration.png b/packages/arista_ngfw/img/screenshot_add_integration.png new file mode 100755 index 0000000000000000000000000000000000000000..f610f6182434824a4a7ddf21004769158e92a78e GIT binary patch literal 366473 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

9Sq5r4W1Q?OlBnI9aAGbFQ>Lp47V* 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

&Abir#Z7@;|Iy=q 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�PIp_#^V)nZwR%P+B4I!x3ftT!)nCt#m%D+3S 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 CTxpD)Pi&q=UKfF-cpJ`B&Pe|vq3 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