From ea4ed9e56dd18d051e773f739d3ee79e81f58534 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Fri, 5 May 2023 09:28:47 -0700 Subject: [PATCH] Rename threat model kinds standard --> default exansive --> all sql --> database --- .../default-parameter-mad-flow/test.ext.yml | 2 +- java/ql/lib/ext/threat-grouping.model.yml | 48 +++++++++---------- .../dataflow/ExternalFlowConfiguration.qll | 26 +++++----- .../experimental/configured-flow/Test.java | 4 +- .../configured-flow/sql-tainted2.ext.yml | 4 +- .../configured-flow/test-all.ext.yml | 4 +- .../test-hardcoded-all.ext.yml | 4 +- .../test-hardcoded-remote.ext.yml | 2 +- .../test-hardcoded-sql.ext.yml | 4 +- .../test-hardcoded-standard.ext.yml | 4 +- .../test-relatedsourcemodels1.ext.yml | 4 +- .../test-relatedsourcemodels2.ext.yml | 4 +- .../configured-flow/test-remote.ext.yml | 2 +- .../configured-flow/test-sql.ext.yml | 4 +- .../dataflow/external-models/srcs.ext.yml | 2 +- 15 files changed, 59 insertions(+), 59 deletions(-) diff --git a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml index 695532246c8..2cccc425aa4 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml +++ b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml @@ -29,6 +29,6 @@ extensions: # - addsTo: # pack: codeql/java-all - # extensible: supportedThreatModel + # extensible: supportedThreatModels # data: # - ["kotlinMadFlowTest"] diff --git a/java/ql/lib/ext/threat-grouping.model.yml b/java/ql/lib/ext/threat-grouping.model.yml index 195468f5df6..7b2d8fdb141 100644 --- a/java/ql/lib/ext/threat-grouping.model.yml +++ b/java/ql/lib/ext/threat-grouping.model.yml @@ -16,23 +16,23 @@ extensions: data: # Create a few # Package java.sql - - ["java.sql", "PreparedStatement", True, "executeQuery", "()", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "PreparedStatement", True, "getMetaData", "()", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "PreparedStatement", True, "getParameterMetaData", "", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "Statement", True, "executeQuery", "(String)", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "Statement", True, "getResultSet", "()", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "Statement", True, "getGeneratedKeys", "()", "", "ReturnValue", "sql", "manual"] - - ["java.sql", "Statement", True, "getConnection", "()", "", "ReturnValue", "sql", "manual"] + - ["java.sql", "PreparedStatement", True, "executeQuery", "()", "", "ReturnValue", "database", "manual"] + - ["java.sql", "PreparedStatement", True, "getMetaData", "()", "", "ReturnValue", "database", "manual"] + - ["java.sql", "PreparedStatement", True, "getParameterMetaData", "", "", "ReturnValue", "database", "manual"] + - ["java.sql", "Statement", True, "executeQuery", "(String)", "", "ReturnValue", "database", "manual"] + - ["java.sql", "Statement", True, "getResultSet", "()", "", "ReturnValue", "database", "manual"] + - ["java.sql", "Statement", True, "getGeneratedKeys", "()", "", "ReturnValue", "database", "manual"] + - ["java.sql", "Statement", True, "getConnection", "()", "", "ReturnValue", "database", "manual"] # Package org.hibernate - - ["org.hibernate", "Query", True, "list", "()", "", ReturnValue", "sql", "manual"] - - ["org.hibernate", "Query", True, "scroll", "", "", ReturnValue", "sql", "manual"] - - ["org.hibernate", "Query", True, "iterate", "", "", ReturnValue", "sql", "manual"] + - ["org.hibernate", "Query", True, "list", "()", "", ReturnValue", "database", "manual"] + - ["org.hibernate", "Query", True, "scroll", "", "", ReturnValue", "database", "manual"] + - ["org.hibernate", "Query", True, "iterate", "", "", ReturnValue", "database", "manual"] # Package org.jooq - - ["org.jooq", "ResultQuery", True, "fetch", "()", "", "ReturnValue", "sql", "manual"] - - ["org.jooq", "ResultQuery", True, "iterator", "()", "", "ReturnValue", "sql", "manual"] + - ["org.jooq", "ResultQuery", True, "fetch", "()", "", "ReturnValue", "database", "manual"] + - ["org.jooq", "ResultQuery", True, "iterator", "()", "", "ReturnValue", "database", "manual"] # Package org.springframework.jdbc.object - - ["org.springframework.jdbc.object", "SqlQuery", True, "execute", "", "", "ReturnValue", "sql", "manual"] - - ["org.springframework.jdbc.object", "SqlQuery", True, "executeByNamedParam", "", "", "ReturnValue", "sql", "manual"] + - ["org.springframework.jdbc.object", "SqlQuery", True, "execute", "", "", "ReturnValue", "database", "manual"] + - ["org.springframework.jdbc.object", "SqlQuery", True, "executeByNamedParam", "", "", "ReturnValue", "database", "manual"] # Create a graph of parent-child relationships between threat models and their kinds @@ -46,18 +46,18 @@ extensions: - ["contentprovider", "android"] - ["request", "remote"] - ["response", "remote"] - - ["sql", "local"] - # - ["remote", "standard"] + - ["database", "local"] + # - ["remote", "default"] - # Not sure if these should really go in the standard threat model, but we need them for tests to pass - # - ["android-external-storage-dir", "standard"] - # - ["contentprovider", "standard"] - # - ["android-widget", "standard"] - # - ["android-web-resource-response", "standard"] - # - ["uri-path", "standard"] + # Not sure if these should really go in the default threat model, but we need them for tests to pass + # - ["android-external-storage-dir", "default"] + # - ["contentprovider", "default"] + # - ["android-widget", "default"] + # - ["android-web-resource-response", "default"] + # - ["uri-path", "default"] - # Provide a default, empty supportedThreatModel + # Provide a default, empty supportedThreatModels - addsTo: pack: codeql/java-all - extensible: supportedThreatModel + extensible: supportedThreatModels data: [] diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll index 9ee18fd7591..3a2bd1edf5b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlowConfiguration.qll @@ -8,7 +8,7 @@ private import ExternalFlowExtensions /** * Holds if the specified kind of source model is supported for the current query. */ -extensible private predicate supportedThreatModel(string kind); +extensible private predicate supportedThreatModels(string kind); /** * Holds if the specified kind of source model is containted within the specified group. @@ -39,21 +39,21 @@ private string childThreatModel(string group) { */ bindingset[kind] predicate supportedSourceModel(string kind) { - // expansive threat model includes all kinds - supportedThreatModel("expansive") + // all threat model includes all kinds + supportedThreatModels("all") or // check if this kind is supported directly - supportedThreatModel(kind) + supportedThreatModels(kind) or // check if one of this kind's ancestors are supported - exists(string group | group = parentThreatModel(kind) | supportedThreatModel(group)) + exists(string group | group = parentThreatModel(kind) | supportedThreatModels(group)) or - // if supportedThreatModel is empty, check if kind is a subtype of "standard" - not supportedThreatModel(_) and - ("standard" = parentThreatModel(kind) or "standard" = kind) + // if supportedThreatModels is empty, check if kind is a subtype of "default" + not supportedThreatModels(_) and + ("default" = parentThreatModel(kind) or "default" = kind) } -private string getGlobalGroups() { result = ["standard", "expansive"] } +private string getGlobalGroups() { result = ["default", "all"] } /** * A class that represents a kind of any model or group. @@ -66,7 +66,7 @@ private class Kind extends string { experimentalSourceModel(_, _, _, _, _, _, _, this, _, _) or experimentalSinkModel(_, _, _, _, _, _, _, this, _, _) or experimentalSummaryModel(_, _, _, _, _, _, _, _, this, _, _) or - supportedThreatModel(this) or + supportedThreatModels(this) or threatModelGrouping(this, _) or threatModelGrouping(_, this) or this = getGlobalGroups() @@ -81,12 +81,12 @@ string relatedSourceModel(Kind kind) { result = kind or // Use all kinds regardless of the query. - supportedThreatModel("expansive") and + supportedThreatModels("all") and result = kind and sourceModel(_, _, _, _, _, _, _, result, _) or - // Use the kinds that are provided by the threat model in case it is not standard or expansive. - exists(string model | not model = getGlobalGroups() and supportedThreatModel(model) | + // Use the kinds that are provided by the threat model in case it is not default or all. + exists(string model | not model = getGlobalGroups() and supportedThreatModels(model) | result = model or exists(string child | child = childThreatModel(model) | result = child) diff --git a/java/ql/test/experimental/configured-flow/Test.java b/java/ql/test/experimental/configured-flow/Test.java index 1c86a05ab62..a02f18f9e8f 100644 --- a/java/ql/test/experimental/configured-flow/Test.java +++ b/java/ql/test/experimental/configured-flow/Test.java @@ -20,8 +20,8 @@ class Test { handle.executeUpdate("INSERT INTO foo VALUES ('" + byteToString(data) + "')"); } - public void M2(Statement handle) throws Exception { - // Only a source if "sql" is a selected threat model + public void M2(Statement handle) throws Exception { + // Only a source if "database" is a selected threat model ResultSet rs = handle.executeQuery("SELECT * FROM foo"); // Sink diff --git a/java/ql/test/experimental/configured-flow/sql-tainted2.ext.yml b/java/ql/test/experimental/configured-flow/sql-tainted2.ext.yml index d5e7640e607..8485892acbf 100644 --- a/java/ql/test/experimental/configured-flow/sql-tainted2.ext.yml +++ b/java/ql/test/experimental/configured-flow/sql-tainted2.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["sql"] \ No newline at end of file + - ["database"] diff --git a/java/ql/test/experimental/configured-flow/test-all.ext.yml b/java/ql/test/experimental/configured-flow/test-all.ext.yml index a2131380ba7..b884fe46fbb 100644 --- a/java/ql/test/experimental/configured-flow/test-all.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-all.ext.yml @@ -2,7 +2,7 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - ["remote"] - - ["sql"] + - ["database"] diff --git a/java/ql/test/experimental/configured-flow/test-hardcoded-all.ext.yml b/java/ql/test/experimental/configured-flow/test-hardcoded-all.ext.yml index a2131380ba7..b884fe46fbb 100644 --- a/java/ql/test/experimental/configured-flow/test-hardcoded-all.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-hardcoded-all.ext.yml @@ -2,7 +2,7 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - ["remote"] - - ["sql"] + - ["database"] diff --git a/java/ql/test/experimental/configured-flow/test-hardcoded-remote.ext.yml b/java/ql/test/experimental/configured-flow/test-hardcoded-remote.ext.yml index b6f3e001002..5959375cc0c 100644 --- a/java/ql/test/experimental/configured-flow/test-hardcoded-remote.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-hardcoded-remote.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - ["remote"] diff --git a/java/ql/test/experimental/configured-flow/test-hardcoded-sql.ext.yml b/java/ql/test/experimental/configured-flow/test-hardcoded-sql.ext.yml index e1b273a0fcf..8485892acbf 100644 --- a/java/ql/test/experimental/configured-flow/test-hardcoded-sql.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-hardcoded-sql.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["sql"] + - ["database"] diff --git a/java/ql/test/experimental/configured-flow/test-hardcoded-standard.ext.yml b/java/ql/test/experimental/configured-flow/test-hardcoded-standard.ext.yml index f3630e8848c..3d9c50edf7e 100644 --- a/java/ql/test/experimental/configured-flow/test-hardcoded-standard.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-hardcoded-standard.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["standard"] + - ["default"] diff --git a/java/ql/test/experimental/configured-flow/test-relatedsourcemodels1.ext.yml b/java/ql/test/experimental/configured-flow/test-relatedsourcemodels1.ext.yml index 2d151b4cc88..80d79844936 100644 --- a/java/ql/test/experimental/configured-flow/test-relatedsourcemodels1.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-relatedsourcemodels1.ext.yml @@ -1,6 +1,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["standard"] \ No newline at end of file + - ["default"] diff --git a/java/ql/test/experimental/configured-flow/test-relatedsourcemodels2.ext.yml b/java/ql/test/experimental/configured-flow/test-relatedsourcemodels2.ext.yml index ae4e1b819b2..2f7f3b3a4e9 100644 --- a/java/ql/test/experimental/configured-flow/test-relatedsourcemodels2.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-relatedsourcemodels2.ext.yml @@ -1,9 +1,9 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["standard"] + - ["default"] - ["group1"] - addsTo: diff --git a/java/ql/test/experimental/configured-flow/test-remote.ext.yml b/java/ql/test/experimental/configured-flow/test-remote.ext.yml index b6f3e001002..5959375cc0c 100644 --- a/java/ql/test/experimental/configured-flow/test-remote.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-remote.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - ["remote"] diff --git a/java/ql/test/experimental/configured-flow/test-sql.ext.yml b/java/ql/test/experimental/configured-flow/test-sql.ext.yml index e1b273a0fcf..8485892acbf 100644 --- a/java/ql/test/experimental/configured-flow/test-sql.ext.yml +++ b/java/ql/test/experimental/configured-flow/test-sql.ext.yml @@ -2,6 +2,6 @@ extensions: - addsTo: pack: codeql/java-tests - extensible: supportedThreatModel + extensible: supportedThreatModels data: - - ["sql"] + - ["database"] diff --git a/java/ql/test/library-tests/dataflow/external-models/srcs.ext.yml b/java/ql/test/library-tests/dataflow/external-models/srcs.ext.yml index b9b9fb2ec14..3ee1ad7b2c2 100644 --- a/java/ql/test/library-tests/dataflow/external-models/srcs.ext.yml +++ b/java/ql/test/library-tests/dataflow/external-models/srcs.ext.yml @@ -22,7 +22,7 @@ extensions: # - addsTo: # pack: codeql/java-all - # extensible: supportedThreatModel + # extensible: supportedThreatModels # data: # - ["standard"] # - ["qltest"]