Quick Start Guide
For a quick start please read our quick start guide to get up and running in seconds.
Flawnter Requirements
Flawnter supports both command line and GUI in one jar file. Make sure you download the right zip file for your OS. Then unzip the flawnter folder. For the GUI you can just double click on flawnter.jar. For the command line just run java -jar flawnter.jar -sast <path or file to scan>. Refer to command line usage for more details. You need OpenJDK/Java 8 or later version to run Flawnter. Make sure you download the correct Flawnter version. If you not sure which bit version of Flawnter you need, you can open your system command prompt/terminal and type "java -version". If it's 64 bit java then you need to download the 64 bit version of Flawnter. If it's 32 bit then download the 32 bit version of Flawnter.
Java Stack Memory Requirements
The default stack size of JVM is somewhere around 320K to 1024K depending which platform you use. If you get stack overflow error you can increase the JVM stack memory. For the command line run java -Xss16m -jar flawnter.jar -sast <path or file to scan>. If more stack memory is needed then increase the 16 megabytes to larger number. For example passing -Xss32m will use 32 megabytes of stack memory.
For the GUI you can run the rungui batch/bash file to launch the Flawnter GUI which by default uses -Xss16m parameter. If more stack memory is needed just edit rungui file and update the -Xss value to 32 or larger number to meet your requirements.
Java Heap Memory Requirements
The default heap size of JVM is 1/4 of system memory or 1 or 2 GB of memory. This should all be enough memory to scan with Flawnter. However if you get heap memory error then you can increase the JVM heap memory. For the command line run java -Xmx4096m -jar flawnter.jar -sast <path or file to scan>. If more heap memory is needed then increase the 4096 megabytes to larger number.
For the GUI you need to edit rungui batch/bash file by adding -Xmx4096m parameter before running the batch/bash file. Increase -Xmx value as needed.
Using proxy
If you are using a proxy then you can pass the following command to Java. java -Djava.net.useSystemProxies=true -jar flawnter.jar. Flawnter also comes with rungui-proxy.bat or rungui-proxy.sh that will set to system proxy if you just run the bat/bash file. Note that if you are using self-signed certificates for your proxy, make sure the certificate is added to the Java keystore. Alternatively, you can set the debug value to true in the flawnter.cfg file, which will disable certificate checking.Command line usage
To get the command line usage type java -jar flawnter.jar -hFor local files: java -jar flawnter.jar <command> <folder/file to scan> <report path> Command: -sast Folder/File path to scan for static code analysis Report folder path to output the results. Optional Example: java -jar flawnter.jar -sast c:\test\code c:\test\report For GitLab: java -jar flawnter.jar <command> <base url> <project id> <branch> -auth <token> <report path> Command: -sast-gitlab API base URL. Default is https://gitlab.com Repo project ID Repo branch name. Default is main Authorization token. Required for private repo scanning. Omit -auth for public repos Report folder path to output the results. Optional Example: java -jar flawnter.jar -sast-gitlab https://gitlab.com 15496125723 main -auth iufrzCvdMcHxBDsz scanreport For GitHub: java -jar flawnter.jar <command> <base url> <user/owner> <repo> <branch> -auth <token> <report path> Command: -sast-github API base URL. Default is https://api.github.com User/Owner of GitHub Repo name Repo branch name. Default is main Authorization token. Required for private repo scanning. Omit -auth for public repos Report folder path to output the results. Optional Example: java -jar flawnter.jar -sast-github https://api.github.com cybertest testrepo main -auth ghp_msW985ngyubeyn9x32fi9ur scanreport For BitBucket: java -jar flawnter.jar <command> <base url> <api version> <project id> <repo> <branch> -auth <user:password or access token> <report path> Command: -sast-bitbucket API base URL. Default is https://github.com Workspace ID Repo name Repo branch name. Default is main Username and app password. Required for private repo scanning. Omit -auth for public repos Report folder path to output the results. Optional Example Cloud: java -jar flawnter.jar -sast-bitbucket https://api.bitbucket.org 2.0 cybertest testrepo main -auth user1:RvMJ4viTHrvegtd scanreport Example Server: java -jar flawnter.jar -sast-bitbucket https://bitbucket.example.com 1.0 cybertest testrepo main -auth BBDC-V3zeauRpbMx scanreport For Confluence: java -jar flawnter.jar <command> <API version> <base url> <limit> <username or email> <API token> <report path> Command: -confluence API version API base URL Page limit (Approximate number of pages to scan. Set to 0 for no limit) Username/Email API token Example: java -jar flawnter.jar -confluence 2 https://subdomain.atlassian.net 0 user@youremail.com ATATT3xFfGF01975hPVuedX3H4yd scanreport Example: java -jar flawnter.jar -confluence 2 https://subdomain.atlassian.net 5000 user@youremail.com ATATT3xFfGF01975hPVuedX3H4yd scanreport For Jira: java -jar flawnter.jar <command> <API version> <base url> <project id> <limit> <username or email> <API token> <report path> Command: -jira API version API base URL Project ID/Name Content limit (Approximate number of content to scan. Set to 0 for no limit) Username/Email API token Example: java -jar flawnter.jar -jira 3 https://subdomain.atlassian.net proj1 0 user@youremail.com ATATT3xFfGF01975hPVuedX3H4yd scanreport Example: java -jar flawnter.jar -jira 3 https://subdomain.atlassian.net proj2 5000 user@youremail.com ATATT3xFfGF01975hPVuedX3H4yd scanreport For Asana: java -jar flawnter.jar <command> <API version> <base url> <project id> <limit> <access token> <report path> Command: -asana API version API base URL Project ID (This is a number) Content limit (Approximate number of content to scan. Set to 0 for no limit) API access token (Personal Access Token) Example: java -jar flawnter.jar -asana 1 https://app.asana.com proj1 0 2/1207012345670633/1207123451234567:62f201ba7ca7677de1c43bfb8efd8445 scanreport For AzureDevOps: java -jar flawnter.jar <command> <base url> <organization> <project> <branch> -auth <token> <report path> Command: -sast-azure-devops API base URL. Default is https://dev.azure.com Organization Project Repo branch name. Default is main Authorization token. Required for private repo scanning. Omit -auth for public repos Report folder path to output the results. Optional Example: java -jar flawnter.jar -sast-azure-devops https://dev.azure.com cybertest testproj main -auth a754pkq6zkpwRvMJ4viwmegtv scanreport For local dependency scan: java -jar flawnter.jar <command> <sub-command> <extra-command> <folder/file to scan> <report path> Command: -dependency-scan or -sca Sub-command: -vul Vulnerability analysis only. Optional Sub-command: -lic License risk analysis only. Optional Extra-command: -noupdate Don't update local data feeds. Optional Note: If sub-command is omitted then it will scan for both options. If extra-command is omitted it will auto update data feeds Folder/File path to scan Report folder path to output the results. Optional Example: java -jar flawnter.jar -dependency-scan c:\test\path c:\test\report Example: java -jar flawnter.jar -dependency-scan -vul c:\test\path c:\test\report Example: java -jar flawnter.jar -dependency-scan -lic c:\test\path c:\test\report Example: java -jar flawnter.jar -dependency-scan -noupdate c:\test\path c:\test\report For local dependency import scan: java -jar flawnter.jar <command> <extra-command> <import sbom json file> <report path> Command: -dependency-scan-import or -sca-import Extra-command: -noupdate Don't update local data feeds. Optional Note: If extra-command is omitted it will auto update data feeds Import SBOM file to load and scan Report folder path to output the results. Optional Example: java -jar flawnter.jar -dependency-scan-import c:\test\sbom.spdx.json c:\test\report Example: java -jar flawnter.jar -dependency-scan-import c:\test\sbom.cyclonedx.json c:\test\report Example: java -jar flawnter.jar -dependency-scan-import -noupdate c:\test\sbom.cyclonedx.json c:\test\report For DAST scan: java -jar flawnter.jar <command> <URL> <depth> -auth <authentication json file> <report path> Command: -dast Website URL/IP Depth is max number of URLs the crawler will find Authenticated JSON file. Optional. Unauthenticated example: java -jar flawnter.jar -dast https://somedomain.com 20 c:\test\report Authenticated example: java -jar flawnter.jar -dast https://somedomain.com 20 -auth auth.json c:\test\report For DAST SSO scan: java -jar flawnter.jar <command> <SSO Protocol> <authentication json file> <report path> Command: -dast-sso SSO Protocol Authenticated JSON file. Example: java -jar flawnter.jar -dast-sso saml2 auth.json c:\test\report For API security scan: java -jar flawnter.jar <command> <api file path> <report path> Command: -api Example: java -jar flawnter.jar -api c:\test\postman-collection.json c:\test\report For malware scan: java -jar flawnter.jar <command> <sub-command> <extra-command> <folder/file to scan> <report path> Command: -malware-scan or -mscan Sub-command: -skip-archives Skip scanning inside zip or archive files. Optional Extra-command: -noupdate Don't update local data signatures. Optional Note: If sub-command is omitted then it will scan inside archive files. If extra-command is omitted it will auto update data signatures Folder/File path to scan Report folder path to output the results. Optional Example: java -jar flawnter.jar -mscan c:\test\path c:\test\report Example: java -jar flawnter.jar -mscan -skip-archives c:\test\path c:\test\report Example: java -jar flawnter.jar -mscan -noupdate c:\test\path c:\test\report For Port scan: java -jar flawnter.jar <command> <host> <port> <report path> Command: -port-scan Hostname or IP Port number or use 0 to scan all ports Example: java -jar flawnter.jar -port-scan somedomain.com 443 c:\test\report Example: java -jar flawnter.jar -port-scan somedomain.com 0 c:\test\report For Website crawl: java -jar flawnter.jar <command> <URL> <depth> <report path> Command: -web-crawl Website URL/IP Depth is max number of URLs the crawler will find Example: java -jar flawnter.jar -web-crawl https://somedomain.com 1000 c:\test\report For Kubernetes scan: java -jar flawnter.jar <command> <sub-command> <server IP/hostname to scan> <report path> Command: -kube-scan Sub-command: -vul Check against CVE vulnerabilities only. Optional Sub-command: -ano Check anonymous authentication only. Optional Note: If sub-command is omitted then it will scan for both options Server IP/Hostname to scan Report folder path to output the results. Optional Example: java -jar flawnter.jar -kube-scan https://localhost:8443 c:\test\report Example: java -jar flawnter.jar -kube-scan -vul https://localhost:8443 c:\test\report Example: java -jar flawnter.jar -kube-scan -ano https://localhost:8443 c:\test\report For Flawnter auto update: java -jar flawnter.jar <command> Command: -autoupdate or -au Example: java -jar flawnter.jar -autoupdate For Hashing file: java -jar flawnter.jar <command> <file path> Command: -hash (same as sha1) Command: -sha1 (same as hash) Command: -md5 Command: -sha256 Command: -sha512 Command: -ssdeep Example: java -jar flawnter.jar -hash c:\test\somefile.php Example: java -jar flawnter.jar -sha1 c:\test\somefile.java Example: java -jar flawnter.jar -md5 c:\test\somefile.jar Example: java -jar flawnter.jar -sha256 c:\test\somefile.exe Example: java -jar flawnter.jar -sha512 c:\test\somefile.dll Example: java -jar flawnter.jar -ssdeep c:\test\somefile.exe For Flawnter version: java -jar flawnter.jar <command> Command: -version Example: java -jar flawnter.jar -version
GUI usage
To run Flawnter in GUI mode you can either double click on the flawnter.jar file or run the command java -jar flawnter.jarScanning local files and folders
There are few ways you can scan local files and folders. The most easiest is drag and drop files or folder on the GUI. The other is either select the scan button on the GUI or use File menu. Once the scan is complete you will see quick summary dialog of the results. If you have a license then it will also generate detail reports of different formats. Please refer to the Reporting section for the details of the reports it generates.
Scanning GitLab repo files and folders for both cloud-based and self-hosted platforms
To scan source code files on GitLab, from the menu select "File->Scan GitLab". Then enter the information required. For public repo scanning there is no need for authentication token, however there may be limitations on number of files allowed to scan set by GitLab. To make sure there are no limitations you can enter your personal access token in Auth Token section. Also all private repos require access token. You can read more about GitLab access tokens from their documentation page https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html.
For more details please download our How to scan GitLab Guide here.
Scanning GitHub repo files and folders for both cloud-based and self-hosted platforms
To scan source code files on GitHub, from the menu select "File->Scan GitHub". Then enter the information required. For public repo scanning there is no need for authentication token, however
there may be limitations on number of files allowed to scan set by GitHub. To make sure there are no limitations you can enter your personal access token in Auth Token section. Also all
private repos require access token. You can read more about GitHub access tokens from their documentation page
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.
For more details please download our How to scan GitHub Guide here.
Scanning BitBucket repo files and folders for cloud-based platform
To scan source code files on BitBucket, from the menu select "File->Atlassian->Scan BitBucket". Then enter the information required. For public repo scanning there is no need for authorization, however there may be limitations on number of files allowed to scan set by BitBucket. To make sure there are no limitations you can enter your App password in Authorization section in the format username:password. Also all private repos require App password. You can read more about BitBucket App passwords from their documentation page https://support.atlassian.com/bitbucket-cloud/docs/app-passwords.
Scanning BitBucket repo files and folders for server self-hosted platform
To scan source code files on BitBucket Server, from the menu select "File->Atlassian->Scan BitBucket". Then select API version to 1.0 and the rest information required. For Base URL make sure you enter your BitBucket server domain name or IP addresses including the port number if not using default 443 port. For the Authorization you can enter username:password. The colon is needed to separate the username and password. You can also use http access token and enter that token in Authorization section instead of username and password. You can create http access token from the repository settings. You can read more about it from their documentation page https://developer.atlassian.com/server/bitbucket/rest/v806/intro.
For more details please download our How to scan BitBucket Guide here.
Scanning Confluence pages for secrets and sensitive data
To scan Confluence pages for passwords, secrets and other sensitive data, from the menu select "File->Atlassian->Scan Confluence". You can also run Flawnter extensions like Extended Secrets Finder to look for more patterns for finding secrets and sensitive data. If you like to use your own regex rules, you can use our Custom Data Finder extension. Extensions can be downloaded from Flawnter Extensions.
For more details please download our Confluence Guide here.
Scanning Jira pages for secrets and sensitive data
To scan Jira pages for passwords, secrets and other sensitive data, from the menu select "File->Atlassian->Scan Jira". You can also run Flawnter extensions like Extended Secrets Finder to look for more patterns for finding secrets and sensitive data. If you like to use your own regex rules, you can use our Custom Data Finder extension. Extensions can be downloaded from Flawnter Extensions.
For more details please download our Jira Guide here.
Scanning Asana pages for secrets and sensitive data
To scan Asana pages for passwords, secrets and other sensitive data, from the menu select "File->Scan Asana". You can also run Flawnter extensions like Extended Secrets Finder to look for more patterns for finding secrets and sensitive data. If you like to use your own regex rules, you can use our Custom Data Finder extension. Extensions can be downloaded from Flawnter Extensions.
For more details please download our Asana Guide here.
Scanning Azure DevOps repo files and folders for both cloud-based and self-hosted platforms
To scan source code files on Azure DevOps, from the menu select "File->Scan Azure DevOps". Then enter the information required. For public repo scanning there is no need for authentication token, however there may be limitations on number of files allowed to scan set by Azure DevOps. To make sure there are no limitations you can enter your personal access token in Auth Token section. Also all private repos require access token. You can read more about Azure DevOps access tokens from their documentation page https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate.
For more details please download our How to scan Azure DevOps Guide here.
Dependency Scan - Vulnerability Analysis
Flawnter Dependency Scan is a Software Composition Analysis (SCA) feature that attempts to detect publicly disclosed vulnerabilities contained within a project’s dependencies. It uses Common Platform Enumeration (CPE) identifier for a given dependency. If found it will provide vulnerability details and the associated CVE entries and references. Flawnter uses data feeds from the National Vulnerability Database published by the NIST website (https://nvd.nist.gov) as well as from a few other sources. Flawnter automatically updates the local data feeds from NIST or other websites. The scan is very fast and has been proven to detect the well-known Log4j RCE vulnerability that was disclosed in late 2021.
Flawnter also supports the analysis of Docker container images. It scans Dockerfiles for dependencies known to have vulnerabilities. In cases where the dependency lacks a version number or cannot be determined, we recommend scanning container files locally to enhance the effectiveness of the analysis.
Dependency Scan - License Risk Analysis
Flawnter Dependency Scan allows you to also scan for open source license and legal risks. Software developers use many open source components and libraries for building applications. The problem is some open source licenses may pose compliance and legal issues. Flawnter License Risk Analysis helps identify these open source licenses and classifies them into risk to help you understand your overall software compliance risk.
Dependency Scan - SBOM Creation
Flawnter Dependency Scan creates SBOM (Software Bill of Materials) in CycloneDX/SPDX JSON format file of dependency components/libraries. This empowers organizations to gain a holistic view of their software dependencies, regardless of vulnerability status. Since CycloneDX/SPDX is an industry-standard format for representing SBOMs, you can share it with parties/agencies that require SBOM.
Dependency Import Scan
Flawnter Dependency Import Scan allows you to import SBOM CycloneDX/SPDX JSON file to scan through the packages/components for known vulnerabilities.
DAST Scan
Flawnter DAST (Dynamic Application Security Testing) will look for security bugs in your application using dynamic analysis. This means your application must be running to test. We recommend to run DAST on non-production environment to avoid any performance/security impact on production systems and data. Note when deepscan flag in flawnter.cfg is set to false the scan will perform faster scans, but if you want more deeper and accurate scans you can set deepscan flag to true. Please note that the DAST scan may take a significant amount of time, depending on the number of URLs and parameters it identifies, as well as the network traffic speed. If the scans takes longer than few hours then you may want to lower the Depth value accordingly. For more details please download our DAST Testing Guide here.
DAST SSO Scan
Flawnter DAST SSO will look for security vulnerabilities (no signature test, embedded/wrapper xml tests, tampering test, self-sign cert test, xpath test, xxe test, xss test, etc.) in service/resource provider side. For more details please download our DAST SSO Security Testing Guide here.
DAST Interactive Scan
Flawnter DAST Interactive Scan is only available in GUI mode. It allows the user to interact with a web application while Flawnter captures the http/https requests and responses where you can later scan for security vulnerabilities. In a nutshell Flawnter DAST Interactive is a http/https proxy but it's a powerful feature that allows you to test your application by controlling what you want to test. To point your browser to Flawnter proxy, you can use the command line: chrome --proxy-server=127.0.0.1:8080. You can change the port number to match the Flawnter proxy server. While this command is for Chrome/Chromium, it may work for other browsers or you may need to tweak it little. To download Chromium you can follow the steps from Download Chromium. Once you download Chromium zip file you need to unzip the folder and rename it to chromium. Then copy/move this folder to flawnter folder. For example in Windows the path will look like something like: \flawnter\chromium\chrome.exe. You can also enable your system proxy server settings to point localhost and proxy port number you are using for Flawnter. For example in Windows this will be under "Internet Options->Connections->LAN Settings". To download and install Flawnter proxy cert, go to https://www.flawnter.com/download/doc/cybertest.crt. You can also generate the cert from Flawnter Configuration menu. For more assistance please contact us and we will be happy to help.
API Security Scan
Flawnter API security testing will scan your application REST APIs for security vulnerabilities. Currently it supports Postman collections in JSON format. If you have OpenAPI Specification (OAS) file, you can import in Postman as collection and then export it to JSON file. You can also use any 3rd party tool that can convert from OpenAPI to Postman collection. Our API security testing is similar to DAST except it tests only the APIs you define in the JSON file. Note when deepscan flag in flawnter.cfg is set to false the API security scan will perform faster scans, but if you want more deeper and accurate scans you can set deepscan flag to true. For more details please download our API Security Testing Guide here.
Malware Scan
Flawnter Malware scan will scan your folder or files for malware. It's important to note that our scan is for detection purposes only - it does not quarantine or remediate malware. While our malware scan strives for accuracy, there may be occasional false positives. For added security assurance, we recommend involving your security department or administrator to verify any flagged malware. Flawnter Malware scan uses malware detection signatures from variety of places including MalwareBazaar. The malware scan is an experimental feature. It might significantly change or be removed at any time.
Port Scan
Flawnter Port Scan can be used to check for open ports for a given host. To check for single port just enter the port number. You can also scan all ports by selecting 'Scan all ports' from GUI or use port 0 for command line.
Website Crawler
Flawnter website crawler can be used to crawl your website and report all links and pages found. Can also be used to build sitemap of your website. For large websites you can increase the depth which lets Flawnter know the maximum pages to crawl.
Kubernetes Scan - Vulnerability Analysis
Flawnter Kubernetes Scan is capable of scanning for known CVE vulnerabilities similar to Dependency Scan. It also has checks for anonymous authentication for various locations in Kubernetes.
How to use and configure flawnter configuration files
Flawnter does not require configuration file, however using configuration file does provide benefits. The flawnter.cfg is a text file and should be in current directory, typically this may be in the same path as flawnter.jar file. Default flawnter.cfg file comes with the zip file you download. You can also generate default flawnter.cfg from "Configuration->Generate->Default SAST Config" menu in the GUI. Here are the parameters of flawnter.cfg:
- name - App or scan name that gets added in the findings report.
- scantype - 1 means scan only security bugs, 2 means scan only quality bugs, 0 means scan both.
- scancategory - 0 = all, 1 = hard coded credentials. This option only works for Static Code Analysis.
- corescan - If true then run the main core scan engine of Flawnter including extensions. If you want only extensions to run then set this to false.
- binaryscan - If true (default) it will scan binary/executable files. If you don't want to scan binary files then set this to false. This option only works for Static Code Analysis.
- forcescan - Force scan true will scan the source code even if it has NOFLAWNTERSCAN tag. This option only works for Static Code Analysis. For API/DAST scan it will still scan if no-flawnter-scan is set true in response header.
- deepscan - Deep scan. Default is true starting v5.4.0. If set true it will use deep scanning analysis to find more bugs.
- suppressoutput - If set true it will suppress console output and only show the scan summary at the end. Has no effect on GUI.
- overwritereport - If true it will overwrite results report folder if it exists.
- scancomments - If true it will scan code in comments also. This option only works for Static Code Analysis.
- predictiveanalysis - If true (default) it will use predictive analysis algorithms to identify vulnerabilities in code that regular rules may have missed.
- autoupdate - If true it will auto update Flawnter with latest version after a scan. Default is false. This is for command line only. For the UI use Help->Check Update.
- severity - Show critical, high, medium, low, info or all = all severity findings. For multiple severity add pipe (|)
- confidence - Show high, medium, low or all = all confidence findings. For multiple confidence add pipe (|)
- platform - Specific platform to use. Values can be web, windows, android, ios, macos, none or leave it blank. Optional. Recommended to set this to none or leave it blank to indicate no specific platform.
- lang - Programming language code is written with: php, c, cpp, cs, vb, vbscript, java, javascript, typescript, nodejs, python, perl, ruby, go, objective-c, swift, kotlin, dart, abap, xml, yaml, cfg, powershell, binary or auto (automatically detect). Recommended to set this to auto to let Flawnter automatically determine the language.
- debug - By default debug is set to false. For troubleshooting and better error messages this can be set true.
- datafeeds - From where/which format NVD data feeds to use for Dependency Scan. Values can be nist-legacy/nist, osv. You can combine data feeds using comma. For example: "datafeeds=nist,osv". The default is nist-legacy,osv but the default may change in the future to nist,osv. Note: Our testing has confirmed that nist-legacy is lot faster than nist (uses APIs).
- nvdapikey - If you have NIST NVD apikey then you can put it here to increase the limit on number of requests Flawnter can call within 30 seconds window. For the details how to request API Key go to https://nvd.nist.gov/general/news/API-Key-Announcement. The default is none which means don't use NIST NVD API key.
- extension - Extension jar file path to run. For multiple extensions just add another on the next line. You can download extensions from here.
- exclude - file/folder/URL name or path to exclude from scan. You can also exclude by file hash (md5, sha1, sha256, sha512) by using format: <file size in bytes>:<file hash>. Alternatively, you can exclude by CVE number using format: CVE-<id number>:<file name/path>. To exclude package name use command: packagename:<name of the package>. For multiple exclude just add another line.
Programming languages support
Flawnter supports scanning code for over 25 programming languages. To get the full list you can check Flawnter Capabilities.
Flawnter signature verification
All Flawnter extensions are signed by CyberTest using private key that is securely encrypted and protected. The <extension name>.sig file is the signature file Flawnter uses to verify each extension before running it. For verifying Flawnter downloaded zip file you can use PGP or GPG. The signature file can be downloaded from our download page. To verify Flawnter zip file you can run the command gpg --verify <flawnter zip>.zip.sig <flawnter zip>.zip. Note that you first need to have our public key to verify it. To request our public key please send email to us using either info@cybertest.com or info@flawnter.com. Also note that SHA1 checksum of Flawnter zip files are published on our download page for additional check.
Binary Analysis
Flawnter currently supports scanning only Windows executable (32 and 64 bits) files on local system/network. It does not scan executable files in GitLab/GitHub/BitBucket/Azure-DevOps.
License
When you download and run Flawnter it will run in trial mode but it will scan the code with no limitations, however it will not create findings report unless you buy Flawnter license. You can obtain the license from our website. Once payment is successful you will see download license button where you can download the license (flawnter.lic) file. Copy this license file in your current/working directory, typically this may be in the same path where flawnter.jar file is located. We accept credit cards for purchasing a license, however if you want to buy the license using another payment method please contact us at info@flawnter.com. For license pricing details please visit our pricing page.
License per user meaning
The per user licensing is actually very simple. A user can be a person or a machine/system/automation. For example if you have a person scanning the code with Flawnter and generating the report then that will be considered one license.
If you have an automation to scan and generate report then that automation that generates the report is considered one license. If you have two people or automation using the Flawnter to scan and generate reports then you will need two licenses.
Basically anyone (a person or machine) who uses Flawnter that needs to scan and generate findings report needs to use a license. You can't share a single license between multiple users, even if only one person uses it at a time.
Unable to download the license file
If you were unable to download the license file please send us email at info@flawnter.com with the transaction ID or invoice number and we will email it to you.
For Static/Dependency Analysis - How to exclude from scan
If there are false positives in Flawnter, you can exclude from the scan by doing one of the following:
- To exclude a source code line from scan add NOFLAWNTERSCAN tag at the end of line as comment. This is case-sensitive. Does not apply for binary files.
- To exclude the entire file/folder from scan, add the file/folder name or full path in flawnter.cfg next to attribute exclude. Example: exclude=fpcode.php
- To exclude the entire file from scan using file hash, add the hash in flawnter.cfg using the format <file size in bytes>:<file hash> next to attribute exclude. Example: 8735:5F8C23432C01EC125D64782DA16A0E4144DBF4D2. You can use your own tool to create md5, sha1, sha256 or sha512 hash of the file or use the command line of flawnter to create the hash you can add to exclude. Here is an example how to create hash of a file: java -jar flawnter.jar -hash somefile.php. Make sure to put the file size in front of the hash. Including file size helps improve the scan performance.
- To exclude file using CVE id, use the format <CVE>:<file name/path> next to attribute exclude. Example: exclude=CVE-1998-01234:somefile.jar. To exclude CVE on all files, use asterisk(*) instead of file name/path.
- To exclude using package name use the format exclude=packagename:<name of the package>.
For API/DAST Analysis - How to exclude from scan
If there are false positives in API/DAST Flawnter, you can exclude from the scan by doing one of the following:
- To exclude a REST Request/API from scan add no-flawnter-scan: true in the response header. This is case insensitive. To remove the exclude you can set this header to false or just remove it from the response header.
- To exclude a REST Request/API using URL you can add the URL in flawnter.cfg next to attribute exclude. Example: exclude=https://example-domain.com/test
Reporting
After Flawnter completes the scan, it will create findings reports of the results. By default it creates results folder called scanreport. If overwritereport flag in flawnter.cfg is false (default), the output report folder will automatically increment if the report folder exists. For example if scanreport folder exists it will create scanreport2 or scanreport3, etc. This only works on the GUI and not in command line since you have more control in cmd like specifying report output path. You will need a license to see the results of the scan. There are many different types of reports Flawnter creates to meet your needs. Here are the reports it creates:
- HTML format full details report
- HTML format simple report
- XML format generic report
- XML Junit format report
- XML Nunit format report
- Json format report
- CSV format report
- Text format report
- CycloneDX/SPDX Json format SBOM report (with dependency scan)
Things to note
To get most out of the static code analysis avoid cryptic or minified code. For example if you don't have the original javascript code and it's minified,
then it's better to unminify first using tools like Google closure compiler and then scan the code with Flawnter to get the best results.
Example: java -jar google_closure_compiler.jar --formatting=PRETTY_PRINT mycode.min.js
How to create Flawnter extension
Please contact us at info@flawnter.com if you like to get the details how to build Flawnter extensions.