Security Testing Flashcards
Explain what a vulnerability is?
A characteristic or property of a system that can be exploited, to access functionality, information or resources that should not be available.
Explain what a threat is?
Some possible danger that could lead to a vulnerability being exploited.
Explain what a risk is?
The impacts to an organization that arise due to threats.
Define the term Security Testing
Identifying vulnerabilities and ensuring mitigation of risks and threats.
Building trust in critical infrastructures.
Building on past experience of others.
- Libraries of attacks and exploits.
- Historical records of what has worked.
Using a variety of techniques. From testing through to audit. To provide defense in depth.
Why is mobile and web security so important for organizations?
Many attack vectors.
Many devices, not always up to date.
Powerful capabilities on the device.
Significant integration with cloud/servers.
What are some potential countermeasures of an organization to protect mobile and web systems?
Protections at OS and browser level.
Protection in communication protocols.
Resource monitoring, network monitoring
Manufacturer surveillance.
User awareness. Security training.
What are some features of Android OS that provide some security
Unix file directory and permission model
Process memory isolation and memory protection
Filesystem encryption.
App restrictions
digital rights.
What are Signed Apps?
Coded with a private dev key. On android and iPhone apps must be signed in market.
Manual approval reduces chances of rogue apps.
Apps bought on official stores are generally thought to have been audited.
What are some problems with android regarding apps?
Apps can ask for too many permissions, that the user may inadvertently approve or not understand
Updates to apps may change permissions.
Spammy apps, resist install, show ads like system/OS UI… etc.
Define Security through Obscurity?
Relying on the fact that attackers don’t know something needed to harm you.
If you had a file with all the passwords of a system but the attackers do not know it is there.
Example: guessing common file/folder/commands to see what happens.
Define methods of Secure authentication
Force users to login to your system before performing sensitive actions.
User secure protocols (https…) to prevent sniffing
Force users to use strong passwords.
Define Principle of Least Privilege?
Granting just enough authority to get the job done, not more! ex: don’t run code as root unless really necessary.
Turn off unnecessary services on your server:
- SSH, VNC, sendmail…
- Close all ports except 80, and any others needed for web traffic.
How do you sanitize inputs?
Encoding and filtering untrusted user input before accepting it into a trusted system.
Encode/sanitize input text that is displayed back to the user.
- Check type, format, length
- Disallow entry bad data into a graphical form
- Remove any SQL code from submitted user names.
How can you help make sure the code you are writing is secure?
Before coding:
- Consider security in design.
While coding:
- Code reviews
- Security audits
- pair programming
After code is written:
- Walkthroughs
- System security audits
- System/functional security testing
- Penetration tests.
What is a Security Audit
Series of checks and questions to assess the security of your system.
- Can be done externally or internally.
- Best if done as a process, not individual event.