|
2 | 2 |
|
3 | 3 | # TLSAssistant v3
|
4 | 4 |
|
5 |
| -**TLSAssistant v3** is the latest version of TLSAssistant, a modular state-of-the-art TLS analyzer, extensible with new features and thus capable of streamlining the mitigation process of known and newly discovered TLS attacks even for non-expert users. TODO: aggiungere link companion page |
| 5 | +**TLSAssistant v3** is the latest version of TLSAssistant, a modular state-of-the-art TLS analyzer, extensible with new features and thus capable of streamlining the mitigation process of known and newly discovered TLS attacks even for non-expert users. The companion page, containing additional details can be found [here](https://st.fbk.eu/tools/TLSAssistant/). |
6 | 6 |
|
7 |
| -The latest release introduces a redesigned PDF report and a novel module able to perform a compliance analysis against five agency-issued technical guidelines: |
| 7 | +The latest release introduces a redesigned PDF report and a novel module able to perform compliance analyses against five agency-issued technical guidelines: |
8 | 8 | - **AgID** [ver.2020-01](https://cert-agid.gov.it/wp-content/uploads/2020/11/AgID-RACCSECTLS-01.pdf)
|
9 | 9 | - **ANSSI** [v1.2](https://cyber.gouv.fr/sites/default/files/2017/07/anssi-guide-recommandations_de_securite_relatives_a_tls-v1.2.pdf)
|
10 | 10 | - **BSI** [TR-02102-2](https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-2.html) and [TR-03116-4](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.html)
|
11 | 11 | - **Mozilla** [v5.7](https://wiki.mozilla.org/Security/Server_Side_TLS)
|
12 | 12 | - **NIST** [SP 800-52 Rev. 2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf) (and related)
|
13 | 13 |
|
14 |
| - |
15 |
| -TODO*Vulnerability analysis report* |
16 | 14 |
|
17 |
| - |
18 |
| -TODO*Compliance analysis report* |
19 |
| - |
20 |
| -## TODOFeatures |
| 15 | +## Features |
21 | 16 | <details>
|
22 | 17 |
|
23 | 18 | <summary>Vulnerability analysis</summary>
|
24 |
| -TODO |
| 19 | + |
| 20 | + |
| 21 | +*Vulnerability analysis report* |
| 22 | + |
| 23 | +TLSAssistant is capable of identifying a wide range of TLS vulnerabilities and generating actionable reports that can assist the system administrators in correctly and easily fixing their configurations. |
| 24 | + |
| 25 | +The list of detectable issues is: |
| 26 | +- Android applications |
| 27 | + - Accepting all SSL Certificates |
| 28 | + - Certificate or KeyStore Disclosure |
| 29 | + - Weak HostnameVerifier |
| 30 | + - Obfuscated Code |
| 31 | + - SSL GetInsecure Method |
| 32 | + - SSL Error |
| 33 | + - Weak TrustManager |
| 34 | + - Weak Algorithms |
| 35 | + - WebView has SSL Errors |
| 36 | +- Webservers |
| 37 | + - 3SHAKE |
| 38 | + - ALPACA |
| 39 | + - BEAST |
| 40 | + - BREACH |
| 41 | + - CCS Injection |
| 42 | + - Certificate Transparency |
| 43 | + - CRIME |
| 44 | + - DROWN |
| 45 | + - FREAK |
| 46 | + - Heartbleed |
| 47 | + - HSTS preloading |
| 48 | + - HSTS set |
| 49 | + - HTTPS enforced |
| 50 | + - LOGJAM |
| 51 | + - LUCKY13 |
| 52 | + - BAR MITZVAH |
| 53 | + - RC4 NOMORE |
| 54 | + - Perfect Forward Secrecy |
| 55 | + - POODLE |
| 56 | + - RACCOON |
| 57 | + - SSL RENEGOTIATION |
| 58 | + - ROBOT |
| 59 | + - SLOTH |
| 60 | + - SWEET32 |
| 61 | + - TICKETBLEED |
| 62 | + |
25 | 63 | </details>
|
26 | 64 | <details>
|
27 | 65 |
|
28 | 66 | <summary>Compliance analysis</summary>
|
29 |
| -⚠`Disclaimer`⚠ AAAAAAAAAAAAAA v2 is currently under development, it can be used to preview the newest features but, for everyday use, we suggest to download the latest [stable](https://github.com/stfbk/tlsassistant/releases) release. |
| 67 | + |
| 68 | + |
| 69 | +*Compliance analysis report* |
| 70 | + |
| 71 | +TLSAssistant is able to perform an automated compliance analysis against fivefive agency-issued technical guidelines: |
| 72 | +- **AgID** [ver.2020-01](https://cert-agid.gov.it/wp-content/uploads/2020/11/AgID-RACCSECTLS-01.pdf) |
| 73 | +- **ANSSI** [v1.2](https://cyber.gouv.fr/sites/default/files/2017/07/anssi-guide-recommandations_de_securite_relatives_a_tls-v1.2.pdf) |
| 74 | +- **BSI** [TR-02102-2](https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-2.html) and [TR-03116-4](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.html) |
| 75 | +- **Mozilla** [v5.7](https://wiki.mozilla.org/Security/Server_Side_TLS) |
| 76 | +- **NIST** [SP 800-52 Rev. 2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf) (and related) |
| 77 | + |
| 78 | +It supports the following use-cases: |
| 79 | +- **compare-to-one** - compare an already existing configuration against a single guideline. The output consists of a report that highlights the differences between the current and the target configuration and guides the system administrator towards closing the gap; |
| 80 | +- **compare-to-many** - similar to the *compare-to-one* but considering multiple guidelines; |
| 81 | +- **generate-after-one** - generate a working configuration compliant with a single guideline, taking into account any additional narrowing set by the user; |
| 82 | +- **generate-after-many** - similar to the *generate-after-one* but considering multiple guidelines. |
| 83 | + |
30 | 84 | </details>
|
31 | 85 |
|
32 | 86 | ## Download
|
33 | 87 |
|
34 | 88 | ### One Liner
|
35 | 89 | To install the tool (in a virtual environment), execute the following command:
|
36 | 90 | ```bash
|
37 |
| - sudo apt update && sudo apt install git python3-dev python3-pip python3-venv -y && git clone https://github.com/stfbk/tlsassistant.git && cd tlsassistant && python3 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && python3 install.py -v |
| 91 | +sudo apt update && sudo apt install git python3-dev python3-pip python3-venv -y && git clone https://github.com/stfbk/tlsassistant.git && cd tlsassistant && python3 -m venv venv && source venv/bin/activate && pip3 install -r requirements.txt && python3 install.py -v |
38 | 92 | ```
|
39 | 93 | ---
|
40 | 94 | ### Step by Step
|
@@ -78,7 +132,7 @@ git clone https://github.com/stfbk/tlsassistant.git && cd tlsassistant
|
78 | 132 |
|
79 | 133 | ### Docker
|
80 | 134 |
|
81 |
| -Recommended for non-ubuntu users: |
| 135 | +Recommended for non-Ubuntu users: |
82 | 136 |
|
83 | 137 | Since it does use APT and install dependencies, we can use the Dockerfile to build the image and contain the installation process.
|
84 | 138 |
|
@@ -115,11 +169,12 @@ python3 run.py -h
|
115 | 169 | ```
|
116 | 170 | <details>
|
117 | 171 |
|
118 |
| -<summary>TODO Show raw output</summary> |
| 172 | +<summary>Show raw output</summary> |
119 | 173 |
|
120 | 174 | ```
|
121 |
| -usage: TLSAssistant [-h] [--version] [-v] [--openssl OPENSSL | --ignore-openssl] [-ot {pdf,html}] [-o OUTPUT] [--group-by {host,module}] (-s SERVER | -f FILE | -d DOMAIN_FILE | -l [LIST] | -a APK) |
122 |
| - [--apply-fix [APPLY_FIX]] [-c CONFIGURATION | -m CONFIGURATION [CONFIGURATION ...]] [-e EXCLUDE [EXCLUDE ...]] |
| 175 | +usage: TLSAssistant [-h] [--version] [-v] [--openssl OPENSSL | --ignore-openssl] [-ot {pdf,html}] [-o OUTPUT] [--group-by {host,module}] (-s SERVER | -f FILE | -d DOMAIN_FILE | -l [LIST] | -a APK) [--apply-fix [APPLY_FIX]] |
| 176 | + [-c CONFIGURATION | -m CONFIGURATION [CONFIGURATION ...]] [-e EXCLUDE [EXCLUDE ...]] [--stix] [--webhook [WEBHOOK]] [--prometheus [PROMETHEUS]] [--config_type {apache,nginx,auto}] [--guidelines COMPLIANCE_ARGS] |
| 177 | + [--apache] [--security COMPLIANCE_ARGS] [--output_config COMPLIANCE_ARGS] [--certificate_index COMPLIANCE_ARGS] [--custom_guidelines COMPLIANCE_ARGS] [--use_cache] [--clean] [--no_psk] |
123 | 178 |
|
124 | 179 | TLSAssistant Help
|
125 | 180 |
|
@@ -151,17 +206,38 @@ optional arguments:
|
151 | 206 | Apply fix in the current configuration.
|
152 | 207 | Give a path if using -s.
|
153 | 208 | i.e.
|
154 |
| - python3 run.py -s fbk.eu --apply-fix myconf.conf |
| 209 | + python3 run.py -s fbk.eu --apply-fix myconf.conf |
155 | 210 | -c CONFIGURATION, --conf CONFIGURATION, --configuration CONFIGURATION
|
156 | 211 | Configuration path.
|
157 | 212 | -m CONFIGURATION [CONFIGURATION ...], --modules CONFIGURATION [CONFIGURATION ...]
|
158 | 213 | List of modules to run
|
159 | 214 | For example
|
160 |
| - -m breach crime freak |
| 215 | + -m breach crime freak |
161 | 216 | -e EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
|
162 | 217 | List of modules to exclude
|
163 | 218 | For example
|
164 |
| - -e breach crime |
| 219 | + -e breach crime |
| 220 | + --stix Generate STIX2 compliant output. |
| 221 | + --webhook [WEBHOOK] Add a webhook url to send the results. |
| 222 | + --prometheus [PROMETHEUS] |
| 223 | + Generate the prometheus output in a default path or in the specified path. |
| 224 | + --config_type {apache,nginx,auto} |
| 225 | + Define the type of configuration to analyze. |
| 226 | + --guidelines COMPLIANCE_ARGS |
| 227 | + A string containing the names of the guidelines that should be checked in the form: guideline_version1_version2 in the case of multiple guidelines they should be comma separated. Use "list" for a list of valid strings and "aliases" for a list of aliases. |
| 228 | + --apache Default to False. If True the output configuration will have apache syntax, if false nginx will be used. |
| 229 | + --security COMPLIANCE_ARGS |
| 230 | + Default to True. If False the legacy level priority will be used |
| 231 | + --output_config COMPLIANCE_ARGS |
| 232 | + Where to save the output configuration file, only needed for generate one/many |
| 233 | + --certificate_index COMPLIANCE_ARGS |
| 234 | + The index of the certificate to use for the analysis, only needed if the website has multiple certificates.Default to 1 (first certificate). |
| 235 | + --custom_guidelines COMPLIANCE_ARGS |
| 236 | + A path to a custom guideline file, only needed if the user wants to use a custom guideline. |
| 237 | + --use_cache Default to False. If True the program will use the cached testssl analysis, if False the cache will be ignored. |
| 238 | + --clean Default to False. If True the program will remove the cached testssl analysis for this host. |
| 239 | + --no_psk Default to False. If True the program will not consider PSK ciphersuites during analysis. |
| 240 | +
|
165 | 241 | ```
|
166 | 242 | </details>
|
167 | 243 |
|
@@ -251,7 +327,17 @@ we execute:
|
251 | 327 | python3 run.py -d domains_list.log
|
252 | 328 | ```
|
253 | 329 |
|
254 |
| -- TODO Analyze AAAAAAAAAAAAAAAAAAAAA |
| 330 | +- Check the **compliance** of an existing deployment against AgID TLS guidelines |
| 331 | + |
| 332 | +```bash |
| 333 | +python3 run.py -m compare_one --guidelines agid -s www.example.com --ignore-openssl |
| 334 | +``` |
| 335 | + |
| 336 | +- Generate a new configuration, already **compliant** with NIST guidelines |
| 337 | + |
| 338 | +```bash |
| 339 | +python3 run.py -m generate_one --guidelines nist --output_conf compliant_config.conf --openssl-version 3.0.2 -s placeholder |
| 340 | +``` |
255 | 341 |
|
256 | 342 | </details>
|
257 | 343 |
|
@@ -336,8 +422,8 @@ We perform a Single Host analysis on each one of the domains specified in an inp
|
336 | 422 | ### TLS Configuration and Fixes
|
337 | 423 | If a configuration file is provided, a WhiteBox analysis is performed by loading the TLS configuration into memory and performing a complete check of all available modules (Step 3b). Otherwise, if a configuration file is provided along with a valid hostname, a singlehost analysis is performed and then the fixes are integrated in the provided TLS configuration. We refer to this analysis as Hybrid: we perform a BlackBox analysis on the hostname and then we apply the fixes on the configuration file.
|
338 | 424 |
|
339 |
| -## TODOHow to contribute |
340 |
| -Please read the related Wiki page |
| 425 | +## How to contribute |
| 426 | +Please refer to the related [Wiki](https://github.com/stfbk/tlsassistant/wiki) page. |
341 | 427 |
|
342 | 428 | ## External/related projects
|
343 | 429 |
|
@@ -368,4 +454,3 @@ limitations under the License.
|
368 | 454 |
|
369 | 455 | Developed within the [Security & Trust](https://st.fbk.eu/) research unit, part of the [Center for Cybersecurity](https://cs.fbk.eu/) at [Fondazione Bruno Kessler](https://www.fbk.eu/en/) (Italy)
|
370 | 456 |
|
371 |
| - |
|
0 commit comments