Udemy Sections 9-11: Application Security, Secure Software Development, and Network Design Flashcards
T/F: It is best practice to immediately upgrade to the newest browser when it comes out.
False
New browsers can have bugs and security issues. It is best practice to wait to upgrade until issues have been fixed.
T/F: It is best practice to immediately download the newest patch when it comes out.
True
A patch means that there is a vulnerability that has been found and fixed through that patch.
What two things should you take into consideration when choosing a browser?
Your OS
Your needs
5 general security tips to secure your browser
Implement policies as an administrative control or technical control
Train your users
Use proxy servers to cache the website and reduce bandwidth usage
Use content filters to blacklist websites or categories of sites
Prevent malicious code by preventing ActiveX controls, Java applets, JavaScript, Flash, and other active content
Text files placed on a client’s computer to store information about the user’s browsing habits, credentials, and other data
Cookies
A type of cookie commonly used by spyware to gather details about users. Includes information about what websites the user goes to, for how long, and what types of things the users click on.
Tracking cookie
A type of cookie used to keep track of users and their preferences, including what is in virtual shopping carts.
Being used as a way to maintain a connection and a session between the user and the server.
Session cookie
Since the common populace doesn’t like cookies, what type of tracking are organizations switching to?
Server-side tracking
A data file stored in your Windows user profile under the Flash folder inside of your AppData folder. It is created by visiting a website that runs a Flash application.
LSO (Locally Shared Object)
AKA Flash cookie
What does LSO stand for?
Locally Shared Object
What is replacing Adobe Flash?
HTML5
Smaller browser extensions and plugins that provide additional functionality to the browser
Add-ons
Why is it best practice to not use any additional extensions or add-ons with your browser?
More code always means more vulnerability risk.
Browser configuration and settings for numerous options such as SSL/TLS settings, local storage/cache size, browsing history, etc.
Advanced security options
Which version of SSL is deprecated?
SSL 3.0
Which version of TLS is deprecated?
TLS 1.0
The obvious first step to protect your documents from being viewed or modified. The Microsoft suite has this capability built-in.
Create a password for them
What can you set your documents to if you want them to be viewed, but not modified by others?
Read only
By default, should you enable or disable macros?
Disable
What does MS Outlook use for email security?
Digital signatures
The file type for a Microsoft Outlook data file (including archived emails)
.pst
A Windows security component that prevents unauthorized access and avoids user error in the form of accidental changes.
It keeps every user besides the actual administrator account in a standard user mode. When an administrative action is taken, this triggers a pop-up to ask for credentials.
UAC (User Account Control)
UAC stands for
User Account Control
A cookie with this attribute is only sent to the server with an encrypted request over the HTTPS protocol. This keeps the contents of the cookie safe from MITM attacks.
Secure
A cookie with this attribute is inaccessible to the JavaScript API; it’s only sent to the server.
HttpOnly
This cookie attribute specify which hosts can receive a cookie.
Domain
This cookie attribute indicates a URL path that must exist in the requested URL in order to send the cookie header.
Path
This cookie attribute lets the servers specify whether/when cookies are sent with cross-site requests. This provides protection against CSRF attacks. This attribute has 2 variations: Strict and Lax.
SameSite
SDLC stands for
Software Development Life Cycle
An organized process of developing a secure application throughout the life of the project. Based on the Waterfall Model.
SDLC (Software Development Life Cycle)
Phase 1 of the SDLC
Planning and analysis
The goals are determined, stakeholder needs are assessed, requirements are gathered, high-level planning is conducted.
Phase 2 of the SDLC
Software/systems design
Application/system is defined, outlined, and diagramed in detail. Focus on the overarching inputs and outputs of each function that makes up the finalized software.
Phase 3 of the SDLC
Implementation
Programmers code functions needed for the final product. Programmers perform basic debugging and testing to ensure it is functional.
Phase 4 of the SDLC
Testing
The code is tested through a myriad of testing methodologies
Phase 5 of the SDLC
Integration
The application/system is integrated into the larger network environment. This ensures that all the parts can interact effectively and correctly.
Phase 6 of the SDLC
Deployment
Application/system is moved into the production environment where customers and end users can utilize it to perform their work.
Phase 7 of the SDLC
Maintenance
Bugs and vulnerabilities are always found. Programmers roll out patches and updates. Also includes end user training on the new software/system.
The 7 phases of the SDLC
Planning and analysis
Software/systems design
Implementation
Testing
Integration
Deployment
Maintenance
The SDLC phase where programmers roll out patches and updates. Also includes end user training on the new software/system.
Phase 7: Maintenance
The SDLC phase where the application/system is moved into the production environment where customers and end users can utilize it to perform their work.
Phase 6: Deployment
The SDLC phase where the application/system is integrated into the larger network environment. This ensures that all the parts can interact effectively and correctly.
Phase 5: Integration
The SDLC phase where the code is tested through a myriad of testing methodologies
Phase 4: Testing
The SDLC phase where programmers code functions needed for the final product. Programmers perform basic debugging and testing to ensure it is functional.
Phase 3: Implementation
The SDLC phase where the application/system is defined, outlined, and diagramed in detail. Focus on the overarching inputs and outputs of each function that makes up the finalized software.
Phase 2: Software/systems design
The SDLC phase where the goals are determined, stakeholder needs are assessed, requirements are gathered, high-level planning is conducted.
Phase 1: Planning and analysis
PSITIDM is an acronym (I created) for…
The 7 SDLC phases.
Planning and analysis
Software/systems design
Implementation
Testing
Integration
Deployment
Maintenance
In the version Windows 10 v10.0.12425, which number is the major number?
10
In the version Windows 10 v10.0.12425, which number is the minor number?
0
In the version Windows 10 v10.0.12425, which number is the build number?
12425
What is the additional phase that is only sometimes mentioned of the SDLC?
Phase 8: Retirement
Usually included with Phase 7: Maintenance, but not always
Software development that is performed in time-boxed or small increments to allow more adaptivity to change
Agile
DevOps stands for
Software development and IT operations
A way of conducting business where software developers and IT operations personnel work closely together to speed up development and deployment of applications to deliver to the end user quicker.
It is best to include security personnel as well to ensure good security despite the quick deadline.
DevOps
CIA stands for
Confidentiality
Integrity
Availability
Most common way of ensuring Confidentiality
Encryption
2 main ways of ensuring Integrity
Hash algorithms
Journaling and logging
Most common way of ensuring Availability
Redundancy in the overall system design
A structured representation of all the information that affects the security of an application. Involves using hypothetical scenarios, system diagrams, and testing to help secure systems and data.
Threat modeling
What practice helps prioritize vulnerability identification and patching?
Threat modeling
In the SDLC, when should you begin to think about security?
From the beginning: Planning and analysis and Implementation phases
Users and processes should be run using the least amount of access necessary to perform a given function
Lease privilege
The layering of security controls that is more effective and secure than relying on a single control
Defense in depth
The idea that any input received from a user should undergo input validation prior to allowing it to be utilized by an application
Never trust user input
Reducing the amount of code used by a program, eliminating unneeded functionality, and requiring authentication prior to running additional plugins is all called…
(Hint: It’s not hardening.)
Minimizing attack surface
The idea that default installations should include secure configurations instead of requiring an administrator or user to add in additional security
Secure defaults
Applications should be deployed using _____ to ensure the program is not changed prior to delivery to an end user
Code signing
Code signing enables what?
Authenticity and integrity
The idea that applications should be coded to properly conduct error handling for exceptions in order to fail securely instead of crashing
Fail securely
SDK stands for
Software Development Kit
This allows a programmer to reuse code from other programmers to save time and effort.
SDK (Software Development Kit)
T/F: You should make sure SDKs come from trusted sources to ensure no malicious code is being added.
True
Black-box, white-box, and gray-box testing are all forms of what kind of testing?
System testing
Occurs when a tester is not provided with any information about the system/program prior to conducting the test
Black-box testing
Occurs when a tester is provided full details of a system including the source code, diagrams, and user credentials in order to conduct the test
White-box testing
Occurs when a tester is given some information of a system that they are going to test.
Gray-box testing
An error that occurs while the computer is running
Run-time error
An error that causes the computer to cease running due to a coding error
Syntax error
Another word for error is
Exception
An exception handling mechanism that provides control over what the application should do when faced with a runtime or syntax error.
SEH (Structured Exception Handling)
SEH stands for
Structured Exception Handling
A method used to verify that information received from a user matches a specific format or range of values
Input validation
A type of code analysis where the source code of an application is reviewed manually or with automatic tools without running the code
Static analysis
A type of code analysis that occurs when a program is tested while it is being executed or run
Dynamic analysis
Injection of randomized data into a software program in an attempt to find system failures, memory leaks, error handling issues, and improper input validation
Fuzzing
AKA fuzz test
Code placed in computer programs to bypass normal authentication and other security mechanisms
Backdoors
T/F: Backdoors are part of security best practice.
False
Backdoors are never good to use. They provide a vulnerability for an attacker to exploit.
A method of accessing unauthorized directories by moving through the directory structure on a remote server.
Directory traversal
Anytime you see ../ in a URL, what type of exploit is it?
Directory traversal
Occurs when an attacker is able to execute or run commands on a victim computer
Arbitrary code execution
Occurs when an attacker is able to execute or run commands on a remote computer
RCE (Remote Code Execution)
RCE stands for
Remote Code Execution
A vulnerability that allows RCE to occur has what classification under the CVSS?
Critical
An attack against a vulnerability that is unknown to the original developer/manufacturer.
Zero-day attack
Occurs when a process stores outside the memory range allocated by the devleoper
Buffer overflow
A temporary storage area that a program uses to store data
Buffer
T/F: Over 85% of data breaches were caused by a buffer overflow
True
Reserved area of memory where the program saves the return address when a function call instruction is received
Stack
Occurs when an attacker places too much information into a stack or changes the value of the Return Pointer to overwrite the return address of the Pointer so it will point to a different place in a stack where they have placed their malicious code.
Buffer overflow