Skip to content

Commit bc5038c

Browse files
committed
Upgrade libddwaf to 1.28.1 (#9543)
Signed-off-by: sezen.leblay <sezen.leblay@datadoghq.com>
1 parent ec2797e commit bc5038c

File tree

8 files changed

+179
-109
lines changed

8 files changed

+179
-109
lines changed
Submodule integrations-core updated 4981 files

dd-java-agent/appsec/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies {
1414
implementation project(':internal-api')
1515
implementation project(':communication')
1616
implementation project(':telemetry')
17-
implementation group: 'io.sqreen', name: 'libsqreen', version: '17.0.0'
17+
implementation group: 'io.sqreen', name: 'libsqreen', version: '17.1.0'
1818
implementation libs.moshi
1919

2020
testImplementation libs.bytebuddy

dd-java-agent/appsec/src/main/java/com/datadog/appsec/config/AppSecConfigServiceImpl.java

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@
3939
import com.datadog.ddwaf.exception.InvalidRuleSetException;
4040
import com.datadog.ddwaf.exception.UnclassifiedWafException;
4141
import com.squareup.moshi.JsonAdapter;
42-
import com.squareup.moshi.JsonReader;
43-
import com.squareup.moshi.JsonWriter;
4442
import com.squareup.moshi.Moshi;
43+
import com.squareup.moshi.Types;
4544
import datadog.remoteconfig.ConfigurationEndListener;
4645
import datadog.remoteconfig.ConfigurationPoller;
4746
import datadog.remoteconfig.PollingRateHinter;
@@ -53,7 +52,6 @@
5352
import datadog.trace.api.ConfigOrigin;
5453
import datadog.trace.api.ProductActivation;
5554
import datadog.trace.api.UserIdCollectionMode;
56-
import datadog.trace.api.telemetry.LogCollector;
5755
import datadog.trace.api.telemetry.WafMetricCollector;
5856
import java.io.ByteArrayInputStream;
5957
import java.io.FileInputStream;
@@ -68,7 +66,6 @@
6866
import java.util.Set;
6967
import java.util.concurrent.ConcurrentHashMap;
7068
import java.util.concurrent.atomic.AtomicBoolean;
71-
import javax.annotation.Nullable;
7269
import okio.Okio;
7370
import org.slf4j.Logger;
7471
import org.slf4j.LoggerFactory;
@@ -96,25 +93,10 @@ public class AppSecConfigServiceImpl implements AppSecConfigService {
9693
new WAFInitializationResultReporter();
9794
private final WAFStatsReporter statsReporter = new WAFStatsReporter();
9895

99-
private static final JsonAdapter<Object> ADAPTER =
96+
private static final JsonAdapter<Map<String, Object>> ADAPTER =
10097
new Moshi.Builder()
101-
.add(
102-
Double.class,
103-
new JsonAdapter<Number>() {
104-
@Override
105-
public Number fromJson(JsonReader reader) throws IOException {
106-
double value = reader.nextDouble();
107-
long longValue = (long) value;
108-
return value % 1 == 0 ? longValue : value;
109-
}
110-
111-
@Override
112-
public void toJson(JsonWriter writer, @Nullable Number value) throws IOException {
113-
throw new UnsupportedOperationException();
114-
}
115-
})
11698
.build()
117-
.adapter(Object.class);
99+
.adapter(Types.newParameterizedType(Map.class, String.class, Object.class));
118100

119101
private boolean hasUserWafConfig;
120102
private boolean defaultConfigActivated;
@@ -309,7 +291,6 @@ private void handleWafUpdateResultReport(String configKey, Map<String, Object> r
309291
}
310292

311293
// TODO: Send diagnostics via telemetry
312-
final LogCollector telemetryLogger = LogCollector.get();
313294

314295
initReporter.setReportForPublication(wafDiagnostics);
315296
if (wafDiagnostics.rulesetVersion != null
@@ -488,8 +469,7 @@ private static Map<String, Object> loadDefaultWafConfig() throws IOException {
488469
throw new IOException("Resource " + DEFAULT_CONFIG_LOCATION + " not found");
489470
}
490471

491-
Map<String, Object> ret =
492-
(Map<String, Object>) ADAPTER.fromJson(Okio.buffer(Okio.source(is)));
472+
Map<String, Object> ret = ADAPTER.fromJson(Okio.buffer(Okio.source(is)));
493473

494474
StandardizedLogging._initialConfigSourceAndLibddwafVersion(log, "<bundled config>");
495475
if (log.isInfoEnabled()) {
@@ -506,8 +486,7 @@ private static Map<String, Object> loadUserWafConfig(Config tracerConfig) throws
506486
return null;
507487
}
508488
try (InputStream is = new FileInputStream(filename)) {
509-
Map<String, Object> ret =
510-
(Map<String, Object>) ADAPTER.fromJson(Okio.buffer(Okio.source(is)));
489+
Map<String, Object> ret = ADAPTER.fromJson(Okio.buffer(Okio.source(is)));
511490

512491
StandardizedLogging._initialConfigSourceAndLibddwafVersion(log, filename);
513492
if (log.isInfoEnabled()) {

dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WAFModule.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import datadog.trace.api.ProductActivation;
3535
import datadog.trace.api.ProductTraceSource;
3636
import datadog.trace.api.gateway.Flow;
37-
import datadog.trace.api.sampling.PrioritySampling;
3837
import datadog.trace.api.telemetry.LogCollector;
3938
import datadog.trace.api.telemetry.WafMetricCollector;
4039
import datadog.trace.api.time.SystemTimeSource;
@@ -432,9 +431,6 @@ public void onDataAvailable(
432431
}
433432
}
434433

435-
reqCtx.setKeepType(
436-
resultWithData.keep ? PrioritySampling.USER_KEEP : PrioritySampling.USER_DROP);
437-
438434
if (resultWithData.attributes != null && !resultWithData.attributes.isEmpty()) {
439435
reqCtx.reportDerivatives(resultWithData.attributes);
440436
}

dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/AppSecRequestContext.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import datadog.trace.api.Config;
1414
import datadog.trace.api.http.StoredBodySupplier;
1515
import datadog.trace.api.internal.TraceSegment;
16-
import datadog.trace.api.sampling.PrioritySampling;
1716
import datadog.trace.util.stacktrace.StackTraceEvent;
1817
import java.io.Closeable;
1918
import java.util.*;
@@ -147,7 +146,6 @@ public class AppSecRequestContext implements DataBundle, Closeable {
147146

148147
private volatile boolean keepOpenForApiSecurityPostProcessing;
149148
private volatile Long apiSecurityEndpointHash;
150-
private volatile byte keepType = PrioritySampling.SAMPLER_KEEP;
151149

152150
private static final AtomicIntegerFieldUpdater<AppSecRequestContext> WAF_TIMEOUTS_UPDATER =
153151
AtomicIntegerFieldUpdater.newUpdater(AppSecRequestContext.class, "wafTimeouts");
@@ -363,14 +361,6 @@ public Long getApiSecurityEndpointHash() {
363361
return this.apiSecurityEndpointHash;
364362
}
365363

366-
public void setKeepType(byte keepType) {
367-
this.keepType = keepType;
368-
}
369-
370-
public byte getKeepType() {
371-
return this.keepType;
372-
}
373-
374364
void addRequestHeader(String name, String value) {
375365
if (finishedRequestHeaders) {
376366
throw new IllegalStateException("Request headers were said to be finished before");

dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/GatewayBridge.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import static com.datadog.appsec.gateway.AppSecRequestContext.DEFAULT_REQUEST_HEADERS_ALLOW_LIST;
66
import static com.datadog.appsec.gateway.AppSecRequestContext.REQUEST_HEADERS_ALLOW_LIST;
77
import static com.datadog.appsec.gateway.AppSecRequestContext.RESPONSE_HEADERS_ALLOW_LIST;
8-
import static datadog.trace.bootstrap.instrumentation.api.Tags.SAMPLING_PRIORITY;
98

109
import com.datadog.appsec.AppSecSystem;
1110
import com.datadog.appsec.api.security.ApiSecuritySampler;
@@ -750,9 +749,6 @@ private NoopFlow onRequestEnded(RequestContext ctx_, IGSpanInfo spanInfo) {
750749

751750
// If detected any events - mark span at appsec.event
752751
if (!collectedEvents.isEmpty()) {
753-
// Set asm keep in case that root span was not available when events are detected
754-
traceSeg.setTagTop(Tags.ASM_KEEP, true);
755-
traceSeg.setTagTop(SAMPLING_PRIORITY, ctx.getKeepType());
756752
traceSeg.setTagTop(Tags.PROPAGATED_TRACE_SOURCE, ProductTraceSource.ASM);
757753
traceSeg.setTagTop("appsec.event", true);
758754
traceSeg.setTagTop("network.client.ip", ctx.getPeerAddress());

0 commit comments

Comments
 (0)