Cys 403 Systems Vulnerability Assessment and Testing
Cys 403 Systems Vulnerability Assessment and Testing
Cys 403 Systems Vulnerability Assessment and Testing
If you want to protect your customers and your brand, it’s important to identify and
prevent software security vulnerabilities before shipping software. In order to do so, you
first need to be aware of the different types of security weaknesses and ways to avoid
them.Here are a few
⦁ Bugs
⦁ Exposure of sensitive data
⦁ Flaws in Injection
⦁ Buffer overflow
⦁ Security misconfiguration
⦁ Broken access control
⦁ Insecure deserialization
⦁ Broken/Missing Authentication
⦁ Bugs
Software bugs are an error or failure in software and they’re very common. Some bugs
will result in serious issues like information theft and some will lead to system failure.
But some less serious bugs will result in error messages or incorrect results. Bugs, in
general, cause the software to behave in an unexpected manner. Pretty much all
software contains minor (or major) bugs. Hackers can easily take advantage of some
software bugs and cause much harm if you do not fix security vulnerabilities. While it’s
usually impossible to ship software with 0 bugs, it’s important to find and fix any serious
bugs, especially ones that could pose a security risk.
Broken user restrictions can cause severe software weaknesses. For example, if you
have an admin panel for your website, you want to restrict that area so only admin users
can access it. If such restrictions are not enforced properly, hackers and other
unauthorized people can easily take advantage of that vulnerability and access sensitive
data or gain control of your system.
⦁ Insecure deserialization
Insecure deserialization is a security weakness that is used by hackers to carry out
injection attacks and DDoS attacks. In this type of vulnerability, untrusted data is used
to implement attacks.
⦁ Broken/Missing Authentication
Weaknesses in session management and credential management result in broken
authentication, which means an attacker is able to compromise passwords or other
information to access a user’s account. Improperly implemented authentication and
session management can result in this kind of software vulnerability.
There are a lot of adverse effects that can occur as a result of software security
weaknesses. But you can prevent these problems if you take all the necessary security
precautions while developing the software. It’s important for software developers to use
different methods to detect weaknesses in their software automatically. The following
are good ways to prevent software security vulnerabilities.(The Committee on National
Security Systems of United States of America 2008 ).
How to Prevent Software Vulnerabilities
⦁ Test Your Software
It’s a good practice to test your software often as this will help you find and get rid of
vulnerabilities quickly. You can test your software using code analysis tools, white box
testing, black box testing, and other techniques.
⦁ Update the Software Regularly
It is important to regularly update software as outdated software is prone to
vulnerabilities. By making sure your software uses up to date components and
dependencies, you can prevent security issues and software vulnerabilities.
2.With the aid of annotated diagrams, explain the measures of control that could be
used to remove or reduce vulnerabilities.
There are several measures of control that can be used to remove or reduce
vulnerabilities:
1. Input validation:
This involves checking the validity of input data and ensuring that it is of the correct
type, format, and length. Input validation can help prevent malicious input from being
processed by the system, which can help prevent attacks such as SQL injection or
buffer overflow.
Output encoding: This involves converting special characters in output data into a
format that is safe to display. This can help prevent cross-site scripting (XSS) attacks, in
which malicious code is injected into a website and executed by the user's browser.
2. Access controls:
These controls limit access to resources or functions based on a user's role or
permissions. This can help prevent unauthorized access to sensitive data or systems.
3. Authentication:
This involves verifying the identity of a user before granting access to a system. This
can be done through the use of passwords, two-factor authentication, or biometric
factors.
4. Encryption:
This involves converting data into a form that is unreadable without a decryption key.
This can help protect data from being accessed by unauthorized parties, even if it is
intercepted in transit.
5. Firewalls:
These are software or hardware devices that control incoming and outgoing network
traffic based on predetermined security rules. Firewalls can help protect a network from
external threats such as malware or hackers.
⦁ Reconnaissance
Testing types vary in how much information the ethical hacker (or penetration testers)
receives beforehand. In a blind or black box test, the strategy is to not give the ethical
hacker any information other than the name of your business so that you can best
approximate real-world attack scenarios. In a white box test, the testing team gets fully
informed about the internal makeup of the system, web application, or network being
tested. Grey box tests lie in the middle of these extremes by providing some limited
information to the testing team.
Reconnaissance involves efforts by the penetration tester to gather information about
the target system being tested and the security vulnerabilities that could be exploited in
a security breach. All types of pen tests call for some degree of reconnaissance, but
black box and grey box tests obviously require more information gathering. Generally,
you can further divide reconnaissance into two forms:
⦁ Scanning
The scanning phase of a penetration test attempts to expand the testers’ view of your
infrastructure using a slew of different tools. This phase essentially functions as an
extended form of information gathering but with the possibility of also finding “low
hanging fruit” vulnerabilities to exploit. The types of scans you can expect a good
pentester to use during this phase include:
⦁ Port scanning tools like Nmap to find open ports in your environment
⦁ Pings, traceroute commands, and network mappers to map out the topology of hosts,
IP addresses, firewalls, routers, and operating systems on the network
⦁ Vulnerability scanners to find misconfigurations, default passwords, and
vulnerabilities that can provide access to a system
⦁ Static and dynamic web application analysis to understand an app’s source code,
performance, and behaviour.
The additional and more in-depth information gathered during the scanning phase
proves invaluable in later phases of the test engagement.
⦁ Gaining Access
Gaining access is sometimes referred to as exploitation because this is the phase
where testers use the information at their disposal to attack and breach the target
system. Since many potential entry points ultimately prove unfruitful, the exploitation
phase calls for patience and persistence from the ethical hacker.
Skilled pen testers employ a range of attack vectors in an effort to gain access to a
network, app, or system. These vectors include code injection, social engineering,
network-based attacks, and web application exploits.
Toolkits like Cobalt Strike and Metasploit feature heavily in the gaining access phase of
penetration tests by assisting with exploiting weaknesses. Unfortunately, many threat
actors purchase these toolkits for their own nefarious uses.
Successfully gaining access may or may not provide administrative control over the
infiltrated device or system. It’s for this reason that the exploitation stage often extends
to privilege escalation. The tester tries to find further vulnerabilities that provide
complete control over the host system. Thorough testers will also pivot from an
affected system and show how compromising one system can be used to attack other
systems in your environment.
⦁ Maintaining Access
After gaining initial access, ethical hackers then attempt to establish persistence in your
environment and maintain that access until they exploit it to its fullest possible extent.
Maintaining access often requires installing trojan horses, backdoors, keyloggers,
rootkits, and other forms of malware on compromised hosts. These malicious scripts
and software can be installed on user systems, web services, apps, and more.
Real-world threat actors regularly lurk undetected inside a network environment for
weeks or even months before achieving their goal, whether that’s gathering intelligence,
exfiltrating data, or locking down systems and demanding a ransom. In the now-
infamous Solarwinds attack, hackers managed to roam networks, including some
belonging to the US government, for nine months while evading detection. To maintain
access, the Solarwinds hackers used a DLL backdoor script.
While time constraints obviously limit an ethical hacker from maintaining access for
nine months, the point of this stage is to not only show that it’s possible to exploit
particular vulnerabilities in your target systems, but also that adversaries could feasibly
maintain access and cause even more damage.
⦁ Report Generation
Generating a clear and actionable report is arguably the most important part of the test
for your security team in strengthening the security of your organization’s network. The
recommendations and findings in a pen test report provide the information needed to
prevent future attacks. The report should include all identified vulnerabilities along with
measurements that rank their potential impact and a timeline for remediation.
Since other stakeholders beyond security teams might need a pen test report, it’s
important that the testers you hire are able to tailor their reports to different audiences.
This might mean simply providing an executive summary that highlights key report
findings and business impacts without going into technical details.
When you develop a web application, before hosting to the web, testing is very
important to prevent the hackers. There are three types of tests, Black, gray and white
box tests which are conducted to ensure that an attacker cannot reach your application
code.
⦁ It is the process of checking how the system processes input to give a suitable output
by giving it the required input.
⦁ It involves testing a system with full access to source code and other
possible. In comparison to an authentic trial and error method, this white box testing
is way quicker.
⦁ By exactly knowing what to test, more testing coverage is ensured. This type
of testing involves testing of the application. It needs knowledge of code and test
⦁ It is basically checking whether the given code gives out expected results.
E.g. In electrical appliances the internal circuit testing.
⦁ Black box testing is a method of testing where the input is given to the system
and the output is checked, no matter how it was generated. It is done at an outer
level.
However, it is a less good way of testing when compared to white box testing as no
⦁ The system is tested by the team just for the suitable output for the given
⦁ This is the combination of both white box and black box testing.
⦁ In this type of testing the tester has limited knowledge of the system and the
internal applications. Just the output is checked as per the given inputs.
⦁ Gray Box testing is a combination of White Box and Glass Box Testing. In
this Gray box testing, the tester need not have the knowledge about the internal
⦁ Only the output, the process of how the output has arrived is tested in this
method.