Skip to content

Commit 6414305

Browse files
Merge pull request #185 from AikidoSec/add-trace-logs-for-wrappers
Add even more detailed trace logs for wrappers
2 parents 18dbc0f + 4390aca commit 6414305

File tree

5 files changed

+22
-2
lines changed

5 files changed

+22
-2
lines changed

agent_api/src/main/java/dev/aikido/agent_api/background/BackgroundProcess.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import dev.aikido.agent_api.background.cloud.api.events.Started;
88
import dev.aikido.agent_api.helpers.env.BlockingEnv;
99
import dev.aikido.agent_api.helpers.env.Token;
10+
import dev.aikido.agent_api.helpers.logging.LogManager;
11+
import dev.aikido.agent_api.helpers.logging.Logger;
1012
import dev.aikido.agent_api.storage.ServiceConfigStore;
1113

1214
import java.util.Optional;
@@ -22,6 +24,7 @@ public class BackgroundProcess extends Thread {
2224
private final static int API_TIMEOUT = 10; // 10 seconds
2325
private final Token token;
2426
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3);
27+
private static final Logger logger = LogManager.getLogger(BackgroundProcess.class);
2528

2629
public BackgroundProcess(String name, Token token) {
2730
super(name);
@@ -33,6 +36,8 @@ public void run() {
3336
if (!Thread.currentThread().isDaemon() && token == null) {
3437
return; // Can only run if thread is daemon and token needs to be defined.
3538
}
39+
logger.trace("Starting agent thread: %s", Thread.currentThread());
40+
3641
ServiceConfigStore.updateBlocking(new BlockingEnv().getValue());
3742
ReportingApiHTTP api = new ReportingApiHTTP(getAikidoAPIEndpoint(), API_TIMEOUT, token);
3843
RealtimeAPI realtimeApi = new RealtimeAPI(token);
@@ -53,4 +58,4 @@ public void run() {
5358
// one time check to report initial stats
5459
scheduler.schedule(new HeartbeatTask(api, true), 60, TimeUnit.SECONDS);
5560
}
56-
}
61+
}

agent_api/src/main/java/dev/aikido/agent_api/background/cloud/api/ReportingApiHTTP.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public Optional<APIResponse> fetchNewConfig() {
4141

4242
// Send the request and get the response
4343
HttpResponse<String> httpResponse = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
44+
logger.trace("Got response for %s: %s", uri.toString(), httpResponse.body());
4445
return Optional.of(toApiResponse(httpResponse));
4546
} catch (Exception e) {
4647
logger.debug("Error while fetching new config from cloud: %s", e.getMessage());
@@ -60,6 +61,7 @@ public Optional<APIResponse> report(APIEvent event) {
6061

6162
// Send the request and get the response
6263
HttpResponse<String> httpResponse = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
64+
logger.trace("Got response for %s: %s", uri.toString(), httpResponse.body());
6365
return Optional.of(toApiResponse(httpResponse));
6466
} catch (Exception e) {
6567
logger.debug("Error while communicating with cloud: %s", e.getMessage());
@@ -126,6 +128,7 @@ private HttpRequest createHttpRequest(Optional<APIEvent> event, URI uri) {
126128
if (event.isPresent()) {
127129
Gson gson = new Gson();
128130
String requestPayload = gson.toJson(event.get());
131+
logger.trace("New request payload: %s", requestPayload);
129132
return requestBuilder.POST(HttpRequest.BodyPublishers.ofString(requestPayload)) // Set the request body
130133
.build();
131134
}

agent_api/src/main/java/dev/aikido/agent_api/collectors/CommandCollector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
package dev.aikido.agent_api.collectors;
22

3+
import dev.aikido.agent_api.helpers.logging.LogManager;
4+
import dev.aikido.agent_api.helpers.logging.Logger;
35
import dev.aikido.agent_api.storage.statistics.OperationKind;
46
import dev.aikido.agent_api.storage.statistics.StatisticsStore;
57
import dev.aikido.agent_api.vulnerabilities.Scanner;
68
import dev.aikido.agent_api.vulnerabilities.Vulnerabilities;
79

810
public final class CommandCollector {
911
private CommandCollector() {}
12+
private static final Logger logger = LogManager.getLogger(CommandCollector.class);
1013
public static void report(Object command) {
1114
if (command instanceof String commandStr) {
1215
if (commandStr.isEmpty()) {
1316
return; // Empty command, don't scan.
1417
}
1518

19+
logger.trace("Scanning command: %s", commandStr);
20+
1621
// report stats
1722
StatisticsStore.registerCall("runtime.Exec", OperationKind.EXEC_OP);
1823

agent_api/src/main/java/dev/aikido/agent_api/collectors/FileCollector.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.aikido.agent_api.collectors;
22

3+
import dev.aikido.agent_api.helpers.logging.LogManager;
4+
import dev.aikido.agent_api.helpers.logging.Logger;
35
import dev.aikido.agent_api.storage.statistics.OperationKind;
46
import dev.aikido.agent_api.storage.statistics.StatisticsStore;
57
import dev.aikido.agent_api.vulnerabilities.Scanner;
@@ -11,6 +13,7 @@
1113
public final class FileCollector {
1214
private FileCollector() {}
1315
private static final int MAX_RECURSION_DEPTH = 3;
16+
private static final Logger logger = LogManager.getLogger(FileCollector.class);
1417

1518
public static void report(Object filePath, String operation) {
1619
report(filePath, operation, 0); // Start with depth of zero
@@ -19,7 +22,7 @@ public static void report(Object filePath, String operation, int depth) {
1922
if (filePath == null) {
2023
return; // Make sure filePath is defined
2124
}
22-
25+
logger.trace("Scan on %s for file: %s", operation, filePath);
2326
StatisticsStore.registerCall(operation, OperationKind.FS_OP);
2427

2528
Vulnerabilities.Vulnerability vulnerability = new Vulnerabilities.PathTraversalVulnerability();

agent_api/src/main/java/dev/aikido/agent_api/collectors/SQLCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package dev.aikido.agent_api.collectors;
22

3+
import dev.aikido.agent_api.helpers.logging.LogManager;
4+
import dev.aikido.agent_api.helpers.logging.Logger;
35
import dev.aikido.agent_api.storage.statistics.OperationKind;
46
import dev.aikido.agent_api.storage.statistics.StatisticsStore;
57
import dev.aikido.agent_api.vulnerabilities.Vulnerabilities;
68
import dev.aikido.agent_api.vulnerabilities.Scanner;
79

810
public final class SQLCollector {
911
private SQLCollector() {}
12+
private static final Logger logger = LogManager.getLogger(SQLCollector.class);
1013
public static void report(String sql, String dialect, String operation) {
14+
logger.trace("Scanning sql: %s, with dialect: %s", sql, dialect);
1115
// register statistics
1216
StatisticsStore.registerCall(operation, OperationKind.SQL_OP);
1317

0 commit comments

Comments
 (0)