OWASP
The Open Web Application Security Project (OWASP) is a worldwide not-for-profit charitable organisation focused on improving the security of software. OWASP has been releasing the OWASP Top 10 list every three/four years.
The list consists of the top biggest Application Security Risks according to OWASP. The list is compiled with the latest vulnerabilities, threats and attacks, as well as detection tactics and remediation. OWASP Top 10 project members create the list by analysing the occurrence rates and the general severity of each threat facing our rapidly evolving application world.
This major update adds several new issues, including two issues selected by the community - A8:2017-Insecure Deserialisation and A10:2017-Insufficient Logging and Monitoring. Two key differentiators from previous OWASP Top 10 releases are the substantial community feedback and extensive data assembled from dozens of organisations, possibly the largest amount of data ever assembled in the preparation of an application security standard.
The 2017 OWASP Top 10 list has recently been re-released to the public. It contains three large-scale vulnerability updates and updated attack scenarios.
A1-Injection
Let’s take a closer look at the list as a whole and what key changes were made in OWASP Top 10 Application Security Risks 2017.
OWASP Top 10 Application Security Risks - 2017
OWASP Top 10 Application Security Risks - 2017
Injection flaws occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorisation.
When eval(), setTimeout(), setInterval(), Function() are used to process user provided inputs, it can be exploited by an attacker to inject and execute malicious JavaScript code on server.
Web applications using the JavaScript eval() function to parse the incoming data without any type of input validation are vulnerable to this attack. An attacker can inject arbitrary JavaScript code to be executed on the server. Similarly setTimeout(), and setInterval()functions can take code in string format as a first argument causing same issues as eval().
This vulnerability can be very critical and damaging by allowing attacker to send various types of commands.
SQL and NoSQL Injection
SQL and NoSQL injections enable an attacker to inject code into the query that would be executed by the database. These flaws are introduced when software developers create dynamic database queries that include user supplied input.
Broken Authentication
Attackers have access to hundreds of millions of valid username and password combinations for credential stuffing, default administrative account lists, automated brute force, and dictionary attack tools. Session management attacks are well understood, particularly in relation to unexpired session tokens.Session management is a critical piece of application security. It is broader risk, and requires developers take care of protecting session id, user credential secure storage, session duration, and protecting critical session data in transit.
The attacker can exploit Password Guessing Attack vulnerability by brute force password guessing, more likely using tools that generate random passwords.
Sensitive Data Exposure
XML External Entities (XXE)
Broken Access Control
Access control weaknesses are common due to the lack of automated detection, and lack of effective functional testing by application developers. The technical impact is attackers acting as users or administrators, or users using privileged functions, or creating, accessing, updating or deleting every record.
Security misconfiguration can happen at any level of an application stack, including the network services, platform, web server, application server, database, frameworks, custom code, and pre-installed virtual machines, containers, or storage. Automated scanners are useful for detecting misconfigurations, use of default accounts or configurations, unnecessary services, legacy options, etc.
Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted web sites. XSS attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end user. Flaws that allow these attacks to succeed are quite widespread and occur anywhere a web application uses input from a user within the output it generates without validating or encoding it.
An attacker can use XSS to send a malicious script to an unsuspecting user. The end user’s browser has no way to know that the script should not be trusted, and will execute the script. Because it thinks the script came from a trusted source, the malicious script can access any cookies, session tokens, or other sensitive information retained by the browser and used with that site. These scripts can even rewrite the content of the HTML page.
For more details on the different types of XSS flaws, Types of Cross-Site Scripting.
Using Components with Known Vulnerabilities
Insecure Deserialisation
Insecure Deserialisation is a vulnerability which occurs when untrusted data is used to abuse the logic of an application, inflict a denial of service (DoS) attack, or even execute arbitrary code upon it being deserialised.
Exploitation of deserialisation is somewhat difficult, as off the shelf exploits rarely work without changes or tweaks to the underlying exploit code.
Insecure Deserialisation is a vulnerability which occurs when untrusted data is used to abuse the logic of an application, inflict a denial of service (DoS) attack, or even execute arbitrary code upon it being deserialised.
Exploitation of deserialisation is somewhat difficult, as off the shelf exploits rarely work without changes or tweaks to the underlying exploit code.
It is very common for web services to include a component with a known security vulnerability. When that happens it falls under this category, independently of what kind of component is vulnerable, making this a very frequent finding.
The component with a known vulnerability could be the operating system itself, the CMS used, the web server, some plugin installed or even a library used by one of these plugins.
The potential impact is impossible to grade for this as it completely depends on the vulnerable component and what vulnerability it suffers from. The vulnerability could be an XSS on some unimportant subdomain, but it could just as well lead to a full system takeover.
Exploitation of insufficient logging and monitoring is the bedrock of nearly every major incident. Attackers rely on the lack of monitoring and timely response to achieve their goals without being detected. Logging on its own is not enough.
Only a complete logging, monitoring & incident response solution will keep you abreast of what is happening on your websites, and allow you to thwart possible malicious attacks before they actually happen.
your blog is helping to find new techniques thak you sql and pl sql Online course
ReplyDelete