Convert trust boundary models to MaD

This commit is contained in:
Ed Minnix
2023-06-08 10:54:07 -04:00
parent 76438f13b6
commit a8b7e70d01
5 changed files with 31 additions and 55 deletions

View File

@@ -7,11 +7,21 @@ private import semmle.code.java.dataflow.FlowSources
private import semmle.code.java.frameworks.Servlets
class TrustBoundaryViolationSource extends DataFlow::Node {
TrustBoundaryViolationSource() {
this instanceof RemoteFlowSource and this.asExpr().getType() instanceof HttpServletRequest
}
TrustBoundaryViolationSource() { this.asExpr().getType() instanceof HttpServletRequest }
}
class TrustBoundaryViolationSink extends DataFlow::Node {
TrustBoundaryViolationSink() { sinkNode(this, "trust-boundary") }
}
module TrustBoundaryConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof TrustBoundaryViolationSource }
predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) {
n2.asExpr().(MethodAccess).getQualifier() = n1.asExpr()
}
predicate isSink(DataFlow::Node sink) { sink instanceof TrustBoundaryViolationSink }
}
module TrustBoundaryFlow = TaintTracking::Global<TrustBoundaryConfig>;