-
Notifications
You must be signed in to change notification settings - Fork 313
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exploit prevention command injection #4966
Conversation
Overall package sizeSelf size: 8.39 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.3.0 | 29.43 MB | 29.43 MB | | @datadog/native-appsec | 8.3.0 | 19.37 MB | 19.38 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
362ae5c
to
9d6d7e9
Compare
9d6d7e9
to
46762c4
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4966 +/- ##
===========================================
+ Coverage 65.05% 93.78% +28.72%
===========================================
Files 304 111 -193
Lines 13950 3570 -10380
===========================================
- Hits 9075 3348 -5727
+ Misses 4875 222 -4653 ☔ View full report in Codecov by Sentry. |
@@ -174,15 +174,13 @@ module.exports = class FakeAgent extends EventEmitter { | |||
msgCount += 1 | |||
try { | |||
fn(msg) | |||
if (msgCount === expectedMessageCount) { | |||
if (resolveAtFirstSuccess || msgCount === expectedMessageCount) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are changing the previous behaviour here.
if fn(msg)
throws an Error, we are not going to remove the listener if msgCount === expectedMessageCount
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to align it with assertMessageReceived
, but yes you're right.
I'll update both functions to make sure we have consistent behavior
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iunanua Adding resolveAtFirstSuccess
did not fix the telemetry test issue, so I reverted the changes and improved the tests to ensure that telemetry was tested on the appsec
namespace
b83ff3e
to
5b8385f
Compare
packages/dd-trace/test/appsec/rasp/command_injection.integration.spec.js
Show resolved
Hide resolved
This reverts commit 4a3d766.
* Exploit prevention command injection * fix spawnSync abort error test * add telemetry tests * fix sql injection tests on postgres * add different test * revert spawnSync changes * fix linter * add spawnSync tests * remove spawnSync not needed test * fix cmdi params * Revert "fix cmdi params" This reverts commit 4a3d766.
* Exploit prevention command injection * fix spawnSync abort error test * add telemetry tests * fix sql injection tests on postgres * add different test * revert spawnSync changes * fix linter * add spawnSync tests * remove spawnSync not needed test * fix cmdi params * Revert "fix cmdi params" This reverts commit 4a3d766.
* Exploit prevention command injection * fix spawnSync abort error test * add telemetry tests * fix sql injection tests on postgres * add different test * revert spawnSync changes * fix linter * add spawnSync tests * remove spawnSync not needed test * fix cmdi params * Revert "fix cmdi params" This reverts commit 4a3d766.
* Exploit prevention command injection * fix spawnSync abort error test * add telemetry tests * fix sql injection tests on postgres * add different test * revert spawnSync changes * fix linter * add spawnSync tests * remove spawnSync not needed test * fix cmdi params * Revert "fix cmdi params" This reverts commit 4a3d766.
What does this PR do?
We already support exploit prevention for shell injection. This PR extends the support to child process functions that do not use a shell.
this will call the waf and block the operation and request if needed
Motivation
Plugin Checklist
Additional Notes
https://datadoghq.atlassian.net/browse/APPSEC-55085