Skip to content

🍒 8885, 8952 - Optimize IAST Vulnerability Detection... - #9241

Closed
sarahchen6 wants to merge 2 commits into
release/v1.50.xfrom
sarah.chen/backport-pr-8885
Closed

🍒 8885, 8952 - Optimize IAST Vulnerability Detection...#9241
sarahchen6 wants to merge 2 commits into
release/v1.50.xfrom
sarah.chen/backport-pr-8885

Conversation

@sarahchen6

@sarahchen6sarahchen6 commented Jul 24, 2025

Copy link
Copy Markdown
Contributor

Backports #8885 and #8952 to release/v1.50.x

What Does This Do
Implements the new algorithm for detecting IAST vulnerabilities, where vulnerabilities that were already explored in previous runs for a given endpoint are skipped, ensuring that all remaining ones are eventually explored.
This addresses the current limitation where only the first matching vulnerabilities are consistently reported, causing others to remain hidden.
Changes to OverheadContext
The OverheadContext class has been extended to support three separate tracking maps:
globalMap
Used to track vulnerability detection counts per endpoint across all requests.
Keys are strings combining the request method and route (GET /login, POST /submit, etc.).
Values are maps from vulnerabilityType → int (count of occurrences).
Capped at 4,096 entries using a clear‐on‐overflow strategy, to ensure bounded memory usage.
Oldest entries are cleared once the limit is reached.
copyMap
Created per request to copy the global counts at the start of the request, ensuring a consistent baseline to compare against throughout the lifecycle of the request.
requestMap
Tracks vulnerability type counts within the request.
An additional field, isGlobal, has been added to indicate whether the context is global or request-scoped. If isGlobal is true, the maps are not used, and quota checks proceed using the global strategy only.
A new method, resetMaps(), has been added to update globalMap when the request ends and vulnerability data has been reported. Two scenarios are supported:
Case 1: Budget not fully used → The entry for the endpoint in globalMap is cleared, since the request stayed within budget.
Case 2: Budget fully used → The counts from requestMap are compared to those in copyMap. For each vulnerability type, if the value in requestMap is greater, it is used to update the corresponding entry in globalMap.
Changes to OverheadController
The method consumeQuota() has been extended to receive a vulnerabilityType and modified to support the new logic:
If an OverheadContext is present and not global, and there is remaining quota and a valid span, the controller now invokes a new method maybeSkipVulnerability() to determine whether quota should actually be consumed or not, based on endpoint-specific history.
It's better to check the Algorithm execution example flow diagram to understand how this should work
Changes to IastRequestContext
In releaseRequestContext(), the request now calls resetMaps() on the associated OverheadContext, ensuring globalMap is updated at the end of each request.
Motivation
[RFC-1029] Optimizing IAST Vulnerability Detection implementation
Additional Notes
java tracer needs to implement also [RFC-1029-A1] Solution for dynamic http routes
(cherry picked from commit 99ecab7)
@sarahchen6sarahchen6 added type: feature Enhancements and improvements comp: asm iast Application Security Management (IAST) labels Jul 24, 2025
@sarahchen6
sarahchen6 requested a review from a team as a code ownerJuly 24, 2025 16:02
@sarahchen6sarahchen6 added type: feature Enhancements and improvements comp: asm iast Application Security Management (IAST) labels Jul 24, 2025
@sarahchen6sarahchen6 added this to the 1.50.2 milestone Jul 24, 2025
@pr-commenter

pr-commenterBot commented Jul 24, 2025

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmastersarah.chen/backport-pr-8885
git_commit_date17533787161753382428
git_commit_shab94ca59c7b1417
release_version1.51.1-SNAPSHOT~b94ca598bb1.51.0-SNAPSHOT~c7b14171e2
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17533849101753384910
ci_job_id10466934911046693491
ci_pipeline_id7163919771639197
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-18gk8fel 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-18gk8fel 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
moduleAgentAgent
parentNoneNone

Summary

Found 9 performance improvements and 4 performance regressions! Performance is the same for 24 metrics, 16 unstable metrics.

scenarioΔ mean execution_timecandidate mean execution_timebaseline mean execution_time
scenario:startup:insecure-bank:iast:BytebuddyAgentbetter
[-50.979ms; -23.869ms] or [-5.996%; -2.807%]
812.854ms850.278ms
scenario:startup:insecure-bank:tracing:BytebuddyAgentbetter
[-47.878ms; -42.171ms] or [-6.542%; -5.762%]
686.873ms731.897ms
scenario:startup:petclinic:appsec:Agent.startbetter
[-60.956ms; -27.836ms] or [-4.968%; -2.269%]
1.183s1.227s
scenario:startup:petclinic:appsec:BytebuddyAgentbetter
[-58.112ms; -35.688ms] or [-7.666%; -4.708%]
711.166ms758.066ms
scenario:startup:petclinic:appsec:AppSecworse
[+4.397ms; +10.190ms] or [+2.595%; +6.013%]
176.756ms169.463ms
scenario:startup:petclinic:appsec:Telemetrybetter
[-1.331ms; -0.767ms] or [-15.898%; -9.166%]
7.322ms8.371ms
scenario:startup:petclinic:iast:BytebuddyAgentbetter
[-43.791ms; -36.141ms] or [-5.170%; -4.267%]
806.986ms846.952ms
scenario:startup:petclinic:profiling:Agent.startworse
[+81.078ms; +89.335ms] or [+6.809%; +7.503%]
1.276s1.191s
scenario:startup:petclinic:profiling:BytebuddyAgentbetter
[-82.032ms; -76.427ms] or [-10.811%; -10.072%]
679.583ms758.813ms
scenario:startup:petclinic:profiling:GlobalTracerworse
[+141.314ms; +143.289ms] or [+63.969%; +64.863%]
363.212ms220.911ms
scenario:startup:petclinic:profiling:AppSecworse
[+31.469ms; +32.200ms] or [+104.417%; +106.845%]
61.972ms30.137ms
scenario:startup:petclinic:profiling:Telemetrybetter
[-7.760ms; -7.222ms] or [-49.209%; -45.797%]
8.279ms15.770ms
scenario:startup:petclinic:tracing:BytebuddyAgentbetter
[-47.563ms; -27.198ms] or [-6.503%; -3.719%]
694.038ms731.419ms
Startup time reports for petclinic
gantt
title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.045 s) : 0, 1045149
Total [baseline] (10.718 s) : 0, 10718219
Agent [candidate] (1.036 s) : 0, 1035976
Total [candidate] (10.738 s) : 0, 10737617
section appsec
Agent [baseline] (1.227 s) : 0, 1227069
Total [baseline] (10.835 s) : 0, 10835231
Agent [candidate] (1.183 s) : 0, 1182673
Total [candidate] (10.822 s) : 0, 10821662
section iast
Agent [baseline] (1.174 s) : 0, 1174200
Total [baseline] (10.871 s) : 0, 10871109
Agent [candidate] (1.156 s) : 0, 1155613
Total [candidate] (10.94 s) : 0, 10940183
section profiling
Agent [baseline] (1.191 s) : 0, 1190659
Total [baseline] (10.812 s) : 0, 10812471
Agent [candidate] (1.276 s) : 0, 1275865
Total [candidate] (11.006 s) : 0, 11006233
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.045 s-
Agentappsec1.227 s181.92 ms (17.4%)
Agentiast1.174 s129.051 ms (12.3%)
Agentprofiling1.191 s145.51 ms (13.9%)
Totaltracing10.718 s-
Totalappsec10.835 s117.012 ms (1.1%)
Totaliast10.871 s152.89 ms (1.4%)
Totalprofiling10.812 s94.252 ms (0.9%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.036 s-
Agentappsec1.183 s146.697 ms (14.2%)
Agentiast1.156 s119.637 ms (11.5%)
Agentprofiling1.276 s239.889 ms (23.2%)
Totaltracing10.738 s-
Totalappsec10.822 s84.045 ms (0.8%)
Totaliast10.94 s202.567 ms (1.9%)
Totalprofiling11.006 s268.617 ms (2.5%)
gantt
title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (731.419 ms) : 0, 731419
BytebuddyAgent [candidate] (694.038 ms) : 0, 694038
GlobalTracer [baseline] (241.706 ms) : 0, 241706
GlobalTracer [candidate] (244.687 ms) : 0, 244687
AppSec [baseline] (30.41 ms) : 0, 30410
AppSec [candidate] (57.18 ms) : 0, 57180
Debugger [baseline] (5.978 ms) : 0, 5978
Debugger [candidate] (7.791 ms) : 0, 7791
Remote Config [baseline] (649.344 µs) : 0, 649
Remote Config [candidate] (688.191 µs) : 0, 688
Telemetry [baseline] (12.54 ms) : 0, 12540
Telemetry [candidate] (10.486 ms) : 0, 10486
crashtracking [baseline] (1.43 ms) : 0, 1430
section appsec
BytebuddyAgent [baseline] (758.066 ms) : 0, 758066
BytebuddyAgent [candidate] (711.166 ms) : 0, 711166
GlobalTracer [baseline] (235.976 ms) : 0, 235976
GlobalTracer [candidate] (236.743 ms) : 0, 236743
IAST [baseline] (23.732 ms) : 0, 23732
IAST [candidate] (23.218 ms) : 0, 23218
AppSec [baseline] (169.463 ms) : 0, 169463
AppSec [candidate] (176.756 ms) : 0, 176756
Debugger [baseline] (8.005 ms) : 0, 8005
Debugger [candidate] (5.941 ms) : 0, 5941
Remote Config [baseline] (629.587 µs) : 0, 630
Remote Config [candidate] (615.958 µs) : 0, 616
Telemetry [baseline] (8.371 ms) : 0, 8371
Telemetry [candidate] (7.322 ms) : 0, 7322
crashtracking [baseline] (1.437 ms) : 0, 1437
section iast
BytebuddyAgent [baseline] (846.952 ms) : 0, 846952
BytebuddyAgent [candidate] (806.986 ms) : 0, 806986
GlobalTracer [baseline] (231.946 ms) : 0, 231946
GlobalTracer [candidate] (232.343 ms) : 0, 232343
IAST [baseline] (28.409 ms) : 0, 28409
IAST [candidate] (29.818 ms) : 0, 29818
AppSec [baseline] (27.366 ms) : 0, 27366
AppSec [candidate] (50.807 ms) : 0, 50807
Debugger [baseline] (8.335 ms) : 0, 8335
Debugger [candidate] (5.962 ms) : 0, 5962
Remote Config [baseline] (580.966 µs) : 0, 581
Remote Config [candidate] (637.845 µs) : 0, 638
Telemetry [baseline] (8.121 ms) : 0, 8121
Telemetry [candidate] (8.215 ms) : 0, 8215
crashtracking [baseline] (1.433 ms) : 0, 1433
section profiling
BytebuddyAgent [baseline] (758.813 ms) : 0, 758813
BytebuddyAgent [candidate] (679.583 ms) : 0, 679583
GlobalTracer [baseline] (220.911 ms) : 0, 220911
GlobalTracer [candidate] (363.212 ms) : 0, 363212
AppSec [baseline] (30.137 ms) : 0, 30137
AppSec [candidate] (61.972 ms) : 0, 61972
Debugger [baseline] (6.206 ms) : 0, 6206
Debugger [candidate] (6.181 ms) : 0, 6181
Remote Config [baseline] (697.525 µs) : 0, 698
Remote Config [candidate] (700.582 µs) : 0, 701
Telemetry [baseline] (15.77 ms) : 0, 15770
Telemetry [candidate] (8.279 ms) : 0, 8279
crashtracking [baseline] (1.402 ms) : 0, 1402
ProfilingAgent [baseline] (108.078 ms) : 0, 108078
ProfilingAgent [candidate] (107.178 ms) : 0, 107178
Profiling [baseline] (108.102 ms) : 0, 108102
Profiling [candidate] (107.202 ms) : 0, 107202
Loading
Startup time reports for insecure-bank
gantt
title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.044 s) : 0, 1044475
Total [baseline] (8.613 s) : 0, 8613317
Agent [candidate] (1.026 s) : 0, 1026312
Total [candidate] (8.573 s) : 0, 8573188
section iast
Agent [baseline] (1.179 s) : 0, 1179426
Total [baseline] (9.33 s) : 0, 9330057
Agent [candidate] (1.163 s) : 0, 1163010
Total [candidate] (9.259 s) : 0, 9258658
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.044 s-
Agentiast1.179 s134.951 ms (12.9%)
Totaltracing8.613 s-
Totaliast9.33 s716.74 ms (8.3%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.026 s-
Agentiast1.163 s136.698 ms (13.3%)
Totaltracing8.573 s-
Totaliast9.259 s685.47 ms (8.0%)
gantt
title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (731.897 ms) : 0, 731897
BytebuddyAgent [candidate] (686.873 ms) : 0, 686873
GlobalTracer [baseline] (242.369 ms) : 0, 242369
GlobalTracer [candidate] (242.937 ms) : 0, 242937
AppSec [baseline] (30.403 ms) : 0, 30403
AppSec [candidate] (58.92 ms) : 0, 58920
Debugger [baseline] (6.011 ms) : 0, 6011
Debugger [candidate] (7.015 ms) : 0, 7015
Remote Config [baseline] (659.049 µs) : 0, 659
Remote Config [candidate] (667.289 µs) : 0, 667
Telemetry [baseline] (10.693 ms) : 0, 10693
Telemetry [candidate] (8.997 ms) : 0, 8997
crashtracking [baseline] (1.441 ms) : 0, 1441
section iast
BytebuddyAgent [baseline] (850.278 ms) : 0, 850278
BytebuddyAgent [candidate] (812.854 ms) : 0, 812854
GlobalTracer [baseline] (233.633 ms) : 0, 233633
GlobalTracer [candidate] (233.315 ms) : 0, 233315
IAST [baseline] (27.638 ms) : 0, 27638
IAST [candidate] (28.557 ms) : 0, 28557
AppSec [baseline] (30.037 ms) : 0, 30037
AppSec [candidate] (52.624 ms) : 0, 52624
Debugger [baseline] (6.632 ms) : 0, 6632
Debugger [candidate] (5.978 ms) : 0, 5978
Remote Config [baseline] (590.85 µs) : 0, 591
Remote Config [candidate] (606.337 µs) : 0, 606
Telemetry [baseline] (8.158 ms) : 0, 8158
Telemetry [candidate] (8.166 ms) : 0, 8166
crashtracking [baseline] (1.428 ms) : 0, 1428
Loading

Load

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmastersarah.chen/backport-pr-8885
git_commit_date17533787161753382428
git_commit_shab94ca59c7b1417
release_version1.51.1-SNAPSHOT~b94ca598bb1.51.0-SNAPSHOT~c7b14171e2
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17533846111753384611
ci_job_id10466934921046693492
ci_pipeline_id7163919771639197
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-8ph0odo1 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-8ph0odo1 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 4 performance improvements and 1 performance regressions! Performance is the same for 7 metrics, 12 unstable metrics.

scenarioΔ mean http_req_durationΔ mean throughputcandidate mean http_req_durationcandidate mean throughputbaseline mean http_req_durationbaseline mean throughput
scenario:load:insecure-bank:tracing:high_loadworse
[+223.455µs; +462.894µs] or [+3.029%; +6.274%]
unstable
[-108.934op/s; +53.996op/s] or [-17.363%; +8.607%]
7.722ms599.906op/s7.378ms627.375op/s
scenario:load:petclinic:appsec:high_loadbetter
[-2.844ms; -1.914ms] or [-5.664%; -3.812%]
unstable
[-2.641op/s; +11.791op/s] or [-2.832%; +12.643%]
47.833ms97.838op/s50.212ms93.263op/s
scenario:load:petclinic:iast:high_loadbetter
[-2.131ms; -1.281ms] or [-4.619%; -2.778%]
unstable
[-4.034op/s; +11.909op/s] or [-3.977%; +11.740%]
44.422ms105.375op/s46.128ms101.438op/s
scenario:load:petclinic:tracing:high_loadbetter
[-2.099ms; -1.308ms] or [-4.621%; -2.878%]
unstable
[-3.993op/s; +11.918op/s] or [-3.877%; +11.572%]
43.733ms106.950op/s45.436ms102.987op/s
scenario:load:petclinic:profiling:high_loadbetter
[-2.604ms; -1.637ms] or [-5.278%; -3.319%]
unstable
[-3.271op/s; +11.796op/s] or [-3.447%; +12.432%]
47.203ms99.150op/s49.323ms94.888op/s
Request duration reports for insecure-bank
gantt
title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section baseline
no_agent (4.269 ms) : 4220, 4317
. : milestone, 4269,
iast (9.165 ms) : 9015, 9315
. : milestone, 9165,
iast_FULL (13.831 ms) : 13559, 14103
. : milestone, 13831,
iast_GLOBAL (10.365 ms) : 10181, 10548
. : milestone, 10365,
profiling (8.705 ms) : 8564, 8846
. : milestone, 8705,
tracing (7.378 ms) : 7274, 7483
. : milestone, 7378,
section candidate
no_agent (4.279 ms) : 4225, 4333
. : milestone, 4279,
iast (9.354 ms) : 9201, 9506
. : milestone, 9354,
iast_FULL (13.558 ms) : 13288, 13828
. : milestone, 13558,
iast_GLOBAL (10.239 ms) : 10060, 10418
. : milestone, 10239,
profiling (8.817 ms) : 8682, 8952
. : milestone, 8817,
tracing (7.722 ms) : 7604, 7839
. : milestone, 7722,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.269 ms [4.22 ms, 4.317 ms]-
iast9.165 ms [9.015 ms, 9.315 ms]4.896 ms (114.7%)
iast_FULL13.831 ms [13.559 ms, 14.103 ms]9.562 ms (224.0%)
iast_GLOBAL10.365 ms [10.181 ms, 10.548 ms]6.096 ms (142.8%)
profiling8.705 ms [8.564 ms, 8.846 ms]4.436 ms (103.9%)
tracing7.378 ms [7.274 ms, 7.483 ms]3.11 ms (72.8%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.279 ms [4.225 ms, 4.333 ms]-
iast9.354 ms [9.201 ms, 9.506 ms]5.075 ms (118.6%)
iast_FULL13.558 ms [13.288 ms, 13.828 ms]9.279 ms (216.9%)
iast_GLOBAL10.239 ms [10.06 ms, 10.418 ms]5.96 ms (139.3%)
profiling8.817 ms [8.682 ms, 8.952 ms]4.538 ms (106.1%)
tracing7.722 ms [7.604 ms, 7.839 ms]3.443 ms (80.5%)
Request duration reports for petclinic
gantt
title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section baseline
no_agent (37.7 ms) : 37399, 38000
. : milestone, 37700,
appsec (50.212 ms) : 49763, 50662
. : milestone, 50212,
code_origins (45.271 ms) : 44875, 45668
. : milestone, 45271,
iast (46.128 ms) : 45743, 46513
. : milestone, 46128,
profiling (49.323 ms) : 48845, 49802
. : milestone, 49323,
tracing (45.436 ms) : 45056, 45817
. : milestone, 45436,
section candidate
no_agent (37.264 ms) : 36960, 37568
. : milestone, 37264,
appsec (47.833 ms) : 47419, 48247
. : milestone, 47833,
code_origins (44.301 ms) : 43934, 44667
. : milestone, 44301,
iast (44.422 ms) : 44018, 44826
. : milestone, 44422,
profiling (47.203 ms) : 46785, 47621
. : milestone, 47203,
tracing (43.733 ms) : 43378, 44087
. : milestone, 43733,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.7 ms [37.399 ms, 38.0 ms]-
appsec50.212 ms [49.763 ms, 50.662 ms]12.512 ms (33.2%)
code_origins45.271 ms [44.875 ms, 45.668 ms]7.571 ms (20.1%)
iast46.128 ms [45.743 ms, 46.513 ms]8.428 ms (22.4%)
profiling49.323 ms [48.845 ms, 49.802 ms]11.623 ms (30.8%)
tracing45.436 ms [45.056 ms, 45.817 ms]7.736 ms (20.5%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.264 ms [36.96 ms, 37.568 ms]-
appsec47.833 ms [47.419 ms, 48.247 ms]10.569 ms (28.4%)
code_origins44.301 ms [43.934 ms, 44.667 ms]7.037 ms (18.9%)
iast44.422 ms [44.018 ms, 44.826 ms]7.158 ms (19.2%)
profiling47.203 ms [46.785 ms, 47.621 ms]9.939 ms (26.7%)
tracing43.733 ms [43.378 ms, 44.087 ms]6.469 ms (17.4%)

Dacapo

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmastersarah.chen/backport-pr-8885
git_commit_date17533787161753382428
git_commit_shab94ca59c7b1417
release_version1.51.1-SNAPSHOT~b94ca598bb1.51.0-SNAPSHOT~c7b14171e2
See matching parameters
BaselineCandidate
applicationbiojavabiojava
ci_job_date17533852411753385241
ci_job_id10466934931046693493
ci_pipeline_id7163919771639197
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-g4d0pzqx 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-g4d0pzqx 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.

scenarioΔ mean execution_timecandidate mean execution_timebaseline mean execution_time
scenario:dacapo:tomcat:appsecbetter
[-1.372ms; -1.038ms] or [-37.693%; -28.522%]
2.435ms3.640ms
Execution time for tomcat
gantt
title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section baseline
no_agent (1.478 ms) : 1466, 1489
. : milestone, 1478,
appsec (3.64 ms) : 3426, 3853
. : milestone, 3640,
iast (2.228 ms) : 2165, 2292
. : milestone, 2228,
iast_GLOBAL (2.276 ms) : 2211, 2340
. : milestone, 2276,
profiling (2.082 ms) : 2029, 2135
. : milestone, 2082,
tracing (2.039 ms) : 1990, 2088
. : milestone, 2039,
section candidate
no_agent (1.487 ms) : 1476, 1499
. : milestone, 1487,
appsec (2.435 ms) : 2385, 2485
. : milestone, 2435,
iast (2.218 ms) : 2155, 2280
. : milestone, 2218,
iast_GLOBAL (2.256 ms) : 2193, 2319
. : milestone, 2256,
profiling (2.053 ms) : 2003, 2104
. : milestone, 2053,
tracing (2.03 ms) : 1982, 2078
. : milestone, 2030,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.478 ms [1.466 ms, 1.489 ms]-
appsec3.64 ms [3.426 ms, 3.853 ms]2.162 ms (146.3%)
iast2.228 ms [2.165 ms, 2.292 ms]750.436 µs (50.8%)
iast_GLOBAL2.276 ms [2.211 ms, 2.34 ms]797.644 µs (54.0%)
profiling2.082 ms [2.029 ms, 2.135 ms]604.204 µs (40.9%)
tracing2.039 ms [1.99 ms, 2.088 ms]560.977 µs (38.0%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.487 ms [1.476 ms, 1.499 ms]-
appsec2.435 ms [2.385 ms, 2.485 ms]947.387 µs (63.7%)
iast2.218 ms [2.155 ms, 2.28 ms]730.213 µs (49.1%)
iast_GLOBAL2.256 ms [2.193 ms, 2.319 ms]769.02 µs (51.7%)
profiling2.053 ms [2.003 ms, 2.104 ms]566.01 µs (38.1%)
tracing2.03 ms [1.982 ms, 2.078 ms]542.665 µs (36.5%)
Execution time for biojava
gantt
title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~c7b14171e2, baseline=1.51.1-SNAPSHOT~b94ca598bb
dateFormat X
axisFormat %s
section baseline
no_agent (15.003 s) : 15003000, 15003000
. : milestone, 15003000,
appsec (14.854 s) : 14854000, 14854000
. : milestone, 14854000,
iast (18.864 s) : 18864000, 18864000
. : milestone, 18864000,
iast_GLOBAL (18.183 s) : 18183000, 18183000
. : milestone, 18183000,
profiling (15.319 s) : 15319000, 15319000
. : milestone, 15319000,
tracing (14.81 s) : 14810000, 14810000
. : milestone, 14810000,
section candidate
no_agent (15.274 s) : 15274000, 15274000
. : milestone, 15274000,
appsec (14.92 s) : 14920000, 14920000
. : milestone, 14920000,
iast (19.13 s) : 19130000, 19130000
. : milestone, 19130000,
iast_GLOBAL (17.846 s) : 17846000, 17846000
. : milestone, 17846000,
profiling (15.815 s) : 15815000, 15815000
. : milestone, 15815000,
tracing (14.884 s) : 14884000, 14884000
. : milestone, 14884000,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.003 s [15.003 s, 15.003 s]-
appsec14.854 s [14.854 s, 14.854 s]-149.0 ms (-1.0%)
iast18.864 s [18.864 s, 18.864 s]3.861 s (25.7%)
iast_GLOBAL18.183 s [18.183 s, 18.183 s]3.18 s (21.2%)
profiling15.319 s [15.319 s, 15.319 s]316.0 ms (2.1%)
tracing14.81 s [14.81 s, 14.81 s]-193.0 ms (-1.3%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.274 s [15.274 s, 15.274 s]-
appsec14.92 s [14.92 s, 14.92 s]-354.0 ms (-2.3%)
iast19.13 s [19.13 s, 19.13 s]3.856 s (25.2%)
iast_GLOBAL17.846 s [17.846 s, 17.846 s]2.572 s (16.8%)
profiling15.815 s [15.815 s, 15.815 s]541.0 ms (3.5%)
tracing14.884 s [14.884 s, 14.884 s]-390.0 ms (-2.6%)

@sarahchen6
sarahchen6 requested review from a team as code ownersJuly 24, 2025 18:40
@sarahchen6sarahchen6 changed the title 🍒 8885 - Optimize IAST Vulnerability Detection🍒 8885, 8952 - Optimize IAST Vulnerability Detection...Jul 24, 2025
@sarahchen6

Copy link
Copy Markdown
ContributorAuthor

We no longer need to proceed with the 1.50.2 release.

@sarahchen6
sarahchen6 deleted the sarah.chen/backport-pr-8885 branch October 16, 2025 18:30
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: asm iastApplication Security Management (IAST)type: featureEnhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@sarahchen6@manuel-alvarez-alvarez@jandro996