How to fix SQL injection in Checkmarx CxSAST reports

Many organizations use static code analyzers like Checkmarx CxSAST to find security flaws in applications. But to many developers, reports from Checkmarx CxSAST are viewed to create additional work by revealing vulnerabilities (both real ones and false positives), while offering no solution to advance their remediation. Who fixes the vulnerabilities in the report?

SQL injection is a serious security threat that can compromise the data and functionality of your web applications. It occurs when an attacker injects malicious SQL statements into user input fields, such as forms or URLs, that are then executed by the underlying database. SQL injection can allow an attacker to access, modify, or delete sensitive data, execute commands on the server, or even take over the database.

How to remediate SQL injection depends on the programming language and database, but here are some general guidelines:

  • Use prepared statements with parameterized queries. This means that you define the SQL code first, and then pass in the user input as parameters later. This way, the database can distinguish between code and data, and prevent any malicious SQL from affecting the query logic.
  • Use stored procedures. These are pre-defined SQL queries that are stored in the database and can be invoked by the application. Stored procedures can also use parameters to accept user input, and can perform input validation and error handling.
  • Use allow-list input validation. This means that you check the user input against a list of allowed values or patterns, and reject any input that does not match. This can help filter out any malicious SQL characters or keywords from the user input.
  • Escape all user supplied input. This means that you add escape characters before any special characters in the user input, such as quotes, semicolons, or comments. This can prevent the user input from breaking out of the intended SQL context and forming malicious SQL statements.

Here are some examples of fixing SQL injection vulnerabilities:


var username = Request.Form["username"];
var password = Request.Form["password"];
var sql = "SELECT * FROM Users WHERE Username = @username AND Password = @password";
var command = new SqlCommand(sql, connection);
command.Parameters.Add(new SqlParameter("@username", username));
command.Parameters.Add(new SqlParameter("@password", password));
command.ExecuteNonQuery();
                    

String username = request.getParameter("username");
String password = request.getParameter("password");
String query = "SELECT * FROM Users WHERE Username = ? AND Password = ?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, username);
statement.setString(2, password);
statement.execute();
                    

What if there was a way to fix SQL injection automatically?

Lucent Sky AVM works like Checkmarx CxSAST and is able to pinpoint the exact location of a vulnerability. But unlinke SAST tools, Lucent Sky AVM also fixes the vulnerabilities it found. It generates "Instant Fixes" - code-based remediation that can be immediately placed in source code to fix the common vulnerabilities like cross-site scripting (XSS), SQL injection, and path manipulation.

Developers can review Instant Fixes and apply them individually or en masse, or integrate Lucent Sky AVM with a CI pipeline so vulnerabilities are checked, fixed, and tested automatically whenever new code is introduced.


Using Checkmarx CxSAST and Lucent Sky AVM together

While SAST tools like Checkmarx CxSAST only tell you where vulnerabilities are, Lucent Sky AVM will tell you where they are and how to fix them (and actually do it for you, if you like). Most SAST tools were designed to be used by security professionals, and calibrated to find large number of results, then relying on security experts to fine-tune it to weed out false positives. Lucent Sky AVM focuses on finding vulnerabilities that will cause real impact on the application's security, and only fix what can be fixed with confidence, based on settings set by you as well as your development and security teams. You can learn more about Lucent Sky AVM's remediation process.


Lucent Sky AVM + Checkmarx CxSAST = effortless compliance

If your organization's compliance requires the remediation of all results found by Checkmarx CxSAST (or results that fit a certain criteria, critical and high, for example), Lucent Sky AVM can be customized to find the same results while providing additional functional value - automatically fixing those vulnerabilities.


Actionable reporting

Many static code analysers are designed for and to be used by security professionals. This means they require expert users, and their assessments and outputs aren't developer friendly. Lucent Sky AVM offers clear reporting that caters to both security professionals and developers, providing both analysis results and Instant Fixes (code-based remediation to common vulnerabilities like cross-site scripting and SQL injection) that a non-expert can use to secure their code.

For organizations needing compliance reporting, Lucent Sky can help teams pass Checkmarx CxSAST scans and cut out the noise of false positives, while drastically reducing the time and effort required to secure an application.

Download a report comparison between Lucent Sky AVM and SAST tools to see the difference.


Fixing SQL injection in your Checkmarx CxSAST report can be done fast and efficiently

96% of applications have vulnerabilities — known security risks that bad actors can exploit. The main hurdle of implementing any security process is the actual remediation of vulnerabilities found. Developers and security engineers simply don't have the capacity to resolve vulnerabilities efficiently. That is why hundreds of companies and organizations have chosen Lucent Sky AVM to replace or supplement existing SAST tools, and help development teams actually fix vulnerabilities and accelerate their application security process.

To learn more about how Lucent Sky AVM can be used in combination with Checkmarx CxSAST in your environment, request a demo or get in touch.

Contact us
Try Lucent Sky AVM