Skip to content

Commit 2e0ac26

Browse files
GeekMashermichaelnebel
authored andcommitted
feat: Add AWS Lambda logging
1 parent 6c138ae commit 2e0ac26

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

csharp/ql/lib/ext/Amazon.Lambda.model.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,17 @@ extensions:
1313
- addsTo:
1414
pack: codeql/csharp-all
1515
extensible: sinkModel
16-
data: []
16+
data:
17+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"Log","(System.String)","","Argument[0]","log-injection","manual"]
18+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogLine","(System.String)","","Argument[0]","log-injection","manual"]
19+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogTrace","(System.String)","","Argument[0]","log-injection","manual"]
20+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogDebug","(System.String)","","Argument[0]","log-injection","manual"]
21+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogInformation","(System.String)","","Argument[0]","log-injection","manual"]
22+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogWarning","(System.String)","","Argument[0]","log-injection","manual"]
23+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogError","(System.String)","","Argument[0]","log-injection","manual"]
24+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"LogCritical","(System.String)","","Argument[0]","log-injection","manual"]
25+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"Log","(System.String,System.String)","","Argument[1]","log-injection","manual"]
26+
- ["Amazon.Lambda.Core","ILambdaLogger",true,"Log","(Amazon.Lambda.Core.LogLevel,System.String)","","Argument[1]","log-injection","manual"]
1727

1828
- addsTo:
1929
pack: codeql/csharp-all

csharp/ql/test/library-tests/frameworks/Aws/lambda.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,20 @@ public APIGatewayProxyResponse Get(APIGatewayHttpApiV2ProxyRequest request, ILam
2323
StatusCode = 200
2424
};
2525
}
26+
27+
public void Logging(ILambdaContext context, string data)
28+
{
29+
// logging
30+
context.Logger.Log($"Log Data :: {data}");
31+
context.Logger.LogLine($"Log Data :: {data}");
32+
context.Logger.Log("Information", $"Log Data :: {data}");
33+
context.Logger.Log(LogLevel.Information, $"Log Data :: {data}");
34+
context.Logger.LogTrace($"Log Data :: {data}");
35+
context.Logger.LogDebug($"Log Data :: {data}");
36+
context.Logger.LogInformation($"Log Data :: {data}");
37+
context.Logger.LogWarning($"Log Data :: {data}");
38+
context.Logger.LogError($"Log Data :: {data}");
39+
context.Logger.LogCritical($"Log Data :: {data}");
40+
}
2641
}
2742
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
1+
awsRemoteSources
12
| lambda.cs:11:27:11:38 | access to property Body |
23
| lambda.cs:12:29:12:43 | access to property Cookies |
34
| lambda.cs:14:30:14:44 | access to property RawPath |
45
| lambda.cs:15:31:15:52 | access to property RawQueryString |
56
| lambda.cs:16:13:16:34 | access to property PathParameters |
67
| lambda.cs:18:29:18:43 | access to property Headers |
78
| lambda.cs:19:13:19:27 | access to property Headers |
9+
awsLoggingSinks
10+
| lambda.cs:30:32:30:52 | $"..." |
11+
| lambda.cs:31:36:31:56 | $"..." |
12+
| lambda.cs:32:47:32:67 | $"..." |
13+
| lambda.cs:33:54:33:74 | $"..." |
14+
| lambda.cs:34:37:34:57 | $"..." |
15+
| lambda.cs:35:37:35:57 | $"..." |
16+
| lambda.cs:36:43:36:63 | $"..." |
17+
| lambda.cs:37:39:37:59 | $"..." |
18+
| lambda.cs:38:37:38:57 | $"..." |
19+
| lambda.cs:39:40:39:60 | $"..." |

csharp/ql/test/library-tests/frameworks/Aws/lambda.ql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ import csharp
22
import semmle.code.csharp.dataflow.ExternalFlow
33

44
query predicate awsRemoteSources(DataFlow::ExprNode node) { sourceNode(node, "remote") }
5+
6+
query predicate awsLoggingSinks(DataFlow::ExprNode node) { sinkNode(node, "log-injection") }

0 commit comments

Comments
 (0)