Chapter 7 Flashcards
Reflected DDoS
attacks involve the attacker sending requests to a third-party server with a spoofed source IP address which appears to be the target’s IP address. When the third-party server responds to the request, it sends the response to the target instead of the attacker, thereby overwhelming the target with unsolicited traffic.
Amplified DDoS
attacks use reflection techniques in combination with amplification, where a small request from the attacker generates a significantly larger response from the third-party server. This results in an even greater volume of traffic directed at the target, making it more difficult for the target to withstand the attack.
SYN flood attacks
The SYN flood attack is a common DoS or DDoS attack used against servers on the Internet. They are easy for attackers to launch and can cause significant problems. The SYN flood attack disrupts the Transmission Control Protocol (TCP) handshake process and can prevent legitimate clients from connecting.
Forgery
Forgery attacks occur when an attacker creates a fake identity, certificate, file, or other object in an attempt to fool an unsuspecting user or system.
Spoofing is an example of forgery that occurs when one person or entity impersonates or masquerades as someone or something else. Some common spoofing methods are related to an email address, an Internet Protocol (IP) address, and a media access control (MAC) address.
Pharming attack
Pharming attacks corrupt DNS information on a user’s system.
Hosts file.
DNS Poisoning Attacks
A DNS poisoning attack attempts to modify or corrupt DNS data that is stored on a DNS server.
URL Redirection
URL redirection is a common technique used to redirect traffic to a different page
domain hijacking attack
In a domain hijacking attack, an attacker changes a domain name registration without permission from the owner.
Remember
In a domain hijacking attack, an attacker changes a domain name registration without permission from the owner.
DNS Filtering
Administrators may use DNS filtering to control the websites that users visit. DNS filtering uses block lists of known malicious domain names and either refuses to provide IP addresses for those malicious sites or provides incorrect results for them.
DNS sinkhole
A DNS sinkhole is a DNS server that uses DNS filtering of incorrect results for one or more domain names.
Infected computers frequently check in with command-and-control servers, and the malware includes the domain names of these servers.
This effectively prevents infected computers from contacting to the command-and-control servers for instructions.
DNS Log Files
DNS log files record DNS queries, such as each request to resolve a hostname to an IP address. These log entries would include the system that sent the request and the IP address returned for the hostname.
These log entries can be useful in identifying potentially malicious websites.
replay attack
A replay attack occurs when an attacker replays data that was already part of a communication session.
Many protocols use timestamps and sequence numbers to thwart replay attacks. For example, the Kerberos protocol helps prevent replay attacks with timestamped tickets.
Replay attacks capture data in a session to impersonate one of the parties in the session. Timestamps, sequence numbers, and multi-factor authentication are effective countermeasures against replay attacks.
credential replay
Hacker Harry intercepts all the data, including the credentials, and later initiates a conversation with Maggie pretending to be Bart. When Maggie’s system challenges Hacker Harry, his system sends Bart’s credentials. This is an example of a specific kind of replay attack called credential replay
input validation
Input validation is the practice of checking data for validity before using it. Input validation prevents an attacker from sending malicious code that an application will use by either sanitizing the input to remove malicious code or rejecting the input.
Verifying proper characters.
Blocking HTML code
Preventing the use of certain characters. such as SQL injection attacks, the dash (-), apostrophe (‘), and equal sign (=). Blocking these characters helps to prevent these attacks.
Implementing boundary or range checking. These checks ensure that values are within expected boundaries or ranges. For example, if the maximum purchase for a product is three, a range check verifies the quantity is three or less. The validation check identifies data outside the range as invalid and the application does not use it.
Remember This!
The lack of input validation is one of the most common security issues on web-based applications. Input validation verifies the validity of inputted data before using it, and server-side validation is more secure than client-side validation. Input validation protects against many attacks, such as buffer overflow, SQL injection, dynamic link library injection, and cross-site scripting attacks.
race condition
When two or more modules of an application, or two or more applications, attempt to access a resource at the same time, it can cause a conflict
TOCTOU
Attackers can sometimes exploit a time of check to time of use (TOCTOU) race condition. This is sometimes called a state attack. It occurs against a system that we refer to as the target of evaluation (TOE). The attacker tries to race the TOE system to do something malicious with data after the operating system verifies access is allowed (time of check) but before the operating system performs a legitimate action at the time of use.
Proper Error Handling
Errors to users should be general. Detailed errors provide information that attackers can use against the system,
Detailed information should be logged
Code Obfuscation
Obfuscation attempts to make something unclear or difficult to understand and code obfuscation attempts to make the code unreadble.
Software Diversity
Automated software diversity is sometimes used to mimic the use of multiple different core languages.
The idea is that this automated diversity provides an added layer of protection. An attack that succeeds on one system would fail on another system using the same multicompiled program.
Outsourced Code Development
Make sure the code works as expected. Test it.
Vulnerable code. If the developers don’t follow best practices for secure code, they could easily create code that is vulnerable to attack.
Malicious code Developers could insert malicious code such as backdoors or logic bombs.
Lack of updates. If the contract for outsourced code development doesn’t mention updates, it may be difficult to get updates.
Data Exposure
Secure coding techniques take steps to protect data at rest, data in transit, and data in processing. If the data isn’t protected, it can result in a data breach exposing the data to unauthorized entities. It’s common to protect data at rest and in transit with encryption. If an application processes encrypted data, it typically decrypts it first. After processing it in memory, it encrypts it again and stores it.
The application should also flush the memory buffers to ensure unauthorized entities can’t access unencrypted remnants.
HTTP Headers
HTTP Strict-Transport-Security This tells the browser to display the page only if it is sent as HTTP Secure (HTTPS).
Content-Security-Policy. This defines multiple sources of acceptable content. It includes sources allowed for scripts, CSS and plugins
X-Frame-Options. This tells the browser if X-frames are allowed. X-Frames are rarely used anymore because they open up the page to vulnerabilities.
Secure Cookie
A secure cookie is one that has the secure attribute set. This secure attribute ensures that the cookie is only transmitted over secure, encrypted channels, such as HTTPS. This protects the confidentiality of the cookie’s contents and prevents attackers from reading them. Many browsers (such as Chrome and Firefox) will not transfer cookies over HTTP if the cookie has the Secure attribute set.
Code Signing
developers can purchase a certificate and use it to digitally sign an application.
Code signing provides two benefits. First, the certificate identifies the author. Second, the hash verifies the code has not been modified. If malware changes the code, the hash no longer matches, alerting the user that the code has been modified.