650 likes | 687 Views
Learn about different types of applications, threats they face, and security controls to counter these threats in this comprehensive guide.
E N D
Application Security CISSP Guide to Security Essentials Chapter 3
Objectives • Types of applications • Application models and technologies • Application threats and countermeasures • Security in the software development life cycle CISSP Guide to Security Essentials
Objectives (cont.) • Application security controls • Databases and data warehouses CISSP Guide to Security Essentials
Types of Applications • Agents • Standalone programs that are part of a larger application • Examples: • Anti-virus • Patch management • Configuration management CISSP Guide to Security Essentials
Types of Applications (cont.) • Applets • Software programs that run within the context of another program • Example: media players within browser CISSP Guide to Security Essentials
Types of Applications (cont.) • Client-server • Separate programs on clients and servers communicate via networks and work together • Few developed now but many are in use CISSP Guide to Security Essentials
Types of Applications (cont.) • Distributed • Software components run on several systems • Two-tier, three-tier, multi-tier • Reasons: scalability, performance, geographical CISSP Guide to Security Essentials
Types of Applications (cont.) • Web • Web browser as client, application server back-end • Client software nearly universal • Application software centralized CISSP Guide to Security Essentials
Application Models and Technologies • Control flow languages • Structured languages • Object oriented languages • Knowledge based languages CISSP Guide to Security Essentials
Control Flow Languages • Linear, sequential • Use of “if – then – else” • Branching with “go to” • Examples: • BASIC, COBOL, Cold Fusion, FORTRAN, Perl, PHP, Python, VBScript CISSP Guide to Security Essentials
Structured Languages • Nested, heavy use of subroutines and functions • Little or no “go to” • Examples: • C • Pascal CISSP Guide to Security Essentials
Object Oriented Languages • Utilize concepts of object programming • Classes, objects, instances, and inheritance • Methods, instantiations • Encapsulation, abstraction, polymorphism • Examples • C++, Java, Ruby, Simula, Smalltalk CISSP Guide to Security Essentials
Knowledge Based Applications • Neural networks • Modeled after biological reasoning processes • Artificial neurons that store pieces of information • Given cases about situations and outcomes, can predict future outcomes CISSP Guide to Security Essentials
Knowledge Based Applications (cont.) • Expert systems • Inference engine and knowledge base of past situations and outcomes CISSP Guide to Security Essentials
Threats to Applications • Reasons for attacks • Industrial espionage • Vandalism and disruption • Denial of service • Political / religious CISSP Guide to Security Essentials
Threats to Applications (cont.) • Buffer overflow attacks • Disrupt a software application by providing more data to the application than it was designed to handle CISSP Guide to Security Essentials
Threats to Applications (cont.) • Buffer overflow attacks (cont.) • Types • Stack buffer overflow • NOP sled attack • Heap overflow • Jump to register attack CISSP Guide to Security Essentials
Threats to Applications (cont.) • Examples: Morris worm, ping of death, code red worm • Buffer overflow attack countermeasures • Use safe languages and libraries • Executable space protection • Stack smashing protection • Application firewalls CISSP Guide to Security Essentials
Threats to Applications (cont.) • Covert channel • Unintended and hidden channel of communications • Types: • Covert storage channel: read a storage location and learn about the application or other data CISSP Guide to Security Essentials
Threats to Applications (cont.) • Covert channel types (cont.) • Timing channel: observe timings in an application to determine what is happening in the application • Countermeasures • Careful software analysis, good software engineering CISSP Guide to Security Essentials
Threats to Applications (cont.) • Side channel attack • An attack on a cryptosystem based upon physical information gained from the system • Examples: timing, power consumption, emanations, and even sounds CISSP Guide to Security Essentials
Threats to Applications (cont.) • Countermeasures • Limit release of information through shielding and other means CISSP Guide to Security Essentials
Threats to Applications (cont.) • Malicious software • Types: viruses, worms, Trojan horses, rootkits, bots, spam, pharming, spyware, key loggers • Purpose • Steal, corrupt, or destroy information • Remote control • Denial of service CISSP Guide to Security Essentials
Threats to Applications (cont.) • Types of malware • Virus: human assisted replication, embed in programs, files, master boot records • Worm: self replicating, scan for victims, rapid spread • Trojan horse: claims one function, but is malware CISSP Guide to Security Essentials
Threats to Applications (cont.) • Types of malware (cont.) • Rootkit: hide within or beneath the operating system • Bot: remote control zombie • Spam: unsolicited e-mail CISSP Guide to Security Essentials
Threats to Applications (cont.) • Types of malware (cont.) • Pharming: attack on DNS to redirect traffic to decoy application • Spyware: collect information about usage, forward to central server • Key logger: logs keystrokes and mouse movements, forwards to central server CISSP Guide to Security Essentials
Threats to Applications (cont.) • Malware countermeasures • Anti-malware • Patches • Firewalls and application firewalls • Hardened systems CISSP Guide to Security Essentials
Threats to Applications (cont.) • Malware countermeasures (cont.) • Intrusion detection systems • Decreased privilege levels • Penetration testing CISSP Guide to Security Essentials
Threats to Applications (cont.) • Input attacks • Buffer overflow • Script injection • Cross site scripting • Cross site request forgery CISSP Guide to Security Essentials
Threats to Applications (cont.) • Countermeasures • Input field filtering, application firewall, application vulnerability scanning, software developer training CISSP Guide to Security Essentials
Threats to Applications (cont.) • Object reuse • Use of a resource belonging to another process, including: • Memory, databases, file systems, temporary files, and paging space CISSP Guide to Security Essentials
Threats to Applications (cont.) • Object reuse countermeasures • Application isolation • Server virtualization • Developer training CISSP Guide to Security Essentials
Threats to Applications (cont.) • Mobile code • Executable code, active content, downloadable content • Examples: active website content, downloaded programs • Some is desired, but some is malicious in nature CISSP Guide to Security Essentials
Threats to Applications (cont.) • Mobile code countermeasures • Anti-malware, mobile code access controls • Reduced user privileges CISSP Guide to Security Essentials
Threats to Applications (cont.) • Social engineering • Attack on personnel to gain secrets • People are vulnerable because they want to help • Social engineering countermeasures • Security awareness training that includes accountability CISSP Guide to Security Essentials
Threats to Applications (cont.) • Time of check / time of use (TOCTOU) • Also known as a “race condition” • Defect in resource allocation and management controls • Possible exploitation to cause harm or steal data CISSP Guide to Security Essentials
Threats to Applications (cont.) • TOCTOU countermeasures • Reviews of resource allocation controls • Improve privacy of communications CISSP Guide to Security Essentials
Threats to Applications (cont.) • Back door / maintenance hook • Access holes deliberately planted by a developer • To facilitate easier testing during development • To facilitate production access • To facilitate a break-in CISSP Guide to Security Essentials
Threats to Applications (cont.) • Back door countermeasures • Code reviews • Source code control CISSP Guide to Security Essentials
Threats to Applications (cont.) • Logic bombs • Deliberate malfunction that causes harm • Time bombs • Malfunction on a given date and time • Event bombs • Malfunction on a specific event CISSP Guide to Security Essentials
Threats to Applications (cont.) • Logic bomb countermeasures • Software source code review, external audits CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (SDLC) • SDLC • The entire collection of processes used to design, develop, test, implement, and maintain software CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security must be included in each step of the SDLC • Conceptual • Requirements and specifications development • Application design, coding, and testing CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security in the conceptual stage • Presence of sensitive information must be identified • Access controls (users, administrators, third parties) • Regulatory conditions • Security dependencies CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security application requirements and specifications • Functional requirements • Standards • Security requirements • Roles, access controls, audit logging, configuration management CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Requirements and specifications (cont.) • Regulatory requirements • Test plan a byproduct of requirements CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security in application design • Adhere to all requirements and specifications • Published design documents • Design reviews • Reviewed by all stakeholders including security CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Threat risk modeling • Identify threats and risks prior to development • Possible changes to specs, req’s, or design CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security in application coding • Develop safe code • Free of common vulnerabilities • Use safe libraries that include safe functions for input validation CISSP Guide to Security Essentials
Security in the Software Development Life Cycle (cont.) • Security in testing • Testing should verify correct coding of every requirement and specification CISSP Guide to Security Essentials