Home
Browse
Create
Search
Log in
Sign up
Upgrade to remove ads
Only $2.99/month
Domain Eight - Software Development Security
STUDY
Flashcards
Learn
Write
Spell
Test
PLAY
Match
Gravity
Terms in this set (191)
Modified Prototype Model (MPM)
- A form of prototyping that is ideal for web application development. It allows for the basic functionality of a desired system or component to be formally deployed in a quick time frame. The maintenance phase is set to begin after the deployment. The goal is to have the process be flexible enough so the application is not based on the state of the organization at any given time. As the organization grows and the environment changes, the application evolves with it rather than being frozen in time.
Rapid Application Development (RAD)
- A form of rapid prototyping that requires strict time limits on each phase and relies on tools that enable quick development. This may be a disadvantage if decisions are made so rapidly that it leads to poor design.
Joint Analysis Development (JAD)
- Originally invented to enhance the development of large mainframe systems. Recently, JAD facilitation techniques have become an integral part of RAD, web development, and other methods. It is a management process that helps developers to work directly with users to develop a working application. The success of JAD is based on having key players communicating at critical phases of the project. The focus is on having the people who actually perform the job (they usually have the best knowledge of the job) work together with those who have the best understanding of the technologies available to design a solution. JAD facilitation techniques bring together a team of users, expert systems developers, and technical experts throughout the development life cycle. While input from the users may result in a more functional program, the involvement of large numbers may lead to political pressures that militate against security considerations.
Exploratory Model
This is a set of requirements built with what is currently available.insights and suggestions are combined to create a usable system. Because of the lack of structure, security requirements may take second place to enhancements, which may be added on an ad hoc basis.
Modified Prototype Model (MPM)
- A form of prototyping that is ideal for web application development. It allows for the basic functionality of a desired system or component to be formally deployed in a quick time frame. The maintenance phase is set to begin after the deployment. The goal is to have the process be flexible enough so the application is not based on the state of the organization at any given time. As the organization grows and the environment changes, the application evolves with it rather than being frozen in time.
Rapid Application Development (RAD)
- A form of rapid prototyping that requires strict time limits on each phase and relies on tools that enable quick development. This may be a disadvantage if decisions are made so rapidly that it leads to poor design.
Joint Analysis Development (JAD)
- Originally invented to enhance the development of large mainframe systems. Recently, JAD facilitation techniques have become an integral part of RAD, web development, and other methods. It is a management process that helps developers to work directly with users to develop a working application. The success of JAD is based on having key players communicating at critical phases of the project. The focus is on having the people who actually perform the job (they usually have the best knowledge of the job) work together with those who have the best understanding of the technologies available to design a solution. JAD facilitation techniques bring together a team of users, expert systems developers, and technical experts throughout the development life cycle. While input from the users may result in a more functional program, the involvement of large numbers may lead to political pressures that militate against security considerations.
Exploratory Model
- This is a set of requirements built with what is currently available.insights and suggestions are combined to create a usable system. Because of the lack of structure, security requirements may take second place to enhancements, which may be added on an ad hoc basis.
Transaction Persistence
- The state of the database is the same after a transaction (process) has occurred as it was prior to the transaction, and the transaction should be durable.
Fault Tolerance and Recovery
- In the event of a hardware or software failure, the data should remain in its original state. Two types of recovery systems available are rollback and shadowing. Rollback recovery is when incomplete or invalid transactions are backed out. Shadow recovery occurs when transactions are reapplied to a previous version of the database. Shadow recovery requires the use of transaction logging to identify the last good transaction.
Sharing by Multiple Users
- The data should be available to multiple users at the same time without endangering the integrity of the data, that is the locking of data.
Security Controls
- Examples include access controls, integrity checking, and view definitions.
The two integrity rules of the relational model
are entity integrity and referential integrity. The two rules apply to every relational model and focus on the primary and foreign keys.
The main components of a database using SQL are:
"Schemas - Describes the structure of the database, including any access controls limiting how the users will view the information contained in the tables.
Tables - The columns and rows of the data are contained in tables. Views - Defines what information a user can view in the tables - the view can be customized so that an entire table may be visible or a user may be limited to only being able to see just a row or a column.
Views are created dynamically by the system for each user and provide access control granularity."
The three parts (sometimes referred to as layers) of the Java security approach are:
"Verifier (or Interpreter) - Helps to ensure type safety. It is primarily responsible for memory and bounds checking.
Class Loader - Loads and unloads classes dynamically from the Java runtime
Security Manager - Acts as a security gatekeeper protecting against rogue functionality."
Security Issues in Source Code
"-Buffer Overflow
-Citizen Programmers
-Covert Channel
-Malicious Software (Malware)
-Malformed Input Attacks
-Memory Reuse (Object Reuse)
-Executable Content /Mobile Code
-Social Engineering
-Time of Check/Time of Use (TOC/ TOU)
-Between- the- lines
-Trapdoor/backdoor"
Malware Types
"Virus
-File Infectors
-Boot Sector Infectors
-System Infectors
-Companion Virus
-Email Virus
Worms
Hoaxes
Trojans"
Remote-Access Trojans (RATs) Remote-access
Trojans are programs designed to be installed, usually remotely, after systems are in production and not in development, as is the case with logic bombs and backdoors.
DDoS Zombies DDoS
(distributed denial of service) is a modified DoS attack. DoS attacks do not attempt to destroy or corrupt data, but they attempt to use up a computing resource to the point where normal work cannot proceed.
Logic Bombs Logic
bombs are software modules set up to run in a dormant state and to monitor a specific condition or set of conditions and to activate their payload under those conditions. A logic bomb is generally implanted in or coded as part of an application under development or maintenance. Unlike a RAT or Trojan, it is difficult to implant a logic bomb after the fact.
Spyware and Adware
It is extremely difficult to define which spyware and adware entities are malicious and which are legitimate marketing tools.
Pranks Pranks
are very much a part of the computer culture, so much so that anyone can now buy commercially produced joke packages that allow you to perform "stupid Mac (or PC or Windows) tricks."
Botnets
is a network of automated systems or processes (robots or bots) performing a specific function. A botnet is also dedicated to some form of malicious activity. Botnets have greatly magnified the power and speed of malicious operations and have allowed for tuning and directing of operations in a way that was not possible with viral programs alone. In the earliest days of botnets, IRC was the command and control channel of choice.
Heuristic Scanners
A recent addition to scanners is intelligent analysis of unknown code, currently referred to as heuristic scanning. It should be noted that heuristic scanning does not represent a new type of antiviral software. More closely akin to activity monitoring functions than traditional signature scanning, this looks for suspicious sections of code that are generally found in viral programs.
Compilers
are used to convert high level languages (like C, C++ ) into machine code .
Assembler
are used to convert assembly language code into machine code.
Interpreter
An interpreter is a computer program which executes a statement directly (at runtime)
To be secure, the kernel must meet three basic conditions:
"Completeness - All accesses to information must go through the kernel
Isolation - The kernel itself must be protected from any type of unauthorized access
Verifiability - The kernel must be proven to meet design specifications"
Distributed Environment
is a systems architecture that integrates the management of application software, application platform, technology interface, information, and communications.
Client—Server Systems
enable an application system to be divided across multiple platforms that have different operating systems and hardware. The client requests services and the server fulfills these requests. The server handles the data-processing services and provides the processed result to the client.
Distributed Data Processing or DDP
are physically separated computers,they are used to manage data independently and are able to share it with one another.
Local Environment
applications are located in one place and on one system and communication links do not exist.
Agents
are small standalone programs that are part of a larger application. Agents carry out specific functions, such as remote status collection or remote system management. Agents generally run autonomously and without any human interaction.
Applets
are small programs residing on a host computer that are downloaded to a client computer to be executed, usually written in Java, Active-X, JavaScript. It is a software program that runs within the context of another program.
Java
Java does not access system files
ActiveX
Active X will ask for permission
Javascript
Javascript is more dangerous
Machine language or Machine code
is a software program that is executed directly by the CPU. Machine language is CPU-dependent, it is a series of ones and zeroes which translate to instructions that the CPU understands.
Assembly language
is a low-level computer programming language. The instructions are written in short mnemonics, such as ADD for addition, SUB for subtract, and JMP for jump, that match machine language instructions. An assembler converts assembly language into machine language. A disassembler converts machine language into assembly.
high-level language
programmers write the code using logical words and symbols. The code is then translated into machine code before executed by the CPU. High-level languages contain English-like instructions such as printf (read as print-f) for print formatted.
Scource code
Source code is computer programming language instructions written in text that must be translated into machine code before execution by the CPU.
interpreter
An interpreter translates high-level instructions into an intermediate form, which it then executes. In contrast, a compiler translates high-level instructions directly into machine language. Will run slower
Compiled programs
"generally run faster than interpreted programs. The advantage of an interpreter, however, is that it does not need to go through the compilation stage during which machine instructions are generated. A compiler searches all the errors of a program and lists them together, whereas an interpreter checks the errors of a program statement by statement.
-Compliers are difficult to use, whereas interpreters are easier to use.
-Programming language like C, C++ uses compilers and Programming language like Python, Ruby use interpreters."
Open-source software
publishes source code publicly, allowing anyone to inspect, modify, or compile it. Examples include Ubuntu Linux and the Apache web server.
Closed-source software
is typically released in executable form: The source code is kept confidential. Examples include Oracle and Microsoft Windows 7.
Proprietary software
is subject to intellectual property protections such as patents or copyrights. It can be either Open-source or Close-source software. For example, Apple iOS
Shareware
is a fully functional proprietary software that may be initially used free of charge. If the user continues to use it for a period of time specified by the license (such as 30 days), the Shareware license requires payment. For example, trial version of MSOffice
Crippleware
is partially functioning proprietary software, often with key features disabled. The user is required to make a payment to unlock the full functionality. Example includes IBM Appscan.
Free software
can be either free of charge to use or the user is free to use the software in any way he or she chooses, including modifying it.
Freeware
is free of charge to use. For example, free mobile apps.
A Buffer Overflow attack
occurs when someone attempts to disrupt a program's operation. In a buffer overflow attack, the excess input data overflows the program's input buffer and overwrites another part of the program's memory space. Depending upon the hardware and software architecture of the attacked program, this can lead to corruption of other variables in the program which could lead to an unexpected change in the program's behavior, or the overflow could overwrite instructions in the software. To fix, ensure input validation occurs
Citizen Programmers
are programmers who may create applications with both security and reliability problems. If this type of unsupervised programming is allowed, then a single user may have complete control over an application or process. Visual Basic, included in the Microsoft Office suite, is often used by citizen programmers to develop their applications or extend existing ones. They are also known as casual programmers, who are unlikely to be trained in, or bound by system development practices that involve proper application design, change control, and support for the application. Therefore, applications developed by them are likely to be chaotic and lacks assurance in regard to security. It should be addressed as a matter of policy.
A covert channel
or confinement problem is an information flow issue. It is a communication channel that allows two cooperating processes to transfer information in such a way that it violates the system's security policy. This is primarily a concern in systems containing highly sensitive information.
There are two commonly defined types of covert channels
storage and timing
A covert storage channel
involves the direct or indirect reading of a storage location by two different processes. A memory location or sector on a disk that is shared by two subjects at different security levels are typical examples of covert storage.
A covert timing channel
involves the ability to influence the rate that some other process is able to acquire resources, such as the CPU, memory, or I/O devices. The variation in rate may be used to pass information to another by modulating its own use of system resources.
Malicious software
also known as malicious code, is a class of software that comes in many forms and performs a variety of damaging actions.
Time of Check or Time of Use or TOC/TOU attack
"occurs based on the time variations between the system security functions check on the variables contents and when the variables are actually used during operations.
It is also knows as race condition.
In this state, the program may behave inconsistently, with arbitrary and erroneous results. "
Data Contamination
means corruption of data integrity by input data errors. It can be a deliberate or accidental process or act that result in a change in the integrity of the original data.
The garbage collector
"attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program.
Garbage collection is often portrayed as the opposite of manual memory management.
The time when the garbage is actually collected can be unpredictable, resulting in stalls scattered throughout a session."
A trapdoor or backdoor is a hidden mechanism that bypasses access control measures. (Maintenance hook)
"It is an entry point into a program that is inserted in software by programmers during the program's development.
A programmer or someone who knows about the backdoor can exploit the trapdoor as a covert means of access after the program has been implemented in the system.
An unauthorized user may also discover the entry point while trying to penetrate the system.
"
CMM
The Software Capability Maturity Model or CMM is based on the premise that the quality of a software product is a direct function of the quality of its associated software development and maintenance processes.
CMMI Maturity Model
"Level One: Initial - The software process is usually inconsistent and chaotic. Success depends on an individual's effort, talent, and heroics.
Level Two: Repeatable - The software process usually has a basic and reliable project management process. Project management practices are institutionalized.
Level Three: Defined - The software process for management and engineering activities are defined. Technical practices are integrated with management practices.
Level Four: Managed - Product and process improvement is the key focus. Product and process are quantitatively controlled.
Level Five: Optimizing - The focus of this level is Continuous process improvement. Process improvement is institutionalized."
replaced the Software CMM
An evolution of the CMM methodology has resulted in the development of the Capability Maturity Model Integration (CMMI) by the SEI. The CMMI integrates the best practices and knowledge from the disciplines of software engineering, acquisition, and systems engineering. It has replaced the Software CMM
Systems development life cycle (SDLC)
?
An Integrated Product Team or IPT is a multi-disciplinary team that helps facilitate decision making by
"working together to build successful programs identifying and resolving issues making comprehensive and timely recommendations
The team comprises members from the organization's appropriate functional disciplines.
An IPT is used for review and decision-making in complex programs and projects. It provides a forum for collaboration by involving all the stakeholders such as users, management, customers, contractors, and developers"
DevOps
?
Static testing
is a form of software testing where the software isn't used. It checks for the sanity of the code, algorithm, or document. It primarily checks the code or manually reviews the code or document to find errors. Code reviews, inspections and Software walkthroughs are also used.
Dynamic testing or dynamic analysis
is a term used in software engineering to describe the testing of the dynamic behavior of code. In dynamic testing the software must actually be compiled and run. Itinvolves working with the software, giving input values and checking if the output matches the expected values etc., Unit tests, integration tests, system tests and acceptance tests utilize dynamic testing
White-box testing
also known as clear box testing, glass box testing, transparent box testing, and structural testing. It is a method of testing software that tests internal structures or workings of an application. In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs.
Black box testing
also known as functional testing. A software testing technique whereby the internal workings of the item being tested are not known by the tester. For example, in a black box test on software design the tester only knows the inputs and the expected outcomes and not the actual output achieved. The tester does not ever examine the programming code and does not need any further knowledge of the program other than its specifications.
Requirements traceability matrix or RTM
can be used to map customer's requirements to the software testing plan. It traces the requirements, and ensures that they are being met.
Combinatorial software testing
is a black-box testing method that seeks to identify and test all unique combinations of software inputs. An example of combinatorial software testing is pairwise testing (also called all pairs testing).
Fuzzing
is also known as fuzz testing. It is a type of black box testing that enters random, malformed data as inputs into software programs to determine if they will crash. A program that crashes when receiving malformed or unexpected input is likely to suffer from a boundary checking issue and may be vulnerable to a buffer overflow attack. Any program that crashes or hangs has failed the fuzz test.
Unit Testing
is the low-level tests of software components, such as functions, procedures, or objects.
Installation Testing
is the testing of software as it is installed and first operated
Integration Testing
is done to test multiple software components as they are combined into a working system.
Regression Testing
tests software after updates, modifications, or patches.
Acceptance Testing
is performed to ensure the software meets the customer's operational requirements, when this testing is done directly by the customer, it is called User Acceptance Testing
Waterfall Method
?
Spiral model
?
Rapid application development
"Advantages of this method are: it promotes strong collaborative atmosphere and dynamic gathering of requirements. Business owner actively participates in prototyping, writing test cases and performing unit testing.
Disadvantages of RAD are: it depends on strong cohesive teams and individual commitment to the project. Decision-making relies on the feature functionality team and a communal decision-making process with lesser degree of centralized project management and engineering authority."
Extreme Programming
"-Extreme Programming is a discipline of software development that is based on values of simplicity, communication, and feedback. It is a structured approach with subprojects and with defined scope and programmers working in pairs. The team produces the software in a series of small, fully integrated releases that fulfill the customer defined needs for the software.
-Extreme Programming or XP is an Agile Software development method that uses pairs of programmers working off a detailed specification.
-Benefits of extreme programming are: it lowers the cost of changes through quick spirals of new requirements. Most design activity occurs incrementally and on the fly.
-Drawbacks of the method are: the programmers must work in pairs, which is difficult for some people. Absence of up-front detailed design occurs, which can result in more redesign effort in the long term."
Prototyping
The objective is to build a simplified version (prototype) of the application, release it for review, and use the feedback from the users' review (or clients) to build a better version.
Modified Prototype Model or MPM
The goal is to have a flexible process to ensure that the application is not based on the state of the organization at any given time.
Joint analysis development or JAD
model is a management process that helps developers to work directly with users to develop a working application. The success of JAD is based on having key players communicating at critical phases of the project.
Exploratory Model
is a set of requirements built with what is currently available. Assumptions are made as to how the system might work, and further insights and suggestions are combined to create a usable system.
Computer-Aided Software Engineering or CASE
is the technique of using computers and computer utilities to help with the systematic analysis, design, development, implementation, and maintenance of software.
Component-Based Development
is the process of using standardized building blocks to assemble, rather than develop, an application.
Reuse Model
In this model, an application is built from existing components. The reuse model is best suited for projects using object-oriented development because objects can be exported, reused, or modified.
Java Security
"The Java programming language implements some specific security provisions. Some of these have been added to subsequent programming languages. The three parts or layers of the Java security approach are
First layer is verifier (or interpreter), which helps to ensure type safety. It is primarily responsible for memory and bounds checking.
Second layer is class loader, which loads and unloads classes dynamically from the Java runtime environment and
The third layer is security manager, which acts as a security gatekeeper protecting against rogue functionality.
Additional security features include Cryptographic algorithms, secure messaging, authentication & authorization service, encryption etc."
Web Application Security Consortium or WASC
A nonprofit organization which produces open source and best practices for World Wide Web. It is composed of an international group of experts, industry practitioners, and organizational representatives
Open Web Application Security Project or OWASP
"A nonprofit organization focused on enhancing the application security ISO/IEC 27034
International standard that provide guidelines to organizations on integrating security in software processes and is applicable to in-house developed or acquired software."
Objects
are distinct entities that a programmer can create. Each object has the ability to manipulate itself.
Message
is the communication to an object to carry out an operation.
Method
is the code that defines the action of the object in response to a message.
Behavior
refers to the results exhibited by an object in response to a message.
Class
is the collection of the common methods of a set of objects that defines the behavior of those objects.
Objects
are instances of classes that contain their methods.
Encapsulation
protects the object by denying direct access to view or interact with what is located inside the object.
Delegation
is forwarding a request by an object to another object.
Inheritance
is the concept wherein a data class defines the subclasses of data objects that share some or all of the main class characteristics.
Polymorphism
is the concept of objects processing differently depending on their data type.
Polyinstantiation
is the development of a detailed version of an object from another object using different values in the new object.
Information hiding
means hiding the process of other components.
Abstraction
is suppressing un-necessary details.
basic concepts of OOP
"Objects provide abstraction or information hiding.
Objects know how to access their own data
Objects know how to manipulate themselves
Objects pass messages to other objects"
COM—Component Object Model
"COM stands for Component Object Model.
COM locates objects on a local system. It also allows objects written in different OOP languages to communicate with each other. For example, objects written in C++ can send messages to objects written in Java.
COM is designed to hide the details of any individual object, instead of focusing on the object's capabilities. The Component Object Model or COM is developed by Microsoft."
DCOM—Distributed Component Object Model
DCOM stands for Distributed Component Object Model. It is a networked sequel to COM developed by Microsoft. DCOM locates objects over a network. Microsoft Distributed COM or DCOM extends the Component Object Model or COM to support communication among objects on different computers using a LAN, a WAN, or even the Internet. DCOM allows the application to be distributed at locations which is sensible to the customer and to the application. DCOM includes Object Linking and Embedding or OLE which is a way to link documents together.
CORBA—Common Object Request Broker Architecture
"It is an open vendor-neutral networked object broker framework developed by the Object Management Group or OMG. It competes with Microsoft's proprietary DCOM It enforces security policy through access control, data protection, non-repudiation, and auditing. CORBA defines an industry standard that enables programs written in different languages, using different platforms and operating systems to interface and communicate. To implement this compatible interchange, a user develops a small amount of initial code and an Interface Definition Language or IDL file. The IDL file then identifies the methods, classes, and objects that are the interface targets.
For example, CORBA can enable Java code to access and use objects whose methods are written in C++."
parameters
A security risk exists when all parameters have not been fully checked for accuracy and consistency by the operating systems. The lack of parameter checking can lead to buffer overflow attacks. Parameter checking is implemented by the programmer and involves checking the input data for disallowed characters, length, data type, and format. Other technologies to protect against buffer overflows include canaries, the use and monitoring of indicator data values at the end of buffer areas.
Memory protection
is concerned with controlling access to main memory. When several processes are running at the same time, it is necessary to protect the memory used by one process from unauthorized access by another. This can be ensured by partitioning memory to ensure processes cannot interfere with each other's local memory and to ensure common memory areas are protected against unauthorized access.
Granularity of controls or security ensures
that the security controls are granular enough to address both program and user otherwise the users will get more access permission than the intended access. For example, if the user is unable to access object A, but the user has access to a program that can access object A, then the security mechanisms could be bypassed. Inadequate granularity of controls can be addressed by proper implementation of the concept of least privilege, setting reasonable limits on the user, and separation of duties and functions should be covered. Programmers should never be system administrators or users of the application. Grant users only those permissions necessary to do their job.
Time of Check or Time of Use
" is possible only if there are multiple threads of execution at the same time. The most common TOC/TOU hazards are file-based race conditions that occur when there is a check on some property of the file that precedes the use of that file.
To avoid TOC/TOU problems, especially file-based issues, the programmer should avoid any file system call that takes a filename for an input, instead of a file handle or a file descriptor. Files that are to be used should be kept in their own directory, where the directory is only accessible by the universal ID or UID (read as U-I-D) of the program performing the file operation. Race conditions are not the only TOC/TOU situations, and some applications may require periodic or continual authentication, depending upon security and policy requirements"
Social Engineering
"is a way in which attackers can try to use social influence over users to subvert normal processes and technical controls for their own gain which include subtle intimidation, bluster, pulling rank, exploiting guilt, pleading for special treatment, exploiting a natural desire to be helpful, or appealing to an underling's subversive streak.
In regard to protection against social engineering attacks, users and help desk staff needs a proper framework to work. The best method of preventing social engineering is to make users aware of the threat and give them the proper procedures for handling unusual or what may seem usual requests for information"
SOA
?
Record
is a collection of related data items.
File
is a collection of records of the same type.
Database
is a cross-referenced collection of data that exists for a common purpose.
Database management system or DBMS
is a suite of application programs that typically manage large structured sets of persistent data.
Attribute
is a column in a two-dimensional database.
Tuple
is a row in a two-dimensional database.
Primary key
are columns that make each row unique.
View
is a virtual relation defined by the database admin to keep subjects from viewing certain data.
Foreign key
is an attribute of one table that is related to the primary key of another table. Cell is an intersection of a row and column.
Schema
defines the structure of the database.
Data dictionary
is the central repository of data elements and their relationships.
Relational Model
-It organizes data based on two- dimensional arrays known as relations, or tables as related to databases
Hierarchical Model
-different record types representing real-world entities are embedded in a predefined hierarchical structure
Network Model
-a hierarchical relationship between two record types representing real- world entities is established by the set construct. A set consists of circular linked lists where one record type, the set owner or parent, appears once in each circle, and a second record type, the subordinate or child, may appear multiple times in each circle.
Distributed Model
-is spread across a network of computers that are geographically dispersed and connected via communications links
Object-oriented Model
-The conglomeration of object oriented programming and database technology led to this new kind of database. These databases attempt to bring the database world and the application-programming world closer together
The primary concerns for the DBMS are
the confidentiality of sensitive data and enforcing the controls to ensure the continued integrity of the data.
Aggregation
. The ability to combine non-sensitive data from separate sources to create sensitive information. For example, a user takes two or more unclassified pieces of data and combines them to form a classified piece of data.
Bypass attacks.
Users attempt to bypass controls at the front end of the database application to access information. If the query engine contains security controls, the engine may have complete access to the information. Thus, users may try to bypass the query engine and directly access and manipulate the data.
Inference.
The ability to deduce sensitive or restricted information from observing available information. Essentially, users may be able to determine unauthorized information from what information they can access and may never need to directly access unauthorized data. Inference is one of the hardest threats to control.
Polyinstantiation
. It is a repeating process that produces multiple records of an object by replacing a variable with data values.
Views
. It restricts the data a user can see or request from a database. One of the threats is that users may try to access restricted views or modify an existing view. The view only limits the data the user sees. It does not limit the operations that may be performed on the views.
Concurrency
. When actions or processes run at the same time, they are said to be concurrent. Problems with concurrency include running processes that use old data, updates that are inconsistent, or having a deadlock occur.
Data contamination
The corruption of data integrity by input data errors or erroneous processing. This can occur in a file, report, or a database.
Deadlocking
. It occurs when two users try to access the information at the same time and both are denied. In a database, deadlocking occurs when two user processes have locks on separate objects and each process is trying to acquire a lock on the object that the other process has. Deadlock can be viewed as a special issue of concurrency.
Denial of service
Any type of attack or actions that could prevent authorized users from gaining access to the information. This can be partially prevented by limiting the number of rows of data returned from any one query.
Improper modification of data
. Unauthorized or authorized users may intentionally or accidentally modify information incorrectly.
Interception of data
is an attack which occurs either by sniffing, wiretapping, or by man-in-the-middle type of attack by an unauthorized person. It is a serious threat to information security.
Query attacks
Users try to use query tools to access data not normally allowed by the trusted front end. There are instances where improper or incomplete checks on query or submission parameters can be used in a similar way to bypass access controls.
Server access
. The server where the database resides must be protected not only from unauthorized logical access, but also from unauthorized physical access to prevent the disabling of logical controls.
Time of check or time of use or TOC/TOU
can also occur in databases. An example is when some type of malicious code or privileged access could change data between the time that a user's query was approved and the time the data is displayed to the user.
Web security
Many DBMSs allow access to data through Web technologies. When the Web page is accessed, the query is dynamically created and executed and the information is displayed within the HTML display. If the source for the page is viewed, all information, including restricted data, may be visible.
Unauthorized access
Allowing the release of information either intentionally or accidentally to unauthorized users.
Data normalization
is a process where redundant information is stripped out and users are enabled to query one database entity rather than accessing and querying different databases.
Data mining
is a tool that uses structured queries along with an inference engine to extract information from databases or data warehouses to match complex or relational information searches.
Data Dictionary
is a database for system developers, which records all the data structures used by an application.
Metadata
is information on the data, which provides a systematic method for describing resources, and improving the retrieval of information.
Online Analytical Processing or OLAP
technologies provide an analyst with the ability to formulate queries and, based on the outcome of the queries, define further queries. The analyst can collect information by roaming through the data.
Data scrubbing
refers to maintenance of the data warehouse by deleting information that is unreliable or no longer relevant.
Database integrity
ensures accuracy, validity, and consistency of the data entered into the database.
Referential integrity
is considered to be broken if a primary key in a parent table does not match with each foreign key in a secondary table.
Semantic integrity
means the attribute data type and the attribute column value are consistent. Entity integrity is a unique primary key, which is not null, associated with each tuple.
Lock Controls.
Locks are used by the DBMS to control read and write access to specific rows of data in relational systems, or objects in object-oriented systems.
ACID
stands for atomicity, consistency, isolation, and durability.
Malicious software
, also known as malicious code, is a class of software that comes in many forms and performs a variety of damaging actions. There are different types of malware and they are as follows.
Virus
—They are computer code fragments that attach themselves to a legitimate program file on a computer. The virus can only run when the legitimate program is run.
Master Boot Record or MBR
viruses attach to the master boot record of a floppy disk.
File infector viruses
attach to executable programs for example, .EXE& .COM files.
Macro viruses
propagates through macros that could be embedded into document and spreadsheet files.
Backdoor or Trap door or Wormhole
- A backdoor in a computer system or cryptosystem or algorithm is a method of bypassing normal authentication, securing remote access to a computer, obtaining access to plaintext etc., while attempting to remain undetected. The backdoor may take the form of an installed program for example, Back Orifice or may subvert the system through a rootkit.
Trojans / Trojan Horse
- A Trojan horse is a program that is disguised as another program. For example, a Trojan horse can be named Notepad.exe and have the same icon as the regular Notepad program.
Logic bombs
A logic bomb executes a program, or string of code, when a certain event happens or a date and time arrives. For example, if a user accesses her bank account software, a logic bomb may be initiated, and a program may be triggered to copy the user's account number and transaction codes.
Spyware and Adware
encompass a wide variety of means that have been developed to track the behavior of users' Internet usage patterns. Spyware and adware take on many forms including:
Web beacons
also known as web bugs
Browser helper objects (BHOs)
helpful toolbars
Key loggers
record a user's keystrokes and transmit that data back to a central location.
Prank
is a trick of an amusing, playful, or sometimes malicious nature such as, pretending to be someone else on the phone and extracting confidential information.
Remote Access Trojan (RATS)
are programs designed to be installed, after systems are installed and working.
Worms
are similar to viruses and they have their own means of propagation built-in. Two common types of worms are:
Mass mailing worms
They propagate via e-mail. The worm's malicious code could reside within the HTML code in the message, or in an attached file.
Port scanning worms
They scan the network for other systems that may be vulnerable and attempt to spread to those neighboring systems.
Hoaxes or Mind Virus
is a deliberately fabricated falsehood made to masquerade truth. For example, a false report about non-existent viruses by email or pop-up window known as virus hoax.
Data Diddler
Data diddling is the changing of data before or during entry into the computer system. Examples include forging or counterfeiting documents used for data entry and exchanging valid disks. This type of Trojan deliberately corrupts data in the system
Distributed Denial of Service or DDoS
attack occurs when multiple systems flood the bandwidth or resources of a targeted system, usually one or more web servers.
Botnets or Bots
is short for robots, sometimes a part of the malicious payload found in malware. Bots enable a bot herder, the owner of the bot program to remotely control the infected computer for a variety of purposes including:
Relaying spam
Spammers and bot herders can cooperate to use bots as systems to relay spam to evade blacklisting.
Hosting phishing sites
Phishing scams can use systems owned by bots to host the sites where victims are solicited for sensitive information.
Denial of Service attacks
Bot herders can launch Denial of Service or DoS attacks from bot-controlled systems by instructing those systems to launch thousands of network messages per second to a target system.
Scanners or signature scanners
look for search strings whose presence is characteristic of a known virus. They have the capabilities to remove the virus from an infected object. They are also known virus scanners.
An activity monitor
performs a task very similar to an automated form of traditional auditing: it watches for suspicious activity. For example, check for any calls to format a disk or attempts to alter or delete a program file while a program other than the operating system is in control.
Heuristic Scanners
can be defined as the intelligent analysis of unknown code.
Change Detection software
examines system or program files and configuration, stores the information, and compares it against the actual configuration. Most of these programs perform a checksum or cyclic redundancy check (CRC) that will detect changes to a file even if the length is unchanged.
Knowledge-Based System—Neural Network
A neural network is based on the functioning of neurons or biological nerve cells.
The most common types of threats and vulnerabilities for Web Application Environments are:
"-Authentication and access control which means insufficient or improper security measures for authentication and access control can lead to unauthorized access and data loss.
Information gathering. This may be the first step in an attacker's methodology, in which the information gathered may allow an attacker to infer additional information that can be used to compromise systems.
-Absence of parameter validation. Generally, the values that are being received by the application are validated before the server application processes them within the system. In the absence of parameter validation the web application is prone to attacks.
-Lack of administrative interfaces. Remote console used by web administrators for administration can be compromised, if adequate security measures are not in place.
-Unavailability of Input validation. Unavailability of proper validation for input data makes the software vulnerable to many attacks, such as Path or directory traversal, SQL injection, etc.
-Replay attack. An attacker capturing the traffic from a legitimate session and replaying it with the goal of masquerading as an authenticated user.
-Denial of Service or DoS Attacks are those attacks where many unsolicited requests are sent to a web server or web applications restricting the valid users to enter into a session with the web server.-"
Secure Software Best Practices (ISC2)
?
THIS SET IS OFTEN IN FOLDERS WITH...
CISSP Domain 3
144 terms
Domain One- Security and Risk Management
113 terms
Domain Two - Asset Security
75 terms
Domain Three - Security Engineer
193 terms
YOU MIGHT ALSO LIKE...
Info Assurance ( CNSSI 4009.1) NATIONAL INFO ASSUR…
98 terms
Op System Security Ch. 1, 2, 3, 5
40 terms
CS6035 - Exam 1
80 terms
Network Security: Chp. 5 - Access Controls
100 terms
OTHER SETS BY THIS CREATOR
In_Process
307 terms
Old Terms
50 terms
Domain Seven - Security Operations
174 terms
Domain Six - Security Assessment and Testing
83 terms