Skip to content

Commit 2115388

Browse files
authored
Merge pull request #536 from HXSecurity/beta
Release v1.11.0
2 parents 126b936 + d800c43 commit 2115388

File tree

35 files changed

+455
-322
lines changed

35 files changed

+455
-322
lines changed

dongtai-agent/src/main/java/io/dongtai/iast/agent/Agent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ private static String[] parseAgentArgs(String[] args) throws ParseException {
3939
attachOptions.addOption(build("log_path", "log_path", "optional: DongTai agent log print path."));
4040
attachOptions.addOption(build("log_disable_collector", "log_disable_collector", "optional: DongTai agent disable log collector."));
4141
attachOptions.addOption(build("disabled_plugins", "disabled_plugins", "optional: DongTai agent disable plugins."));
42+
attachOptions.addOption(build("disabled_features", "disabled_features", "optional: DongTai agent disable features."));
4243

4344
CommandLineParser parser = new DefaultParser();
4445
HelpFormatter formatter = new HelpFormatter();

dongtai-agent/src/main/java/io/dongtai/iast/agent/IastProperties.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class IastProperties {
3434
put("log_disable_collector", PropertyConstant.PROPERTY_LOG_DISABLE_COLLECTOR);
3535
put("uuid_path", PropertyConstant.PROPERTY_UUID_PATH);
3636
put("disabled_plugins", PropertyConstant.PROPERTY_DISABLED_PLUGINS);
37+
put("disabled_features", PropertyConstant.PROPERTY_DISABLED_FEATURES);
3738
}};
3839

3940
private static IastProperties instance;

dongtai-agent/src/main/java/io/dongtai/iast/agent/LogCollector.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@ public static void extractFluent() {
2222
}
2323
try {
2424
if (!isMacOs() && !isWindows()) {
25+
String agentId = String.valueOf(AgentRegisterReport.getAgentId());
26+
FLUENT_FILE_CONF = IastProperties.getInstance().getTmpDir() + "fluent-" + agentId + ".conf";
27+
FileUtils.getResourceToFile("bin/fluent.conf", FLUENT_FILE_CONF);
28+
FileUtils.confReplace(FLUENT_FILE_CONF);
29+
30+
String multiParserFile = IastProperties.getInstance().getTmpDir() + "parsers_multiline.conf";
31+
FileUtils.getResourceToFile("bin/parsers_multiline.conf", multiParserFile);
32+
FileUtils.confReplace(multiParserFile);
33+
2534
FLUENT_FILE = IastProperties.getInstance().getTmpDir() + "fluent";
2635
File f = new File(FLUENT_FILE);
2736
if (f.exists()) {
@@ -34,10 +43,6 @@ public static void extractFluent() {
3443
FileUtils.getResourceToFile("bin/fluent", FLUENT_FILE);
3544
}
3645

37-
String agentId = String.valueOf(AgentRegisterReport.getAgentId());
38-
FLUENT_FILE_CONF = IastProperties.getInstance().getTmpDir() + "fluent-" + agentId + ".conf";
39-
FileUtils.getResourceToFile("bin/fluent.conf", FLUENT_FILE_CONF);
40-
FileUtils.confReplace(FLUENT_FILE_CONF);
4146
if (!(new File(FLUENT_FILE)).setExecutable(true)) {
4247
DongTaiLog.warn(ErrorCode.FLUENT_SET_EXECUTABLE_FAILED, FLUENT_FILE);
4348
}

dongtai-agent/src/main/java/io/dongtai/iast/agent/middlewarerecognition/dubbo/DubboService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public boolean isMatch(RuntimeMXBean paramRuntimeMXBean, ClassLoader loader) {
1313
} catch (Throwable ignored) {
1414
}
1515
try {
16-
loader.loadClass("com.alibaba.dubbo.monitor.support.MonitorFilter");
16+
loader.loadClass(" com.alibaba.dubbo.monitor.support.MonitorFilter".substring(1));
1717
return true;
1818
} catch (Throwable ignored) {
1919
}

dongtai-agent/src/main/resources/bin/fluent.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Daemon OFF
44
Log_Level error
55
HTTP_Server Off
6+
parsers_file parsers_multiline.conf
67
[INPUT]
78
Name tail
89
Path ${LOG_PATH}
@@ -13,6 +14,7 @@
1314
Buffer_Max_Size 16MB
1415
Skip_Long_Lines On
1516
Read_from_Head true
17+
multiline.parser multiline-regex-test
1618
[FILTER]
1719
Name record_modifier
1820
Match *
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[MULTILINE_PARSER]
2+
name multiline-regex-test
3+
type regex
4+
flush_timeout 1000
5+
rule "start_state" "/(\d+\d+\-\d+\-\d+ \d+\:\d+\:\d+)(.*)/" "cont"
6+
rule "cont" "/(^\s+at.*|^Caused.*|^\s+\.\.\..*)/" "cont"

dongtai-common/src/main/java/io/dongtai/iast/common/constants/AgentConstant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.dongtai.iast.common.constants;
22

33
public class AgentConstant {
4-
public static final String VERSION_VALUE = "v1.10.0";
4+
public static final String VERSION_VALUE = "v1.11.0";
55
public static final String LANGUAGE = "JAVA";
66
public static final String THREAD_NAME_PREFIX = "DongTai-IAST-";
77
public static final String THREAD_NAME_PREFIX_CORE = "DongTai-IAST-Core-";

dongtai-common/src/main/java/io/dongtai/iast/common/constants/PropertyConstant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ public class PropertyConstant {
2525
public static final String PROPERTY_JAR_API_URL = "iast.jar.api.url";
2626
public static final String PROPERTY_LOG_ADDRESS = "dongtai.log.address";
2727
public static final String PROPERTY_LOG_PORT = "dongtai.log.port";
28-
public static final String PROPERTY_FALLBACK_VERSION = "dongtai.fallback.version";
2928
public static final String PROPERTY_DUMP_CLASS_PATH = "iast.dump.class.path";
3029
public static final String PROPERTY_DUMP_CLASS_ENABLE = "iast.dump.class.enable";
3130
public static final String PROPERTY_SERVICE_HEARTBEAT_INTERVAL = "iast.service.heartbeat.interval";
3231
public static final String PROPERTY_RESPONSE_LENGTH = "dongtai.response.length";
3332
public static final String PROPERTY_POLICY_PATH = "dongtai.policy.path";
3433
public static final String PROPERTY_UUID_PATH = "dongtai.uuid.path";
3534
public static final String PROPERTY_DISABLED_PLUGINS = "dongtai.disabled.plugins";
35+
public static final String PROPERTY_DISABLED_FEATURES = "dongtai.disabled_features";
3636
}

dongtai-core/src/main/java/io/dongtai/iast/core/EngineManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,16 @@ public static void enterHttpEntry(Map<String, Object> requestMeta) {
136136
}
137137
REQUEST_CONTEXT.set(requestMeta);
138138
TRACK_MAP.set(new HashMap<Integer, MethodEvent>(1024));
139-
TAINT_HASH_CODES.set(new HashSet<Integer>());
140-
TAINT_RANGES_POOL.set(new HashMap<Integer, TaintRanges>());
139+
TAINT_HASH_CODES.set(new HashSet<Long>());
140+
TAINT_RANGES_POOL.set(new HashMap<Long, TaintRanges>());
141141
ScopeManager.SCOPE_TRACKER.getScope(Scope.HTTP_ENTRY).enter();
142142
}
143143

144144
public static void enterDubboEntry(Map<String, Object> requestMeta) {
145145
REQUEST_CONTEXT.set(requestMeta);
146146
TRACK_MAP.set(new HashMap<Integer, MethodEvent>(1024));
147-
TAINT_HASH_CODES.set(new HashSet<Integer>());
148-
TAINT_RANGES_POOL.set(new HashMap<Integer, TaintRanges>());
147+
TAINT_HASH_CODES.set(new HashSet<Long>());
148+
TAINT_RANGES_POOL.set(new HashMap<Long, TaintRanges>());
149149
ScopeManager.SCOPE_TRACKER.getScope(Scope.DUBBO_ENTRY).enter();
150150
}
151151
}

dongtai-core/src/main/java/io/dongtai/iast/core/bytecode/enhance/plugin/PluginRegister.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.dongtai.iast.core.bytecode.enhance.plugin.spring.DispatchApiCollector;
1313
import io.dongtai.iast.core.handler.hookpoint.models.policy.Policy;
1414
import io.dongtai.iast.core.handler.hookpoint.models.policy.PolicyManager;
15+
import io.dongtai.iast.core.utils.PropertyUtils;
1516
import org.objectweb.asm.ClassVisitor;
1617

1718
import java.util.*;
@@ -28,7 +29,7 @@ public class PluginRegister {
2829

2930
public PluginRegister() {
3031
this.plugins = new ArrayList<>();
31-
List<String> disabledPlugins = getdisabledPlugins();
32+
List<String> disabledPlugins = PropertyUtils.getDisabledPlugins();
3233
List<DispatchPlugin> allPlugins = new ArrayList<>(Arrays.asList(
3334
new DispatchApiCollector(),
3435
new DispatchJ2ee(),
@@ -43,12 +44,6 @@ public PluginRegister() {
4344
this.plugins.add(new DispatchClassPlugin());
4445
}
4546

46-
private List<String> getdisabledPlugins() {
47-
return Optional.ofNullable(System.getProperty("dongtai.disabled.plugins"))
48-
.map(s -> Arrays.asList(s.split(",")))
49-
.orElse(null);
50-
}
51-
5247
public ClassVisitor initial(ClassVisitor classVisitor, ClassContext context, PolicyManager policyManager) {
5348
Policy policy = policyManager.getPolicy();
5449
if (policy == null) {

0 commit comments

Comments
 (0)