Swift: Remove deprecated classes from queries.

This commit is contained in:
Geoffrey White
2023-04-19 14:26:03 +01:00
parent fb1a871777
commit 10c222e7e2
11 changed files with 0 additions and 249 deletions

View File

@@ -9,28 +9,6 @@ private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.CleartextLoggingExtensions
private import codeql.swift.security.SensitiveExprs
/**
* A taint-tracking configuration for cleartext logging of sensitive data vulnerabilities.
*/
deprecated class CleartextLoggingConfiguration extends TaintTracking::Configuration {
CleartextLoggingConfiguration() { this = "CleartextLoggingConfiguration" }
override predicate isSource(DataFlow::Node source) { source.asExpr() instanceof SensitiveExpr }
override predicate isSink(DataFlow::Node sink) { sink instanceof CleartextLoggingSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof CleartextLoggingSanitizer
}
// Disregard paths that contain other paths. This helps with performance.
override predicate isSanitizerIn(DataFlow::Node node) { this.isSource(node) }
override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) {
any(CleartextLoggingAdditionalTaintStep s).step(n1, n2)
}
}
/**
* A taint-tracking configuration for cleartext logging of sensitive data vulnerabilities.
*/

View File

@@ -9,46 +9,6 @@ import codeql.swift.dataflow.DataFlow
import codeql.swift.dataflow.TaintTracking
import codeql.swift.security.CleartextStorageDatabaseExtensions
/**
* A taint configuration from sensitive information to expressions that are
* transmitted over a network.
*/
deprecated class CleartextStorageConfig extends TaintTracking::Configuration {
CleartextStorageConfig() { this = "CleartextStorageConfig" }
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
override predicate isSink(DataFlow::Node node) { node instanceof CleartextStorageDatabaseSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof CleartextStorageDatabaseSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(CleartextStorageDatabaseAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
override predicate isSanitizerIn(DataFlow::Node node) {
// make sources barriers so that we only report the closest instance
isSource(node)
}
override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) {
// flow out from fields of an `NSManagedObject` or `RealmSwiftObject` at the sink,
// for example in `realmObj.data = sensitive`.
isSink(node) and
exists(NominalTypeDecl d, Decl cx |
d.getType().getABaseType*().getUnderlyingType().getName() =
["NSManagedObject", "RealmSwiftObject"] and
cx.asNominalTypeDecl() = d and
c.getAReadContent().(DataFlow::Content::FieldContent).getField() = cx.getAMember()
)
or
// any default implicit reads
super.allowImplicitRead(node, c)
}
}
/**
* A taint configuration from sensitive information to expressions that are
* transmitted over a network.

View File

@@ -9,31 +9,6 @@ import codeql.swift.dataflow.DataFlow
import codeql.swift.dataflow.TaintTracking
import codeql.swift.security.CleartextStoragePreferencesExtensions
/**
* A taint configuration from sensitive information to expressions that are
* stored as preferences.
*/
deprecated class CleartextStorageConfig extends TaintTracking::Configuration {
CleartextStorageConfig() { this = "CleartextStorageConfig" }
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
override predicate isSink(DataFlow::Node node) { node instanceof CleartextStoragePreferencesSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof CleartextStoragePreferencesSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(CleartextStoragePreferencesAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
override predicate isSanitizerIn(DataFlow::Node node) {
// make sources barriers so that we only report the closest instance
this.isSource(node)
}
}
/**
* A taint configuration from sensitive information to expressions that are
* stored as preferences.

View File

@@ -9,31 +9,6 @@ import codeql.swift.dataflow.DataFlow
import codeql.swift.dataflow.TaintTracking
import codeql.swift.security.CleartextTransmissionExtensions
/**
* A taint configuration from sensitive information to expressions that are
* transmitted over a network.
*/
deprecated class CleartextTransmissionConfig extends TaintTracking::Configuration {
CleartextTransmissionConfig() { this = "CleartextTransmissionConfig" }
override predicate isSource(DataFlow::Node node) { node.asExpr() instanceof SensitiveExpr }
override predicate isSink(DataFlow::Node node) { node instanceof CleartextTransmissionSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof CleartextTransmissionSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(CleartextTransmissionAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
override predicate isSanitizerIn(DataFlow::Node node) {
// make sources barriers so that we only report the closest instance
isSource(node)
}
}
/**
* A taint configuration from sensitive information to expressions that are
* transmitted over a network.

View File

@@ -10,25 +10,6 @@ private import codeql.swift.dataflow.FlowSources
private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.PathInjectionExtensions
/**
* A taint-tracking configuration for path injection vulnerabilities.
*/
deprecated class PathInjectionConfiguration extends TaintTracking::Configuration {
PathInjectionConfiguration() { this = "PathInjectionConfiguration" }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSink(DataFlow::Node sink) { sink instanceof PathInjectionSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof PathInjectionSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) {
any(PathInjectionAdditionalTaintStep s).step(node1, node2)
}
}
/**
* A taint-tracking configuration for path injection vulnerabilities.
*/

View File

@@ -9,25 +9,6 @@ private import codeql.swift.dataflow.FlowSources
private import codeql.swift.dataflow.TaintTracking
private import codeql.swift.security.PredicateInjectionExtensions
/**
* A taint-tracking configuration for predicate injection vulnerabilities.
*/
deprecated class PredicateInjectionConf extends TaintTracking::Configuration {
PredicateInjectionConf() { this = "PredicateInjectionConf" }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSink(DataFlow::Node sink) { sink instanceof PredicateInjectionSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof PredicateInjectionSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) {
any(PredicateInjectionAdditionalTaintStep s).step(n1, n2)
}
}
/**
* A taint-tracking configuration for predicate injection vulnerabilities.
*/

View File

@@ -10,25 +10,6 @@ import codeql.swift.dataflow.TaintTracking
import codeql.swift.dataflow.FlowSources
import codeql.swift.security.SqlInjectionExtensions
/**
* A taint configuration for tainted data that reaches a SQL sink.
*/
deprecated class SqlInjectionConfig extends TaintTracking::Configuration {
SqlInjectionConfig() { this = "SqlInjectionConfig" }
override predicate isSource(DataFlow::Node node) { node instanceof FlowSource }
override predicate isSink(DataFlow::Node node) { node instanceof SqlInjectionSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof SqlInjectionSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(SqlInjectionAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
}
/**
* A taint configuration for tainted data that reaches a SQL sink.
*/

View File

@@ -10,25 +10,6 @@ import codeql.swift.dataflow.TaintTracking
import codeql.swift.dataflow.FlowSources
import codeql.swift.security.UncontrolledFormatStringExtensions
/**
* A taint configuration for tainted data that reaches a format string.
*/
deprecated class TaintedFormatConfiguration extends TaintTracking::Configuration {
TaintedFormatConfiguration() { this = "TaintedFormatConfiguration" }
override predicate isSource(DataFlow::Node node) { node instanceof FlowSource }
override predicate isSink(DataFlow::Node node) { node instanceof UncontrolledFormatStringSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof UncontrolledFormatStringSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(UncontrolledFormatStringAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
}
/**
* A taint configuration for tainted data that reaches a format string.
*/

View File

@@ -9,25 +9,6 @@ import codeql.swift.dataflow.TaintTracking
import codeql.swift.dataflow.FlowSources
import codeql.swift.security.UnsafeJsEvalExtensions
/**
* A taint configuration from taint sources to sinks for this query.
*/
deprecated class UnsafeJsEvalConfig extends TaintTracking::Configuration {
UnsafeJsEvalConfig() { this = "UnsafeJsEvalConfig" }
override predicate isSource(DataFlow::Node node) { node instanceof FlowSource }
override predicate isSink(DataFlow::Node node) { node instanceof UnsafeJsEvalSink }
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof UnsafeJsEvalSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(UnsafeJsEvalAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
}
/**
* A taint configuration from taint sources to sinks for this query.
*/

View File

@@ -9,31 +9,6 @@ import codeql.swift.dataflow.TaintTracking
import codeql.swift.dataflow.FlowSources
import codeql.swift.security.UnsafeWebViewFetchExtensions
/**
* A taint configuration from taint sources to sinks (and `baseURL` arguments)
* for this query.
*/
deprecated class UnsafeWebViewFetchConfig extends TaintTracking::Configuration {
UnsafeWebViewFetchConfig() { this = "UnsafeWebViewFetchConfig" }
override predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource }
override predicate isSink(DataFlow::Node node) {
exists(UnsafeWebViewFetchSink sink |
node = sink or
node.asExpr() = sink.getBaseUrl()
)
}
override predicate isSanitizer(DataFlow::Node sanitizer) {
sanitizer instanceof UnsafeWebViewFetchSanitizer
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
any(UnsafeWebViewFetchAdditionalTaintStep s).step(nodeFrom, nodeTo)
}
}
/**
* A taint configuration from taint sources to sinks (and `baseURL` arguments)
* for this query.

View File

@@ -9,23 +9,6 @@ import codeql.swift.dataflow.FlowSources
import codeql.swift.dataflow.TaintTracking
import codeql.swift.security.XXEExtensions
/**
* A taint-tracking configuration for XML external entities (XXE) vulnerabilities.
*/
deprecated class XxeConfiguration extends TaintTracking::Configuration {
XxeConfiguration() { this = "XxeConfiguration" }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSink(DataFlow::Node sink) { sink instanceof XxeSink }
override predicate isSanitizer(DataFlow::Node sanitizer) { sanitizer instanceof XxeSanitizer }
override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) {
any(XxeAdditionalTaintStep s).step(n1, n2)
}
}
/**
* A taint-tracking configuration for XML external entities (XXE) vulnerabilities.
*/