Chapter 8 - SDLC - v1
Chapter 8 - SDLC - v1
• Waterfall Model
• V-Shaped Model
• Prototyping
• Incremental Model
• Spiral Model
• Agile Model
Build and Fix Model
• In the build and fix model (also referred to as an ad hoc model), the
software is developed without any specification or design. An initial
product is built, which is then repeatedly modified until it (software)
satisfies the user. That is, the software is developed and delivered to the
user.
• ->Developer creates the first version of the program with limited
specification and design
• ->Developer may sketch out a functional or technical design based on the
needs of the customer.
• ->From this initial product, the software is repeatedly modified until it
satisfies the customer.
• ->This is useful for small development where quality is not important
Waterfall Method
• Advantages
• Allows for changes to take place early, testing uncovers issues quickly, each iteration is easily
manageable, cost is lower, customer gets the functionality earlier, risk of critical changes being
introduced is lower.
• Best used when risk, program complexity, funding, functionality requirements needs to be
understood early in the development cycle
Spiral Model
• Uses an iterative approach to software development
• Advantages
• As more information about the project is gatherer it is integrated into the risk analysis process, improve
prototype, test the prototype, allows for testing to take place early, allows new requirements to be addresses
as they are uncovered
• The model focuses on small increments of functional code that are created based upon business need
• It breaks the product down into individual features that are constantly being delivered
• Development team can take pieces and parts of all the available SDLC models and combine them in a manner
that best suits the project requirement
Agile Model - Scrum
• Most widely adopted Agile methodology
• It acknowledges the fact that customer needs will change over time
• Developed by Toyota
Optimized
• Company has
Managed budgeted and
integrated plans for
• Has formal process in continuous
Defined place to collect and improvement
analyze quantitative
• Formal procedures data
Repeatable are in place • Metrics are defined
• Has a way to allow and fed into the
• Formal management for quantitative process
Initial structure, change process improvement
control and quality improvement program
• Dev process is ad-hoc assurance are in
• No assurance of place
consistency and • Company can
quality properly repeat
processes
throughout each
project
• Does not have formal
process model
defined
Change control Process
• Make a request for change
• Analyze the request
• Develop the implementation strategy
• Calculate the cost of implementation
• Review security implications
• Record the change request
• Submit the change request for approval
• Develop the change
• Report results to management
Software Configuration Management
• Identifies the attributes of software at various points in time and
perform methodical control of changes for the purpose of maintaining
software integrity and traceability throughout SDLC
• SCM should provide the following
• Concurrency Management
• Helps prevent uncontrolled changes when multiple users simultaneously access the
same file
• Versioning
• Deals with keeping track of file revisions; it should create log reports of who made
changes, when and what
• Synchronization
• Allow individuals to check out complete or partial copies of the repositories and work on
the files as needed
Programming Languages
• Machine Language
• Format that the computer’s processor can understand and work with directly
• It is represented in binary and considered the most primitive form of
programming.
• First generation programming language
• Assembly Language
• Considered low-level programing language, it is a symbolic representation of
machine language
• One level above machine language, programmers can use commands
instead of binary codes
• Assemblers are used to convert this language code into machine
understandable format
• Programs written are hardware specific and are not portable
Programming Languages
• High-level Language
• Third-generation language
• They use abstract statements (eg. If-then-else)
• They are easier to work with – programs are easier to write and mistakes are easier
to identify
• They are processor independent
• They are portable and can be used on many different system types
• Very High-level languages
• 4th Generation language
• It enhances the natural language approach
• Focuses on highly abstract algorithms that allow straightforward programming
implementation
• The manual coding required may be ten times less than for the same task on a 3 rd
generation language s
Programming Languages
• Natural language
• 5th generation of programming language
• Program creation happens by defining the constrains for achieving a
specified result
• Goal is to create software that can solve problems by itself instead of a
programmer having to develop code to deal with individual and specific
problems
Programming Language
• Assemblers
• Tools that convert assembly language source code into machine code
• Compilers
• Tools that convert high level language statements to machine code for
specific processors
• Allows developers to create software once in high level language and
complied for various platforms
• Interpreter
• Performs the last step of transforming high-level code to machine-level code
• It improves portability
• Major advantage is that the platform independence and memory
management functions are part of the interpreter
• Major disadvantage is that the program cannot run as a stand-alone
application but requires the interpreter to be installed on the local machine
Object Oriented Concepts
• Benefits of Object Oriented Programming
• Modularity
• Differed commitment
• Reusability
• Naturalness
->In distributed computing, a problem is divided into many tasks, each of which is solved by
one or more computers, which communicate with each other via message passing.
->If on the same host machine, they have distinct virtual address spaces, even though the physical
address space is the same; while if they are on different hosts, the physical address space is different.
->Many different (often incompatible) technologies have been used to implement the concept.
RPC-connected systems can be susceptible to client spoofing and remote code execution attacks.
• Because RPC systems expose procedure calls over a network, they
are susceptible to buffer overflow and input validation attacks just
like any network exposed functionality. The networked nature of
RPC makes port scans and operating system information preferred
sources of information for RPC attacks.
Common Object Request Broker Architecture (CORBA)
Common Object Request Broker Architecture (CORBA) is a standard
designed to facilitate the communication of systems that are deployed on
diverse platforms
CORBA uses an object-oriented model although the systems that use the
CORBA do not have to be object-oriented.
• ORB manages all communications between the components and enables them to interact in a
heterogeneous and distributed environment
• ORB works independently of the platforms where the objects reside, it provides greater
interoperability
• Java Applets
• Object-oriented, platform independent programming language
• They have greater access to the users system compared to Java applets
ActiveX vs Java applets
• Unicode encoding
• Webservers use Unicode to support different applications.
• Attacker using Unicode could make the same directory traversal attack without using “/” but with any of the
Unicode representations of that character
• URL Encoding
• URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits. URL
encoding normally replaces a space with a plus (+) sign or with %20
• Attackers found they could bypass filtering techniques and make requests by representing characters
differently
Web Environment Threats – Input Validation Attacks
• Client-side validation
• When the input validation is done at the client before it is even sent to
server to process
• It avoids incomplete requests to be sent to the server and the server
having to send back an error message to the user
• If a server relies only on Client-side validation, it introduces the risk of
depending on the client’s capability to address the threat. It is always
beneficial to also have server-side validation at different degree
Cross-site Scripting (XSS)
• XSS enables attackers to inject client-side scripts into web pages
viewed by other users
• Persistent XSS
http://www.acunetix.com/wp-content/uploads/2014/03/reflected-xss.png
Cross-site Scripting (XSS)
• Persistent XSS Vulnerability
• Also known as stored or second-order vulnerability
• Targeted against websites that allow users to input data that is stored in a
database in the server
• The attacker posts some text that contains some malicious JavaScript, and when
other users later view the posts, their browsers render the page and execute the
attacker’s JavaScript
• Persistent XSS is less frequent than Non-Persistent XSS
• The damage that Persistent XSS can do is more devastating than the damage
done by Non-Persistent XS
Cross-site Scripting (XSS)
• Document Object Model (DOM) XSS
• Also referred to as local cross-site scripting
• Using encryption
• Helps secure the input/output operations of a web application
• Failing Securely
• Systems that fail securely display friendly error messages without revealing internal system details
• Transaction persistence
• Fault tolerance
• Sharing
• It uses attributes (columns) and tuples (rows) to contain and organize data
• Each cell contains only one data value that represents a specific attribute value within
a given tuple
• A Primary key is the field that links all the data within a record to a unique value
• A foreign key is defined in a second table, but it refers to the primary key in the first
table.
Hierarchical Database Model
• It is the first type of Database model that was created but not common now
• It combines records and fields that are related in a logical tree structure
• In this model, parents can have one child, many children or no children
• It does not use indexes to search procedures, and links cannot be established
between different branches and leaves on different layers
• Characteristics
• It’s a replacement for ODBC
• It is a set of ODBC interfaces that exposes the functionality of data sources through
accessible objects
• It uses the OLE DB interface to connect with the database and can be developed with
many different scripting languages
• Characteristics
• It is a high-level data access programming interface
• It’s a set of COM objects for accessing data sources not just database access
• It allows developer to write programs that access data without knowing how the database is
implemented
• SQL commands are not required to access a database when using ADO
Java Database Connectivity (JDBC)
• It allows a Java application to communicate with a database
Data Control Language (DCL) It defines the internal language of the database
Query Language (QL) Enables users to make requests to the database
Report Generator Produces user-defined printouts
Data Dictionary
• It is a central collection so data element definitions, schema objects and
reference keys
• It can contain the default values for columns, integrity information, the
names of users, the privileges and roles for users and auditing
information
• It is a tool used to centrally manage parts of a database by controlling
data about the data
• It provides cross-reference between groups of data elements and the
databases
Integrity Services
• Three main types of integrity services provided by Database:
• Semantic Integrity:
• Makes sure structural and semantic rules are followed.
• Referential Integrity:
• Mechanism to ensure no foreign key contains a reference to a primary key of a
nonexistent record or null value
• Entity Integrity:
• Guarantees that tuples are uniquely identified by primary key values; every tuple
must contain one primary value
Integrity Protection Mechanisms
Mechanism Operations
Rollback Operation that ends the current transaction and cancels the current changes to
database. Database returns to its pervious state
Commit Completes a transaction and executes all changes just made by the user. This
ensures that partial changes do not take place and that data is not corrupted
Savepoints Helps to make sure if a system failure occurs, or if an error is detected, the
database can attempt to return to a point before the system crashed.
Having too many savepoints can degrade the performance
Checkpoints When the database software fills up a certain amount of memory, a checkpoint
is initiated. It saves the data from a temporary segment to a temporary file. Its
similar to savepoints
Two-phase The requests for database changes are put into a queue and activated all at
commit once. A pre-commit ensures all database are ready before the commit
command is sent to each database
Database Security Issues
• Aggregation
• Act of combining information from separate sources. This combination
provides new information which the subject does not have the necessary
rights to access
• Combined information has a sensitivity that is greater than that of the
individuals parts
• Inference
• The ability to derive information not explicitly available
Database Security Issues – Control mechanism
• Content and Context Dependent access control
• Some techniques
• Cell suppression – hiding specific cells that contain information
• Partitioning – dividing database into different parts and controlling access
• Noise and Perturbation - inserting bogus information to mislead the attacker
• Polyinstantiation – two instances of same object have different attributes
Online Transaction Processing
• It is used when databases are clustered to provide fault tolerance
and higher performance
• Consistency:
• All data is consistent in the different databases
• Isolation:
• Transaction execute in isolation until completed, without interacting with other
transaction
• Durability:
• Once the transaction is verified as accurate, it is committed and the database cannot be
rolled back