Software Security and Threats
Change, Configuration, and Testing
Change and Configuration Management
- Provides an organized framework.
- Enables cost/benefit analysis.
- Request Control - Enables users to request modifications.
- Change Control - Used to recreate and analyze situations for appropriate changes.
- Release Control - Procedure for approving changes before releasing them.
Always conduct acceptance testing during release control.
Software Testing
- Thorough testing before distribution.
- Use of special datasets to exercise all paths.
- Automated and manual testing.
Example: If a software is expected to add two numbers, inputting 3
and 4
should yield 7
. If it yields 8
, then there's an error.
Always compare actual results against expected results during testing.
Viruses
Types of Viruses
Stealth Viruses
These viruses conceal their presence by tampering with the OS. They deceive antivirus software into believing that the system is operating normally.
Encrypted Viruses
These viruses leverage cryptographic techniques to evade detection. Example: Encrypting a virus into a .rar archive, making it invisible to automatic scans on platforms like Google Drive.
Worms
Worms have built-in propagation mechanisms that automatically spread and do not require user interaction to spread. Instead they automatically scan for vulnerabilities and try and automatically gain access from there.
Hoaxes
Not viruses, but still a threat. They mislead users and waste resources. Previously spread through chain mails, but now prevalent on social media.
Logic Bombs
Malicious code that remains dormant on a system until triggered by specific conditions (e.g., time, program initiation, or a login). Stuxnet is a prime example: a polymorphic virus with intricate logic bomb mechanisms. Its logic was designed to target and interfere with specific industrial control systems, only activating under precise conditions to sabotage uranium-enrichment operations in Iran.
Polymorphic Viruses
These viruses alter their own code as they migrate between systems. A significant example is the Storm Worm, which spread rapidly in the 2000s, altering its code to evade detection. It propagated itself through email and was notorious for swiftly adapting its code, making it challenging to detect and neutralize.
Multipartite Viruses
Viruses that employ multiple propagation techniques. They aim to breach systems that are safeguarded against just one method.
Trojan Horse
Trojan Horses are deceptive software programs. While they seem functional and benign, they carry a concealed, harmful payload.
- Only use software from known, trusted sources.
- Restrict users' ability to install software.
Ransomware
This malicious software is on the rise. It invades a device and employs encryption tech to lock essential documents. The only decryption key is with the cybercriminal. Victims see a warning: pay a ransom or lose your files.
Reaction:
- Regularly back up your computer.
- Store backups in isolated locations.
- Increase user awareness through training.
- Use cloud-hosted email & file storage; many offer auto-versioning.
Prevention:
- Ensure computers are updated and patched.
- Be wary of suspicious web links.
- Exercise caution with email attachments.
- Authenticate email senders before clicking.
- Invest in preventative software programs.
- AI-driven cloud services offer added protection like O365 of G-Suite
Virus Propagation Techniques
Viruses employ various techniques to propagate and ensure their persistence. These methods can be categorized into the following:
File Infection
-
-
Viruses infect different types of executable files.
-
They become active when the operating system executes them.
-
For Windows, these are typically
.exe
and.com
files.
-
Service Injection
-
-
Viruses evade detection by embedding themselves into the trusted runtime processes of the OS.
-
Examples include
svchost.exe
,winlogon.exe
, andexplorer.exe
.
-
Cheats for games, such as CS:GO, inject into csgo.exe
to dodge anti-cheat, much like viruses bypass anti-virus systems.
Boot Sector Infection
-
- Viruses infect the legitimate boot sector.
- These viruses are loaded into memory during the OS load process.
Macro Infection
-
-
Viruses spread by infecting the code in macros.
-
Commonly, they use Visual Basic for Applications in MS Office documents.
-
AV Software
Employs multiple strategies to detect and combat malware.
-
Signature-Based Detection:
-
Uses algorithmic patterns to identify known viruses.
-
Regular updates of virus signatures are critical.
Example: Windows updates its virus signatures daily.
-
-
Behavior-Based Detection:
-
Monitors systems for abnormal activities.
-
Flags or blocks suspicious behavior even if no known signature match is found.
-
Modern solutions leverage AI and ML. Some even connect to cloud systems to analyze potential threats.
Remember: Modern threats may appear once and vanish, making behavior-based detection essential.
-
Threats to Software
Techniques to Compromise Password Security:
-
Password Crackers:
- Extracts passwords from stolen credential data.
- Methods can vary and include:
- Dictionary attack
- Brute force
- Social engineering attack
-
Rootkit (escalation of privilege):
- A rootkit is essentially a kit that offers root access!
- Exploits OS vulnerabilities for escalated privileges.
- Application Attacks:
- Targets vulnerabilities in poorly designed software.
- Buffer Overflow:
- Occurs when user input isn't validated for size.
- Memory buffers can overflow if the input exceeds capacity. Common in web forms.
- Backdoor:
- Undocumented command sequences allowing bypassing of access restrictions.
- Although useful during development, they sometimes mistakenly remain in the live environment.
- Example: WannaCry leveraged a backdoor for its zero-click network propagation.
- Time-of-Check-to-Time-of-Use:
- A timing vulnerability where permissions are checked too early before a resource request.
- Example: Imagine a multi-threaded environment where a file's permission is checked and then accessed later. Between the check and the access, another process could potentially change the file's permissions or even the file itself.
Web Application Vulnerabilities:
Cross-Site Scripting (XSS)
-
A type of injection attack where malicious scripts are inserted into trusted websites.
-
Occurs when an attacker uses a web application to relay malicious code to another user.
-
Typically happens when web apps process unfiltered user input.
Example: A commenting system on a blog displays user comments without filtering. An attacker could input a script as their "comment". Other users viewing the comment will execute the script, potentially stealing cookies or other data.
Cross-site Request Forgery (XSRF or CSRF)
-
Definition: Exploits the trust a user has in a specific website, causing them to unknowingly perform an action they did not intend. Similar to cross-site scripting attacks but exploits a different aspect of the trust relationship.
-
How it works: A malicious website or email makes the user's browser send a request to a trusted site where the user is already authenticated, leading to unwanted actions performed on the trusted site.
-
Mitigation:
- Use secure tokens for web apps.
- This ensures that each request from a user is genuine and not generated by a third party.
- Check the referring URL in requests.
- By doing this, the site can ensure that the request came from the correct location.
- Use secure tokens for web apps.
Always ensure web apps use secure tokens and validate referring URLs to guard against CSRF attacks.
SQL Injection
Attackers provide unexpected input to manipulate the underlying database. For example, on a login page, instead of a regular password, an attacker inputs password' OR '1' = '1
. If not properly sanitized, the database might interpret this as always true, granting unauthorized access.
Input validation, using prepared statements, and limiting account privileges help protect against SQL injection.
Network Reconnaissance Techniques:
-
IP Probes:
- Tools attempt to ping a range of addresses.
- Responsive systems are noted for further investigation.
-
Port Scan:
- Identifies open or listening ports on a system.
- Critical servers like web and file servers are common targets.
-
Vulnerability Scans:
- Identifies specific system vulnerabilities.
- Popular tools include Nessus, OpenVAS, Qualys, and Core Impact.