appknox-python
Command-line interface & Python wrapper for the Appknox API.
Python API documentation is available here.
Installation
appknox-python is officially supported on python 3.5 & 3.6. pip is the recommended way to install appknox-python.
pip install appknox
Usage
$ appknox
Usage: appknox [OPTIONS] COMMAND [ARGS]...
Command line wrapper for the Appknox API
Options:
-v, --verbose Specify log verbosity.
-k, --insecure Allow Insecure Connection
--help Show this message and exit.
Commands:
analyses List analyses for file
files List files for project
login Log in and save session credentials
logout Delete session credentials
organizations List organizations
projects List projects
recent_uploads List recent file uploads by the user
report Download report for file
upload Upload and scan package
switch_organization Switch organization in CLI instance
vulnerability Get vulnerability
whoami Show session info
reports list Show the list of reports for a file
reports create Creates a new report for a file
reports download summary-csv Downloads the report summary in CSV format
reports download summary-excel Downloads the report summary in Excel format
Authentication
Log in to appknox CLI using your secure.appknox.com credentials.
$ appknox login
Username: viren
Password:
Logged in to https://api.appknox.com
Using Environment Variables
Instead of login we can use environment variables for authentication. This will be useful for scenarios such as CI/CD setup.
$ export APPKNOX_ACCESS_TOKEN=aaaabbbbbcccddeeeffgghhh
$ export APPKNOX_ORGANIZATION_ID=2
$ export HTTP_PROXY=http://proxy.local
$ export HTTPS_PROXY=https://proxy.local
Supported variables are:
| Environment variable | Value |
|---|---|
APPKNOX_ACCESS_TOKEN |
Access token can be generated from Appknox dashboard (Settings → Developer Settings → Generate token). |
APPKNOX_HOST |
Defaults to https://api.appknox.com |
APPKNOX_ORGANIZATION_ID |
Your Appknox organization id |
HTTP_PROXY |
Set your HTTP proxy ex: http://proxy.local |
HTTPS_PROXY |
Set your HTTPS proxy ex: https://proxy.local |
Data fetch & actions
| Available commands | Use |
|---|---|
organizations |
List organizations of user |
projects |
List projects user has access to |
files <project_id> |
List files for a project |
analyses <file_id> |
List analyses for a file |
vulnerability <vulnerability_id> |
Get vulnerability detail |
owasp <owasp_id> |
Get OWASP detail |
upload <path_to_app_package> |
Upload app file from given path and get the file_id |
rescan <file_id> |
Rescan a file (this will create a new file under the same project.) |
reports list <file_id> |
Lists all the reports associated with the file |
reports create <file_id> |
Create a new report for the file and returns report ID |
reports download summary-csv <report_id> |
Outputs the report summary in CSV format |
reports download summary-excel <report_id> |
Outputs the report summary in Excel format |
Example:
$ appknox organizations
id name
---- -------
2 MyOrganization
$ appknox projects
id created_on file_count package_name platform updated_on
---- ------------------- ------------ ----------------------------- ---------- -------------------
3 2017-06-23 07:19:26 3 org.owasp.goatdroid.fourgoats 0 2017-06-23 07:26:55
4 2017-06-27 08:27:54 2 com.appknox.mfva 0 2017-06-27 08:30:04
$ appknox files 4
id name version version_code
---- ------ --------- --------------
6 MFVA 1 6
7 MFVA 1 6
$ appknox reports list 4
id language
---- ------
1 en
2 en
$ appknox reports create 4
3
$ appknox reports download summary-csv 3
Organization ID,Project ID,Application Name,Application Namespace,Platform,Version,Version Code,File ID,Test Case,Scan Type,Severity,Risk Override,CVSS Score,Findings,Description,Noncompliant Code Example,Compliant Solution,Business Implication,OWASP,CWE,MSTG,ASVS,PCI-DSS,GDPR,Created On
1,1,MFVA,com.appknox.mfva,Android,1.1,1605631525,51,Broken SSL Trust Manager,Static,High,,6.9,"BluK8lNUoeHkNxZ3GVrKN9BP2
NVWmfbtHDiJBOTbOEpCnsbMhc6T31t...(Truncated)
$ appknox reports download summary-csv 3 --output /path/to/output/report_summary.csv
<No output: This command will download the report summary to given output path>
Using Proxy
Appknox client and CLI both supports HTTP and HTTPS proxy. While using the client, if you need to set-up a proxy then please follow the example below
from appknox.client import Appknox
client = Appknox(
access_token="Your-Access-Token", # This is your access token which you can get from developer setting
https_proxy="http://proxy.local", # Use https_proxy by default since cloud server connects to https service
insecure=True, # Use insecure connections, because proxies might have their own set of certificates which maynot be trusted
) # Insecure connections are not reccomended though
To use it in CLI example:
$ export HTTPS_PROXY=http://127.0.0.1:8080
$ appknox --insecure login
Username:
Note: Please avoid using --insecure flag or setting insecure=True in client, this will allow an attacker to perform MITM attack, but this might be required for proxies to work alongside.
Development
Update docs
Install sphinx-autobuild:
pip install sphinx-autobuild
Build docs:
sphinx-autobuild -b html sphinx-docs docs
License: MIT
Metadata
Release files for appknox 4.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| appknox-4.3.0.tar.gz | 17.3 kB | Without provenance | Details for appknox-4.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| appknox-4.3.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for appknox-4.3.0-py2.py3-none-any.whl |
Total release size: 33.3 kB
Release files / appknox-4.3.0.tar.gz
| Download URL | appknox-4.3.0.tar.gz |
|---|---|
| Size | 17.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
403c011ad2aad70386c282b461a1d4a29a8a6dd6515f5a76efa4455d4837c696
|
|
BLAKE2b-256 checksum How to use checksums |
e71b646bd8441705141e584d3a62e2299ee9aec71b6b7efa4c7d8d36086f6741
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.8.9
|
Release files / appknox-4.3.0-py2.py3-none-any.whl
| Download URL | appknox-4.3.0-py2.py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d2d06a453282ae05d0365150b7d4c0ad0a4593e4e181979eeddb655c64721759
|
|
BLAKE2b-256 checksum How to use checksums |
df4f295ea5bf447fb83739dbe1b0c8faf07664c5e4154c4648a80c3c4d1effc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.8.9
|
Security for appknox 4.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.