Video Content Lesson 9 Flashcards
Application Issues
Software Development Application Environments Malicious Code Agents Applets Objects
Software Development
Often viewed as art (not as formal as engineering)
Developers are naturally feature-oriented
Large software projects offer high exposure to errors
Developers want software to work (therefore don’t have them test it)
Many developers and testers lack security training
Pressure to deliver often requires cutting corners (less care with security)
Application Environments
2 basic types
1-Local environment (Application (or application partition) runs largely on one platform)
Most code runs on a local machine
Applications may connect to remote resources for additional information or functionality (database or remote validation)
Platform can be volatile since user interface components tend to mature quickly (change a lot and frequently update application)
2-Distributed environment (application components execute on multiple machines; Web application, app server application, database)
Malicious Code
Any program, procedure, or other sequence of instructions that makes unauthorized modifications or triggers unauthorized actions
Common types of malicious code (viruses, worms, Trojan horses, Logic bombs)
Largest vulnerability for Local Environment is introducing malicious code
Scan and evaluate all code coming into your machine
Agents
Distributed Environment (Model)
Agent - Program or process that performs services on behalf of another process (principal)
EX - Web browser is principle asks app server for service (agent)
Generally an agent works on a different environment from the principal
Agents routinely prepare data for transfer from client to server
EX web interface interfaced to database data; application access to e-mail data
Applets
Distributed Environment (Model)
Similar to agents, but generally platform-independent
Applets work on many different client platforms
Java - interpreted, multithreaded language written by Sun Microsystems
Distributed programs run on the client in a limited memory area called a sandbox
Client must have Java Virtual Machine (JVM)
ActiveX - Microsoft’s answer to Java (programs or controls run in distributed mode on the client) (No sandbox therefore potentials for malicious activities; usually limited to MS environment)
Objects
Object-oriented Programming (OOP)
Object is collection of data and collection of functions that operate on that data
Programs are developed as reusable objects
object reuse promotes stability and error reduction
Encapsulation allows for data hiding
Data and private routines are stored as a unit
Only access to data is through predefined methods
Ideal for local and distributed models
Databases and Warehousing
Databases Relational Databases Record Identification Query Language Data Access Methods Data Warehouses Aggregation Inference Polyinstantiation
Databases
collection of data often of different types
Database Management System (DBMS)
Architectures
1-hierarchical (inverted tree)
2-Network (Mesh) (hard coded links)
3-Relational (FOCUS of EXAM)
4-Object-oriented (data and functions reside together)
Relational Databases
Based on Relational Algebra
Data stored logically in collection of tables
Tables are made up of Field (columns)
In a true relational database, there are NO relationships stored in the database
indexes are sorted lists of record pointers that provide relationship clues
Record Identification
Relational databases are (easy to use, easy to program, and easy to understand)
columns are (Fields)
Rows are (Records)
Candidate Key (Field or collection of fields that can uniquely identify a record)
Primary key is (one of the candidate key used to uniquely identify a record, reference tables, fetch data from tables, and enforce referential integrity)
Enforcing Referential Integrity is done by using the primary key of one table in another table (known as the foreign key)
Foreign Key is the primary key from another table
Query Language
All databases requires some sort of query language to extract data
SQL (Structured Query Language) is the most popular
Most vendors have extensions (Oracle - PL/SQL; Microsoft - Transact SQL)
Data Access Methods
Common Data Access Methods
1-ODBC (Open Database Connectivity) (provides SQL database for disparate environments; Database driver lives between the application and the database; Application and database MUST both be ODBC-compliant)
2-JDBC (Java Database Connectivity) (Similar to ODBC, but designed for Java programs
3-XML (eXtensible Markup Language) (convenient, self-describing format for data; easy to store and transmit between systems)
4-OLE DB (Object Linking and Embedding Database) (Microsoft API for accessing data; Interface implemented using the COM (Common Object Model); Interfaces with non-SQL databases and repositories)
Data Warehouses
Repository of Information, generally from multiple databases or data sources Data Mining (searching for data in data warehouses)
Aggregation
Obtaining information of a higher sensitivity by combining information from lower levels of sensitivity
Functions (count(); Min(); Max(); Avg(); Total())
Allowing you to create summary of less secure information which may reveal more secure information
Inference
The ability to deduce information about data at sensitivity level for which a user is not cleared
Time-sensitive information
Polyinstantiation
Allows multiple database objects to exist with the same key (to avoid inference)
(won’t say whether or not a record exists)
Data and Information Storage
Data Handling Data Storage Virtual Memory Information Retrieval Knowledge-based Systems Audit and Assurance Mechanisms
Data Handling
Data Storage locations provide different vulnerabilities for attackers
Some attacks occur as data moves from one location to another
Understand how to secure data access at each location
Data Storage
Primary - memory available to the CPU (RAM or real memory) (Volatile Memory)
Secondary - Nonvolatile memory; Hard disk, magnetic tapes, removable media or mobile data, USB Drives, Memory Sticks/cards)
Virtual Memory
Memory address space that exceeds the physical memory available Done by (offsetting the addresses to physically reside in memory; all other information is stored in secondary storage; often called the swap device (this is often in nonvolatile secondary storage) (must purge this data))
Information Retrieval
1-Random Access (can access memory locations in any order) 2-Sequential Access (can ONLY access memory in order) Magnetic tapes are a popular type of sequential Need to know Device type (how data is accessed; attacker prevention; how data is stored optimization of data retrieval) Volatile Memory (contents are lost when power goes off) (Typically use random access memory (RAM) Nonvolatile memory (secondary storage, maintains value without power; uses Read-only Memory (ROM))