Skip to content
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

First impression checksec-go #252

Open
teoberi opened this issue Jun 19, 2024 · 5 comments
Open

First impression checksec-go #252

teoberi opened this issue Jun 19, 2024 · 5 comments

Comments

@teoberi
Copy link
Contributor

teoberi commented Jun 19, 2024

There are small differences in the options, for example:
./checksec --file=/usr/bin/ssh
vs
./main file /usr/bin/ssh
The variant for Golang seems to me not very intuitive, that is:

  1. missing "--" or at least "-" for options;
  2. missing "=" between the option and the path to the file.

Is ASCII Art Generator for checksec a bit too big?

checksec

RELRO and FORTIFY still differ between the two versions. I only checked for /usr/bin/ssh

@slimm609
Copy link
Owner

This is a difference between using cobra as part of golang which makes several things much easier including shell completion so this will be a difference between the 2.

@slimm609
Copy link
Owner

slimm609 commented Jun 23, 2024

RELRO is partially broken at the moment (and listed in the README as broken) but FORTIFY should be pretty accurate. The count will be off a bit due to some difference in available functions but it should be more accurate. https://github.com/slimm609/checksec.sh/blob/main/pkg/checksec/fortify.go#L33. lists only functions that can actually be fortified. I have not backported this to the bash version since this is intended to replace it.

@slimm609
Copy link
Owner

RELRO is fixed in #253

@teoberi
Copy link
Contributor Author

teoberi commented Jun 24, 2024

I will test the changes!
You tried checksec ascii art in the combination of green writing on a black background? It looks more effective and inspires confidence.
checksec green
I compiled it statically with the command:
go build -tags osusergo,netgo main.go
but the file size is 6.8 M

@slimm609
Copy link
Owner

I changed the color to green in the latest MR. The file size will be larger because it is a static binary that doesn't require any external dependencies. This means it does need to include all libraries needed to perform the scans. However, today you need to install many more dependencies and requires bash, and multiple packages that are no longer needed with the golang release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants