@@ -261,4 +261,90 @@ Reference material
261261------------------
262262
263263The 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