Monday, July 19, 2010

What is Email Security?

Viruses transmitted via emails are very common and cannot be avoided by using only antivirus software. Some additional checks need to be carried out to protect email vulnerabilities.

Love Letter is the most harmful type of viruses transmitted in email and causes great loss within minutes in the email systems and corporate networks. Some viruses are sent via attachments while some are sent using the messages within the emails that run automatically. “Nimda” is an example of such virus that runs automatically i.e. don’t require intention of the user.

An email containing infected attachments entails with malformed MIME headers, and HTML mails with embedded scripts should be found in the emails to protect email system from current and future viruses. There are various tests that should be conducted in order to secure email system from the email vulnerabilities. Some of them are as under:

· Long subject attachment checking bypass test

Checks whether system accepts emails with long subjects.

· Attachment with no filename vulnerability test

Examines whether system accepts an attachment with no filename containing executable code that can bypass content checking security solutions.

· Long filename vulnerability test

Indicates whether system blocks emails with attachments having long filenames, which can be used to trick a user into double-clicking the attachment, which can execute the malicious code it contains on the system.

· Popup Object Exploit vulnerability test

Discover if machine is vulnerable to the Popup Object Exploit which can automatically launch files on a vulnerable system.

· Double file extension vulnerability test

Shows whether email system accepts emails which contain attachments with double file extensions.

· ActiveX vulnerability test

Finds out if machine is vulnerable to the ActiveX exploit.

· CLSID extension vulnerability test

Reveals whether mail server detects and blocks files with Class ID (CLSID) extensions.

· CLSID extension vulnerability test

Reveals whether Outlook 2002 (XP) system detects and blocks files with Class ID (CLSID) extensions.

· Eicar anti-virus software test

Check if anti-virus software is in place and functioning correctly.

· Fragmented message vulnerability test

Checks whether server-level anti-virus/content checking system detects and blocks emails using the fragmented message exploit.

· GFI's Access exploit vulnerability test

Discover if machine is vulnerable to the Access exploit vulnerability discovered by GFI. It does not apply to IE6 users who have the latest patches installed.

· Iframe remote vulnerability test

Discover if machine is vulnerable to the Iframe remote exploit. It does not apply to IE6 users who have the latest patches installed.

· Malformed file extension vulnerability test

Examines whether Outlook 2002 (XP) system detects and blocks files with malformed HTA file extensions.

· MIME header vulnerability test (Nimda & Klez testing)

Examines whether system is protected against emails using the MIME exploit. It does not apply to IE6 users who have the latest patches installed.

· Object Codebase vulnerability test

Examines whether system detects and blocks emails using the Object Codebase exploit. It is also suited to Outlook 2002. It does not apply to IE6 users who have the latest patches installed

· VBS attachment vulnerability test

Checks whether mail server blocks VBS attachments.

If you are alarmed by these vulnerabilities, there exist solutions. Look out for companies ask for name and email address to sign up in order to check email system against all these vulnerabilities. On signup an email is send containing the link for confirmation. After the confirmation the email testing is performed on the system and results are send back in email.

Wednesday, June 23, 2010

How Database Testing Works!

Database Testing

Now a day’s databases are an important part of any software that is being developed. In order to communicate with a database we have to write queries. For complex or large software require certain level of expertise to perform complex tasks like

· Database monitoring

· Database auditing

· Database optimization

· Database models (database schema) etc.

Database Testing is an important aspect that a “Software Tester” should be aware of. We will discuss some important aspects of database testing over here.

Why do we test database?
It's important to test the database that the software applications use. Database holds confidential and valuable information which is not liked to be compromised in any case. Testing the database provides us with a solid feedback essential for identifying defects and fixing them.

What to test in database testing?
We need to consider the threats within the database (White box Testing) as well as at the interface level (Black Box Testing).

Black Box testing
Input data
Output Data (from queries, views, stored procedures)

White Box testing(Clear box testing)
Unit tests for Stored Procedures / functions
Triggers / Views code
Referential Integrity

Database Testing

Database security is the system, processes, and procedures that protect a database from unintended activity. Unintended activity can be categorized as authenticated misuse, malicious attacks or inadvertent mistakes made by authorized individuals or processes. “Database security” is also a specialty within the broader discipline of computer security.

Traditionally databases have been protected from external connections by firewalls or routers on the network perimeter with the database environment existing on the internal network opposed to being located within a demilitarized zone. Additional network security devices that detect and alert on malicious database protocol traffic include network intrusion detection systems along with host-based intrusion detection systems.

Database security is more critical as networks have become more open.

Databases provide many layers and types of information security, typically specified in the data dictionary, including:

§ Access control

§ Auditing

§ Authentication

§ Encryption

§ Integrity controls

Database security can begin with the process of creation and publishing of appropriate security standards for the database environment. The standards may include specific controls for the various relevant database platforms; a set of best practices that cross over the platforms; and linkages of the standards to higher level polices and governmental regulations.6

SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another. SQL injection attacks are also known as SQL insertion attacks.7


Figure 1[2]*


How to test?
When we want to test our database, we would need test databases that are copy (replica) of the original database. These are sometimes called as 'sandboxes' in agile terms. In this test database (sandbox) you will rebuild your system and then run all the tests to ensure you haven't broken anything (if so, then back to the development sandbox). Occasionally, at least once an iteration/cycle, we'll deploy our work to the level (demo and pre-production testing), and rerun our test suite (including database tests) each time that we do so to ensure that our changes integrate with the changes made by other developers in our organization working on the same database.
We need to create database tests based on either rebuilding the existing database or starting afresh with creation of database and related schema. Identifying Test Data is an important task here. Once the tests are ready, we would execute them and check the results. We rate the tests pass or fail according to the standards we have set in.

Some tools available for the Db testing are:

· CompuWare DevPartnerDB

DevPartnerDB simplifies rapid, high-quality application development by helping developers debug stored procedures and tune SQL statements. DevPartnerDB has support for Oracle, Microsoft SQL Server and Sybase, and also supports the development of applications in Visual Studio .NET.

· ScandiaSoft DbValidator

DbValidator, was designed to simplify the creation of automation tests for SQL Server database schemas.

· dbUnit SourceForge

DbUnit is a JUnit extension (also usable with Ant) targeted at database-driven projects that, among other things, puts your database into a known state between test runs. This is an excellent way to avoid the myriad of problems that can occur when one test case corrupts the database and causes subsequent tests to fail or exacerbate the damage.

Reference links

1. http://en.wikipedia.org/wiki/Database

2. http://www.agiledata.org/essays/databaseTesting.html *

3. http://www.dbunit.org/

4. http://scandiasoft.com/products.html

5. http://www.embeddedstar.com/software/content/c/embedded529.html

6. http://en.wikipedia.org/wiki/Database_security

7. http://en.wikipedia.org/wiki/SQL_injection

Friday, April 16, 2010

Software Performance Testing

Performance Testing measures the effectiveness of the computer, network or any software application. Quantitative and qualitative testing is conducted to verify the performance of a software application. Quantitatively the application is tested for the response time upon certain input and qualitatively it’s checked for reliability, scalability and interoperability. To check the performance, stress testing is also performed to identify the stability of an application under certain level of load. It’s also checked if the application is self recoverable of not if treated beyond its threshold.

Performance Testing is conducted by using various tools like JMeter, LoadRunner, AstraLoad and WAPT. Performance parameters are defined for the application and results are analyzed on the basis of these parameters like “Response Time”, “Throughput”, “Transfer Rate” to name a few.

Tuesday, April 13, 2010

Quality Management @ Kualitatem

Kualitatem provides experience and in-depth knowledge of known problems and dilemmas that nearly all software development agencies face in their QA processes. We provide solutions to eradicate these problems with the greatest degree of professionalism. Looking from a third-eye-view, we scrutinize the software system development process from the requirements gathering phase all the way up till and throughout deployment. We have the ability to flexibly integrate into our clients’ environment and provide them a completely independent and unbiased measure of quality. Within the different testing scenarios adopted according to the client’s requirement, our key process components include:

- Process definition
- Test Planning
- Test scenario and Test case development
- Application Testing
- Unit Testing
- Functional Testing
- Regression Testing
- Integration Testing
- User Acceptance Testing
- Live Bug status reporting
- Traceability matrix generation
- Code reviews
- Test process reporting