-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider to add descriptive field in JSON #966
Comments
Thanks Alex for the lengthy description of suggestions. I am not sure I want to follow this by 100% but some suggestions make sense. There's (little) overlap with #830. The convincing thing argument was the colon: There shouldn't be a need to add in All of them are breaking changes though which doesn't leave much room changing if back and forth. Detailed comments will follow later. |
@drwetter thanks for you answer. I am looking forward to see what you will decide to do. A last thing that I noticed and forgot to mention in my first post is that currently ALL the vulnerabilities tested by Is that a bug or just the expected behavior? Regards, |
Browser Exploit Against SSL/TLS |
@bao7uo you missed my point. My point was that even if not relevant to the service it should still be listed as not-vulnerable in my opinion, so there is a consitent number of entries within the |
no, i agree with you that consistency is better. i just thought that may explain the inconsistency, undesirable though it may be :) |
What I could think of is adding e.g. BEAST for services != HTTP and add N/A as a finding. Don't know yet whether I would like that. There some occasions where the checks being run depend on the service detected, see client handshake != HTTP or SPDY and ALPN for non-HTTP services. I consider this similar to nmap's scripting engine: If you supply |
I am thinking about it for the not-so-close-future but I am not sure I like the blanks or too long ids. Last but not least it's a machine readable format. I still believe though humans should be able to read it but probably that goes too far.
Nah, acronyms have to be in caps. But if you put everything in caps it's like yelling
Don't know what kind of JSON parser you are using. The ones I know should be able to deal with that. This would feel completely wrong if just for this sake I would give the second logjam check a name which doesn't contain the id of the first check.
OK is one of the eight severity levels and won't change.
That was anyway on my list and has been addressed, see #970 .
verbosity in explanation should be limited by it's purpose. Again: JSON is a machine parseable out out. I still believe humans should be able to read it but not more. Therefore you need to have a look at the HTML or LOG output. Remediation is another issue here. There were once suggestions but the project is difficult and is stale.
It should be more consistent now (see branch referred by #970). I settled on the version with caps (acronym) and with underscore, the latter is subject to one night sleep over it.
That would require another field in |
I think you covered everything important in #970 |
@drwetter thanks for your quick reply. Glad to see you have addressed some point. Regarding this point:
Why not adding an additional field, such as Anyway thanks for your time. Regards, |
Thanks for the feedback, Alex. Will consider it and changed the title accordingly. |
Hi,
I am working a lot with
testssl
prettyJSON outputs, actually I made a script to parse the output and automatically generate Excel spreadsheets from the prettyJSON outputs (see https://github.com/AresS31/testssl2xlsx).When developing that script I had to handle a few things that I think should be handled by
testssl
.The following are my improvement suggestions:
Unique and more explicit


ids
forcipherTests
objects. Instead ofsecure_renego
useSecure Renegotiation
for example, and allids
should be consistent, either all in lowercase or all in uppercase (even for acronyms). Alsoids
should not be too similar to each others because as you can see on the following screenshots, there are 2 objects with the sameid
ofdrown
;logjam
andLOGJAM_common primes
both contain the string/sub-stringlogjam
from a coding point of view this create the need to add additional checks and line of codes to ensure that the right object is being processed.Instead of using the value
OK
as severity when the host:port is not vulnerable instead useNOT VULNERABLE
to add more clarity and avoid any confusion.For the

finding
field here too adding more consistency, see the following screenshot, forlucky13
the finding does not start withlucky13
whereas forrc4
it starts withRC4: not
. So more consistency and maybe more verbose in the explanation, something that could directly be used as a remediation.For the
protocols
section theids
for the protocols should be more consistent as well like we have gotsslv2
,sslv3
but thentls1
,tls1_1
why not replacing them bytlsv1.0
,tlsv1.1
, etc.Adding an additional field to the
protocols
section, it could beenabled: YES
andenabled: NO
oroffered: YES
andoffered: NO
so we could programmatically just test the value of this JSON field to determine if a protocol is being offered rather than working out if thefinding
field contains the stringnot offered
.This are my suggestions they are all relevant to my case but it is up to you if you judge them relevant for a wider use.
Great job!
Alex
The text was updated successfully, but these errors were encountered: