From e83bee2f0273915759da8ec1b95416e97917363f Mon Sep 17 00:00:00 2001 From: Shati Patel Date: Wed, 1 Apr 2020 16:42:49 +0100 Subject: [PATCH] Copy Go docs into this repo --- docs/language/learn-ql/go/ast.dot | 22 + docs/language/learn-ql/go/ast.png | Bin 0 -> 46453 bytes docs/language/learn-ql/go/cfg.dot | 8 + docs/language/learn-ql/go/cfg.png | Bin 0 -> 45148 bytes docs/language/learn-ql/go/cfg2.dot | 14 + docs/language/learn-ql/go/cfg2.png | Bin 0 -> 65430 bytes docs/language/learn-ql/go/dfg.dot | 11 + docs/language/learn-ql/go/dfg.png | Bin 0 -> 34931 bytes .../learn-ql/go/introduce-libraries-go.rst | 621 ++++++++++++++++++ docs/language/learn-ql/go/ql-for-go.rst | 9 +- docs/language/learn-ql/go/ssa.dot | 15 + docs/language/learn-ql/go/ssa.png | Bin 0 -> 68479 bytes 12 files changed, 699 insertions(+), 1 deletion(-) create mode 100644 docs/language/learn-ql/go/ast.dot create mode 100644 docs/language/learn-ql/go/ast.png create mode 100644 docs/language/learn-ql/go/cfg.dot create mode 100644 docs/language/learn-ql/go/cfg.png create mode 100644 docs/language/learn-ql/go/cfg2.dot create mode 100644 docs/language/learn-ql/go/cfg2.png create mode 100644 docs/language/learn-ql/go/dfg.dot create mode 100644 docs/language/learn-ql/go/dfg.png create mode 100644 docs/language/learn-ql/go/introduce-libraries-go.rst create mode 100644 docs/language/learn-ql/go/ssa.dot create mode 100644 docs/language/learn-ql/go/ssa.png diff --git a/docs/language/learn-ql/go/ast.dot b/docs/language/learn-ql/go/ast.dot new file mode 100644 index 000000000000..fbf32b744ed4 --- /dev/null +++ b/docs/language/learn-ql/go/ast.dot @@ -0,0 +1,22 @@ +digraph ast { + graph [dpi=300]; + "x" [shape=rect]; + "y" [shape=rect]; + "x + y" [shape=rect]; + "(x + y)" [shape=rect]; + "z" [shape=rect]; + "(x + y) * z" [shape=rect]; + invis1 [style=invis]; + invis2 [style=invis]; + invis3 [style=invis]; + + "(x + y) * z" -> "(x + y)" [label=" 0"]; + "(x + y) * z" -> "z" [label=" 1"]; + "(x + y)" -> "x + y" [label=" 0"]; + "x + y" -> "x" [label=" 0"]; + "x + y" -> "y" [label=" 1"]; + + "z" -> invis1 [style=invis]; + invis1 -> invis2 [style=invis]; + invis1 -> invis3 [style=invis]; +} diff --git a/docs/language/learn-ql/go/ast.png b/docs/language/learn-ql/go/ast.png new file mode 100644 index 0000000000000000000000000000000000000000..61a9f29b80afb4b58546da8bfecd05c30618acb1 GIT binary patch literal 46453 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 YmVF=oWZ&SHa;q_;CYVKiG5g#91ArCH3jhEB literal 0 HcmV?d00001 diff --git a/docs/language/learn-ql/go/cfg.dot b/docs/language/learn-ql/go/cfg.dot new file mode 100644 index 000000000000..47db3df4c57a --- /dev/null +++ b/docs/language/learn-ql/go/cfg.dot @@ -0,0 +1,8 @@ +digraph cfg { + graph [dpi=300]; + rankdir=LR; + "x := 0" -> "p != nil"; + "p != nil" -> "x = p.f"; + "p != nil" -> "return x"; + "x = p.f" -> "return x"; +} diff --git a/docs/language/learn-ql/go/cfg.png b/docs/language/learn-ql/go/cfg.png new file mode 100644 index 0000000000000000000000000000000000000000..1290dadb870ce59bc45f045da78a8efb4e515ee8 GIT binary patch literal 45148 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%0DlcdV3EZG^n<)ob-{r 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 "p != nil"; + "p != nil" -> "p != nil is true"; + "p != nil is true" -> "x = p.f"; + "p != nil" -> "p != nil is false"; + "p != nil is false" -> "return x"; + "x = p.f" -> "return x"; +} diff --git a/docs/language/learn-ql/go/cfg2.png b/docs/language/learn-ql/go/cfg2.png new file mode 100644 index 0000000000000000000000000000000000000000..617fe4fe4dc32fa26d5c3cb0423228070621c128 GIT binary patch literal 65430 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Ν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 W_WqEgx=Z*BvkXl2&rO>j_&)$=qd1WO literal 0 HcmV?d00001 diff --git a/docs/language/learn-ql/go/dfg.dot b/docs/language/learn-ql/go/dfg.dot new file mode 100644 index 000000000000..82253c9b1330 --- /dev/null +++ b/docs/language/learn-ql/go/dfg.dot @@ -0,0 +1,11 @@ +digraph dfg { + graph [dpi=300]; + rankdir=LR; + + "x" [shape=diamond]; + "return x" [label=x>]; + + "0" -> "x"; + "p.f" -> "x"; + "x" -> "return x"; +} diff --git a/docs/language/learn-ql/go/dfg.png b/docs/language/learn-ql/go/dfg.png new file mode 100644 index 0000000000000000000000000000000000000000..6727af7b4ac3bbd021e58b3153e4bfc7da6c434e GIT binary patch literal 34931 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 (AST), while at the `data-flow level` it is +represented as a `data-flow graph `__ (DFG). In +between, there is also an intermediate representation of the program as a control-flow graph (CFG), +though this representation is rarely useful on its own and mostly used to construct the higher-level +DFG representation. + +The AST representation captures the syntactic structure of the program. You can use it to reason +about syntactic properties such as the nesting of statements within each other, but also about the +types of expressions and which variable a name refers to. + +The DFG, on the other hand, provides an approximation of how data flows through variables and +operations at runtime. It is used, for example, by the security queries to model the way +user-controlled input can propagate through the program. Additionally, the DFG contains information +about which function may be invoked by a given call (taking virtual dispatch through interfaces into +account), as well as control-flow information about the order in which different operations may be +executed at runtime. + +As a rule of thumb, you normally want to use the AST only for superficial syntactic queries. Any +analysis involving deeper semantic properties of the program should be done on the DFG. + +The rest of this tutorial briefly summarizes the most important classes and predicates provided by +this library, including references to the `detailed API documentation +`__ where applicable. We start by giving an overview of the AST +representation, followed by an explanation of names and entities, which are used to represent +name-binding information, and of types and type information. Then we move on to control flow and the +data-flow graph, and finally the call graph and a few advanced topics. + +Abstract syntax +--------------- + +The AST presents the program as a hierarchical structure of nodes, each of which corresponds to a +syntactic element of the program source text. For example, there is an AST node for each expression +and each statement in the program. These AST nodes are arranged into a parent-child relationship +reflecting the nesting of syntactic elements and the order in which inner elements appear in +enclosing ones. + +For example, this is the AST for the expression ``(x + y) * z``: + +|ast| + +It is composed of six AST nodes, representing ``x``, ``y``, ``x + y``, ``(x + y)``, ``z`` and the +entire expression ``(x + y) * z``, respectively. The AST nodes representing ``x`` and ``y`` are +children of the AST node representing ``x + y``, ``x`` being the zeroth child and ``y`` being the +first child, reflecting their order in the program text. Similarly, ``x + y`` is the only child of +``(x + y)``, which is the zeroth child of ``(x + y) * z``, whose first child is ``z``. + +All AST nodes belong to class `AstNode +`__, which defines generic +tree traversal predicates: + +- ``getChild(i)``: returns the ``i``\ th child of this AST node. +- ``getAChild()``: returns any child of this AST node. +- ``getParent()``: returns the parent node of this AST node, if any. + +These predicates should only be used to perform generic AST traversal. To access children of +specific AST node types, the specialized predicates introduced below should be used instead. In +particular, queries should not rely on the numeric indices of child nodes relative to their parent +nodes: these are considered an implementation detail that may change between versions of the +library. + +The predicate ``toString()`` in class ``AstNode`` nodes gives a short description of the AST node, +usually just indicating what kind of node it is. The ``toString()`` predicate does `not` provide +access to the source text corresponding to an AST node. The source text is not stored in the +dataset, and hence is not directly accessible to CodeQL queries. + +The predicate ``getLocation()`` in class ``AstNode`` returns a `Location +`__ entity +describing the source location of the program element represented by the AST node. You can use its +member predicates ``getFile()``, ``getStartLine()``, ``getStartColumn``, ``getEndLine()``, and +``getEndColumn()`` to obtain information about its file, start line and column, and end line and +column. + +The most important subclasses of `AstNode +`__ are `Stmt +`__ and `Expr +`__, which represent +statements and expressions, respectively. This section briefly discusses some of their more +important subclasses and predicates. For a full reference of all the subclasses of `Stmt +`__ and `Expr +`__ and their API, see +`Stmt.qll `__ and `Expr.qll +`__. + +Statements +~~~~~~~~~~ + +- ``ExprStmt``: an expression statement; use ``getExpr()`` to access the expression itself +- ``Assignment``: an assignment statement; use ``getLhs(i)`` to access the ``i``\ th left-hand side + and ``getRhs(i)`` to access the ``i``\ th right-hand side; if there is only a single left-hand side + you can use ``getLhs()`` instead, and similar for the right-hand side + + - ``SimpleAssignStmt``: an assignment statement that does not involve a compound operator + + - ``AssignStmt``: a plain assignment statement of the form ``lhs = rhs`` + - ``DefineStmt``: a short-hand variable declaration of the form ``lhs := rhs`` + + - ``CompoundAssignStmt``: an assignment statement with a compound operator, such as ``lhs += rhs`` + +- ``IncStmt``, ``DecStmt``: an increment statement or a decrement statement, respectively; use + ``getOperand()`` to access the expression being incremented or decremented +- ``BlockStmt``: a block of statements between curly braces; use ``getStmt(i)`` to access the + ``i``\ th statement in a block +- ``IfStmt``: an ``if`` statement; use ``getInit()``, ``getCond()``, ``getThen()``, and + ``getElse()`` to access the (optional) init statement, the condition being checked, the "then" + branch to evaluate if the condition is true, and the (optional) "else" branch to evaluate + otherwise, respectively +- ``LoopStmt``: a loop; use ``getBody()`` to access its body + + - ``ForStmt``: a ``for`` statement; use ``getInit()``, ``getCond()``, and ``getPost()`` to access + the init statement, loop condition, and post statement, respectively, all of which are optional + + - ``RangeStmt``: a ``range`` statement; use ``getDomain()`` to access the iteration domain, and + ``getKey()`` and ``getValue()`` to access the expressions to which successive keys and values + are assigned, if any + +- ``GoStmt``: a ``go`` statement; use ``getCall()`` to access the call expression that is evaluated + in the new goroutine +- ``DeferStmt``: a ``defer`` statement; use ``getCall()`` to access the call expression being + deferred +- ``SendStmt``: a send statement; use ``getChannel()`` and ``getValue()`` to access the channel and + the value being sent over the channel, respectively +- ``ReturnStmt``: a ``return`` statement; use ``getExpr(i)`` to access the ``i``\ th returned + expression; if there is only a single returned expression you can use ``getExpr()`` instead +- ``BranchStmt``: a statement that interrupts structured control flow; use ``getLabel()`` to get the + optional target label + + - ``BreakStmt``: a ``break`` statement + - ``ContinueStmt``: a ``continue`` statement + - ``FallthroughStmt``: a ``fallthrough`` statement at the end of a switch case + - ``GotoStmt``: a ``goto`` statement + +- ``DeclStmt``: a declaration statement, use ``getDecl()`` to access the declaration in this + statement; note that one rarely needs to deal with declaration statements directly, since + reasoning about the entities they declare is usually easier +- ``SwitchStmt``: a ``switch`` statement; use ``getInit()`` to access the (optional) init statement, + and ``getCase(i)`` to access the ``i``\ th ``case`` or ``default`` clause + + - ``ExpressionSwitchStmt``: a ``switch`` statement examining the value of an expression + - ``TypeSwitchStmt``: a ``switch`` statement examining the type of an expression + +- ``CaseClause``: a ``case`` or ``default`` clause in a ``switch`` statement; use ``getExpr(i)`` to + access the ``i``\ th expression, and ``getStmt(i)`` to access the ``i``\ th statement in the body + of this clause +- ``SelectStmt``: a ``select`` statement; use ``getCommClause(i)`` to access the ``i``\ th ``case`` + or ``default`` clause +- ``CommClause``: a ``case`` or ``default`` clause in a ``select`` statement; use ``getComm()`` to + access the send/receive statement of this clause (not defined for ``default`` clauses), and + ``getStmt(i)`` to access the ``i``\ th statement in the body of this clause +- ``RecvStmt``: a receive statement in a ``case`` clause of a ``select`` statement; use + ``getLhs(i)`` to access the ``i``\ th left-hand side of this statement, and ``getExpr()`` to + access the underlying receive expression + +Expressions +~~~~~~~~~~~ + +Class ``Expression`` has a predicate ``isConst()`` that holds if the expression is a compile-time +constant. For such constant expressions, ``getNumericValue()`` and ``getStringValue()`` can be used +to determine their numeric value and string value, respectively. Note that these predicates are not +defined for expressions whose value cannot be determined at compile time. Also note that the result +type of ``getNumericValue()`` is the QL type ``float``. If an expression has a numeric value that +cannot be represented as a QL ``float``, this predicate is also not defined. In such cases, you can +use ``getExactValue()`` to obtain a string representation of the value of the constant. + +- ``Ident``: an identifier; use ``getName()`` to access its name +- ``SelectorExpr``: a selector of the form ``base.sel``; use ``getBase()`` to access the part before + the dot, and ``getSelector()`` for the identifier after the dot +- ``BasicLit``: a literal of a basic type; subclasses ``IntLit``, ``FloatLit``, ``ImagLit``, + ``RuneLit``, and ``StringLit`` represent various specific kinds of literals +- ``FuncLit``: a function literal; use ``getBody()`` to access the body of the function +- ``CompositeLit``: a composite literal; use ``getKey(i)`` and ``getValue(i)`` to access the + ``i``\ th key and the ``i``\ th value, respectively +- ``ParenExpr``: a parenthesized expression; use ``getExpr()`` to access the expression between the + parentheses +- ``IndexExpr``: an index expression ``base[idx]``; use ``getBase()`` and ``getIndex()`` to access + ``base`` and ``idx``, respectively +- ``SliceExpr``: a slice expression ``base[lo:hi:max]``; use ``getBase()``, ``getLow()``, + ``getHigh()``, and ``getMax()`` to access ``base``, ``lo``, ``hi``, and ``max``, respectively; + note that ``lo``, ``hi``, and ``max`` can be omitted, in which case the corresponding predicates are not defined +- ``ConversionExpr``: a conversion expression ``T(e)``; use ``getTypeExpr()`` and ``getOperand()`` + to access ``T`` and ``e``, respectively +- ``TypeAssertExpr``: a type assertion ``e.(T)``; use ``getExpr()`` and ``getTypeExpr()`` to access + ``e`` and ``T``, respectively +- ``CallExpr``: a call expression ``callee(arg0, ..., argn)``; use ``getCalleeExpr()`` to access + ``callee``, and ``getArg(i)`` to access the ``i``\ th argument +- ``StarExpr``: a star expression, which may be either a pointer-type expression or a + pointer-dereference expression, depending on context; use ``getBase()`` to access the operand of + the star +- ``TypeExpr``: an expression that denotes a type +- ``OperatorExpr``: an expression with a unary or binary operator; use ``getOperator()`` to access + the operator + + - ``UnaryExpr``: an expression with a unary operator; use ``getAnOperand()`` to access the operand + of the operator + - ``BinaryExpr``: an expression with a binary operator; use ``getLeftOperand()`` and + ``getRightOperand()`` to access the left and the right operand, respectively + + - ``ComparisonExpr``: a binary expression that performs a comparison, including both equality + tests and relational comparisons + + - ``EqualityTestExpr``: an equality test, that is, either ``==`` or ``!=``; the predicate + ``getPolarity()`` has result ``true`` for the former and ``false`` for the latter + - ``RelationalComparisonExpr``: a relational comparison; use ``getLesserOperand()`` and + ``getGreaterOperand()`` to access the lesser and greater operand of the comparison, + respectively; ``isStrict()`` holds if this is a strict comparison using ``<`` or ``>``, + as opposed to ``<=`` or ``>=`` + +Names +~~~~~ + +While ``Ident`` and ``SelectorExpr`` are very useful classes, they are often too general: ``Ident`` +covers all identifiers in a program, including both identifiers appearing in a declaration as well +as references, and does not distinguish between names referring to packages, types, variables, +constants, functions, or statement labels. Similarly, a ``SelectorExpr`` might refer to a package, a +type, a function, or a method. + +Class ``Name`` and its subclasses provide a more fine-grained mapping of this space, organized along +the two axes of structure and namespace. In terms of structure, a name can be a ``SimpleName``, +meaning that it is a simple identifier (and hence an ``Ident``), or it can be a ``QualifiedName``, +meaning that it is a qualified identifier (and hence a ``SelectorExpr``). In terms of namespacing, a +``Name`` can be a ``PackageName``, ``TypeName``, ``ValueName``, or ``LabelName``. A ``ValueName``, +in turn, can be either a ``ConstantName``, a ``VariableName``, or a ``FunctionName``, depending on +what sort of entity the name refers to. + +A related abstraction is provided by class ``ReferenceExpr``: a reference expression is an +expression that refers to a variable, a constant, a function, a field, or an element of an array or +a slice. Use predicates ``isLvalue()`` and ``isRvalue()`` to determine whether a reference +expression appears in a syntactic context where it is assigned to or read from, respectively. + +Finally, ``ValueExpr`` generalizes ``ReferenceExpr`` to include all other kinds of expressions that +can be evaluated to a value (as opposed to expressions that refer to a package, a type, or a +statement label). + +Functions +~~~~~~~~~ + +At the syntactic level, functions appear in two forms: in function declarations (represented by +class ``FuncDecl``) and as function literals (represented by class ``FuncLit``). Since it is often +convenient to reason about functions of either kind, these two classes share a common superclass +``FuncDef``, which defines a few useful member predicates: + + - ``getBody()`` provides access to the function body + - ``getName()`` gets the function name; it is undefined for function literals, which do not have a + name + - ``getParameter(i)`` gets the ``i``\ th parameter of the function + - ``getResultVar(i)`` gets the ``i``\ th result variable of the function; if there is only + one result, ``getResultVar()`` can be used to access it + - ``getACall()`` gets a data-flow node (see below) representing a call to this function + +Entities and name binding +------------------------- + +Not all elements of a code base can be represented as AST nodes. For example, functions defined in +the standard library or in a dependency do not have a source-level definition within the source code +of the program itself, and built-in functions like ``len`` do not have a definition at all. Hence +functions cannot simplify be identified with their definition, and similarly for variables, types, +and so on. + +To smooth over this difference and provide a unified view of functions no matter where they are +defined, the Go library introduces the concept of an `entity`. An entity is a named program element, +that is, a package, a type, a constant, a variable, a field, a function, or a label. All entities +belong to class ``Entity``, which defines a few useful predicates: + + - ``getName()`` gets the name of the entity + - ``hasQualifiedName(pkg, n)`` holds if this entity is declared in package ``pkg`` and has name + ``n``; this predicate is only defined for types, functions, and package-level variables and + constants (but not for methods or local variables) + - ``getDeclaration()`` connects an entity to its declaring identifier, if any + - ``getAReference()`` gets a ``Name`` that refers to this entity + +Conversely, class ``Name`` defines a predicate ``getTarget()`` that gets the entity to which the +name refers. + +Class ``Entity`` has several subclasses representing specific kinds of entities: ``PackageEntity`` +for packages; ``TypeEntity`` for types; ``ValueEntity`` for constants (``Constant``), variables +(``Variable``), and functions (``Function``); and ``Label`` for statement labels. + +Class ``Variable``, in turn, has a few subclasses representing specific kinds of variables: a +``LocalVariable`` is a variable declared in a local scope, that is, not at package level; +``ReceiverVariable``, ``Parameter`` and ``ResultVariable`` describe receivers, parameters and +results, respectively, and define a predicate ``getFunction()`` to access the corresponding +function. Finally, class ``Field`` represents struct fields, and provides a member predicate +``hasQualifiedName(pkg, tp, f)`` that holds if this field has name ``f`` and belongs to type ``tp`` +in package ``pkg``. (Note that due to embedding the same field can belong to multiple types.) + +Class ``Function`` has a subclass ``Method`` representing methods (including both interface methods +and methods defined on a named type). Similar to ``Field``, ``Method`` provides a member predicate +``hasQualifiedName(pkg, tp, m)`` that holds if this method has name ``m`` and belongs to type ``tp`` +in package ``pkg``. Predicate ``implements(m2)`` holds if this method implements method ``m2``, that +is, it has the same name and signature as ``m2`` and it belongs to a type that implements the +interface to which ``m2`` belongs. For any function, ``getACall()`` provides access to call sites +that may call this function, possibly through virtual dispatch. + +Finally, module ``Builtin`` provides a convenient way of looking up the entities corresponding to +built-in functions and types. For example, ``Builtin::len()`` is the entity representing the +built-in function ``len``, ``Builtin::bool()`` is the ``bool`` type, and ``Builtin::nil()`` is the +value ``nil``. + +Type information +---------------- + +Types are represented by class ``Type`` and its subclasses, such as ``BoolType`` for the built-in +type ``bool``; ``NumericType`` for the various numeric types including ``IntType``, ``Uint8Type``, +``Float64Type`` and others; ``StringType`` for the type ``string``; ``NamedType``, ``ArrayType``, +``SliceType``, ``StructType``, ``InterfaceType``, ``PointerType``, ``MapType``, ``ChanType`` for +named types, arrays, slices, structs, interfaces, pointers, maps, and channels, respectively. +Finally, ``SignatureType`` represents function types. + +Note that the type ``BoolType`` is distinct from the entity ``Builtin::bool()``: the latter views +``bool`` as a declared entity, the former as a type. You can, however, map from types to their +corresponding entity (if any) using the predicate ``getEntity()``. + +Class ``Expr`` and class ``Entity`` both define a predicate ``getType()`` to determine the type of +an expression or entity. If the type of an expression or entity cannot be determined (for example +because some dependency could not be found during extraction), it will be associated with an invalid +type of class ``InvalidType``. + +Control flow +------------ + +Most CodeQL query writers will rarely use the control-flow representation of a program directly, but +it is nevertheless useful to understand how it works. + +Unlike the abstract syntax tree, which views the program as a hierarchy of AST nodes, the +control-flow graph views it as a collection of `control-flow nodes`, each representing a single +operation performed at runtime. These nodes are connected to each other by (directed) edges +representing the order in which operations are performed. + +For example, consider the following code snippet: + +.. code-block:: go + + x := 0 + if p != nil { + x = p.f + } + return x + +In the AST, this is represented as an ``IfStmt`` and a ``ReturnStmt``, with the former having an +``NeqExpr`` and a ``BlockStmt`` as its children, and so on. This provides a very detailed picture of +the syntactic structure of the code, but it does not immediately help us reason about the order +in which the various operations such as the comparison and the assignment are performed. + +In the CFG, there are nodes corresponding to ``x := 0``, ``p != nil``, ``x = p.f``, and ``return +x``, as well as a few others. The edges between these nodes model the possible execution orders of +these statements and expressions, and look as follows (simplified somewhat for presentational +purposes): + +|cfg| + +For example, the edge from ``p != nil`` to ``x = p.f`` models the case where the comparison +evaluates to ``true`` and the "then" branch is evaluated, while the edge from ``p != nil`` to +``return x`` models the case where the comparison evaluates to ``false`` and the "then" branch is +skipped. + +Note, in particular, that a CFG node can have multiple outgoing edges (like from ``p != nil``) as +well as multiple incoming edges (like into ``return x``) to represent control-flow branching at +runtime. + +Also note that only AST nodes that perform some kind of operation on values have a corresponding CFG +node. This includes expressions (such as the comparison ``p != nil``), assignment statements (such +as ``x = p.f``) and return statements (such as ``return x``), but not statements that serve a purely +syntactic purpose (such as block statements) and statements whose semantics is already reflected by +the CFG edges (such as ``if`` statements). + +It is important to point out that the control-flow graph provided by the CodeQL libraries for Go +only models `local` control flow, that is, flow within a single function. Flow from function calls +to the function they invoke, for example, is not represented by control-flow edges. + +In CodeQL, control-flow nodes are represented by class ``ControlFlow::Node``, and the edges between +nodes are captured by the member predicates ``getASuccessor()`` and ``getAPredecessor()`` of +``ControlFlow::Node``. In addition to control-flow nodes representing runtime operations, each +function also has a synthetic entry node and an exit node, representing the start and end of an +execution of the function, respectively. These exist to ensure that the control-flow graph +corresponding to a function has a unique entry node and a unique exit node, which is required for +many standard control-flow analysis algorithms. + +Data flow +--------- + +At the data-flow level, the program is thought of as a collection of `data-flow nodes`. These nodes +are connected to each other by (directed) edges representing the way data flows through the program +at runtime. + +For example, there are data-flow nodes corresponding to expressions and other data-flow nodes +corresponding to variables (`SSA variables +`__, to be precise). Here is the +data-flow graph corresponding to the code snippet shown above, ignoring SSA conversion for +simplicity: + +|dfg| + +Note that unlike in the control-flow graph, the assignments ``x := 0`` and ``x = p.f`` are not +represented as nodes. Instead, they are expressed as edges between the node representing the +right-hand side of the assignment and the node representing the variable on the left-hand side. For +any subsequent uses of that variable, there is a data-flow edge from the variable to that use, so by +following the edges in the data-flow graph we can trace the flow of values through variables at +runtime. + +It is important to point out that the data-flow graph provided by the CodeQL libraries for Go only +models `local` flow, that is, flow within a single function. Flow from arguments in a function call +to the corresponding function parameters, for example, is not represented by data-flow edges. + +In CodeQL, data-flow nodes are represented by class ``DataFlow::Node``, and the edges between nodes +are captured by the predicate ``DataFlow::localFlowStep``. The predicate ``DataFlow::localFlow`` +generalizes this from a single flow step to zero or more flow steps. + +Most expressions have a corresponding data-flow node; exceptions include type expressions, statement +labels and other expressions that do not have a value, as well as short-circuiting operators. To map +from the AST node of an expression to the corresponding DFG node, use ``DataFlow::exprNode``. Note +that the AST node and the DFG node are different entities and cannot be used interchangeably. + +There is also a predicate ``asExpr()`` on ``DataFlow::Node`` that allows you to recover the +expression underlying a DFG node. However, this predicate should be used with caution, since many +data-flow nodes do not correspond to an expression, and so this predicate will not be defined for +them. + +Similar to ``Expr``, ``DataFlow::Node`` has a member predicate ``getType()`` to determine the type +of a node, as well as predicates ``getNumericValue()``, ``getStringValue()``, and +``getExactValue()`` to retrieve the value of a node if it is constant. + +Important subclasses of ``DataFlow::Node`` include: + + - ``DataFlow::CallNode``: a function call or method call; use ``getArgument(i)`` and + ``getResult(i)`` to obtain the data-flow nodes corresponding to the ``i``\ th argument and the + ``i``\ th result of this call, respectively; if there is only a single result, ``getResult()`` + will return it + - ``DataFlow::ParameterNode``: a parameter of a function; use ``asParameter()`` to access the + corresponding AST node + - ``DataFlow::BinaryOperationNode``: an operation involving a binary operator; each ``BinaryExpr`` + has a corresponding ``BinaryOperationNode``, but there are also binary operations that are not + explicit at the AST level, such as those arising from compound assignments and + increment/decrement statements; at the AST level, ``x + 1``, ``x += 1``, and ``x++`` are + represented by different kinds of AST nodes, while at the DFG level they are all modeled as a + binary operation node with operands ``x`` and ``1`` + - ``DataFlow::UnaryOperationNode``: analogous, but for unary operators + + - ``DataFlow::PointerDereferenceNode``: a pointer dereference, either explicit in an expression + of the form ``*p``, or implicit in a field or method reference through a pointer + - ``DataFlow::AddressOperationNode``: analogous, but for taking the address of an entity + - ``DataFlow::RelationalComparisonNode``, ``DataFlow::EqualityTestNode``: data-flow nodes + corresponding to ``RelationalComparisonExpr`` and ``EqualityTestExpr`` AST nodes + +Finally, classes ``Read`` and ``Write`` represent, respectively, a read or a write of a variable, a +field, or an element of an array, a slice or a map. Use their member predicates ``readsVariable``, +``writesVariable``, ``readsField``, ``writesField``, ``readsElement``, and ``writesElement`` to +determine what the read/write refers to. + +Call graph +---------- + +The call graph connects function (and method) calls to the functions they invoke. Call graph +information is made available by two member predicates on ``DataFlow::CallNode``: ``getTarget()`` +returns the declared target of a call, while ``getACallee()`` returns all possible actual functions +a call may invoke at runtime. + +These two predicates differ in how they handle calls to interface methods: while ``getTarget()`` +will return the interface method itself, ``getACallee()`` will return all concrete methods that +implement the interface method. + +Global data flow and taint tracking +----------------------------------- + +The predicates ``DataFlow::localFlowStep`` and ``DataFlow::localFlow`` are useful for reasoning +about the flow of values in a single function. However, more advanced use cases, particularly in +security analysis, will invariably require reasoning about global data flow, including flow into, +out of, and across function calls, and through fields. + +In CodeQL, such reasoning is expressed in terms of `data-flow configurations`. A data-flow +configuration has three ingredients: sources, sinks, and barriers (also called sanitizers), all of +which are sets of data-flow nodes. Given these three sets, CodeQL provides a general mechanism for +finding paths from a source to a sink, possibly going into and out of functions and fields, but +never flowing through a barrier. + +To define a data-flow configuration, you can define a subclass of ``DataFlow::Configuration``, +overriding the member predicates ``isSource``, ``isSink``, and ``isBarrier`` to define the sets of +sources, sinks, and barriers. + +Going beyond pure data flow, many security analyses need to perform more general `taint tracking`, +which also considers flow through value-transforming operations such as string operations. To track +taint, you can define a subclass of ``TaintTracking::Configuration``, which works similar to +data-flow configurations. + +A detailed exposition of global data flow and taint tracking is out of scope for this brief +introduction. For a general overview of data flow and taint tracking, see `About data flow analysis `__. + +Advanced libraries +------------------ + +Finally, we briefly describe a few concepts and libraries that are useful for advanced query +writers. + +Basic blocks and dominance +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Many important control-flow analyses organize control-flow nodes into `basic blocks +`__, which are maximal straight-line sequences of +control-flow nodes without any branching. In the CodeQL libraries, basic blocks are represented by +class ``BasicBlock``. Each control-flow node belongs to a basic block. You can use the predicate +``getBasicBlock()`` in class ``ControlFlow::Node`` and the predicate ``getNode(i)`` in +``BasicBlock`` to move from one to the other. + +Dominance is a standard concept in control-flow analysis: a basic block ``dom`` is said to +`dominate` a basic block ``bb`` if any path through the control-flow graph from the entry node to +the first node of ``bb`` must pass through ``dom``. In other words, whenever program execution +reaches the beginning of ``bb``, it must have come through ``dom``. Each basic block is moreover +considered to dominate itself. + +Dually, a basic block ``postdom`` is said to `post-dominate` a basic block ``bb`` if any path +through the control-flow graph from the last node of ``bb`` to the exit node must pass through +``postdom``. In other words, after program execution leaves ``bb``, it must eventually reach +``postdom``. + +These two concepts are captured by two member predicates ``dominates`` and ``postDominates`` of class +``BasicBlock``. + +Condition guard nodes +~~~~~~~~~~~~~~~~~~~~~ + +A condition guard node is a synthetic control-flow node that records the fact that at some point in +the control-flow graph the truth value of a condition is known. For example, consider again the code snippet we saw above: + +.. code-block:: go + + x := 0 + if p != nil { + x = p.f + } + return x + +At the beginning of the "then" branch ``p`` is known not be ``nil``. This knowledge is encoded in +the control-flow graph by a condition guard node preceding the assignment to ``x``, recording the +fact that ``p != nil`` is ``true`` at this point: + +|cfg2| + +A typical use of this information would be in an analyis that looks for ``nil`` dereferences: such +an analysis would be able to conclude that the field read ``p.f`` is safe because it is immediately +preceded by a condition guard node guaranteeing that ``p`` is not ``nil``. + +In CodeQL, condition guard nodes are represented by class ``ControlFlow::ConditionGuardNode`` which +offers a variety of member predicates to reason about which conditions a guard node guarantees. + +Static single-assignment form +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`Static single-assignment form `__ (SSA +form for short) is a program representation in which the original program variables are mapped onto +more fine-grained `SSA variables`. Each SSA variable has exactly one definition, so program +variables with multiple assignments correspond to multiple SSA variables. + +Most of the time query authors do not have to deal with SSA form directly. The data-flow graph uses +it under the hood, and so most of the benefits derived from SSA can be gained by simply using the +data-flow graph. + +For example, the data-flow graph for our running example actually looks more like this: + +|ssa| + +Note that the program variable ``x`` has been mapped onto three distinct SSA variables ``x1``, +``x2``, and ``x3``. In this case there is not much benefit to such a representation, but in general +SSA form has well-known advantages for data-flow analysis for which we refer to the literature. + +If you do need to work with raw SSA variables, they are represented by the class ``SsaVariable``. +Class ``SsaDefinition`` represents definitions of SSA variables, which have a one-to-one +correspondence with ``SsaVariable``\ s. Member predicates ``getDefinition()`` and ``getVariable()`` +exist to map from one to the other. You can use member predicate ``getAUse()`` of ``SsaVariable`` to +look for uses of an SSA variable. To access the program variable underlying an SSA variable, use +member predicate ``getSourceVariable()``. + +Global value numbering +~~~~~~~~~~~~~~~~~~~~~~ + +`Global value numbering `__ is a technique for +determining when two computations in a program are guaranteed to yield the same result. This is done +by associating with each data-flow node an abstract representation of its value (conventionally +called a `value number`, even though in practice it is not usually a number) such that identical +computations are represented by identical value numbers. + +Since this is an undecidable problem, global value numbering is `conservative` in the sense that if +two data-flow nodes have the same value number they are guaranteed to have the same value at +runtime, but not conversely. (That is, there may be data-flow nodes that do, in fact, always +evaluate to the same value, but their value numbers are different.) + +In the CodeQL libraries for Go, you can use the ``globalValueNumber(nd)`` predicate to compute the +global value number for a data-flow node ``nd``. Value numbers are represented as an opaque QL type +``GVN`` that provides very little information. Usually, all you need to do with global value numbers +is to compare them to each other to determine whether two data-flow nodes have the same value. + +Further reading +--------------- + +- Find out more about QL in the `QL language handbook `__ and `QL language specification `__. +- Learn more about the query console in `Using the query console `__ on LGTM.com. + +.. |ast| image:: ast.png +.. |cfg| image:: cfg.png +.. |dfg| image:: dfg.png +.. |cfg2| image:: cfg2.png +.. |ssa| image:: ssa.png diff --git a/docs/language/learn-ql/go/ql-for-go.rst b/docs/language/learn-ql/go/ql-for-go.rst index 2528cbe478cc..a0e04cf03700 100644 --- a/docs/language/learn-ql/go/ql-for-go.rst +++ b/docs/language/learn-ql/go/ql-for-go.rst @@ -3,9 +3,16 @@ CodeQL for Go Experiment and learn how to write effective and efficient queries for CodeQL databases generated from Go codebases. +.. toctree:: + :hidden: + + introduce-libraries-go + - `Basic Go query `__: Learn to write and run a simple CodeQL query using LGTM. -Other resources +- :doc:`CodeQL library for Go `: When you're analyzing a Go program, you can make use of the large collection of classes in the CodeQL library for Go. + +Further reading --------------- - For the queries used in LGTM, display a `Go query `__ and click **Open in query console** to see the code used to find alerts. diff --git a/docs/language/learn-ql/go/ssa.dot b/docs/language/learn-ql/go/ssa.dot new file mode 100644 index 000000000000..c8bfb8c62a07 --- /dev/null +++ b/docs/language/learn-ql/go/ssa.dot @@ -0,0 +1,15 @@ +digraph ssa { + graph [dpi=300]; + rankdir=LR; + + "x1" [shape=diamond,label=1>]; + "x2" [shape=diamond,label=2>]; + "x3" [shape=diamond,label=3>]; + "return x" [label=x>]; + + "0" -> "x1"; + "p.f" -> "x2"; + "x1" -> "x3"; + "x2" -> "x3"; + "x3" -> "return x"; +} diff --git a/docs/language/learn-ql/go/ssa.png b/docs/language/learn-ql/go/ssa.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5ba3f29de0c7a94c500544a285d5cd873400ce GIT binary patch literal 68479 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 literal 0 HcmV?d00001