All Projects → microsoft → Applicationinspector

microsoft / Applicationinspector

Licence: mit
A source code analyzer built for surfacing features of interest and other characteristics to answer the question 'What's in the code?' quickly using static analysis with a json based rules engine. Ideal for scanning components before use or detecting feature level changes.

Programming Languages

C#
18002 projects
javascript
184084 projects - #8 most used programming language
Liquid
124 projects
C++
36643 projects - #6 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to Applicationinspector

Insider
Static Application Security Testing (SAST) engine focused on covering the OWASP Top 10, to make source code analysis to find vulnerabilities right in the source code, focused on a agile and easy to implement software inside your DevOps pipeline. Support the following technologies: Java (Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, and Javascript (Node.js).
Stars: ✭ 216 (-94.42%)
Mutual labels:  static-analysis, security-tools, security-scanner
Vulny Code Static Analysis
Python script to detect vulnerabilities inside PHP source code using static analysis, based on regex
Stars: ✭ 207 (-94.66%)
Mutual labels:  static-analysis, security-tools, security-scanner
Salus
Security scanner coordinator
Stars: ✭ 441 (-88.61%)
Mutual labels:  static-analysis, security-tools, security-scanner
Krane
Kubernetes RBAC static Analysis & visualisation tool
Stars: ✭ 254 (-93.44%)
Mutual labels:  static-analysis, security-tools, security-scanner
Jsprime
a javascript static security analysis tool
Stars: ✭ 556 (-85.64%)
Mutual labels:  static-analysis, security-tools, security-scanner
Libscout
LibScout: Third-party library detector for Java/Android apps
Stars: ✭ 217 (-94.4%)
Mutual labels:  static-analysis, detection
Semgrep Rules
Semgrep rules registry
Stars: ✭ 140 (-96.39%)
Mutual labels:  static-analysis, security-scanner
Ladongo
Ladon Pentest Scanner framework 全平台LadonGo开源内网渗透扫描器框架,使用它可轻松一键批量探测C段、B段、A段存活主机、高危漏洞检测MS17010、SmbGhost,远程执行SSH/Winrm,密码爆破SMB/SSH/FTP/Mysql/Mssql/Oracle/Winrm/HttpBasic/Redis,端口扫描服务识别PortScan指纹识别/HttpBanner/HttpTitle/TcpBanner/Weblogic/Oxid多网卡主机,端口扫描服务识别PortScan。
Stars: ✭ 366 (-90.55%)
Mutual labels:  security-tools, detection
Wsltools
Web Scan Lazy Tools - Python Package
Stars: ✭ 288 (-92.56%)
Mutual labels:  security-tools, security-scanner
Nodejsscan
nodejsscan is a static security code scanner for Node.js applications.
Stars: ✭ 1,874 (-51.61%)
Mutual labels:  static-analysis, security-scanner
Salt Scanner
Linux vulnerability scanner based on Salt Open and Vulners audit API, with Slack notifications and JIRA integration
Stars: ✭ 261 (-93.26%)
Mutual labels:  security-tools, security-scanner
Bandit
Bandit is a tool designed to find common security issues in Python code.
Stars: ✭ 3,763 (-2.84%)
Mutual labels:  security-tools, security-scanner
Awesome Java Security
Awesome Java Security Resources 🕶☕🔐
Stars: ✭ 216 (-94.42%)
Mutual labels:  static-analysis, security-tools
Shodansploit
🔎 shodansploit > v1.3.0
Stars: ✭ 342 (-91.17%)
Mutual labels:  security-tools, security-scanner
Awesome Dotnet Security
Awesome .NET Security Resources
Stars: ✭ 325 (-91.61%)
Mutual labels:  static-analysis, security-tools
Super
Secure, Unified, Powerful and Extensible Rust Android Analyzer
Stars: ✭ 340 (-91.22%)
Mutual labels:  security-tools, security-scanner
Chronos
Chronos - A static race detector for the go language
Stars: ✭ 272 (-92.98%)
Mutual labels:  static-analysis, detection
Wssat
WEB SERVICE SECURITY ASSESSMENT TOOL
Stars: ✭ 360 (-90.7%)
Mutual labels:  static-analysis, security-tools
Awesome Golang Security
Awesome Golang Security resources 🕶🔐
Stars: ✭ 1,355 (-65.01%)
Mutual labels:  static-analysis, security-tools
Njsscan
njsscan is a semantic aware SAST tool that can find insecure code patterns in your Node.js applications.
Stars: ✭ 128 (-96.7%)
Mutual labels:  static-analysis, security-tools

Introduction

CodeQL Nuget Nuget

Microsoft Application Inspector is a software source code characterization tool that helps identify coding features of first or third party software components based on well-known library/API calls and is helpful in security and non-security use cases. It uses hundreds of rules and regex patterns to surface interesting characteristics of source code to aid in determining what the software is or what it does from what file operations it uses, encryption, shell operations, cloud API's, frameworks and more and has received industry attention as a new and valuable contribution to OSS on ZDNet, SecurityWeek, CSOOnline, Linux.com/news, HelpNetSecurity, Twitter and more and was first featured on Microsoft.com.

Application Inspector is different from traditional static analysis tools in that it doesn't attempt to identify "good" or "bad" patterns; it simply reports what it finds against a set of over 400 rule patterns for feature detection including features that impact security such as the use of cryptography and more. This can be extremely helpful in reducing the time needed to determine what Open Source or other components do by examining the source directly rather than trusting to limited documentation or recommendations.

The tool supports scanning various programming languages including C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell and more and can scan projects with mixed language files. It supports generating results in HTML, JSON and text output formats with the default being an HTML report similar to the one shown here.

appinspector-Features

Be sure to see our complete project wiki page https://Github.com/Microsoft/ApplicationInspector/wiki for additional information and help.

Quick Start

Obtain Application Inspector

.NET Tool (recommended)

  • Download and install the .NET Core 5.0 SDK
  • Run dotnet tool install --global Microsoft.CST.ApplicationInspector.CLI

See more in the wiki

Platform Dependent Binary

  • Download Application Inspector by selecting the pre-built package for the operating system of choice shown under the Assets section of the Releases.

Run Application Inspector

  • Nuget Tool: appinspector analyze -s path/to/src.
  • Platform Specific: applicationinspector.cli.exe analyze -s path/to/src

Goals

Microsoft Application Inspector helps you in securing your applications from start to deployment.

Design Choices - Enables you to choose which components meet your needs with a smaller footprint of unnecessary or unknowns features for keeping your application attack surface smaller as well as help to verify expected ones i.e. industry standard crypto only.

Identifying Feature Deltas - Detects changes between component versions which can be critical for detecting injection of backdoors.

Automating Security Compliance Checks - Use to identify components with features that require additional security scrutiny, approval or SDL compliance as part of your build pipeline or create a repository of metadata regarding all of your enterprise application.

Contribute

We have a strong default starting base of Rules for feature detection. But there are many feature identification patterns yet to be defined and we invite you to submit ideas on what you want to see or take a crack at defining a few. This is a chance to literally impact the open source ecosystem helping provide a tool that everyone can use. See the Rules section of the wiki for more.

Official Releases

Application Inspector is in GENERAL AUDIENCE release status. Your feedback is important to us. If you're interested in contributing, please review the CONTRIBUTING.md.

Application Inspector is availble as a command line tool or NuGet package and is supported on Windows, Linux, or MacOS.

Platform specific binaries of the ApplicationInspector CLI are available on our GitHub releases page.

The C# library is available on NuGet as Microsoft.CST.ApplicationInspector.Commands.

The .NET Global Tool is available on NuGet as Microsoft.CST.ApplicationInspector.CLI.

If you use the .NET Core version, you will need to have .NET Core 5.0 or later installed. See the JustRunIt.md or Build.md files for more.

CLI Usage Information

> appinspector --help
ApplicationInspector.CLI 1.4.0+6bdef0356b
c Microsoft Corporation. All rights reserved.

  analyze        Inspect source directory/file/compressed file (.tgz|zip) against defined characteristics

  tagdiff        Compares unique tag values between two source paths

  exporttags     Export unique rule tags to view what code features may be detected

  verifyrules    Verify custom rules syntax is valid

  packrules      Combine multiple rule files into one file for ease in distribution

  help           Display more information on a specific command.

  version        Display version information.

Examples:

Command Help

To get help for a specific command run appinspector <command> --help.

Analyze Command

The Analyze Command is the workhorse of Application Inspector.

Simple Default Analyze

This will produce an output.html of the analysis in the current directory using default arguments and rules.

appinspector analyze -s path/to/files

Excluding Files using Globs

This will create a json output named data.json of the analysis in the current directory, excluding all files in test and .git folders using the provided glob patterns.

appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**

Additional Usage Information

> appinspector analyze --help
ApplicationInspector.CLI 1.4.0+6bdef0356b
c Microsoft Corporation. All rights reserved.

  -s, --source-path             Required. Source file or directory to inspect, comma separated

  -r, --custom-rules-path       Custom rules file or directory path

  -i, --ignore-default-rules    (Default: false) Exclude default rules bundled with application

  -c, --confidence-filters      (Default: high,medium) Output only matches with specified confidence <value>,<value> [high|medium|low]

  -g, --exclusion-globs         (Default: **/bin/** **/obj/** **/.vs/** **/.git/**) Exclude source files that match glob patterns. Example: "**/.git/**,*Tests*".  Use "none" to disable.

  -f, --output-file-format      (Default: html) Output format [html|json|text]

  -e, --text-format             (Default: Tag:%T,Rule:%N,Ruleid:%R,Confidence:%X,File:%F,Sourcetype:%t,Line:%L,Sample:%m) Match text format specifiers

  --file-timeout                (Default: 60000) If set, maximum amount of time in milliseconds to allow for processing each file.

  --processing-timeout          (Default: 0) If set, maximum amount of time in milliseconds to allow for processing overall.

  --single-threaded             Disables parallel processing.

  --no-show-progress            Disable progress information.

  --context-lines               Number of lines of context on each side to include in excerpt (up to a maximum of 100 * NumLines characters on each side). 0 to skip exerpt. -1 to not extract
                                samples or excerpts (implied by -t).

  --scan-unknown-filetypes      Scan files of unknown types.

  -t, --tags-only               Only get tags (no detailed match data).

  -n, --no-file-metadata        Don't collect metadata about each individual file.

  -o, --output-file-path        Output file path

  -x, --console-verbosity       (Default: medium) Console verbosity [high|medium|low|none]

  -l, --log-file-path           Log file path

  -v, --log-file-level          (Default: Error) Log file level [Debug|Info|Warn|Error|Trace|Fatal|Off]

  --help                        Display this help screen.

  --version                     Display version information.

For additional help on use of the console interface see CLI Usage.

For help using the NuGet package see NuGet Support

Build Instructions

See build.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].