-
Notifications
You must be signed in to change notification settings - Fork 304
Extended appsec request body collection #8748
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 1 performance improvements and 1 performance regressions! Performance is the same for 58 metrics, 11 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.02 s) : 0, 1020077
Total [baseline] (8.654 s) : 0, 8654146
Agent [candidate] (1.025 s) : 0, 1024998
Total [candidate] (8.674 s) : 0, 8674255
section iast
Agent [baseline] (1.149 s) : 0, 1148747
Total [baseline] (9.272 s) : 0, 9271819
Agent [candidate] (1.154 s) : 0, 1153737
Total [candidate] (9.218 s) : 0, 9217562
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.149 s) : 0, 1149411
Total [baseline] (9.21 s) : 0, 9209961
Agent [candidate] (1.147 s) : 0, 1147424
Total [candidate] (9.179 s) : 0, 9178887
section iast_TELEMETRY_OFF
Agent [baseline] (1.151 s) : 0, 1151286
Total [baseline] (9.249 s) : 0, 9249124
Agent [candidate] (1.149 s) : 0, 1148516
Total [candidate] (9.228 s) : 0, 9227597
gantt
title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (681.451 ms) : 0, 681451
BytebuddyAgent [candidate] (683.588 ms) : 0, 683588
GlobalTracer [baseline] (239.823 ms) : 0, 239823
GlobalTracer [candidate] (241.15 ms) : 0, 241150
AppSec [baseline] (54.439 ms) : 0, 54439
AppSec [candidate] (55.451 ms) : 0, 55451
Debugger [baseline] (8.939 ms) : 0, 8939
Debugger [candidate] (9.143 ms) : 0, 9143
Remote Config [baseline] (681.654 µs) : 0, 682
Remote Config [candidate] (708.618 µs) : 0, 709
Telemetry [baseline] (11.128 ms) : 0, 11128
Telemetry [candidate] (11.374 ms) : 0, 11374
section iast
BytebuddyAgent [baseline] (801.934 ms) : 0, 801934
BytebuddyAgent [candidate] (804.399 ms) : 0, 804399
GlobalTracer [baseline] (230.302 ms) : 0, 230302
GlobalTracer [candidate] (231.916 ms) : 0, 231916
IAST [baseline] (28.273 ms) : 0, 28273
IAST [candidate] (28.638 ms) : 0, 28638
AppSec [baseline] (50.266 ms) : 0, 50266
AppSec [candidate] (50.602 ms) : 0, 50602
Debugger [baseline] (5.922 ms) : 0, 5922
Debugger [candidate] (5.994 ms) : 0, 5994
Remote Config [baseline] (596.958 µs) : 0, 597
Remote Config [candidate] (596.691 µs) : 0, 597
Telemetry [baseline] (7.927 ms) : 0, 7927
Telemetry [candidate] (7.964 ms) : 0, 7964
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (802.437 ms) : 0, 802437
BytebuddyAgent [candidate] (800.743 ms) : 0, 800743
GlobalTracer [baseline] (230.423 ms) : 0, 230423
GlobalTracer [candidate] (230.421 ms) : 0, 230421
IAST [baseline] (27.457 ms) : 0, 27457
IAST [candidate] (28.843 ms) : 0, 28843
AppSec [baseline] (51.099 ms) : 0, 51099
AppSec [candidate] (49.457 ms) : 0, 49457
Debugger [baseline] (5.932 ms) : 0, 5932
Debugger [candidate] (5.91 ms) : 0, 5910
Remote Config [baseline] (589.156 µs) : 0, 589
Remote Config [candidate] (604.684 µs) : 0, 605
Telemetry [baseline] (7.879 ms) : 0, 7879
Telemetry [candidate] (7.906 ms) : 0, 7906
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (803.876 ms) : 0, 803876
BytebuddyAgent [candidate] (802.505 ms) : 0, 802505
GlobalTracer [baseline] (231.193 ms) : 0, 231193
GlobalTracer [candidate] (230.667 ms) : 0, 230667
IAST [baseline] (23.261 ms) : 0, 23261
IAST [candidate] (23.755 ms) : 0, 23755
AppSec [baseline] (54.923 ms) : 0, 54923
AppSec [candidate] (53.893 ms) : 0, 53893
Debugger [baseline] (5.97 ms) : 0, 5970
Debugger [candidate] (5.831 ms) : 0, 5831
Remote Config [baseline] (605.698 µs) : 0, 606
Remote Config [candidate] (585.326 µs) : 0, 585
Telemetry [baseline] (7.837 ms) : 0, 7837
Telemetry [candidate] (7.724 ms) : 0, 7724
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.021 s) : 0, 1021434
Total [baseline] (10.452 s) : 0, 10451713
Agent [candidate] (1.024 s) : 0, 1024084
Total [candidate] (10.435 s) : 0, 10434916
section appsec
Agent [baseline] (1.167 s) : 0, 1167086
Total [baseline] (10.713 s) : 0, 10712853
Agent [candidate] (1.168 s) : 0, 1168288
Total [candidate] (10.674 s) : 0, 10674433
section iast
Agent [baseline] (1.156 s) : 0, 1155696
Total [baseline] (10.938 s) : 0, 10937947
Agent [candidate] (1.152 s) : 0, 1151737
Total [candidate] (10.953 s) : 0, 10953439
section profiling
Agent [baseline] (1.287 s) : 0, 1287435
Total [baseline] (10.813 s) : 0, 10813332
Agent [candidate] (1.27 s) : 0, 1270359
Total [candidate] (10.812 s) : 0, 10812354
gantt
title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (683.238 ms) : 0, 683238
BytebuddyAgent [candidate] (685.915 ms) : 0, 685915
GlobalTracer [baseline] (240.116 ms) : 0, 240116
GlobalTracer [candidate] (241.741 ms) : 0, 241741
AppSec [baseline] (55.823 ms) : 0, 55823
AppSec [candidate] (55.278 ms) : 0, 55278
Debugger [baseline] (8.961 ms) : 0, 8961
Debugger [candidate] (7.634 ms) : 0, 7634
Remote Config [baseline] (683.598 µs) : 0, 684
Remote Config [candidate] (715.271 µs) : 0, 715
Telemetry [baseline] (8.96 ms) : 0, 8960
Telemetry [candidate] (9.062 ms) : 0, 9062
section appsec
BytebuddyAgent [baseline] (705.023 ms) : 0, 705023
BytebuddyAgent [candidate] (706.33 ms) : 0, 706330
GlobalTracer [baseline] (237.74 ms) : 0, 237740
GlobalTracer [candidate] (237.367 ms) : 0, 237367
AppSec [baseline] (175.895 ms) : 0, 175895
AppSec [candidate] (175.957 ms) : 0, 175957
Debugger [baseline] (5.923 ms) : 0, 5923
Debugger [candidate] (5.999 ms) : 0, 5999
Remote Config [baseline] (630.128 µs) : 0, 630
Remote Config [candidate] (634.433 µs) : 0, 634
Telemetry [baseline] (7.371 ms) : 0, 7371
Telemetry [candidate] (7.408 ms) : 0, 7408
IAST [baseline] (21.79 ms) : 0, 21790
IAST [candidate] (21.833 ms) : 0, 21833
section iast
BytebuddyAgent [baseline] (807.14 ms) : 0, 807140
BytebuddyAgent [candidate] (803.997 ms) : 0, 803997
GlobalTracer [baseline] (231.454 ms) : 0, 231454
GlobalTracer [candidate] (231.205 ms) : 0, 231205
AppSec [baseline] (51.386 ms) : 0, 51386
AppSec [candidate] (48.769 ms) : 0, 48769
Debugger [baseline] (5.933 ms) : 0, 5933
Debugger [candidate] (5.925 ms) : 0, 5925
Remote Config [baseline] (600.588 µs) : 0, 601
Remote Config [candidate] (601.244 µs) : 0, 601
Telemetry [baseline] (7.995 ms) : 0, 7995
Telemetry [candidate] (7.922 ms) : 0, 7922
IAST [baseline] (26.7 ms) : 0, 26700
IAST [candidate] (29.764 ms) : 0, 29764
section profiling
ProfilingAgent [baseline] (109.759 ms) : 0, 109759
ProfilingAgent [candidate] (105.342 ms) : 0, 105342
BytebuddyAgent [baseline] (677.64 ms) : 0, 677640
BytebuddyAgent [candidate] (675.63 ms) : 0, 675630
GlobalTracer [baseline] (379.522 ms) : 0, 379522
GlobalTracer [candidate] (361.001 ms) : 0, 361001
AppSec [baseline] (54.601 ms) : 0, 54601
AppSec [candidate] (62.005 ms) : 0, 62005
Debugger [baseline] (6.156 ms) : 0, 6156
Debugger [candidate] (6.317 ms) : 0, 6317
Remote Config [baseline] (652.956 µs) : 0, 653
Remote Config [candidate] (655.439 µs) : 0, 655
Telemetry [baseline] (8.184 ms) : 0, 8184
Telemetry [candidate] (8.261 ms) : 0, 8261
Profiling [baseline] (109.784 ms) : 0, 109784
Profiling [candidate] (105.366 ms) : 0, 105366
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 18 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section baseline
no_agent (1.38 ms) : 1360, 1400
. : milestone, 1380,
appsec (1.746 ms) : 1723, 1770
. : milestone, 1746,
appsec_no_iast (1.723 ms) : 1700, 1747
. : milestone, 1723,
code_origins (1.675 ms) : 1648, 1702
. : milestone, 1675,
iast (1.518 ms) : 1495, 1542
. : milestone, 1518,
profiling (1.524 ms) : 1501, 1548
. : milestone, 1524,
tracing (1.506 ms) : 1481, 1531
. : milestone, 1506,
section candidate
no_agent (1.371 ms) : 1351, 1390
. : milestone, 1371,
appsec (1.751 ms) : 1727, 1775
. : milestone, 1751,
appsec_no_iast (1.732 ms) : 1709, 1755
. : milestone, 1732,
code_origins (1.669 ms) : 1642, 1696
. : milestone, 1669,
iast (1.522 ms) : 1498, 1546
. : milestone, 1522,
profiling (1.548 ms) : 1523, 1573
. : milestone, 1548,
tracing (1.502 ms) : 1478, 1525
. : milestone, 1502,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section baseline
no_agent (387.935 µs) : 367, 409
. : milestone, 388,
iast (526.218 µs) : 505, 548
. : milestone, 526,
iast_FULL (744.035 µs) : 722, 766
. : milestone, 744,
iast_GLOBAL (564.593 µs) : 543, 586
. : milestone, 565,
iast_HARDCODED_SECRET_DISABLED (521.674 µs) : 500, 543
. : milestone, 522,
iast_INACTIVE (465.995 µs) : 443, 489
. : milestone, 466,
iast_TELEMETRY_OFF (519.73 µs) : 496, 543
. : milestone, 520,
tracing (462.694 µs) : 441, 484
. : milestone, 463,
section candidate
no_agent (389.406 µs) : 369, 410
. : milestone, 389,
iast (520.933 µs) : 499, 543
. : milestone, 521,
iast_FULL (736.113 µs) : 714, 758
. : milestone, 736,
iast_GLOBAL (576.654 µs) : 555, 599
. : milestone, 577,
iast_HARDCODED_SECRET_DISABLED (519.678 µs) : 498, 542
. : milestone, 520,
iast_INACTIVE (467.578 µs) : 445, 490
. : milestone, 468,
iast_TELEMETRY_OFF (511.957 µs) : 488, 536
. : milestone, 512,
tracing (466.068 µs) : 444, 488
. : milestone, 466,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section baseline
no_agent (15.54 s) : 15540000, 15540000
. : milestone, 15540000,
appsec (15.005 s) : 15005000, 15005000
. : milestone, 15005000,
iast (18.858 s) : 18858000, 18858000
. : milestone, 18858000,
iast_GLOBAL (18.094 s) : 18094000, 18094000
. : milestone, 18094000,
profiling (14.942 s) : 14942000, 14942000
. : milestone, 14942000,
tracing (14.961 s) : 14961000, 14961000
. : milestone, 14961000,
section candidate
no_agent (15.191 s) : 15191000, 15191000
. : milestone, 15191000,
appsec (14.667 s) : 14667000, 14667000
. : milestone, 14667000,
iast (19.118 s) : 19118000, 19118000
. : milestone, 19118000,
iast_GLOBAL (18.345 s) : 18345000, 18345000
. : milestone, 18345000,
profiling (15.059 s) : 15059000, 15059000
. : milestone, 15059000,
tracing (14.905 s) : 14905000, 14905000
. : milestone, 14905000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~2a3b7b72ce, baseline=1.50.0-SNAPSHOT~ad6d5fef42
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1467, 1490
. : milestone, 1479,
appsec (2.409 ms) : 2360, 2457
. : milestone, 2409,
iast (2.169 ms) : 2109, 2229
. : milestone, 2169,
iast_GLOBAL (2.224 ms) : 2163, 2284
. : milestone, 2224,
profiling (2.044 ms) : 1994, 2094
. : milestone, 2044,
tracing (2.015 ms) : 1968, 2062
. : milestone, 2015,
section candidate
no_agent (1.478 ms) : 1466, 1489
. : milestone, 1478,
appsec (2.401 ms) : 2352, 2449
. : milestone, 2401,
iast (2.187 ms) : 2127, 2248
. : milestone, 2187,
iast_GLOBAL (2.226 ms) : 2165, 2288
. : milestone, 2226,
profiling (2.041 ms) : 1992, 2091
. : milestone, 2041,
tracing (2.017 ms) : 1969, 2065
. : milestone, 2017,
|
dc48fa1
to
761eade
Compare
bdc855c
to
5dcd1cf
Compare
This PR adds support for a new telemetry metric: appsec.waf.input_truncated. This is a count metric that tracks the number of times a WAF input was truncated, which may happen multiple times per request. The metric includes a truncation_reason tag, represented as a bitfield, with the following values: 1: string too long 2: list or map too large 4: object too deep Additional Notes For every call to WAF, if truncation occurred during serialization, we should emit the metric. This will increment the count for each run where truncation was detected, and each metric will include the bitfield indicating the types of truncation that occurred. This metric should also be triggered when ObjectInstrospector truncates the object send to the WAF. This corner case affects parsed request body and grpc. This should be fixed after #8748
c117ce0
to
09b77c3
Compare
improve truncation wip wip - not working wip - fix
fad042b
to
502cf6a
Compare
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
What Does This Do
Adds the
APPSEC_RASP_COLLECT_REQUEST_BODY
flag, which enables collection of request body. This feature is disabled by default.if
APPSEC_RASP_COLLECT_REQUEST_BODY
is enabled and there is a RASP event put the same parsed request body that is sent to the WAF viameta_struct
withhttp.request.body
keyAdd listener to ObjectInstrospection#convert to add boolean tag
_dd.appsec.rasp.request_body_size.exceeded
if a limit is surpassedMotivation
Additional Notes
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: APPSEC-57268