aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README191
1 files changed, 189 insertions, 2 deletions
diff --git a/README b/README
index 0d8ffba..4e42bc5 100644
--- a/README
+++ b/README
@@ -15,7 +15,7 @@ This layer depends on:
prio: default
Adding the security layer to your build
-=================================================
+========================================
In order to use this layer, you need to make the build system aware of
it.
@@ -29,8 +29,195 @@ other layers needed. e.g.:
/path/to/yocto/meta \
/path/to/poky/meta-security \
+Contents and Help
+=================
+
+In this section the contents of the layer is listed, along with a short
+help for each package.
+
+ == bastille ==
+
+ Bastille is a system hardening / lockdown program which enhances the
+ security of a Unix host. It configures daemons, system settings and
+ firewalls to be more secure. It can shut off unneeded services
+ like rcp and rlogin, and helps create "chroot jails" that help limit the
+ vulnerability of common Internet services like Web services and DNS.
+
+ usage : Bastille can be used via meta-security layer only in command line mode.
+ To start Bastille simply write in a terminal :
+
+ bastille -c
+
+ If this is the first usage of Bastille on the system, the user will be
+ guided through a list of questions which need to be answered. In the end,
+ a config file will be created and run. After these steps, you will have a
+ hardened system.
+
+ If you only want to run the config file, without stepping through the
+ list of questions, simply write in a terminal :
+
+ bastille -b
+
+ More information can be found in the package readme and manual.
+
+
+ == redhat-security ==
+
+ Sometimes you want to check different aspects of a distribution for security problems.
+ This can be anything from file permissions to correctness of code. This is a collection of those tools.
+ Depending on what information the tool has to access, it may need to be run as root.
+
+ - rpm-chksec.sh : This will take an rpm name as input and verify each ELF file to see if its compiled with the intended flags
+ to most effectively use PIE and RELRO. Green is good, Orange could use work but is acceptable, and Red needs fixing.
+ It has a mode --all that is the equivalent of using rpm -qa and feeding the packages to it.
+ In this mode it will only give a summary result for the package. To find which files don't comply,
+ re-run using just the package name.
+
+ - find-nodrop-groups.sh : This will scan a whole file system to see if a program makes calls to change UID
+ and GID without also calling setgroups or initgroups.
+
+ - rpm-drop-groups.sh : Same as above, but takes an rpm name instead.
+
+ - find-chroot.sh : This script scans the whole file system looking for ELF files that calls chroot(2) that also do not include a call to chdir.
+ Programs that fail to do this do not have the cwd inside the chroot. This means the app can escape the protection that was intended.
+
+ - find-chroot-py.sh : This test is like the one above except it examines python scripts for the same problem.
+
+ - find-execstack.sh : This program scans the whole file system for ELF programs that have marked the stack as being executable.
+ This means that if the program has another vulnerablity such as stack buffer overflow,
+ any code the attacker places there is executable. Any program found must be fixed.
+
+ - find-hidden-exec.sh : This program scans the whole file system looking for excutables that are hidden.
+ Anything found must be investigated since its highly unusual for executables to be hidden.
+
+ - find-sh4errors.sh : This program scans the whole file system looking for shell scripts.
+ It then does a sh -n on the script which causes bash to parse the file to see if there are any mistakes.
+
+ - selinux-check-devices.sh : This script checks the /dev directory to see if there are any devices that are not correctly labeled.
+ Anything found by this test should be reported so that selinux policy can be fixed.
+ This test is very hardware specific, so to be effective a lot of people with different hardware
+ should run this test each upstream kernel version release.
+
+ - selinux-ls-unconfined.sh : This script scans the running processes and looks for anything labeled with initrc_t or inetd.
+ These both mean that there are daemons that do not have policy and are therefore running unconfined.
+ These should be reported as SE Linux policy problems. Because it checks currently running daemons,
+ the more you have running, the better the test is.
+
+ - find-sh4tmp.sh : This script scans the whole filesystem to check if shell scripts are using well known tmp file names
+ instead of obscure ones created by something like mktemp.
+
+ - find-elf4tmp.sh : This script scans the whole file system for ELF files using /tmp. When it finds this,
+ it also looks to see if any of the known good random name generator functions is called by looking
+ at the symbol table. If not, it will output the string.
+
+ - lib-bin-check.sh : This will check all installed library packages to see if an application is also part of the package.
+ The relationship to security is that the SHA256 hash check will fail if a 32 bit version overwrites it.
+ Also, the less binaries on a system, the more secure it is by virtue of removing the chance for an exploitable bug.
+
+
+ usage : simply invoke the script name in the terminal.
+
+
+ == pax-utils ==
+
+ pax-utils is a small set of various PaX aware and related utilities for
+ ELF binaries.
+
+ - scanelf : With this application you can print out information specific to the ELF structure of a binary.
+ For more help please consult the man pages or the readme file.
+
+ - pspax : is a user-space utility that scans the proc directory and list
+ ELF types, as well as their respective PaX flags and filenames and
+ attributes. Depending on build options, it may additionaly display the
+ process running set of capabilities.
+
+ - scanmacho : is a user-space utility to quickly scan given
+ Mach-Os, directories, or common system paths for different information. This
+ may include Mach-O types, their install_names, etc.
+
+ - dumpelf : is a user-space utility to dump all of the internal
+ ELF structures into the equivalent C structures for fun debugging and/or
+ reference purposes.
+
+
+ usage : simply invoke the script name in the terminal.
+
+
+ == buck-security ==
+
+ Buck-Security is a security scanner for Debian and Ubuntu Linux. It runs a couple of important checks and helps you to harden your Linux
+ system. This enables you to quickly overview the security status of your Linux system.
+
+ usage : switch to directory /usr/local/buck-security.
+ before running the script, you should check the activated checks in conf/buck-security.conf file.
+ after altering the changes, save the file and simply run :
+
+ ./buck-security
+
+ you can choose between different outputs : 1, 2(default) or 3.
+
+ More detailed usage can be found typing ./buck-security --help
+
+
+ == libseccomp ==
+
+ The libseccomp library provides and easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism: seccomp.
+ The libseccomp API is designed to abstract away the underlying BPF based syscall filter language and present a more conventional
+ function-call based filtering interface that should be familiar to, and easily adopted by application developers.
+
+ usage : More detailed usage can be found in the man pages and README file of the package.
+
+
+
+ == checksecurity ==
+
+ checksecurity is a simple package which will scan your system for several simple security holes.
+ It uses a simple collection of plugins, all of which are shell scripts which are configured by environmental variables.
+
+ !! IMPORTANT !!
+
+ When including this package in the image, please consider adding the following line to the end of the conf/local.conf file:
+
+ CORE_IMAGE_EXTRA_INSTALL = "coreutils"
+
+ usage : To start checksecurity simply write in the terminal :
+
+ checksecurity
+
+ More detailed usage can be found in the man pages and README file of the package.
+
+
+ == nikto ==
+
+ Nikto is an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items,
+ including over 6500 potentially dangerous files/CGIs, checks for outdated versions of over 1250 servers, and version specific
+ problems on over 270 servers. It also checks for server configuration items such as the presence of multiple index files,
+ HTTP server options, and will attempt to identify installed web servers and software.
+
+ usage : To start nikto simply write in the terminal :
+
+ nikto
+
+ More detailed usage can be found in the man pages and README file of the package.
+
+
+ == nmap ==
+
+ Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.
+ Many systems and network administrators also find it useful for tasks such as network inventory,
+ managing service upgrade schedules, and monitoring host or service uptime.
+
+ usage : To start nikto simply write in the terminal :
+
+ nmap
+
+ More detailed usage can be found in the man pages and README file of the package.
+
+
+
+
License
--------
+=======
All metadata is MIT licensed unless otherwise stated. Source code included
in tree for individual recipes is under the LICENSE stated in each recipe