Skip to content

Conversation

Mariovido
Copy link
Contributor

@Mariovido Mariovido commented Dec 23, 2024

What Does This Do

This adds the instrumentation to propagate the taint values through the following methods of StringBuffer:

  • setLength(int)

Motivation

Increase propagation of StringBuffer methods.

Additional Notes

Contributor Checklist

Jira ticket: APPSEC-55367

@Mariovido Mariovido added type: enhancement Enhancements and improvements comp: asm iast Application Security Management (IAST) labels Dec 23, 2024
@pr-commenter
Copy link

pr-commenter bot commented Dec 23, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mario.vidal/taint_tracking_string_buffer_set_length
git_commit_date 1736497810 1736500201
git_commit_sha f4139b0 b3e8860
release_version 1.46.0-SNAPSHOT~f4139b0e7d 1.46.0-SNAPSHOT~b3e8860a51
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1736502685 1736502685
ci_job_id 761461604 761461604
ci_pipeline_id 52639762 52639762
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1054755
Total [baseline] (8.619 s) : 0, 8619396
Agent [candidate] (1.062 s) : 0, 1061947
Total [candidate] (8.629 s) : 0, 8628921
section iast
Agent [baseline] (1.177 s) : 0, 1176804
Total [baseline] (9.2 s) : 0, 9199502
Agent [candidate] (1.179 s) : 0, 1178991
Total [candidate] (9.213 s) : 0, 9213347
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.186 s) : 0, 1186120
Total [baseline] (9.19 s) : 0, 9189504
Agent [candidate] (1.182 s) : 0, 1182398
Total [candidate] (9.19 s) : 0, 9189593
section iast_TELEMETRY_OFF
Agent [baseline] (1.176 s) : 0, 1175916
Total [baseline] (9.168 s) : 0, 9167507
Agent [candidate] (1.176 s) : 0, 1175714
Total [candidate] (9.198 s) : 0, 9198045
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.177 s 122.05 ms (11.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.186 s 131.365 ms (12.5%)
Agent iast_TELEMETRY_OFF 1.176 s 121.162 ms (11.5%)
Total tracing 8.619 s -
Total iast 9.2 s 580.106 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.19 s 570.108 ms (6.6%)
Total iast_TELEMETRY_OFF 9.168 s 548.111 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent iast 1.179 s 117.043 ms (11.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 120.45 ms (11.3%)
Agent iast_TELEMETRY_OFF 1.176 s 113.766 ms (10.7%)
Total tracing 8.629 s -
Total iast 9.213 s 584.427 ms (6.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.19 s 560.673 ms (6.5%)
Total iast_TELEMETRY_OFF 9.198 s 569.125 ms (6.6%)
gantt
    title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (713.68 ms) : 0, 713680
BytebuddyAgent [candidate] (716.962 ms) : 0, 716962
GlobalTracer [baseline] (256.36 ms) : 0, 256360
GlobalTracer [candidate] (257.394 ms) : 0, 257394
AppSec [baseline] (55.316 ms) : 0, 55316
AppSec [candidate] (56.182 ms) : 0, 56182
Remote Config [baseline] (709.253 µs) : 0, 709
Remote Config [candidate] (725.868 µs) : 0, 726
Telemetry [baseline] (13.649 ms) : 0, 13649
Telemetry [candidate] (15.671 ms) : 0, 15671
section iast
BytebuddyAgent [baseline] (827.763 ms) : 0, 827763
BytebuddyAgent [candidate] (828.975 ms) : 0, 828975
GlobalTracer [baseline] (245.656 ms) : 0, 245656
GlobalTracer [candidate] (246.266 ms) : 0, 246266
AppSec [baseline] (57.959 ms) : 0, 57959
AppSec [candidate] (57.944 ms) : 0, 57944
Remote Config [baseline] (662.738 µs) : 0, 663
Remote Config [candidate] (682.996 µs) : 0, 683
Telemetry [baseline] (8.671 ms) : 0, 8671
Telemetry [candidate] (8.719 ms) : 0, 8719
IAST [baseline] (21.073 ms) : 0, 21073
IAST [candidate] (21.343 ms) : 0, 21343
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (834.035 ms) : 0, 834035
BytebuddyAgent [candidate] (831.831 ms) : 0, 831831
GlobalTracer [baseline] (246.958 ms) : 0, 246958
GlobalTracer [candidate] (246.73 ms) : 0, 246730
AppSec [baseline] (58.829 ms) : 0, 58829
AppSec [candidate] (57.976 ms) : 0, 57976
Remote Config [baseline] (686.77 µs) : 0, 687
Remote Config [candidate] (698.111 µs) : 0, 698
Telemetry [baseline] (8.902 ms) : 0, 8902
Telemetry [candidate] (8.813 ms) : 0, 8813
IAST [baseline] (21.708 ms) : 0, 21708
IAST [candidate] (21.338 ms) : 0, 21338
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (827.036 ms) : 0, 827036
BytebuddyAgent [candidate] (827.151 ms) : 0, 827151
GlobalTracer [baseline] (246.059 ms) : 0, 246059
GlobalTracer [candidate] (246.198 ms) : 0, 246198
AppSec [baseline] (57.855 ms) : 0, 57855
AppSec [candidate] (57.5 ms) : 0, 57500
Remote Config [baseline] (648.924 µs) : 0, 649
Remote Config [candidate] (645.493 µs) : 0, 645
Telemetry [baseline] (8.586 ms) : 0, 8586
Telemetry [candidate] (8.567 ms) : 0, 8567
IAST [baseline] (20.757 ms) : 0, 20757
IAST [candidate] (20.59 ms) : 0, 20590
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1060294
Total [baseline] (10.541 s) : 0, 10540929
Agent [candidate] (1.075 s) : 0, 1074799
Total [candidate] (10.485 s) : 0, 10484912
section appsec
Agent [baseline] (1.196 s) : 0, 1195870
Total [baseline] (10.719 s) : 0, 10718906
Agent [candidate] (1.193 s) : 0, 1192859
Total [candidate] (10.721 s) : 0, 10720839
section iast
Agent [baseline] (1.18 s) : 0, 1179584
Total [baseline] (10.955 s) : 0, 10955148
Agent [candidate] (1.181 s) : 0, 1181010
Total [candidate] (10.965 s) : 0, 10964801
section profiling
Agent [baseline] (1.285 s) : 0, 1284768
Total [baseline] (10.821 s) : 0, 10821055
Agent [candidate] (1.271 s) : 0, 1271069
Total [candidate] (10.88 s) : 0, 10880180
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.196 s 135.575 ms (12.8%)
Agent iast 1.18 s 119.29 ms (11.3%)
Agent profiling 1.285 s 224.473 ms (21.2%)
Total tracing 10.541 s -
Total appsec 10.719 s 177.976 ms (1.7%)
Total iast 10.955 s 414.219 ms (3.9%)
Total profiling 10.821 s 280.126 ms (2.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.075 s -
Agent appsec 1.193 s 118.061 ms (11.0%)
Agent iast 1.181 s 106.211 ms (9.9%)
Agent profiling 1.271 s 196.27 ms (18.3%)
Total tracing 10.485 s -
Total appsec 10.721 s 235.927 ms (2.3%)
Total iast 10.965 s 479.889 ms (4.6%)
Total profiling 10.88 s 395.268 ms (3.8%)
gantt
    title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (716.376 ms) : 0, 716376
BytebuddyAgent [candidate] (725.646 ms) : 0, 725646
GlobalTracer [baseline] (257.009 ms) : 0, 257009
GlobalTracer [candidate] (261.382 ms) : 0, 261382
AppSec [baseline] (55.409 ms) : 0, 55409
AppSec [candidate] (58.582 ms) : 0, 58582
Remote Config [baseline] (740.693 µs) : 0, 741
Remote Config [candidate] (738.169 µs) : 0, 738
Telemetry [baseline] (15.726 ms) : 0, 15726
Telemetry [candidate] (13.226 ms) : 0, 13226
section appsec
BytebuddyAgent [baseline] (736.585 ms) : 0, 736585
BytebuddyAgent [candidate] (733.819 ms) : 0, 733819
GlobalTracer [baseline] (254.238 ms) : 0, 254238
GlobalTracer [candidate] (254.24 ms) : 0, 254240
AppSec [baseline] (171.251 ms) : 0, 171251
AppSec [candidate] (171.174 ms) : 0, 171174
Remote Config [baseline] (659.475 µs) : 0, 659
Remote Config [candidate] (655.766 µs) : 0, 656
Telemetry [baseline] (8.275 ms) : 0, 8275
Telemetry [candidate] (8.181 ms) : 0, 8181
IAST [baseline] (19.483 ms) : 0, 19483
IAST [candidate] (19.437 ms) : 0, 19437
section iast
BytebuddyAgent [baseline] (829.881 ms) : 0, 829881
BytebuddyAgent [candidate] (830.59 ms) : 0, 830590
GlobalTracer [baseline] (246.081 ms) : 0, 246081
GlobalTracer [candidate] (246.633 ms) : 0, 246633
AppSec [baseline] (58.003 ms) : 0, 58003
AppSec [candidate] (58.268 ms) : 0, 58268
Remote Config [baseline] (677.331 µs) : 0, 677
Remote Config [candidate] (682.794 µs) : 0, 683
Telemetry [baseline] (8.679 ms) : 0, 8679
Telemetry [candidate] (8.763 ms) : 0, 8763
IAST [baseline] (21.268 ms) : 0, 21268
IAST [candidate] (21.051 ms) : 0, 21051
section profiling
ProfilingAgent [baseline] (96.546 ms) : 0, 96546
ProfilingAgent [candidate] (94.826 ms) : 0, 94826
BytebuddyAgent [baseline] (709.506 ms) : 0, 709506
BytebuddyAgent [candidate] (703.55 ms) : 0, 703550
GlobalTracer [baseline] (372.269 ms) : 0, 372269
GlobalTracer [candidate] (367.699 ms) : 0, 367699
AppSec [baseline] (54.579 ms) : 0, 54579
AppSec [candidate] (53.605 ms) : 0, 53605
Remote Config [baseline] (695.362 µs) : 0, 695
Remote Config [candidate] (697.018 µs) : 0, 697
Telemetry [baseline] (8.9 ms) : 0, 8900
Telemetry [candidate] (8.834 ms) : 0, 8834
Profiling [baseline] (96.571 ms) : 0, 96571
Profiling [candidate] (94.851 ms) : 0, 94851
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-01-10T09:21:23 2025-01-10T09:28:26
git_branch master mario.vidal/taint_tracking_string_buffer_set_length
git_commit_date 1736497810 1736500201
git_commit_sha f4139b0 b3e8860
release_version 1.46.0-SNAPSHOT~f4139b0e7d 1.46.0-SNAPSHOT~b3e8860a51
start_time 2025-01-10T09:21:09 2025-01-10T09:28:12
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1736501660 1736501660
ci_job_id 761461605 761461605
ci_pipeline_id 52639762 52639762
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

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

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:profiling better
[-94.833µs; -43.143µs] or [-5.960%; -2.712%]
unstable
[-429.149op/s; +657.070op/s] or [-14.484%; +22.176%]
1.522ms 3076.923op/s 1.591ms 2962.963op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.364 ms) : 1344, 1384
.   : milestone, 1364,
appsec (1.756 ms) : 1732, 1780
.   : milestone, 1756,
appsec_no_iast (1.766 ms) : 1741, 1791
.   : milestone, 1766,
iast (1.507 ms) : 1484, 1530
.   : milestone, 1507,
profiling (1.591 ms) : 1566, 1616
.   : milestone, 1591,
tracing (1.486 ms) : 1460, 1511
.   : milestone, 1486,
section candidate
no_agent (1.374 ms) : 1354, 1393
.   : milestone, 1374,
appsec (1.747 ms) : 1723, 1771
.   : milestone, 1747,
appsec_no_iast (1.739 ms) : 1715, 1763
.   : milestone, 1739,
iast (1.519 ms) : 1496, 1542
.   : milestone, 1519,
profiling (1.522 ms) : 1499, 1545
.   : milestone, 1522,
tracing (1.492 ms) : 1467, 1517
.   : milestone, 1492,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.364 ms [1.344 ms, 1.384 ms] -
appsec 1.756 ms [1.732 ms, 1.78 ms] 392.36 µs (28.8%)
appsec_no_iast 1.766 ms [1.741 ms, 1.791 ms] 401.951 µs (29.5%)
iast 1.507 ms [1.484 ms, 1.53 ms] 143.229 µs (10.5%)
profiling 1.591 ms [1.566 ms, 1.616 ms] 227.23 µs (16.7%)
tracing 1.486 ms [1.46 ms, 1.511 ms] 121.738 µs (8.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.374 ms [1.354 ms, 1.393 ms] -
appsec 1.747 ms [1.723 ms, 1.771 ms] 373.158 µs (27.2%)
appsec_no_iast 1.739 ms [1.715 ms, 1.763 ms] 365.827 µs (26.6%)
iast 1.519 ms [1.496 ms, 1.542 ms] 145.291 µs (10.6%)
profiling 1.522 ms [1.499 ms, 1.545 ms] 148.518 µs (10.8%)
tracing 1.492 ms [1.467 ms, 1.517 ms] 118.653 µs (8.6%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d
    dateFormat X
    axisFormat %s
section baseline
no_agent (384.298 µs) : 363, 406
.   : milestone, 384,
iast (507.567 µs) : 485, 530
.   : milestone, 508,
iast_FULL (663.637 µs) : 642, 685
.   : milestone, 664,
iast_GLOBAL (530.541 µs) : 508, 553
.   : milestone, 531,
iast_HARDCODED_SECRET_DISABLED (498.844 µs) : 477, 521
.   : milestone, 499,
iast_INACTIVE (452.107 µs) : 431, 473
.   : milestone, 452,
iast_TELEMETRY_OFF (487.408 µs) : 466, 509
.   : milestone, 487,
tracing (458.581 µs) : 437, 480
.   : milestone, 459,
section candidate
no_agent (383.08 µs) : 363, 403
.   : milestone, 383,
iast (495.284 µs) : 474, 517
.   : milestone, 495,
iast_FULL (665.305 µs) : 644, 687
.   : milestone, 665,
iast_GLOBAL (525.711 µs) : 504, 547
.   : milestone, 526,
iast_HARDCODED_SECRET_DISABLED (509.943 µs) : 488, 532
.   : milestone, 510,
iast_INACTIVE (465.405 µs) : 443, 487
.   : milestone, 465,
iast_TELEMETRY_OFF (493.525 µs) : 471, 516
.   : milestone, 494,
tracing (458.447 µs) : 437, 480
.   : milestone, 458,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 384.298 µs [363.005 µs, 405.591 µs] -
iast 507.567 µs [484.998 µs, 530.136 µs] 123.269 µs (32.1%)
iast_FULL 663.637 µs [642.252 µs, 685.022 µs] 279.339 µs (72.7%)
iast_GLOBAL 530.541 µs [508.28 µs, 552.802 µs] 146.243 µs (38.1%)
iast_HARDCODED_SECRET_DISABLED 498.844 µs [477.162 µs, 520.525 µs] 114.546 µs (29.8%)
iast_INACTIVE 452.107 µs [431.488 µs, 472.726 µs] 67.809 µs (17.6%)
iast_TELEMETRY_OFF 487.408 µs [465.543 µs, 509.273 µs] 103.11 µs (26.8%)
tracing 458.581 µs [437.158 µs, 480.005 µs] 74.283 µs (19.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 383.08 µs [363.115 µs, 403.046 µs] -
iast 495.284 µs [473.824 µs, 516.745 µs] 112.204 µs (29.3%)
iast_FULL 665.305 µs [643.567 µs, 687.042 µs] 282.224 µs (73.7%)
iast_GLOBAL 525.711 µs [504.26 µs, 547.162 µs] 142.631 µs (37.2%)
iast_HARDCODED_SECRET_DISABLED 509.943 µs [487.681 µs, 532.204 µs] 126.862 µs (33.1%)
iast_INACTIVE 465.405 µs [443.495 µs, 487.315 µs] 82.325 µs (21.5%)
iast_TELEMETRY_OFF 493.525 µs [471.164 µs, 515.886 µs] 110.445 µs (28.8%)
tracing 458.447 µs [437.078 µs, 479.816 µs] 75.367 µs (19.7%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mario.vidal/taint_tracking_string_buffer_set_length
git_commit_date 1736497810 1736500201
git_commit_sha f4139b0 b3e8860
release_version 1.46.0-SNAPSHOT~f4139b0e7d 1.46.0-SNAPSHOT~b3e8860a51
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1736502217 1736502217
ci_job_id 761461606 761461606
ci_pipeline_id 52639762 52639762
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.938 s) : 14938000, 14938000
.   : milestone, 14938000,
appsec (14.94 s) : 14940000, 14940000
.   : milestone, 14940000,
iast (19.043 s) : 19043000, 19043000
.   : milestone, 19043000,
iast_GLOBAL (18.128 s) : 18128000, 18128000
.   : milestone, 18128000,
profiling (15.476 s) : 15476000, 15476000
.   : milestone, 15476000,
tracing (15.201 s) : 15201000, 15201000
.   : milestone, 15201000,
section candidate
no_agent (15.481 s) : 15481000, 15481000
.   : milestone, 15481000,
appsec (15.139 s) : 15139000, 15139000
.   : milestone, 15139000,
iast (18.729 s) : 18729000, 18729000
.   : milestone, 18729000,
iast_GLOBAL (17.923 s) : 17923000, 17923000
.   : milestone, 17923000,
profiling (14.871 s) : 14871000, 14871000
.   : milestone, 14871000,
tracing (14.76 s) : 14760000, 14760000
.   : milestone, 14760000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.938 s [14.938 s, 14.938 s] -
appsec 14.94 s [14.94 s, 14.94 s] 2.0 ms (0.0%)
iast 19.043 s [19.043 s, 19.043 s] 4.105 s (27.5%)
iast_GLOBAL 18.128 s [18.128 s, 18.128 s] 3.19 s (21.4%)
profiling 15.476 s [15.476 s, 15.476 s] 538.0 ms (3.6%)
tracing 15.201 s [15.201 s, 15.201 s] 263.0 ms (1.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.481 s [15.481 s, 15.481 s] -
appsec 15.139 s [15.139 s, 15.139 s] -342.0 ms (-2.2%)
iast 18.729 s [18.729 s, 18.729 s] 3.248 s (21.0%)
iast_GLOBAL 17.923 s [17.923 s, 17.923 s] 2.442 s (15.8%)
profiling 14.871 s [14.871 s, 14.871 s] -610.0 ms (-3.9%)
tracing 14.76 s [14.76 s, 14.76 s] -721.0 ms (-4.7%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~b3e8860a51, baseline=1.46.0-SNAPSHOT~f4139b0e7d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.468 ms) : 1456, 1479
.   : milestone, 1468,
appsec (2.346 ms) : 2304, 2388
.   : milestone, 2346,
iast (2.101 ms) : 2047, 2155
.   : milestone, 2101,
iast_GLOBAL (2.143 ms) : 2089, 2197
.   : milestone, 2143,
profiling (1.955 ms) : 1912, 1998
.   : milestone, 1955,
tracing (1.931 ms) : 1889, 1972
.   : milestone, 1931,
section candidate
no_agent (1.473 ms) : 1461, 1485
.   : milestone, 1473,
appsec (2.365 ms) : 2323, 2408
.   : milestone, 2365,
iast (2.102 ms) : 2048, 2155
.   : milestone, 2102,
iast_GLOBAL (2.143 ms) : 2089, 2197
.   : milestone, 2143,
profiling (1.965 ms) : 1922, 2008
.   : milestone, 1965,
tracing (1.945 ms) : 1904, 1987
.   : milestone, 1945,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.468 ms [1.456 ms, 1.479 ms] -
appsec 2.346 ms [2.304 ms, 2.388 ms] 878.326 µs (59.8%)
iast 2.101 ms [2.047 ms, 2.155 ms] 633.316 µs (43.2%)
iast_GLOBAL 2.143 ms [2.089 ms, 2.197 ms] 675.114 µs (46.0%)
profiling 1.955 ms [1.912 ms, 1.998 ms] 487.483 µs (33.2%)
tracing 1.931 ms [1.889 ms, 1.972 ms] 463.028 µs (31.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.485 ms] -
appsec 2.365 ms [2.323 ms, 2.408 ms] 892.166 µs (60.6%)
iast 2.102 ms [2.048 ms, 2.155 ms] 628.586 µs (42.7%)
iast_GLOBAL 2.143 ms [2.089 ms, 2.197 ms] 670.197 µs (45.5%)
profiling 1.965 ms [1.922 ms, 2.008 ms] 491.674 µs (33.4%)
tracing 1.945 ms [1.904 ms, 1.987 ms] 472.308 µs (32.1%)

@Mariovido Mariovido marked this pull request as ready for review December 23, 2024 11:33
@Mariovido Mariovido requested review from a team as code owners December 23, 2024 11:33
Copy link
Member

@jandro996 jandro996 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM if @manuel-alvarez-alvarez it's fine with remove the weak reference inside the tainted object ;)

@Mariovido Mariovido added type: enhancement Enhancements and improvements and removed type: enhancement Enhancements and improvements labels Jan 10, 2025
@Mariovido Mariovido merged commit 22458b3 into master Jan 10, 2025
173 of 174 checks passed
@Mariovido Mariovido deleted the mario.vidal/taint_tracking_string_buffer_set_length branch January 10, 2025 10:03
@github-actions github-actions bot added this to the 1.46.0 milestone Jan 10, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jan 31, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.25.4` -> `2.26.0` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |

---

### Release Notes

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.26.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2260-2025-01-29)

##### Features

- Add firestoreInDatastoreMode for datastore emulator
([#&#8203;1698](googleapis/java-datastore#1698))
([50f106d](googleapis/java-datastore@50f106d))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0
([#&#8203;1725](googleapis/java-datastore#1725))
([1cbaf22](googleapis/java-datastore@1cbaf22))

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.46.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.46.0):
1.46.0

##### Breaking Changes

> \[!WARNING]
> jnr-unixsocket is now an external dependency of dd-trace-ot and must
be included when deploying dd-trace-ot.

> \[!NOTE]
> The API `TracerScope.setAsync(boolean)`, used to manually control
asynchronous span propagation, does no more apply to the scope instance
but to the active span scope.

##### Components

##### Application Security Management (IAST)

- 🐛 Fix String.replace instrumentation for IAST
([#&#8203;8281](DataDog/dd-trace-java#8281) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Exclude false positive weak randomness
([#&#8203;8232](DataDog/dd-trace-java#8232) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Add security control metrics
([#&#8203;8175](DataDog/dd-trace-java#8175) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Increase IAST propagation to StringBuffer setLength
([#&#8203;8128](DataDog/dd-trace-java#8128) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST taint tracking for DB values
([#&#8203;8072](DataDog/dd-trace-java#8072) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Application Security Management (WAF)

- 🐛 Prevents a NPE when there is no subscriber for user events
([#&#8203;8258](DataDog/dd-trace-java#8258) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Ensure cached subscriptions are cleared on reconfiguration via
RC ([#&#8203;8229](DataDog/dd-trace-java#8229)
-
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Create span tag: \_dd.appsec.rasp.timeout
([#&#8203;8269](DataDog/dd-trace-java#8269) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- 🐛 Ensure shaded helpers have unique names when injected into
class-loaders
([#&#8203;8192](DataDog/dd-trace-java#8192) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Configuration at Runtime

- 🐛 Remove filtering of `DD_SERVICE` and `DD_ENV` from the tracer
([#&#8203;8176](DataDog/dd-trace-java#8176) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Continuous Integration Visibility

- 🧹 Generalize TestRetryPolicy to TestExecutionPolicy
([#&#8203;8302](DataDog/dd-trace-java#8302) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Parallelize CI Visibility settings requests
([#&#8203;8299](DataDog/dd-trace-java#8299) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize test retry logic
([#&#8203;8289](DataDog/dd-trace-java#8289) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize tests skipping logic
([#&#8203;8288](DataDog/dd-trace-java#8288) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Remove skip and shouldBeSkipped methods from TestEventsHandler
in favor of isSkippable
([#&#8203;8286](DataDog/dd-trace-java#8286) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨⚡ Optimize Git repository information computation
([#&#8203;8270](DataDog/dd-trace-java#8270) -
[@&#8203;dougqh](https://github.com/dougqh))
- ✨ Always request known tests from the backend
([#&#8203;8268](DataDog/dd-trace-java#8268) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Fix NPE when trying to get retry analyzer in Test NG
([#&#8203;8253](DataDog/dd-trace-java#8253) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Set test framework and test framework version tags atomically
([#&#8203;8252](DataDog/dd-trace-java#8252) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add debug logging to Android Gradle module layout logic
([#&#8203;8251](DataDog/dd-trace-java#8251) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix source and destination folders computation for Android
Gradle projects
([#&#8203;8190](DataDog/dd-trace-java#8190) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add basic Scala Weaver sbt support
([#&#8203;8189](DataDog/dd-trace-java#8189) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement impacted tests detection
([#&#8203;8188](DataDog/dd-trace-java#8188) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Data Streams Monitoring

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Database Monitoring

- Add peer service tag in dbm sql commenter
([#&#8203;7913](DataDog/dd-trace-java#7913) -
[@&#8203;jordan-wong](https://github.com/jordan-wong))

##### Dynamic Instrumentation

- ✨ Add support for SymDB to scan directories
([#&#8203;8306](DataDog/dd-trace-java#8306) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add SymDB report for any jar scanning failures
([#&#8203;8300](DataDog/dd-trace-java#8300) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Use two budgets depending on type
([#&#8203;8283](DataDog/dd-trace-java#8283) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Institute a 10 snapshot per probe per trace budget
([#&#8203;8277](DataDog/dd-trace-java#8277) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Avoid double snapshots for Exception Replay
([#&#8203;8273](DataDog/dd-trace-java#8273) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Simplify code origins. Separate out snapshot generation.
([#&#8203;8263](DataDog/dd-trace-java#8263) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add Exception probe custom instrumentation
([#&#8203;8230](DataDog/dd-trace-java#8230) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Enhance log probes to honor debug session tags
([#&#8203;8215](DataDog/dd-trace-java#8215) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Don't redact env tokens from debugger probe snapshots
([#&#8203;8211](DataDog/dd-trace-java#8211) -
[@&#8203;watson](https://github.com/watson))
- ✨⚡ Move Trace/SpanId capture at commit time
([#&#8203;8184](DataDog/dd-trace-java#8184) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Capture values at entry for method probe
([#&#8203;8169](DataDog/dd-trace-java#8169) -
[@&#8203;jpbempel](https://github.com/jpbempel))

##### JMX fetch

- 🐛 Mute JMXFetch Shutdown in progress error
([#&#8203;8068](DataDog/dd-trace-java#8068) -
[@&#8203;ygree](https://github.com/ygree))

##### OpenTracing

- ⚠️🧹 Make jnr-unixsocket an explicit dependency of
dd-trace-ot
([#&#8203;8307](DataDog/dd-trace-java#8307) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Profiling

- 🐛 Avoid unsupported API call for creating folders on windows
([#&#8203;8304](DataDog/dd-trace-java#8304) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Tag profiles for serverless
([#&#8203;8279](DataDog/dd-trace-java#8279) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ add queue type and length to queue events
([#&#8203;8242](DataDog/dd-trace-java#8242) -
[@&#8203;richardstartin](https://github.com/richardstartin))
- 🐛 TempLocationManager Fixes and Improvements
([#&#8203;8191](DataDog/dd-trace-java#8191) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Bump ddprof to 1.18.0
([#&#8203;8173](DataDog/dd-trace-java#8173) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Report profiler initialization and configuration errors to
telemetry
([#&#8203;8171](DataDog/dd-trace-java#8171) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Telemetry

- ✨ Add pending traces report in tracer flares
([#&#8203;8053](DataDog/dd-trace-java#8053) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Testing

- ✨ Test http server requests in parallel
([#&#8203;8222](DataDog/dd-trace-java#8222) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Trace context propagation

- ✨ Add non default propagator registration
([#&#8203;8310](DataDog/dd-trace-java#8310) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- ✨ Probe for existence of IBMSASL or ACCP security providers
([#&#8203;8276](DataDog/dd-trace-java#8276) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨⚡ Overhead improvement to agent feedback based sampling
([#&#8203;8265](DataDog/dd-trace-java#8265) -
[@&#8203;dougqh](https://github.com/dougqh))
- 🧹 Move async propagation API from scope to tracer
([#&#8203;8231](DataDog/dd-trace-java#8231) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Introduce context propagation API
([#&#8203;8161](DataDog/dd-trace-java#8161) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨🧪 Use env-entry to add tags per webapp deployment
([#&#8203;8138](DataDog/dd-trace-java#8138) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Introduce context helpers API
([#&#8203;8134](DataDog/dd-trace-java#8134) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Support IPv6 values for `DD_AGENT_HOST` and
`DD_TRACE_AGENT_URL`
([#&#8203;7984](DataDog/dd-trace-java#7984) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Instrumentations

##### Apache HttpComponents

- 🐛 Properly finish spans and support latest apache httpclient5
([#&#8203;8272](DataDog/dd-trace-java#8272) -
[@&#8203;amarziali](https://github.com/amarziali))

##### AWS Lambda instrumentation

- 🐛 Properly capture lambda payloads for all handler types.
([#&#8203;8264](DataDog/dd-trace-java#8264) -
[@&#8203;purple4reina](https://github.com/purple4reina))

##### AWS S3 instrumentation

- 💡 Create S3 instrumentation + add span pointers
([#&#8203;8075](DataDog/dd-trace-java#8075) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- 🐛 Revert "Add avoid double instrumenting lambda non-streaming
handlers."
([#&#8203;8247](DataDog/dd-trace-java#8247) -
[@&#8203;nhulston](https://github.com/nhulston))

##### Cassandra

- ✨ Allow extracting keyspace from statement result
([#&#8203;8239](DataDog/dd-trace-java#8239) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Core Java language instrumentation

- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Eclipse Vert.x instrumentation

- 🐛 Fix vertx worker propagation and error handling
([#&#8203;8237](DataDog/dd-trace-java#8237) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support vertx 5
([#&#8203;8220](DataDog/dd-trace-java#8220) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

##### Kafka instrumentation

- 🐛 Prevent possible NPE calculating Kafka record header size
([#&#8203;8292](DataDog/dd-trace-java#8292) -
[@&#8203;ygree](https://github.com/ygree))

##### Mule instrumentation

- 🐛 Fix crash using Mule with JPMS
([#&#8203;8187](DataDog/dd-trace-java#8187) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Protocol Buffer instrumentation

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Spring instrumentation

- 🐛 Preserve getQualifier from spring scheduling runnables
([#&#8203;8293](DataDog/dd-trace-java#8293) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: bb09d47e4eed77a003f630273b4d0a84003eb899
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: asm iast Application Security Management (IAST) type: enhancement Enhancements and improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants