Skip to content

Commit fb71f8d

Browse files
simon-idwatson
authored andcommitted
change RASP addresses from persistent to ephemeral (#5235)
1 parent c7db6f4 commit fb71f8d

File tree

8 files changed

+26
-26
lines changed

8 files changed

+26
-26
lines changed

packages/dd-trace/src/appsec/rasp/command_injection.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,20 @@ function analyzeCommandInjection ({ file, fileArgs, shell, abortController }) {
3131
const req = store?.req
3232
if (!req) return
3333

34-
const persistent = {}
34+
const ephemeral = {}
3535
const raspRule = { type: RULE_TYPES.COMMAND_INJECTION }
3636
const params = fileArgs ? [file, ...fileArgs] : file
3737

3838
if (shell) {
39-
persistent[addresses.SHELL_COMMAND] = params
39+
ephemeral[addresses.SHELL_COMMAND] = params
4040
raspRule.variant = 'shell'
4141
} else {
4242
const commandParams = Array.isArray(params) ? params : [params]
43-
persistent[addresses.EXEC_COMMAND] = commandParams
43+
ephemeral[addresses.EXEC_COMMAND] = commandParams
4444
raspRule.variant = 'exec'
4545
}
4646

47-
const result = waf.run({ persistent }, req, raspRule)
47+
const result = waf.run({ ephemeral }, req, raspRule)
4848

4949
const res = store?.res
5050
handleResult(result, req, res, abortController, config)

packages/dd-trace/src/appsec/rasp/lfi.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ function analyzeLfi (ctx) {
5454
if (!req || !fs) return
5555

5656
getPaths(ctx, fs).forEach(path => {
57-
const persistent = {
57+
const ephemeral = {
5858
[FS_OPERATION_PATH]: path
5959
}
6060

6161
const raspRule = { type: RULE_TYPES.LFI }
6262

63-
const result = waf.run({ persistent }, req, raspRule)
63+
const result = waf.run({ ephemeral }, req, raspRule)
6464
handleResult(result, req, res, ctx.abortController, config)
6565
})
6666
}

packages/dd-trace/src/appsec/rasp/sql_injection.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ function analyzeSqlInjection (query, dbSystem, abortController) {
6767
}
6868
executedQueries.add(query)
6969

70-
const persistent = {
70+
const ephemeral = {
7171
[addresses.DB_STATEMENT]: query,
7272
[addresses.DB_SYSTEM]: dbSystem
7373
}
7474

7575
const raspRule = { type: RULE_TYPES.SQL_INJECTION }
7676

77-
const result = waf.run({ persistent }, req, raspRule)
77+
const result = waf.run({ ephemeral }, req, raspRule)
7878

7979
handleResult(result, req, res, abortController, config)
8080
}

packages/dd-trace/src/appsec/rasp/ssrf.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ function analyzeSsrf (ctx) {
2525

2626
if (!req || !outgoingUrl) return
2727

28-
const persistent = {
28+
const ephemeral = {
2929
[addresses.HTTP_OUTGOING_URL]: outgoingUrl
3030
}
3131

3232
const raspRule = { type: RULE_TYPES.SSRF }
3333

34-
const result = waf.run({ persistent }, req, raspRule)
34+
const result = waf.run({ ephemeral }, req, raspRule)
3535

3636
const res = store?.res
3737
handleResult(result, req, res, ctx.abortController, config)

packages/dd-trace/test/appsec/rasp/command_injection.spec.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ describe('RASP - command_injection.js', () => {
105105

106106
start.publish(ctx)
107107

108-
const persistent = { [addresses.SHELL_COMMAND]: 'cmd' }
108+
const ephemeral = { [addresses.SHELL_COMMAND]: 'cmd' }
109109
sinon.assert.calledOnceWithExactly(
110-
waf.run, { persistent }, req, { type: 'command_injection', variant: 'shell' }
110+
waf.run, { ephemeral }, req, { type: 'command_injection', variant: 'shell' }
111111
)
112112
})
113113

@@ -122,9 +122,9 @@ describe('RASP - command_injection.js', () => {
122122

123123
start.publish(ctx)
124124

125-
const persistent = { [addresses.SHELL_COMMAND]: ['cmd', 'arg0', 'arg1'] }
125+
const ephemeral = { [addresses.SHELL_COMMAND]: ['cmd', 'arg0', 'arg1'] }
126126
sinon.assert.calledOnceWithExactly(
127-
waf.run, { persistent }, req, { type: 'command_injection', variant: 'shell' }
127+
waf.run, { ephemeral }, req, { type: 'command_injection', variant: 'shell' }
128128
)
129129
})
130130

@@ -154,9 +154,9 @@ describe('RASP - command_injection.js', () => {
154154

155155
start.publish(ctx)
156156

157-
const persistent = { [addresses.EXEC_COMMAND]: ['ls'] }
157+
const ephemeral = { [addresses.EXEC_COMMAND]: ['ls'] }
158158
sinon.assert.calledOnceWithExactly(
159-
waf.run, { persistent }, req, { type: 'command_injection', variant: 'exec' }
159+
waf.run, { ephemeral }, req, { type: 'command_injection', variant: 'exec' }
160160
)
161161
})
162162

@@ -171,9 +171,9 @@ describe('RASP - command_injection.js', () => {
171171

172172
start.publish(ctx)
173173

174-
const persistent = { [addresses.EXEC_COMMAND]: ['ls', '-la', '/tmp'] }
174+
const ephemeral = { [addresses.EXEC_COMMAND]: ['ls', '-la', '/tmp'] }
175175
sinon.assert.calledOnceWithExactly(
176-
waf.run, { persistent }, req, { type: 'command_injection', variant: 'exec' }
176+
waf.run, { ephemeral }, req, { type: 'command_injection', variant: 'exec' }
177177
)
178178
})
179179

packages/dd-trace/test/appsec/rasp/lfi.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ describe('RASP - lfi.js', () => {
108108

109109
fsOperationStart.publish(ctx)
110110

111-
const persistent = { [FS_OPERATION_PATH]: path }
112-
sinon.assert.calledOnceWithExactly(waf.run, { persistent }, req, { type: 'lfi' })
111+
const ephemeral = { [FS_OPERATION_PATH]: path }
112+
sinon.assert.calledOnceWithExactly(waf.run, { ephemeral }, req, { type: 'lfi' })
113113
})
114114

115115
it('should NOT analyze lfi for child fs operations', () => {

packages/dd-trace/test/appsec/rasp/sql_injection.spec.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ describe('RASP - sql_injection', () => {
5151

5252
pgQueryStart.publish(ctx)
5353

54-
const persistent = {
54+
const ephemeral = {
5555
[addresses.DB_STATEMENT]: 'SELECT 1',
5656
[addresses.DB_SYSTEM]: 'postgresql'
5757
}
58-
sinon.assert.calledOnceWithExactly(waf.run, { persistent }, req, { type: 'sql_injection' })
58+
sinon.assert.calledOnceWithExactly(waf.run, { ephemeral }, req, { type: 'sql_injection' })
5959
})
6060

6161
it('should not analyze sql injection if rasp is disabled', () => {
@@ -122,11 +122,11 @@ describe('RASP - sql_injection', () => {
122122

123123
mysql2OuterQueryStart.publish(ctx)
124124

125-
const persistent = {
125+
const ephemeral = {
126126
[addresses.DB_STATEMENT]: 'SELECT 1',
127127
[addresses.DB_SYSTEM]: 'mysql'
128128
}
129-
sinon.assert.calledOnceWithExactly(waf.run, { persistent }, req, { type: 'sql_injection' })
129+
sinon.assert.calledOnceWithExactly(waf.run, { ephemeral }, req, { type: 'sql_injection' })
130130
})
131131

132132
it('should not analyze sql injection if rasp is disabled', () => {

packages/dd-trace/test/appsec/rasp/ssrf.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ describe('RASP - ssrf.js', () => {
5151

5252
httpClientRequestStart.publish(ctx)
5353

54-
const persistent = { [addresses.HTTP_OUTGOING_URL]: 'http://example.com' }
55-
sinon.assert.calledOnceWithExactly(waf.run, { persistent }, req, { type: 'ssrf' })
54+
const ephemeral = { [addresses.HTTP_OUTGOING_URL]: 'http://example.com' }
55+
sinon.assert.calledOnceWithExactly(waf.run, { ephemeral }, req, { type: 'ssrf' })
5656
})
5757

5858
it('should not analyze ssrf if rasp is disabled', () => {

0 commit comments

Comments
 (0)