SafeStack is an exploit mitigation technique that creates two stacks: one for data that needs to be kept safe, such as return addresses and function pointers; and an unsafe stack for everything else. SafeStack promises a low performance penalty (typically around 0.1%).
SafeStack requires both ASLR and W^X in order to be effective. With HardenedBSD satisfying both of those prerequisites, SafeStack was deemed to be an excellent candidate for default inclusion in HardenedBSD. Starting with HardenedBSD 12-CURRENT, it is enabled by default for amd64. Support for non-amd64 architectures is limited by upstream clang.
As of 28 November 2016, with clang 3.9.0, SafeStack only supports being applied to applications and not shared libraries. Multiple patches have been submitted to clang by third parties to add support for shared libraries. As such, SafeStack is still undergoing active development.
SafeStack has been made available to the HardenedBSD ports tree as well. Unlike PIE and RELRO+BIND_NOW, it is not enabled globally for the ports tree. Some ports, like ports-mgmt/pkg have SafeStack enabled by default. Only those ports that have been tested to work fine will have SafeStack enabled by default. Users are able to toggle SafeStack by using the config target. Additionally, the SafeStack option is only applicable to amd64 architectures. Attempting to enable SafeStack for a non-amd64 port build will result in a NO-OP. SafeStack will simply not be applied.
Here's some good weekend reading for you if you'd like more info about SafeStack and CFI/CPI in general:
The first full version of VulnTrack has been released, providing the full implementation of the base functionality and several interface and functionality enhancements. For those that haven't had a chance to check out the Alpha or Beta releases, VulnTrack provides monitoring and alerting of security vulnerabilities and exploits based on a provided rule set. VulnTrack uses the rules you enter into the config file and regularly checks NIST and Exploit-DB data for matched vulnerabilities/exploits. This is especially useful for alerting on vulnerabilities that don't fall into your typical patch management system (Web Applications, Network devices, etc) or for profiling a target network to be notified when a vulnerability or exploit becomes public. As always, any feedback or feature requests are greatly appreciated.
Head over to SX Labs and download a copy - https://www.soldierx.com/sxlabs/VulnTrack
A Look Back on 2016
As 2016 is coming to a close, I'd like to reflect about what we've accomplished in HardenedBSD. A whole lot of work has been done and we still have a lot of work ahead of us.
Just a heads up to all of our faithful readers, we are getting a new web server installed this weekend. The results will be a much faster user experience, with foundations laid for a site overhaul when the crew is ready. The downside is that there will be some downtime this weekend. Just wanted to give everybody a heads up, as I'm sure at least one lamer out there will claim to have DDoS'd us offline. Everything should be up and running no later than Monday, August 29th, 2016. While we're still online, you should check out new tutorials by r3q13m - our latest crew member of SX.
Congratulations to r3q13m for being promoted to the rank of SoldierX crew for his hard work; on the software projects RAPTORRDP,Mirage Disk Image and his tutorial "Software as a Service (SAAS) demystified from a programming perspective." His enthusiasm is an encouragement, and we await to see more great feats. Again, congrats well deserved!
Up to this point, we have encouraged people to create their own ISOs and thumbdrives to run OFACE. After revisiting this topic though, I have decided to release a proof of concept ISO with the current version of OFACE. Please note that I am in the midst of looking at making OFACE itself more powerful so this is nowhere near finalized yet and that this release is for VIP only. All details along with a download link are available via its SX Labs entry for those who are interested.