Skip to content

Commit c9e191d

Browse files
committed
Merge remote-tracking branch 'stfbk/compliance' into develop
2 parents f9ca39c + a137437 commit c9e191d

File tree

3 files changed

+107
-22
lines changed

3 files changed

+107
-22
lines changed

README.md

Lines changed: 107 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,93 @@
22

33
# TLSAssistant v3
44

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/).
66

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:
88
- **AgID** [ver.2020-01](https://cert-agid.gov.it/wp-content/uploads/2020/11/AgID-RACCSECTLS-01.pdf)
99
- **ANSSI** [v1.2](https://cyber.gouv.fr/sites/default/files/2017/07/anssi-guide-recommandations_de_securite_relatives_a_tls-v1.2.pdf)
1010
- **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)
1111
- **Mozilla** [v5.7](https://wiki.mozilla.org/Security/Server_Side_TLS)
1212
- **NIST** [SP 800-52 Rev. 2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf) (and related)
1313

14-
![report](assets/report_vuln.png)
15-
TODO*Vulnerability analysis report*
1614

17-
![report](assets/report_compliance.png)
18-
TODO*Compliance analysis report*
19-
20-
## TODOFeatures
15+
## Features
2116
<details>
2217

2318
<summary>Vulnerability analysis</summary>
24-
TODO
19+
20+
![vulnerability_report](assets/report_vuln.png)
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+
2563
</details>
2664
<details>
2765

2866
<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+
![compliance_report](assets/report_compliance.png)
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+
3084
</details>
3185

3286
## Download
3387

3488
### One Liner
3589
To install the tool (in a virtual environment), execute the following command:
3690
```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
3892
```
3993
---
4094
### Step by Step
@@ -78,7 +132,7 @@ git clone https://github.com/stfbk/tlsassistant.git && cd tlsassistant
78132

79133
### Docker
80134

81-
Recommended for non-ubuntu users:
135+
Recommended for non-Ubuntu users:
82136

83137
Since it does use APT and install dependencies, we can use the Dockerfile to build the image and contain the installation process.
84138

@@ -115,11 +169,12 @@ python3 run.py -h
115169
```
116170
<details>
117171

118-
<summary>TODO Show raw output</summary>
172+
<summary>Show raw output</summary>
119173

120174
```
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]
123178
124179
TLSAssistant Help
125180
@@ -151,17 +206,38 @@ optional arguments:
151206
Apply fix in the current configuration.
152207
Give a path if using -s.
153208
i.e.
154-
python3 run.py -s fbk.eu --apply-fix myconf.conf
209+
python3 run.py -s fbk.eu --apply-fix myconf.conf
155210
-c CONFIGURATION, --conf CONFIGURATION, --configuration CONFIGURATION
156211
Configuration path.
157212
-m CONFIGURATION [CONFIGURATION ...], --modules CONFIGURATION [CONFIGURATION ...]
158213
List of modules to run
159214
For example
160-
-m breach crime freak
215+
-m breach crime freak
161216
-e EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
162217
List of modules to exclude
163218
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+
165241
```
166242
</details>
167243

@@ -251,7 +327,17 @@ we execute:
251327
python3 run.py -d domains_list.log
252328
```
253329

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+
```
255341

256342
</details>
257343

@@ -336,8 +422,8 @@ We perform a Single Host analysis on each one of the domains specified in an inp
336422
### TLS Configuration and Fixes
337423
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.
338424

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.
341427

342428
## External/related projects
343429

@@ -368,4 +454,3 @@ limitations under the License.
368454

369455
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)
370456

371-

assets/report_compliance.png

-99.4 KB
Loading

assets/report_vuln.png

-174 KB
Loading

0 commit comments

Comments
 (0)