Wednesday, March 10, 2010

Computer Attacks and Vulnerabilities

Many organizations acquire intrusion detection systems (IDSs) because they know that IDSs are a necessary complement to a comprehensive system security architecture.
However, given the relative youth of commercial IDSs, most organizations lack experienced IDS operators. Despite vendors claims about ease of usage, such training or experience is absolutely necessary. An IDS is only as effective as the human operating it.
IDSs user interfaces vary greatly in quality. Some produce responses in the form of cryptic text logs while others provide graphical depictions of the attacks on the network. Despite this wide variance in display techniques, most IDSs output the same basic information about computer attacks. If users understand this common set of outputs, they can quickly learn to use the majority of commercial IDSs.


Attack Types

Most computer attacks only corrupt a system’s security in very specific ways. For example, certain attacks may enable an attacker to read specific files but don’t allow alteration of any system components. Another attack may allow an attacker to shut down certain system components but doesn’t allow access to any files. Despite the varied capabilities of computer attacks, they usually result in violation of only four different security properties:
availability, confidentiality, integrity, and control. These violations are described below.
  • Confidentiality: An attack causes a confidentiality violation if it allows attackers to access data without authorization (either implicit or explicit) from the owner of the information.
  • Integrity: An attack causes an integrity violation if it allows the (unauthorized) attacker to change the system state or any data residing on or passing through a system
  • Availability: An attack causes an availability violation if it keeps an authorized user (human or machine) from accessing a particular system resource when, where, and in the form that they need it.
  • Control: An attack causes a control violation if it grants an (unauthorized) attacker privilege in violation of the access control policy of the system. This privilege enables a subsequent confidentiality, integrity, or availability violation.

Types of Computer Attacks Commonly Detected by IDSs

Three types of computer attacks are most commonly reported by IDSs: system scanning,
denial of service (DOS), and system penetration. These attacks can be launched locally, on the attacked machine, or remotely, using a network to access the target. An IDS operator must understand the differences between these types of attacks, as each requires a different set of responses.


Scanning Attacks

A scanning attack occurs when an attacker probes a target network or system by sending different kinds of packets.
Using the responses received from the target, the attacker can learn many of the system’s characteristics and vulnerabilities. Thus, a scanning attack acts as a target identification tool for an attacker. Scanning attacks do not penetrate or otherwise compromise systems. Various names for the tools used to perform these activities include: network mappers, port mappers, network scanners, port scanners, or vulnerability scanners. Scanning attacks may yield:
  • The topology of a target network
  • The types of network traffic allowed through a firewall
  • The active hosts on the network
  • The operating systems those hosts are running
  • The server software they are running
  • The software version numbers for all detected software
Vulnerability scanners are a special type of scanner that check for specific vulnerabilities in hosts. Thus, an attacker can run a vulnerability scanner and it will output a list of hosts (IP addresses) that are likely to be vulnerable to a specific attack.
With this information, an attacker can precisely identify victim systems on the target network along with specific attacks that can be used to penetrate those systems. Thus, attackers use scanning software to “case” a target before launching a real attack.
Unfortunately for victims, just as it is legal for a person to enter a bank and to survey the visible security system, some lawyers say that it is legal for an attacker to scan a host or network. From the perspective of someone performing a scan, they are legally scouring the Internet to find publicly accessible resources.


Denial of Service Attacks

Denial Of Service (DOS) attacks attempt to slow or shut down targeted network systems or services. In certain Internet communities, DOS attacks are common. For example, Internet Relay Chat users engaged in verbal disputes commonly resort to
DOS attacks to win arguments with their opponents. While often used for such trivial purposes, DOS attacks can also be used to shut down major organizations. In well publicized incidents, DOS attacks were charged with causing major losses to electronic commerce operations, whose customers were unable to access them to make purchases. There are two main types of DOS attacks: flaw exploitation and flooding. It is important for an IDS operator to understand the difference between them.

Flaw exploitation DOS Attacks

Flaw exploitation attacks exploit a flaw in the target system’s software in order to cause a processing failure or to cause it to exhaust system resources. An example of such a processing failure is the ‘ping of death’ attack. This attack involved sending an unexpectedly large ping packet to certain Windows systems. The target system could not handle this abnormal packet, and a system crash resulted. With respect to resource exhaustion attacks, the resources targeted include CPU time, memory, disk space, space in a special buffer, or network bandwidth. In many cases, simply patching the software can circumvent this type of DOS attack.

Flooding DOS Attacks

Flooding attacks simply send a system or system component more information than it can handle. In cases where the attacker cannot send a system sufficient information to overwhelm its processing capacity, the attacker may nonetheless be able to monopolize the network connection to the target, thereby denying anyone else use of the resource. With these attacks, there is no flaw in the target system that can be patched. This is why such attacks represent a major source of frustration and concern to organizations. While there are few general solutions to stop flooding
attacks, there are several technical modifications that can be made by a target to mitigate such an attack.
The term “distributed DOS” (DDOS) is a subset of DOS attacks. DDOS attacks are simply flooding DOS attacks where the attacker uses multiple computers to launch the attack. These attacking computers are centrally controlled by the attacker’s computer and thus act as a single immense attack system. An attacker cannot usually bring down a major e-commerce site by flooding it with network packets from a single host.
However, if an attacker gains control of 20,000 hosts and subverts them to run an attack under his direction, then the attacker has a formidable capability to successfully attack the fastest of systems, bringing it to a halt.

Penetration Attacks

Penetration attacks involve the unauthorized acquisition and/or alteration of system privileges, resources, or data. Consider these integrity and control violations as contrasted to DOS attacks that violate the availability of a resource and to scanning attacks, which don’t do anything illegal. A penetration attack can gain control of a system by exploiting a variety of software flaws. The most common flaws and the security consequences of each are explained and enumerated below.
While penetration attacks vary tremendously in details and impact, the most common types are:

  • User to Root: A local user on a host gains complete control of the target host
  • Remote to User: An attacker on the network gains access to a user account on the target host
  • Remote to Root: An attacker on the network gains complete control of the target host
  • Remote Disk Read: An attacker on the network gains the ability to read private data files on the target host without the authorization of the owner
  • Remote Disk Write: An attacker on the network gains the ability to write to private data files on the target host without the authorization of the owner

Remote vs. Local Attacks

DOS and penetration attacks come in two varieties: local and remote.

Authorized User Attack:


Authorized user attacks are those that start with a legitimate user account on the target system. Most authorized user attacks involve some sort of privilege escalation.

Public User Attack:

Public user attacks, on the other hand, are those launched without any user account or privileged access to the target system. Public user attacks are launched remotely through a network connection using only the public access granted by the target.
One typical attack strategy calls for an attacker to use a public user attack to gain
initial access to a system. Then, once on the system, the attacker uses authorized user attacks to take complete control of the target.

Find out more...

Tuesday, March 9, 2010

Intrusion Detection Systems

Intrusion detection systems (IDSs) are software or hardware systems that automate the process of monitoring the events occurring in a computer system or network, analyzing them for signs of security problems. As network attacks have increased in number and severity over the past few years, intrusion detection systems have become a necessary addition to the security infrastructure of most organizations. This guidance document is intended as a primer in intrusion detection, developed for those who need to understand what security goals intrusion detection mechanisms serve, how to select and configure intrusion detection systems for their specific system and network environments, how to manage the output of intrusion detection systems, and how to integrate intrusion detection functions with the rest of the organizational security infrastructure.

References to other information sources are also provided for the reader who requires specialized or more detailed advice on specific intrusion detection issues.

What is intrusion detection?

Intrusion detection is the process of monitoring the events occurring in a computer
system or network and analyzing them for signs of intrusions, defined as attempts to
compromise the confidentiality, integrity, availability, or to bypass the security
mechanisms of a computer or network. Intrusions are caused by attackers accessing
the systems from the Internet, authorized users of the systems who attempt to gain
additional privileges for which they are not authorized, and authorized users who
misuse the privileges given them. Intrusion Detection Systems (IDSs) are software or
hardware products that automate this monitoring and analysis process.

Why should I use Intrusion Detection Systems?

Intrusion detection allows organizations to protect their systems from the threats that come with increasing network connectivity and reliance on information systems.
Given the level and nature of modern network security threats, the question for security professionals should not be whether to use intrusion detection, but which
intrusion detection features and capabilities to use.
IDSs have gained acceptance as a necessary addition to every organization’s security
infrastructure. Despite the documented contributions intrusion detection technologies
make to system security, in many organizations one must still justify the acquisition
of IDSs. There are several compelling reasons to acquire and use IDSs:

  1. To prevent problem behaviors by increasing the perceived risk of discovery and punishment for those who would attack or otherwise abuse the system
  2. To detect attacks and other security violations that are not prevented by other security measures
  3. To detect and deal with the preambles to attacks (commonly experienced as network probes and other “doorknob rattling” activities)
  4. To document the existing threat to an organization
  5. To act as quality control for security design and administration, especially of large and complex enterprises
  6. To provide useful information about intrusions that do take place, allowing improved diagnosis, recovery, and correction of causative factors.


Process model for Intrusion Detection

Many IDSs can be described in terms of three fundamental functional
components:
  • Information Sources – the different sources of event information used to determine whether an intrusion has taken place. These sources can be drawn from different levels of the system, with network, host, and application monitoring most common.
  • Analysis – the part of intrusion detection systems that actually organizes and makes sense of the events derived from the information sources, deciding when those events indicate that intrusions are occurring or have already taken place. The most common analysis approaches are misuse detection and anomaly detection.
  • Response – the set of actions that the system takes once it detects intrusions. These are typically grouped into active and passive measures, with active measures involving some automated intervention on the part of the system, and passive measures involving reporting IDS findings to humans, who are then expected to take action based on those reports.


How do I distinguish between different Intrusion Detection approaches?

There are several design approaches used in Intrusion Detection. These drive the features provided by a specific IDS and determine the detection capabilities for that system. For those who must evaluate different IDS candidates for a given system environment, these approaches can help them determine what goals are best addressed by each IDS.

Architecture

The architecture of an IDS refers to how the functional components of the IDS are arranged with respect to each other. The primary architectural components are the Host, the system on which the IDS software runs, and the Target, the system that the IDS is monitoring for problems.




Find out more...

Cloud Computing

Today, we can easily notice how the nature of the Internet is changing from a place used to read web pages to an environment that allows the users to run software applications.
The future belongs to the Web 3.0, also called as the intelligent Web.


The evolution of the Web can be described in the following terms:
  • Web 1.0 was seen as read-only;

  • Web 2.0 introduced the read-write content;

  • Web 3.0 will allow the read-write-execute operations, so the content will become executable web.

The WEB 3.0 can be seen as a new way of creating and using applications that can run on different devices, like mobile phones or PDAs and having the data stored into the cloud.

Simply speaking, the cloud means the Internet. The term is derived from the way in which the Internet is often represented into the network diagrams.

Cloud computing
represents a new paradigm of the Internet computing in which the software is seen as a service and the applications and data are stored on multiple servers that can be accessed from the Internet.



It is important to notice a client could be a hardware device and/or a software application, like a browser, for example.
The client is renting or simply accessing the processing capacity needed from the data center.
The quality of the service becomes a crucial factor of the cloud computing success.
Cloud computing allows to move the processing effort from the local devices to the data center facilities.
In such a way, any phone, for example, could be able to solve complex differential equation systems by simply passing the specific arguments to a data center service that will be capable to give back the results in a very short time.
In these conditions, the security of data and applications becomes a very major issue.

The main advantages of the cloud computing are the following:
  • cloud computing can be used on clients having minimal hardware requirements, like mobile phones or PDAs
  • the problem of licensing different software packages is moved to the data center level;
  • no costs (or very small ones) for hardware upgrades;
  • the users are not dependent by their personal computer because they can use any other device having an Internet connection and minimum software requirements;>
  • there is no need to download or install a specific software;
  • the cost is low or even free, in some cases;
  • if the client computer crashes, there is almost nothing lost because everything is stored into the cloud;
  • there is no need to update the local system when some new fix packs are released

Of course there are some disadvantages as well, like:
  • an Internet connection is required in order to be able to access and use the cloud and this Internet dependence the offline mode impossible. On the other hand, some applications require a high speed Internet connection so the traffic speed may affect the overall performances
  • on a long term basis, the subscription fee may be more expensive than buying the hardware, for example;
  • a very big concern is the data security because the data and the software are located on remote servers that can crash or disappear without any additional warnings. In this context, the service quality becomes crucial and the need of the backups is vital.


The major players in field of the cloud computing are Google, Microsoft, Amazon, Yahoo, and some traditional hardware producers like HP, IBM, Intel.

One of the first approaches belongs to the Amazon and it is called AWS (Amazon Web Services), launched in 2002. It includes a component called Amazon Elastic Compute Cloud (or EC2), that allows to the users to rent from Amazon processing power to be used to run their own applications.

The main advantage of the AWC EC2 web service suite is the user doesn’t need to install or run applications on the local computer, so there is no need of hardware support and maintenance.

Today, EC2 is able to host Windows Server and SQL Server database. From October 2008, also Oracle is running on the EC2 platform.

Due to the fact cloud computing becomes a very interesting subject, Microsoft announced it is developing a new Windows platform, called Windows Cloud (AZURE), which will be able to run cloud based applications.

One of the biggest promoters of the cloud computing is Google. They already have a massive computer infrastructure (the cloud) where millions of people are connecting to.

The Google cloud can be accessed by using the Google Apps, intended to be a software as a service suite dedicated to information sharing and security.

There are three main categories, as the following:
  • Messaging – includes Gmail, Calendar and Talk;
  • Collaboration – Google Docs, Video and Sites;
  • Security – email security, encryption and archiving.


Cloud computing provides some major security benefits:
  • centralized data storage – this goes to reduced effects of loosing some hardware items, like a laptop, for example. While the main part of the applications and data is stored into the cloud, loosing a client is not a big issue anymore – there are no sensitive data lost and a new client can be connected to the cloud very fast;
  • monitoring of data access becomes easier because it is enough to monitor only one place, not thousands of computers belonging to a major company, for example;
  • increased uncertainty – it is almost impossible for a thief to determine which physical component to steal in order to get a digital asset;
  • virtualization allows a rapid replacement of a compromised server located into the cloud without major costs or damages. Also, the downtime for computers in the cloud could be substantially reduced because it is very easy to create a clone by using an image;
  • logging – extended logs can be activated because the cloud is big enough to store large collections of data;
  • the security changes can be easily tested and implemented.


Find out more...

CyberCash On-line Payment Systems

Founded in August 1994 - Headquartered in Reston, VA
-Worldwide Service- US, UK, Germany, Canada, Japan
- Cybercash -secure on-line payment for tangible goods
- Both credit card and debit card models
- Limited number of banks have agreement with CyberCash
- CyberCoin system for small purchases of intangible goods
- CyberCash software runs on client side
- Encrypts order with credit card number using CyberCash public key
- Sends to merchant
- Merchant forwards to CyberCash Server
- Which obtains authorization from the bank and
- Confirms to merchant
- Credit card numbers not exposed to merchant
- Payment authorized by credit card system (on-line)
- No customer signature
- Also provides digital currency (CyberCash)



How CyberCash Works


  • Customer uses CyberCash wallet
- Download and install “Wallet” application
- Set up a wallet ID and password
- Enter financial information (credit cards & checking account)
- Transfer money into the wallet for CyberCoins
- All the information sent to the server using 1024-bit RSA and 56-bit DES encryption
  • Merchant uses CyberCash CashRegister
- Merchant downloads “Cash Register” application
- Installs on server
- Web server hands off transaction to Cash Register during purchases
- Support for transaction logging, refunds, cancellations
- Supports SSL forms, CyberCash wallets, CheckFree wallets and Microsoft wallets
- Operating Systems - Solaris, NT, SGI Irix, HP-UX, BSDI, AIX, Free BSD, and Redhat Linux
  • CyberCash location uses (CyberCash Server )



Find out more...

Monday, March 8, 2010

How Certificates are used

Certificates are typically used to generate confidence in the legitimacy of a public key. Someone verifying a signature can also verify the signer's certificate, to ensure that no forgery or false representation has occurred. These steps can be performed with greater or lesser rigor depending on the context.

The most secure use of authentication involves enclosing one or more certificates with every signed message. The receiver of the message would verify the certificate using the certifying authority's public key and, now confident of the public key of the sender, verify the message's signature. There may be two or more certificates enclosed with the message, forming a hierarchical chain, wherein one certificate testifies to the authenticity of the previous certificate. At the end of a certificate hierarchy is a top-level certifying authority, which is trusted without a certificate from any other certifying authority. The public key of the top-level certifying authority must be independently known, for example, by being widely published.











SSL Server Authentication





1. Client sends https request to server
2 Server sends its certificate to the client
3. Client decides if certificate (and issuing CA) is trustworthy
4. Client validates certificate
5. Client sends to server session key - encrypted with server’s public key
6. Server decrypts session key with its private key
7. Client – Server transactions are now encrypted with session key

Certificate Chain


Relying Party Certification
A relying party builds a certificate path from the other subscriber to the relying party’s trust anchor.



Mark gets cert from Phyllis
1. Phyllis's cert signed by Red CA Mark Phyllis
2. Red's cert signed by Blue CA
3. Blue's cert signed by Green CA
Green CA is Mark's trust anchor, therefore Mark trust's Phyllis's cert.





Find out more...

Why PKI?

PKI is the only technology that extends trust beyond the enterprise with no a priori relationship between the trusted parties
President Bush (2007):


US Agencies will undertake a Federal Public Key Infrastructure
(PKI) to promote digital signatures for transactions:
parties.
* within the federal government,
* between government and businesses and
* between government and citizens



Key Distribution








Public Key Infrastructure (PKI) provides the means to bind public keys to their owners and helps in the distribution of reliable public keys in large heterogeneous networks. NIST The set of hardware, software, people, policies and procedures needed to create, manage, store, distribute, and revoke Public Key Certificates based on public‐key cryptography.

The core components of a PKI include:
* The End‐Entities (EE)
* The Certificate Authority (CA)
* The Certificate Repository (CR)
* The Registration Authority (RA)
* Digital Certificates (X.509 V3)

PKI Key Distribution










Digital Certificate X 509 V3

• Is a person really who claim?
• How do you know that the public key you got from a person really bellongs to this person?
• Solution: CERTIFICATE - like an Information Highway Driver Licence

CERTIFICATE CONTENT

Base Certificate Fields
[PKIX] and [X.509] mandate inclusion of most base certificate fields:
1. Version
• To date, there have been three versions of the syntax for public‐key certificates
defined in [X.509]. The only version that allows extensions to be included in certificates is version 3.
• Because of the key role extensions play in determining the trustworthiness of a
certificate and the appropriateness of a given certificate to a particular transaction, all certificates should now be issued as version 3 certificates.
2. Serial Number
• The only requirement placed on serial numbers by [X.509] is that the value be a
unique integer for each certificate issued by a given CA.
• The combination of serial number plus certificate issuer name provides a unique
identifier for each certificate.
• In order to avoid any interoperability issues with systems that may not support
negative integers in this field, it is recommended that the values of the serial number be assigned starting with the integer “1” and increasing by the value of “1” for each subsequently issued certificate.
3. Signature
• This field contains the identifier for the algorithm used by the CA to sign the
certificate It must contain certificate. the same algorithm identifier as the signatureAlgorithm field in the Certificate ASN.1 sequence.
• For interoperability reasons, it is recommended that these fields be populated with
the algorithm identifier for the RSA PKCS #1 Version 1.5 or 2.1 signature algorithm
along with the appropriate SHA hash function for the desired security level
• All certificates should be signed by CA public keys that are 2048 bits long and the
signatures should be created using the SHA ‐256 hash function.
•While there are no known attacks on the RSA PKCS #1 Version 1.5 algorithm, some
high security applications may wish to use the RSA‐PSS (version 2.1) algorithm which
has more attractive security characteristics.
• Similarly, some applications may want to use the ECDSA signature algorithm, which
uses elliptic curve cryptography, because of the performance advantages that it
provides at high security levels.
4. Issuer/Subject
• These fields contain the Distinguished Name (DN) of the certificate issuer and the
certificate subject respectively.
• There are two schemes for formulating DNs that are generally used. The geopolitical
name scheme formulates DNs based on the geographic location of the entity
combined with organizational and/or personal attributes. For example, a U.S. based
organization might choose to name its CA “ou=ABC CA; o=ABC; c=us”. In some
countries there is a national registration authorities set up to register organization names. If the geopolitical name scheme is used, it is recommended that the organization name be registered with such an authority to ensure uniqueness.
• This name scheme is most applicable to environments where there is an existing
LDAP or X.500 directory infrastructure in place that makes use of geopolitical names,
or where a national identity is important.
• If geopolitical names are to be used, it is recommended that, as a minimum, the DN
of a CA include the countryName attribute, the organizationName attribute and the
organizationalUnitName attribute.
5. Validity
• Both the notBefore and notAfter elements of validity need to be present in all
certificates. [X.509] allows these times to be represented as either utcTime or
generalizedTime, however [PKIX] requires that dates through the year 2049 be encoded
as utcTime and dates in 2050 or later be encoded as generalizedTime.
• Therefore, given that certificates are normally issued with a much smaller validity period than 45 years, all certificates should currently be issued with their validity periods in utcTime format. These times must be expressed as Greenwich Mean Time (Zulu) and be of the format (YYMMDDHHMMSSZ). If the value of “YY” is greater than or equal to “50”, this represents the year “19YY”. If the value of “YY” is less than “50”, this represents the year “20YY”.
• For most applications user certificate lifetimes will tend to be 1 or 2 years, and certainly less than 5 years. CA certificates will tend to be in the 5 to 10 year timeframe and root certificates will tend to be in the 10 to 20 year timeframe. If any certificate content needs to be modified during the validity period of a certificate, that certificate needs to be revoked and replaced with a new one. To balance the amount of time such certificates need to remain on CRLs, all profiles in this paper recommend a validity period of 2 years for user certificates, 5 years for subordinate and cross‐certificates and 10 years for hierarchical root certificates.
6. Subject Public Key Info
• This field is used to carry the public key and identify the algorithm with which the key is used. For interoperability, this field should contain the algorithm identifier for RSA public keys, rsaEncryption. The parameters field has value NULL for this algorithm. This algorithm identifier is used in public key certificates for both RSA signature keys and RSA encryption keys. The intended application for the key will be indicated in the key usage field.
• Given the validity periods in these profiles, user keys should be 1024 bits long and CA keys should be 2048 bits long. The OID for rsaEncryption for these keys is {iso(1) memberbody(2) us(840) rsadsi(113549) pkcs(1) pkcs‐1(1) 1}. This recommendation is common to all profiles in this paper. Certain high security applications may wish to restrict the use of the RSA public keys to the RSA‐PSS algorithm (for signature) or RSA‐OAEP (for encryption).

Digital Certificate Example


Find out more...

Digital Signatures

Electronic Signature != Digital Signature
Electronic Signatures in Global and National Commerce Act (E‐Sign) defines:
The term ‘‘electronic signature’’ means an
electronic sound, symbol, or process, attached to or
logically associated with a contract or other record
and executed or adopted by a person with the
intent to sign the record.




Digital Signatures
A digital signature is a a type of electronic signature. It is a hash of a document encrypted with the author’s private key.


Public‐Key Cryhptography
For every person – a key pair:
• Public key (for encryption or signature verification)
• Private key (for decryption or signature creation)

Digital (Electronic) Signature
Recommended Signature Key Length and Algorithms:

Signature Algorithms
‐1024 bits key RSA;
‐1024 bits key DSA;
‐160 bits key DSA with elliptic curves
‐Hash Functions:
‐RIPEMD – 160 bits
‐SHA‐1 (128 bits), SHA‐2 (SHA‐224, SHA‐256, SHA‐384, and SHA‐512), SHA‐3 (in development, competition, 2012)
‐Signature procedure:
‐It signs a message digest
‐Two digital algorithm types:
‐Digital signature with message recovery (ex.RSA)
‐Digital signature without message recover(ex.DSA)

Digital Signatures
- with Message Recovery













-without Message Recovery

Find out more...