Skip to content
This repository was archived by the owner on Oct 14, 2020. It is now read-only.

Commit 455cb9d

Browse files
committed
Add sslyze scanner
1 parent 79a7008 commit 455cb9d

File tree

12 files changed

+8346
-0
lines changed

12 files changed

+8346
-0
lines changed

.github/workflows/ci.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,14 @@ jobs:
121121
repository: scbexperimental/parser-ssh-scan
122122
path: ./integrations/ssh_scan/parser/
123123
tag_with_ref: true
124+
- uses: docker/build-push-action@v1
125+
name: "Build & Push SSLyze Parser Image"
126+
with:
127+
username: ${{ secrets.DOCKER_USERNAME }}
128+
password: ${{ secrets.DOCKER_PASSWORD }}
129+
repository: scbexperimental/parser-sslyze
130+
path: ./integrations/sslyze/parser/
131+
tag_with_ref: true
124132
- uses: docker/build-push-action@v1
125133
name: "Build & Push OWASP Zap Parser Image"
126134
with:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules/
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM node:12-alpine as build
2+
RUN mkdir -p /home/app
3+
WORKDIR /home/app
4+
COPY package.json package-lock.json ./
5+
RUN npm ci --production
6+
7+
FROM scbexperimental/parser-sdk-nodejs:latest
8+
WORKDIR /home/app/parser-wrapper/parser/
9+
COPY --from=build --chown=app:app /home/app/node_modules/ ./node_modules/
10+
COPY --chown=app:app ./parser.js ./parser.js
Lines changed: 295 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`parses badssl.com result file correctly 1`] = `
4+
Array [
5+
Object {
6+
"attributes": Object {
7+
"error": "certificate has expired",
8+
"trust_store": "Android (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/google_aosp.pem)",
9+
},
10+
"category": "Certificate info",
11+
"description": "At least one chain certificate is not trusted using the supplied trust store Android. Validation result: certificate has expired",
12+
"hint": null,
13+
"location": "https://expired.badssl.com:443",
14+
"name": "Certificate is not trusted",
15+
"osi_layer": "PRESENTATION",
16+
"reference": null,
17+
"severity": "MEDIUM",
18+
},
19+
Object {
20+
"attributes": Object {
21+
"error": "certificate has expired",
22+
"trust_store": "APPLE (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/apple.pem)",
23+
},
24+
"category": "Certificate info",
25+
"description": "At least one chain certificate is not trusted using the supplied trust store APPLE. Validation result: certificate has expired",
26+
"hint": null,
27+
"location": "https://expired.badssl.com:443",
28+
"name": "Certificate is not trusted",
29+
"osi_layer": "PRESENTATION",
30+
"reference": null,
31+
"severity": "MEDIUM",
32+
},
33+
Object {
34+
"attributes": Object {
35+
"error": "certificate has expired",
36+
"trust_store": "Java (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/oracle_java.pem)",
37+
},
38+
"category": "Certificate info",
39+
"description": "At least one chain certificate is not trusted using the supplied trust store Java. Validation result: certificate has expired",
40+
"hint": null,
41+
"location": "https://expired.badssl.com:443",
42+
"name": "Certificate is not trusted",
43+
"osi_layer": "PRESENTATION",
44+
"reference": null,
45+
"severity": "MEDIUM",
46+
},
47+
Object {
48+
"attributes": Object {
49+
"error": "certificate has expired",
50+
"trust_store": "Mozilla (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/mozilla_nss.pem)",
51+
},
52+
"category": "Certificate info",
53+
"description": "At least one chain certificate is not trusted using the supplied trust store Mozilla. Validation result: certificate has expired",
54+
"hint": null,
55+
"location": "https://expired.badssl.com:443",
56+
"name": "Certificate is not trusted",
57+
"osi_layer": "PRESENTATION",
58+
"reference": null,
59+
"severity": "MEDIUM",
60+
},
61+
Object {
62+
"attributes": Object {
63+
"error": "certificate has expired",
64+
"trust_store": "OPENJDK (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/openjdk.pem)",
65+
},
66+
"category": "Certificate info",
67+
"description": "At least one chain certificate is not trusted using the supplied trust store OPENJDK. Validation result: certificate has expired",
68+
"hint": null,
69+
"location": "https://expired.badssl.com:443",
70+
"name": "Certificate is not trusted",
71+
"osi_layer": "PRESENTATION",
72+
"reference": null,
73+
"severity": "MEDIUM",
74+
},
75+
Object {
76+
"attributes": Object {
77+
"error": "certificate has expired",
78+
"trust_store": "Windows (/usr/local/lib/python2.7/site-packages/sslyze/plugins/utils/trust_store/pem_files/microsoft_windows.pem)",
79+
},
80+
"category": "Certificate info",
81+
"description": "At least one chain certificate is not trusted using the supplied trust store Windows. Validation result: certificate has expired",
82+
"hint": null,
83+
"location": "https://expired.badssl.com:443",
84+
"name": "Certificate is not trusted",
85+
"osi_layer": "PRESENTATION",
86+
"reference": null,
87+
"severity": "MEDIUM",
88+
},
89+
Object {
90+
"attributes": Object {},
91+
"category": "Certificate info",
92+
"description": "Leaf certificate does not support OCSP Must-Staple extension as defined in RFC 6066.",
93+
"hint": null,
94+
"location": "https://expired.badssl.com:443",
95+
"name": "Must-Staple unsupported",
96+
"osi_layer": "PRESENTATION",
97+
"reference": null,
98+
"severity": "INFORMATIONAL",
99+
},
100+
Object {
101+
"attributes": Object {},
102+
"category": "Certificate info",
103+
"description": "The chain order sent by the server is invalid.",
104+
"hint": null,
105+
"location": "https://expired.badssl.com:443",
106+
"name": "Chain order invalid",
107+
"osi_layer": "PRESENTATION",
108+
"reference": null,
109+
"severity": "LOW",
110+
},
111+
Object {
112+
"attributes": Object {},
113+
"category": "Certificate info",
114+
"description": "The certificate has not been validated by the certificate authority according to the standardized set of requirements set out in the CA/Browser Forum Extended Validation Certificate Guidelines. (https://wiki.mozilla.org/EV)",
115+
"hint": null,
116+
"location": "https://expired.badssl.com:443",
117+
"name": "No extended validation certificate",
118+
"osi_layer": "PRESENTATION",
119+
"reference": null,
120+
"severity": "INFORMATIONAL",
121+
},
122+
Object {
123+
"attributes": Object {},
124+
"category": "Certificate info",
125+
"description": "The server did not send an OCSP response.",
126+
"hint": null,
127+
"location": "https://expired.badssl.com:443",
128+
"name": "No OCSP response",
129+
"osi_layer": "PRESENTATION",
130+
"reference": null,
131+
"severity": "INFORMATIONAL",
132+
},
133+
Object {
134+
"attributes": Object {},
135+
"category": "Resumption",
136+
"description": "The server supports session resumption through ticket encapsulation.",
137+
"hint": null,
138+
"location": "https://expired.badssl.com:443",
139+
"name": "Ticket resumption supported",
140+
"osi_layer": "PRESENTATION",
141+
"reference": null,
142+
"severity": "INFORMATIONAL",
143+
},
144+
Object {
145+
"attributes": Object {
146+
"error": null,
147+
},
148+
"category": "Resumption",
149+
"description": "At least one session resumption failed.",
150+
"hint": null,
151+
"location": "https://expired.badssl.com:443",
152+
"name": "Session resumption failed",
153+
"osi_layer": "PRESENTATION",
154+
"reference": null,
155+
"severity": "LOW",
156+
},
157+
Object {
158+
"attributes": Object {},
159+
"category": "TLSv1",
160+
"description": "The server supports at least one cipher suite using the TLSv1 protocol.",
161+
"hint": null,
162+
"location": "https://expired.badssl.com:443",
163+
"name": "TLSv1 supported",
164+
"osi_layer": "PRESENTATION",
165+
"reference": null,
166+
"severity": "LOW",
167+
},
168+
Object {
169+
"attributes": Object {},
170+
"category": "TLSv1.1",
171+
"description": "The server supports at least one cipher suite using the TLSv1.1 protocol.",
172+
"hint": null,
173+
"location": "https://expired.badssl.com:443",
174+
"name": "TLSv1.1 supported",
175+
"osi_layer": "PRESENTATION",
176+
"reference": null,
177+
"severity": "INFORMATIONAL",
178+
},
179+
Object {
180+
"attributes": Object {},
181+
"category": "TLSv1.2",
182+
"description": "The server supports at least one cipher suite using the TLSv1.2 protocol.",
183+
"hint": null,
184+
"location": "https://expired.badssl.com:443",
185+
"name": "TLSv1.2 supported",
186+
"osi_layer": "PRESENTATION",
187+
"reference": null,
188+
"severity": "INFORMATIONAL",
189+
},
190+
]
191+
`;
192+
193+
exports[`parses securecodebox.io result file correctly 1`] = `
194+
Array [
195+
Object {
196+
"attributes": Object {},
197+
"category": "Certificate info",
198+
"description": "Leaf certificate does not support OCSP Must-Staple extension as defined in RFC 6066.",
199+
"hint": null,
200+
"location": "https://securecodebox.io:443",
201+
"name": "Must-Staple unsupported",
202+
"osi_layer": "PRESENTATION",
203+
"reference": null,
204+
"severity": "INFORMATIONAL",
205+
},
206+
Object {
207+
"attributes": Object {},
208+
"category": "Certificate info",
209+
"description": "The chain order sent by the server is invalid.",
210+
"hint": null,
211+
"location": "https://securecodebox.io:443",
212+
"name": "Chain order invalid",
213+
"osi_layer": "PRESENTATION",
214+
"reference": null,
215+
"severity": "LOW",
216+
},
217+
Object {
218+
"attributes": Object {},
219+
"category": "Certificate info",
220+
"description": "The certificate has not been validated by the certificate authority according to the standardized set of requirements set out in the CA/Browser Forum Extended Validation Certificate Guidelines. (https://wiki.mozilla.org/EV)",
221+
"hint": null,
222+
"location": "https://securecodebox.io:443",
223+
"name": "No extended validation certificate",
224+
"osi_layer": "PRESENTATION",
225+
"reference": null,
226+
"severity": "INFORMATIONAL",
227+
},
228+
Object {
229+
"attributes": Object {},
230+
"category": "Certificate info",
231+
"description": "The server sent an OCSP response which is not trusted using the Mozilla trust store.",
232+
"hint": null,
233+
"location": "https://securecodebox.io:443",
234+
"name": "OCSP response not trusted",
235+
"osi_layer": "PRESENTATION",
236+
"reference": null,
237+
"severity": "MEDIUM",
238+
},
239+
Object {
240+
"attributes": Object {},
241+
"category": "Resumption",
242+
"description": "The server supports session resumption through ticket encapsulation.",
243+
"hint": null,
244+
"location": "https://securecodebox.io:443",
245+
"name": "Ticket resumption supported",
246+
"osi_layer": "PRESENTATION",
247+
"reference": null,
248+
"severity": "INFORMATIONAL",
249+
},
250+
Object {
251+
"attributes": Object {},
252+
"category": "Resumption",
253+
"description": "At least one session resumption succeeded.",
254+
"hint": null,
255+
"location": "https://securecodebox.io:443",
256+
"name": "Session resumption succeeded",
257+
"osi_layer": "PRESENTATION",
258+
"reference": null,
259+
"severity": "INFORMATIONAL",
260+
},
261+
Object {
262+
"attributes": Object {},
263+
"category": "TLSv1",
264+
"description": "The server supports at least one cipher suite using the TLSv1 protocol.",
265+
"hint": null,
266+
"location": "https://securecodebox.io:443",
267+
"name": "TLSv1 supported",
268+
"osi_layer": "PRESENTATION",
269+
"reference": null,
270+
"severity": "LOW",
271+
},
272+
Object {
273+
"attributes": Object {},
274+
"category": "TLSv1.1",
275+
"description": "The server supports at least one cipher suite using the TLSv1.1 protocol.",
276+
"hint": null,
277+
"location": "https://securecodebox.io:443",
278+
"name": "TLSv1.1 supported",
279+
"osi_layer": "PRESENTATION",
280+
"reference": null,
281+
"severity": "INFORMATIONAL",
282+
},
283+
Object {
284+
"attributes": Object {},
285+
"category": "TLSv1.2",
286+
"description": "The server supports at least one cipher suite using the TLSv1.2 protocol.",
287+
"hint": null,
288+
"location": "https://securecodebox.io:443",
289+
"name": "TLSv1.2 supported",
290+
"osi_layer": "PRESENTATION",
291+
"reference": null,
292+
"severity": "INFORMATIONAL",
293+
},
294+
]
295+
`;

0 commit comments

Comments
 (0)