Lecture - 1 Introduction To Software Security
Lecture - 1 Introduction To Software Security
Security
Adama Science and Technology University
School of Electrical Engineering and Computing
Department of Computer Science and Engineering
Dr. Mesfin Abebe Haile (2019)
Introduction to Software
Security
Why security?
Cyberspace (internet, intranet etc…) is becoming a
dangerous place for all organizations and individuals to
protect their sensitive data or reputation.
This is because of the numerous people and machines
accessing it that lead to a big danger.
The IT skills of a person that wants to hack or to breach
your security has decreased but the success rate of it has
increased.
Availability of hacking tools, rapidly increased technology
(bandwidth and technology), and hacking knowledge.
9/5/2019 2
Introduction to Software
Security
Why security?
Organizations hardened their networks, applications and
operating systems to a reasonable level of safety, and
conducting a business disaster recovery plan.
9/5/2019 3
Introduction to Software
Security
9/5/2019 4
Introduction to Software
Security
9/5/2019 9
The Basic Components of
Software Security
9/5/2019 10
The Basic Components of
Software Security
9/5/2019 13
The Basic Components of
Software Security
9/5/2019 17
The Basic Components of
Software Security
9/5/2019 19
The Basic Components of
Software Security
9/5/2019 20
The Basic Components of
Software Security
The above broad classes encompass many common
threats:
Snooping: the unauthorized interception of information.
(Passive - wiretapping )
Modification or alteration: unauthorized change of
information. (active – an entity to modify)
Masquerading or spoofing: an impersonation of one entity
by another is a form of both deception and usurpation.
Repudiation of origin: a false denial that an entity sent (or
create) something is a form of deception.
Integrity mechanisms cope with this threat.
9/5/2019 21
The Basic Components of
Software Security
These four classes encompass many common threats:
Denial of receipt: a false denial that an entity received some
information or message, is a form of deception.
Integrity and availability mechanisms guard against these
attacks.
Delay: a temporally inhabitation of a service, is a form of
usurpation.
Availability mechanisms can prevent this threat.
Denial of service: a long-term inhibition of service, is a form
of usurpation.
Availability mechanisms counter this threat.
9/5/2019 22
The Basic Components of
Software Security
9/5/2019 23
The Basic Components of
Software Security
9/5/2019 24
The Basic Components of
Software Security
Goals of Security:
A security policy’s specification of “secure” and
“nonsecure” actions can:
Prevent the attack : the attack will fail (cumbersome).
Detect the attack: when prevention is not possible.
Recover from the attack: has two forms; the first is stop the
attack and assess and repair any damage caused by that attack.
In the second approach, the system continues to function
correctly while an attack is under way.
9/5/2019 25
The Basic Components of
Software Security
Assurance:
System specification, design, and implementation can
provide a basis for determining “how much” to trust a
system. This type of trust is called assurance.
It is an attempt to provide a basis for bolstering (specifying)
how much one can trust a system.
Example: certification, manufacturing standards, and
preventative sealing provide some degree of assurance that an
aspirin is not contaminated.
The degree of trust the purchaser has in the purity of the
aspirin is a result of these three processes.
9/5/2019 26
The Basic Components of
Software Security
In the 1980s, drug manufacturers met two of the criteria
above, but none used safety seals.
A series of “drug scares” arose when a well-known
manufacturer’s medicines were contaminated after
manufacture but before purchase.
Design:
The design of a system translate the specification into
components that will implement them.
An analyst can determine whether a design satisfies a set of
specifications in several ways. (mathematically, compelling
argument)
A design depends on assumptions about what the
specifications mean lead to vulnerabilities.
9/5/2019 30
The Basic Components of
Software Security
Implementation:
Given a design, the implementation creates a system that
satisfies that design.
If the design also satisfies the specifications, then by
transitivity the implementation will also satisfy the
specifications.
The difficulty is the complexity of proving that a program
correctly implements the design and, in turn, the
specifications.
A program is correct if its implementation performs as
specified.
9/5/2019 31
The Basic Components of
Software Security
Implementation:
Proofs of correctness require each line of source code to be
checked for mathematical correctness.
There are three difficulties in this process:
First, the complexity of programs makes their mathematical
verification difficult.
Second, program verification assumes that the programs are
compiled correctly, linked and loaded correctly, and executed
correctly.
Third, if the verification relies on conditions on the input, the
program must reject any inputs that do not meet those
conditions.
9/5/2019 32
The Basic Components of
Software Security
Implementation:
A posteriori verification techniques known as testing have
become widespread; since formal proofs of correctness are
so time consuming.
During testing, the tester executes the program on data to
determine if the output is what it should be and to
understand how likely the program is to contain an error.
Implementation:
Furthermore, testing relies on test procedures and
documentation, errors in either of which could invalidate the
testing results.
Although assurance techniques do not guarantee
correctness or security, they provide a firm basis for
assessing what one must trust in order to believe that a
system is secure.
Their value is in eliminating possible, and common, sources
of error and forcing designers to define precisely what the
system is to do.
9/5/2019 34
The Basic Components of
Software Security
Operational Issues:
Any useful policy and mechanism must balance the benefits
of the protection against the cost of designing,
implementing, and using the mechanism.
This balance can be determined by analyzing the risks of a
security breach and the likelihood of it occurring.
In very few situations can risks be rigorously quantified.
9/5/2019 37
The Basic Components of
Software Security
Law and Customs:
Laws restrict the availability and use of technology and
affect procedural controls.
Hence, any policy and any selection of mechanisms must
take into account legal considerations.
Laws are not the only constraints on policies and
mechanisms selection . Society distinguishes between legal
and acceptable practices.
The issue that laws and customs raise is the issue of
psychological acceptability.
9/5/2019 38
The Basic Components of
Software Security
Human Issue:
The designers, implementers, and maintainers of security
controls are essential to the correct operation of those
controls.
Organizational problem:
Security provides no direct financial rewards to the user.
It limits losses, but it also requires the expenditure of
resources that could be used elsewhere.
Unless losses occur, organizations often believe they are
wasting effort related to security.
9/5/2019 39
The Basic Components of
Software Security
Organizational problem:
Furthermore, security controls often add complexity to
simple operations.
Lack of resources is another common problem. Securing a
system requires resources as well as people.
People problems:
The heart of any security system is people.
People who have some motive to attack an organization and
are not authorized to use that organization’s systems are
called outsiders and can pose a serious threat.
9/5/2019 40
The Basic Components of
Software Security
People problems:
Insider misuse of authorized privileges is a very difficult
problem to solve.
Untrained personnel also pose a threat to system security.
9/5/2019 41
The Basic Components of
Software Security
The security life cycle:
9/5/2019 42
The Basic Components of
Software Security
The security life cycle:
Whether or not a program is tested or proved to be secure,
operational environments always it can introduce
unexpected problems or difficulties.
If the assurance (specification, design, implementation, and
testing/proof) phase is done properly, the extra problems and
difficulties are minimal.
9/5/2019 44
Thank You !!!
9/5/2019 45
Assignment I
9/5/2019 46
Assignment I
9/5/2019 47