@@ -261,4 +261,90 @@ Reference material
261
261
------------------
262
262
263
263
The following sections provide reference material for extension points.
264
- This includes descriptions of each of the arguments (eg. access paths, types, and kinds).
264
+ This includes descriptions of each of the arguments (eg. access paths, types, and kinds).
265
+
266
+ Extension points
267
+ ----------------
268
+
269
+ Below is a description of the tuple values for each extension point.
270
+ The section Access paths describes in more detail, how access paths are composed.
271
+ This is the most complicated part of the extension points and the **mini DSL ** for access paths is shared accross the extension points.
272
+
273
+ sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)
274
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
275
+
276
+ Taint source. Most taint tracking queries will use the sources added to this extensions point.
277
+
278
+ - **package **: Name of the package where the source resides.
279
+ - **type **: Name of the type where the source resides.
280
+ - **subtypes **: Whether the source should also apply to all overrides of the method.
281
+ - **name **: Name of the method where the source resides.
282
+ - **signature **: Type signature of the method where the source resides.
283
+ - **ext **: Specifies additional API-graph-like edges (mostly empty).
284
+ - **output **: Access path to the source, where the possibly tainted data flows from.
285
+ - **kind **: Kind of the source.
286
+ - **provenance **: Provenance (origin) of the source.
287
+
288
+ As most sources are used by all taint tracking queries there are only a few different source kinds.
289
+ The following source kinds are supported:
290
+
291
+ - **remote **: A remote source is tainted data. This is the most common kind of source and sources of this kind is used for almost all taint tracking queries.
292
+ - **contentprovider **: ?
293
+ - **android-widget **: ?
294
+ - **android-external-storage-dir **: ?
295
+
296
+ sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)
297
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
298
+
299
+ Taint sink. As opposed to source kinds, there are many different kinds of sinks as these tend to be more query specific.
300
+
301
+ - **package **: Name of the package where the sink resides.
302
+ - **type **: Name of the type where the sink resides.
303
+ - **subtypes **: Whether the sink should also apply to all overrides of the method.
304
+ - **name **: Name of the method where the sink resides.
305
+ - **signature **: Type signature of the method where the sink resides.
306
+ - **ext **: Specifies additional API-graph-like edges (mostly empty).
307
+ - **input **: Access path to the sink, where we want to check if possibly tainted data flows too.
308
+ - **kind **: Kind of the sink.
309
+ - **provenance **: Provenance (origin) of the sink.
310
+
311
+ The following sink kinds are supported:
312
+
313
+ - **open-url **: ?
314
+ - **jndi-injection **: ?
315
+ - **ldap **: ?
316
+ - **sql **: ?
317
+ - **jdbc-url **: ?
318
+ - **logging **: ?
319
+ - **mvel **: ?
320
+ - **xpath **: ?
321
+ - **groovy **: ?
322
+ - **xss **: ?
323
+ - **ognl-injection **: ?
324
+ - **intent-start **: ?
325
+ - **pending-intent-sent **: ?
326
+ - **url-open-stream **: ?
327
+ - **url-redirect **: ?
328
+ - **create-file **: ?
329
+ - **read-file **: ?
330
+ - **write-file **: ?
331
+ - **set-hostname-verifier **: ?
332
+ - **header-splitting **: ?
333
+ - **information-leak **: ?
334
+ - **xslt **: ?
335
+ - **jexl **: ?
336
+ - **bean-validation **: ?
337
+ - **ssti **: ?
338
+ - **fragment-injection **: ?
339
+
340
+ summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)
341
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342
+
343
+ neutralModel(package, type, name, signature, provenance)
344
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
345
+
346
+ Access paths
347
+ ------------
348
+
349
+ Provenance
350
+ ----------
0 commit comments