JS: debugging queries #115
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a debugging framework for JavaScript/TypeScript in GitHub's CodeQL by adding utility classes and predicates for identifying sources and sinks, as well as creating debugging queries and a suite configuration. The changes are primarily focused on enhancing debugging capabilities and organizing threat modeling for data flow analysis.
Additions to Utilities and Core Framework:
javascript/lib/ghsl/Utils.qll
: Introduced utility predicates and classes, includingfilterByLocation
,AllSources
,AllSinks
, and their respective subtypes (RemoteSources
,LocalSources
, etc.), to support threat modeling and debugging.Source and Sink Definitions:
javascript/src/debugging/Sources.ql
: Added a query to list all known sources (remote, local, etc.), leveraging theAllSources
class and filtering by threat model.javascript/src/debugging/Sinks.ql
: Added a query to list all known sinks (e.g., code injection, XSS), using theAllSinks
class and displaying sink types.Debugging Suite Configuration:
javascript/src/suites/javascript-debugging.qls
: Configured a debugging suite for JavaScript/TypeScript, including high-precision queries tagged for debugging and excluding local testing folders.Minor Import Adjustment:
javascript/lib/ghsl.qll
: Added an import for the newghsl.Utils
module.