Free and Open Source Tools to Boost Your Code Security

Casper Henson
8 min readSep 28, 2020

--

In the security space, there are so many tools that help individuals, system administration and organizations to protect their systems and applications. Some of these tools are paid while some are free and open source.

Open source security is a crucial aspect that every developer or organization should pay attention to. Most of the tools in this list are open source, others are free tools that can help you with your open source projects.

As a company, you also don’t always need to spend a lot of money on procuring high-end security tools as the same functionalities can be replicated and achieved from open source security tools.

Open source or other free tools can serve as a standard for solid security and expand your knowledge in the security space.

In this guide, we’ll explore a list of popular tools to help boost your security.

WhiteSource Renovate — Automated Dependency Updates

When using open source components and dependencies, it’s always advisable to look out for outdated and stale versions of these dependencies. Open source projects tend to get outdated fast due to new security and feature requests updates.

With tools like WhiteSource Renovate, you can easily sniff out outdated versions of dependencies with vulnerabilities and automatically push updates for that.

WhiteSource Renovate is an automated dependency update tool that helps find and updates outdated components. It reduces time and risk of getting stale or outdated versions of dependencies in your system.

Code Warrior — Coding Standard

When building secure applications, coding standard goes a long way as it determines how the programmer structured the application and leaves no room for security loopholes. If an application or code is poorly designed and structured it could be prone to common vulnerabilities.

For instance, if you are handling user input and not properly escaping the inputs and either passing it to the `db` or `eval` function, it could lead to a lot of issues if the user inputs has malicious contents.

Code Warrior is an open source tool used to carry out manual code review and static analysis. It can be used on Linux, BSD, and MacOS platforms. It simply works on your localhost using the HTTP/TLS protocol through your web browser. It has supports for multiple languages, which include C, C#, Java, PHP, Ruby, and JavaScript.

It also has built-in rules to identify known good and bad coding standards and software design. With CodeWarrior, you can easily create your own custom rules.

Dependency Track — Software/Application Dependencies

Dependencies are simply external modules/components software and applications depended on to function. It basically means your software relies on the other software to be able to achieve good outcome.

If your software relies on another software, then in terms of security you should be aware of the security status of the dependency. That could determine if the dependency can make room for vulnerabilities in your system.

It’s advised to use a tool to scan all your dependencies for vulnerabilities and security status. With Dependency Track, you can easily scan all your application dependencies and check for any known vulnerabilities and their fix. It’s basically a tool for checking third-party modules included in your applications for security.

There are various ways this can implemented and used. It can implemented in web applications or a command line interface or can be integrated with vulnerability database like NVD and WhiteSource VulnDB.

It could also provide statistical analysis on vulnerabilities and old dependencies.

SonarQube — Vulnerable Code

Writing vulnerable code is not something any developer would do intentionally as they are focused on getting their task done and achieving their aims. This could be as a result of negligence or little knowledge of how vulnerable the written code was. When writing code, it’s always advised to put security first to avoid coming back to the same code after causing lot of havoc on the system.

However, with open source tools like SonarQube, you can easily run a scan to identify and get rid of vulnerable code from your applications. SonarQube helps expose hidden vulnerabilities in your application and also measures your quality for stability and better performance. It simply ranks vulnerabilities according to their severity after scanning your application or system.

It is primarily written in Java and can be used in many programming languages. You can easily use it with its interactive GUI. It can be easily implemented with CI tools like Jenkins and Travis CI.

Cuckoo Sandbox — File Forensics and Handling

When building applications that involves the uploads of files, handling and ensuring malicious files are not uploaded to the server for later exploit is a big problem that takes several steps to be solved.

There are many ways to determine a malicious file as it entails a lot of edge cases for various tactics of hackers injecting files with malwares, viruses and shell scripts. Nowadays, hackers can easily inject any file with malicious program and ran when the file is being opened or requested for.

With tools like Cuckoo Sandbox, you don’t have to worry about the files uploaded as you can easily get detailed report of the uploaded file and determine if it safe to upload to the server base on the responses.

Cuckoo Sandbox is an open source framework for safely testing a file to find out if it safe to be uploaded on your server. Cuckoo Sandbox simply runs an analysis on both files under a variety of different operating systems or given platforms. It runs an analysis of APIs and network traffic, and will do complete memory dumps to allow for a detailed analysis of how the test is being carried on the file.

It basically has its magnifying glass on the file, trying not to miss every tiny detail of how the file is running and if it’s not passing its expected lane.

Arachni — Penetration Testing

Penetration Testing is an important phase in securing your application or system as it helps to determine and find loopholes and vulnerabilities attackers can exploits.

Penetration testing, usually known as pen testing, is basically a process of running a rigorous test on a computer system, network or web application in order to detect security vulnerabilities a malicious user could exploit and take over the system or cause havoc and find possible fix. This helps quickly finding any loopholes attackers could use to exploit the system so developers can find a way to close that up.

There are various pen testing tools out there in the wild and it’s hard to find a good one that covers every aspect. You don’t have to worry about what tool to use as Arachni does everything you need to run a pen testing on your system or application.

Arachni is a fully automated Dynamic Application Security Testing (DAST) tool that can be used to scan websites and applications in order to find any vulnerabilities. You can easily implement this using the asynchronous HTTP requests and works on all major operating systems.

Arachni is built for pen testers and system admins and designed to identify security issues and vulnerabilities within an application.

Arachni is baked with a lot of features for detecting cross-site scripting, code injections, file inclusions, and data scraping. It also comes with an integrated browser environment and a REST API in the box. You can easily extend its functionality using various available plug-ins and modules.

SQLMap — SQL

Database handling is a big issue as it holds all the software and application data. Its one of the aspect security should come first when handling as the applications depends on it to function and also not to lose users data (this could lead to serious issues).

When handling database and SQL queries, it’s always advisable to treat and escape your queries as passing the queries directly to the SQL engine could lead to SQL injection if the query contains malicious content.

SQL injection is simply a web security vulnerability that allows a malicious attacker to manipulate the queries that an application sends to its database. This then allows hackers have access to confidential data they are not supposed to. This can be very bad as it could lead to loss of data or users data can be published publicly and this will definitely have a dent in the company’s name.

However, with tools like SQLMap, you don’t have to worry much about it as it helps identify where possible SQL injection could be found and provide necessary fix.

SQLMap is an open source penetration testing tool that simplifies the process of finding and exploiting SQL injection vulnerabilities found on the system. It can be used to automates the process of finding SQL injection vulnerabilities and supports a wide range of popular databases, including MySQL, Oracle, and PostgreSQL

Conclusion

Open source tools are endless and each one has their specific superpowers and reasons why people use them. So far we have explored 7 open source tools to boost your security from coding standards to vulnerable code to handling SQL queries and penetration testing.

Choosing the right tools for your application depends on your end goal, what you want to achieve with it and how easy it is for you to use the tool.

You really don’t have to spend a lot to up your security as most of these tools are free and open source. But of course, you can always donate to support the work of the maintainers.

Boosting your application security is not an easy task and I would advise you give all it takes to make sure you are safe from any attacks in the future.

--

--

Casper Henson

Just a guy writing software for a living