aikido-zen 0.1.1 → 1.0.0.pre.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.simplecov +7 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +11 -2
  5. data/benchmarks/README.md +8 -12
  6. data/benchmarks/rails7.1_sql_injection.js +30 -34
  7. data/docs/banner.svg +128 -129
  8. data/docs/config.md +8 -6
  9. data/docs/rails.md +1 -1
  10. data/lib/aikido/zen/agent.rb +13 -9
  11. data/lib/aikido/zen/api_client.rb +17 -7
  12. data/lib/aikido/zen/attack.rb +105 -36
  13. data/lib/aikido/zen/background_worker.rb +52 -0
  14. data/lib/aikido/zen/collector/routes.rb +2 -0
  15. data/lib/aikido/zen/collector.rb +31 -4
  16. data/lib/aikido/zen/config.rb +55 -20
  17. data/lib/aikido/zen/detached_agent/agent.rb +78 -0
  18. data/lib/aikido/zen/detached_agent/front_object.rb +37 -0
  19. data/lib/aikido/zen/detached_agent/server.rb +41 -0
  20. data/lib/aikido/zen/detached_agent.rb +2 -0
  21. data/lib/aikido/zen/errors.rb +18 -1
  22. data/lib/aikido/zen/event.rb +4 -2
  23. data/lib/aikido/zen/middleware/check_allowed_addresses.rb +2 -14
  24. data/lib/aikido/zen/middleware/middleware.rb +11 -0
  25. data/lib/aikido/zen/middleware/{throttler.rb → rack_throttler.rb} +11 -13
  26. data/lib/aikido/zen/middleware/request_tracker.rb +190 -0
  27. data/lib/aikido/zen/middleware/set_context.rb +1 -4
  28. data/lib/aikido/zen/outbound_connection_monitor.rb +4 -0
  29. data/lib/aikido/zen/payload.rb +2 -0
  30. data/lib/aikido/zen/rails_engine.rb +12 -0
  31. data/lib/aikido/zen/rate_limiter/breaker.rb +3 -3
  32. data/lib/aikido/zen/rate_limiter.rb +7 -12
  33. data/lib/aikido/zen/request/rails_router.rb +6 -18
  34. data/lib/aikido/zen/request/schema/auth_schemas.rb +14 -0
  35. data/lib/aikido/zen/request/schema/builder.rb +0 -2
  36. data/lib/aikido/zen/request/schema/definition.rb +0 -5
  37. data/lib/aikido/zen/request/schema.rb +18 -3
  38. data/lib/aikido/zen/runtime_settings.rb +2 -2
  39. data/lib/aikido/zen/scanners/path_traversal/helpers.rb +65 -0
  40. data/lib/aikido/zen/scanners/path_traversal_scanner.rb +63 -0
  41. data/lib/aikido/zen/scanners/shell_injection/helpers.rb +159 -0
  42. data/lib/aikido/zen/scanners/shell_injection_scanner.rb +64 -0
  43. data/lib/aikido/zen/scanners/sql_injection_scanner.rb +4 -6
  44. data/lib/aikido/zen/scanners/ssrf/private_ip_checker.rb +33 -21
  45. data/lib/aikido/zen/scanners/ssrf_scanner.rb +15 -7
  46. data/lib/aikido/zen/scanners/stored_ssrf_scanner.rb +6 -0
  47. data/lib/aikido/zen/scanners.rb +2 -0
  48. data/lib/aikido/zen/sink.rb +6 -1
  49. data/lib/aikido/zen/sinks/action_controller.rb +34 -15
  50. data/lib/aikido/zen/sinks/file.rb +120 -0
  51. data/lib/aikido/zen/sinks/kernel.rb +73 -0
  52. data/lib/aikido/zen/sinks/socket.rb +13 -0
  53. data/lib/aikido/zen/sinks.rb +8 -0
  54. data/lib/aikido/zen/system_info.rb +1 -1
  55. data/lib/aikido/zen/version.rb +2 -2
  56. data/lib/aikido/zen/worker.rb +5 -0
  57. data/lib/aikido/zen.rb +54 -8
  58. data/tasklib/bench.rake +31 -7
  59. data/tasklib/wrk.rb +88 -0
  60. metadata +21 -7
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aikido-zen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0.pre.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Sanguinetti
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-19 00:00:00.000000000 Z
11
+ date: 2025-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description:
55
+ description:
56
56
  email:
57
57
  - foca@foca.io
58
58
  executables: []
@@ -79,6 +79,7 @@ files:
79
79
  - lib/aikido/zen/agent/heartbeats_manager.rb
80
80
  - lib/aikido/zen/api_client.rb
81
81
  - lib/aikido/zen/attack.rb
82
+ - lib/aikido/zen/background_worker.rb
82
83
  - lib/aikido/zen/capped_collections.rb
83
84
  - lib/aikido/zen/collector.rb
84
85
  - lib/aikido/zen/collector/hosts.rb
@@ -90,12 +91,18 @@ files:
90
91
  - lib/aikido/zen/context.rb
91
92
  - lib/aikido/zen/context/rack_request.rb
92
93
  - lib/aikido/zen/context/rails_request.rb
94
+ - lib/aikido/zen/detached_agent.rb
95
+ - lib/aikido/zen/detached_agent/agent.rb
96
+ - lib/aikido/zen/detached_agent/front_object.rb
97
+ - lib/aikido/zen/detached_agent/server.rb
93
98
  - lib/aikido/zen/errors.rb
94
99
  - lib/aikido/zen/event.rb
95
100
  - lib/aikido/zen/internals.rb
96
101
  - lib/aikido/zen/middleware/check_allowed_addresses.rb
102
+ - lib/aikido/zen/middleware/middleware.rb
103
+ - lib/aikido/zen/middleware/rack_throttler.rb
104
+ - lib/aikido/zen/middleware/request_tracker.rb
97
105
  - lib/aikido/zen/middleware/set_context.rb
98
- - lib/aikido/zen/middleware/throttler.rb
99
106
  - lib/aikido/zen/outbound_connection.rb
100
107
  - lib/aikido/zen/outbound_connection_monitor.rb
101
108
  - lib/aikido/zen/package.rb
@@ -122,6 +129,10 @@ files:
122
129
  - lib/aikido/zen/runtime_settings/rate_limit_settings.rb
123
130
  - lib/aikido/zen/scan.rb
124
131
  - lib/aikido/zen/scanners.rb
132
+ - lib/aikido/zen/scanners/path_traversal/helpers.rb
133
+ - lib/aikido/zen/scanners/path_traversal_scanner.rb
134
+ - lib/aikido/zen/scanners/shell_injection/helpers.rb
135
+ - lib/aikido/zen/scanners/shell_injection_scanner.rb
125
136
  - lib/aikido/zen/scanners/sql_injection_scanner.rb
126
137
  - lib/aikido/zen/scanners/ssrf/dns_lookups.rb
127
138
  - lib/aikido/zen/scanners/ssrf/private_ip_checker.rb
@@ -134,9 +145,11 @@ files:
134
145
  - lib/aikido/zen/sinks/curb.rb
135
146
  - lib/aikido/zen/sinks/em_http.rb
136
147
  - lib/aikido/zen/sinks/excon.rb
148
+ - lib/aikido/zen/sinks/file.rb
137
149
  - lib/aikido/zen/sinks/http.rb
138
150
  - lib/aikido/zen/sinks/httpclient.rb
139
151
  - lib/aikido/zen/sinks/httpx.rb
152
+ - lib/aikido/zen/sinks/kernel.rb
140
153
  - lib/aikido/zen/sinks/mysql2.rb
141
154
  - lib/aikido/zen/sinks/net_http.rb
142
155
  - lib/aikido/zen/sinks/patron.rb
@@ -152,6 +165,7 @@ files:
152
165
  - lib/aikido/zen/worker.rb
153
166
  - tasklib/bench.rake
154
167
  - tasklib/libzen.rake
168
+ - tasklib/wrk.rb
155
169
  homepage: https://aikido.dev
156
170
  licenses:
157
171
  - AGPL-3.0-or-later
@@ -159,7 +173,7 @@ metadata:
159
173
  homepage_uri: https://aikido.dev
160
174
  source_code_uri: https://github.com/aikidosec/firewall-ruby
161
175
  changelog_uri: https://github.com/aikidosec/firewall-ruby/blob/main/CHANGELOG.md
162
- post_install_message:
176
+ post_install_message:
163
177
  rdoc_options: []
164
178
  require_paths:
165
179
  - lib
@@ -175,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
189
  version: '0'
176
190
  requirements: []
177
191
  rubygems_version: 3.5.22
178
- signing_key:
192
+ signing_key:
179
193
  specification_version: 4
180
194
  summary: Embedded Web Application Firewall that autonomously protects Ruby apps against
181
195
  common and critical attacks.