Framework for Injecting the Attacks and Analyzing the Behaviour of Vulnerability on Server s



Similar documents
Keywords: 2013, IJARCSSE All Rights Reserved Page 451

Evaluation of Web Security Mechanisms Using Inline Scenario & Online Scenario

On the value of hybrid security testing

Proactive Web Server Protocol for Complaint Assessment

Improving SCADA Control Systems Security with Software Vulnerability Analysis

Network and Host-based Vulnerability Assessment

WHITEPAPER. Nessus Exploit Integration

Research on the Essential Network Equipment Risk Assessment Methodology based on Vulnerability Scanning Technology Xiaoqin Song 1

Protecting Database Centric Web Services against SQL/XPath Injection Attacks

Double guard: Detecting Interruptions in N- Tier Web Applications

International Journal of Computer Science and Network (IJCSN) Volume 1, Issue 5, October ISSN Bhopal, M.P.

Detecting SQL Injection Vulnerabilities in Web Services

90% of data breaches are caused by software vulnerabilities.

DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES

DETECTION OF CONTRAVENTION IN MOBILE CLOUD SERVICES

AN EFFICIENT STRATEGY OF AGGREGATE SECURE DATA TRANSMISSION

Security and Vulnerability Testing How critical it is?

Integrated Network Vulnerability Scanning & Penetration Testing SAINTcorporation.com

Securing PHP Based Web Application Using Vulnerability Injection

Recycling Test Cases to Detect Security Vulnerabilities

Vulnerability Analysis of Hash Tables to Sophisticated DDoS Attacks

Software Security Analysis - Execution Phase Audit

Index Terms: Smart phones, Malwares, security, permission violation, malware detection, mobile devices, Android, security

Keywords Vulnerability Scanner, Vulnerability assessment, computer security, host security, network security, detecting security flaws, port scanning.

International Journal of Scientific & Engineering Research, Volume 6, Issue 5, May ISSN

International Journal of Enterprise Computing and Business Systems ISSN (Online) :

Levels of Software Testing. Functional Testing

Penetration Testing. Security Testing

CSE331: Introduction to Networks and Security. Lecture 32 Fall 2004

Second-generation (GenII) honeypots

Automated Faultinjection Series - Risk Management and Implementation

Protecting Critical Infrastructure

FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. Chapter 4 Finding Network Vulnerabilities

A PRACTICAL APPROACH TO INCLUDE SECURITY IN SOFTWARE DEVELOPMENT

Enhanced Model of SQL Injection Detecting and Prevention

How To Prevent An Sql Injection Attack

Guidelines for Website Security and Security Counter Measures for e-e Governance Project

Detection and mitigation of Web Services Attacks using Markov Model

Linux Kernel. Security Report

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 1, March, 2013 ISSN:

Implementation of the Remote Control and Management System. in the Windows O.S

Mobile Devices and Malicious Code Attack Prevention

ITEC441- IS Security. Chapter 15 Performing a Penetration Test

Harness Your Robot Army for Total Vulnerability Management

Jordan University of Science and Technology

Dedicated and Distributed Vulnerability Management

CSE331: Introduction to Networks and Security. Lecture 17 Fall 2006

Software security specification and verification

Worldwide Security and Vulnerability Management Forecast and 2008 Vendor Shares

Finding Execution Faults in Dynamic Web Application

LASTLINE WHITEPAPER. In-Depth Analysis of Malware

Introduction to Automated Testing

Keyword: Cloud computing, service model, deployment model, network layer security.

Lecture Embedded System Security A. R. Darmstadt, Introduction Mobile Security

Peach Fuzzer Platform

Secure Software Programming and Vulnerability Analysis

Secure Data transfer in Cloud Storage Systems using Dynamic Tokens.

A FRAMEWORK FOR MANAGING RUNTIME ENVIRONMENT OF JAVA APPLICATIONS

Using Web Security Scanners to Detect Vulnerabilities in Web Services

ISSN Index Terms Cloud computing, outsourcing data, cloud storage security, public auditability

High Performance Cluster Support for NLB on Window

A Review of Anomaly Detection Techniques in Network Intrusion Detection System

REAL-TIME WEB APPLICATION PROTECTION. AWF SERIES DATASHEET WEB APPLICATION FIREWALL

KEYWORDS: Internet Applications, Security, Languages, Review and evaluation.

Automotive Ethernet Security Testing. Alon Regev and Abhijit Lahiri

Firewalls. Ola Flygt Växjö University, Sweden Firewall Design Principles

Index Terms Cloud Storage Services, data integrity, dependable distributed storage, data dynamics, Cloud Computing.

SECURITY B-SIDES: ATLANTA STRATEGIC PENETRATION TESTING. Presented by: Dave Kennedy Eric Smith

An Integrated CyberSecurity Approach for HEP Grids. Workshop Report.

A Comparative Performance Analysis of Load Balancing Algorithms in Distributed System using Qualitative Parameters

Guideline on Vulnerability and Patch Management

Web Application Security

Windows Filtering Platform, engine for local security

Threat Modeling. Frank Piessens ) KATHOLIEKE UNIVERSITEIT LEUVEN

Accessing Private Network via Firewall Based On Preset Threshold Value

Deep Security Vulnerability Protection Summary

Self-Defending Approach of a Network

IDS / IPS. James E. Thiel S.W.A.T.

CPNI TECHNICAL NOTE 04/2008 VULNERABILITY ASSESSMENT TOOLS

Integrated Threat & Security Management.

PERFORMANCE OF BALANCED STORAGE SERVICES IN CLOUD SYSTEM

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Banking Security using Honeypot

AUTOMATE CRAWLER TOWARDS VULNERABILITY SCAN REPORT GENERATOR

Chapter 3 Safeguarding Your Network

How To Monitor And Test An Ethernet Network On A Computer Or Network Card

How to build and use a Honeypot. Ralph Edward Sutton, Jr. DTEC 6873 Section 01

Release Notes For Versant/ODBC On Windows. Release

Nessus and Antivirus. January 31, 2014 (Revision 4)

How to Grow and Transform your Security Program into the Cloud

Chapter 8 Software Testing

Data Mining For Intrusion Detection Systems. Monique Wooten. Professor Robila

SECURITY ANALYSIS OF PASSWORD BASED MUTUAL AUTHENTICATION METHOD FOR REMOTE USER

Application Code Development Standards

Cyber Security in Taiwan's Government Institutions: From APT To. Investigation Policies

Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit

International Journal of Applied Science and Technology Vol. 2 No. 3; March Green WSUS

Ensuring Data Storage Security in Cloud Computing By IP Address Restriction & Key Authentication

Transcription:

Framework for Injecting the Attacks and Analyzing the Behaviour of Vulnerability on Server s Panchamukesh Ch #1, Kumar.J *2, Neelima.S *3, Sailaja.D *4 #1 Department of CSE, HITAM, Gowdavally, Hyderabad, India *2, Department of CSE, NIMRA Institute of Engineering & Technology, Ongole, India *3 Department of CSE, Pydah College of Engineering, Kakinada, India *4 Department of CSE, Sankethika Vidya Parishad Engineering college, Vizag, India Abstract -- Due to our increasing reliance on computer systems, security incidents and their causes are important problems that need to be addressed. The main scope of this paper is to discover the security vulnerabilities on the servers which are connected through networks, for which a new tool is proposed, called AJECT. For some Predefined test classes AJECT tool will automatically generates large number of attacks using the specification of server s communication protocol. While performing these kinds of attacks it monitors the behaviour of the server both from a client perspective and inside the target machine through the network. The potential existence of vulnerability can be conformed by observation of an incorrect behaviour. To demonstrate the usefulness of this approach, a considerable number of experiments were carried out with several attacks like Special char attack, Assignment attacks, and Query attack. The obtained results show that AJECT can discover several kinds of vulnerabilities, including a previously unknown vulnerability. Keywords- fault injection, attack injection, vulnerability, AJECT, server s, communication protocol. I. INTRODUCTION Our reliance on computer systems for everyday life activities has increased over the years, as more and more tasks are accomplished with their help. Software evolution has provided us with applications with ever improving functionality. These enhancements however are achieved in most cases with larger and more complex projects, which require the coordination of several teams of people. Third party software is frequently utilized to speedup programming tasks, even tough in many cases it is poorly documented and supported. In the background, the ever present tradeoff between time to market and thorough testing puts pressure on the quality of the software. Experience has shown that some of the bugs result in security vulnerabilities that can be exploited by malicious adversaries. The existence of a vulnerability presence does not cause a security hazard, and in fact many times they can remain dormant for many years. An intrusion is only materialized when the right attack is discovered and applied to exploit that vulnerability. After an intrusion, the system might or might not fail, depending on the kind of capabilities it possesses to deal with errors introduced by the adversary. Sometimes the intrusion can be tolerated, but in the majority of the current systems, it leads almost immediately to the violation of one or more security properties. Several tactics can be employed to improve the dependability of a system with respect to malicious faults. Of course, intrusions would never arise if all vulnerabilities could be eliminated. Vulnerability removal can be performed both during the development and operational phases. In the last case, besides helping to identify programming flaws which can later be corrected, it also assists the discovery of configuration errors and/or other similar problems. Intrusion prevention (e.g., vulnerability removal) has been advocated because it reduces the power of the attacker. In fact, even if the ultimate goal of zero vulnerabilities is never attained, vulnerability removal reduces the number of entry points into the system, making the life of the adversary increasingly harder (and ideally discouraging further attacks). Fig.1 shows a composite fault model which is used to demonstrate the vulnerability discovery methodology. Fig.1 Composite fault model II. RELATED WORK The paper describes a methodology and a tool for the discovery of vulnerabilities on services provided by network or local daemons, through the injection of attacks (i.e., malicious faults). This work has been influenced by several research areas, namely: A) Fault Injection It is an experimental approach for the verification of fault handling mechanisms (fault removal) and for the estimation of various parameters that characterize an operational system (fault forecasting), such as fault coverage and error latency. Traditionally, fault injection has been utilized to emulate several kinds of hardware faults, ranging from transient memory corruptions to permanent stuck-at faults. Three main techniques have been developed to inject these faults: hardware-based tools resort to additional hardware to actually introduce the faults in the system, in most cases through pin-level injection, but also through radiation and electromagnetic 376

interference simulation models with different levels of abstraction, e.g., device and network, have been employed by simulation-based tools to study the behaviour of systems, starting from the early stages of design software-based tools insert errors in the various parts of a running system by executing specific fault injection code. The emulation of other types of faults has also been accomplished with fault injection techniques, for example, software and operator faults. Robustness testing mechanisms study the behaviour of a system in the presence of erroneous input conditions. Their origin comes both from the software testing and fault-injection communities, and they have been applied to various areas, for instance, POSIX APIs and device driver interfaces. B) Vulnerability Scanners These are tools whose purpose is the discovery of vulnerabilities in computer systems (in most cases network-connected machines). Several examples of these tools have been described in the literature, and currently there are some commercial products: COPS, Found Stone Enterprise, Internet Scanner, Nessus, and QualysGuard. They have a database of well known vulnerabilities, which should be updated periodically, and a set of attacks that allows their detection. The analysis of a system is usually performed in three steps: Step 1: The scanner interacts with the target to obtain information about its execution environment (e.g., type of operating system, available services, etc). Step 2: Then, this information is correlated with the data stored in the database, to determine which vulnerabilities have previously been observed in this type of system. Step 3: later, the scanner performs the corresponding attacks and presents statistics about which ones were successful. Even though these tools are extremely useful to improve the security of systems in production, they have the limitation that they are unable to uncover unknown vulnerabilities. C) Static vulnerability analyzers These look for potential vulnerabilities in the source code of the applications. Typically, these tools examine the source code for dangerous patterns that are usually associated with buffer overflows, and then they provide a listing of their locations. Next, the programmer only needs to go through the parts of the code for which there are warnings, to determine if an actual problem exists. More recently, this idea has been extended to the analysis of binary code. Static analysis has also been applied to other kinds of vulnerabilities, such as race conditions during the access of (temporary) files. In the past, a few experiments with these tools have been reported in the literature showing them as quite effective for locating programming problems. These tools however have the limitation of producing many false warnings, and skip some of the existing vulnerabilities. D) Run-time prevention mechanisms Change the run-time environment of programs with the objective of thwarting the exploitation of vulnerabilities. The idea here is that removing all bugs from a program is considered infeasible, which means that it is preferable to contain the damages caused by their exploitation. Most of these techniques were developed to protect systems from buffer overflows. A few examples are: Stack Guard, Stack Shield, and Point-Guard are compiler-based tools that determine at runtime if a buffer overflow is about to occur, and stop the program execution before it can happen. A recent study compares the effectiveness of some of these techniques, showing that they are useful only to prevent a subset of the attacks. III. SYSTEM OVERVIEW To detect and remove the vulnerabilities in this paper we describes a tool called AJECT - Attack in- JECtion Tool. AJECT calculates the behavior of an antagonist by injecting attacks against a target system then it observes the execution of the system to determine if the attacks have caused a failure. In the positive case this indicates that the attack was successful, which reveals the existence of a vulnerability. After the identification of a, vulnerability we can use any traditional debugging techniques to inspect the application code and running environment and to find out the source of the vulnerability and allow its successive removal. The existing version of AJECT mainly targets network server applications, although it can also be utilized with most local daemons. Considering the perspective of security to check for vulnerability we chose servers and off course they are most relevant components that need protection. Generally a hacker can intrude into a network only through server and then he uses all the facilities of a server like she or he immediately gains access to a local account, which can then be used as a launch pad for further attacks. The tool treats the server as a black box it does not need the source code of the server to perform the attacks. AJECT has to obtain a specification of the protocol implemented by the target server in order to generate smart attacks. To demonstrate the usefulness of our approach, we have conducted a number of experimental attacks like Special char attack, Assignment attacks, and Query attack. The main intention was to show that AJECT could automatically discover a number of different vulnerabilities, which were described in bug tracking sites by various people. This experiment managed to prove that AJECT could detect many vulnerabilities and even able to discover a new vulnerability that was previously unknown to the security community. As in Fig.2 in the architecture of AJECT there are four basic entities namely the Target System, the Target Protocol Specification, the Attack Injector and the Monitor. The Target System entity corresponds to the system which we want to test and the remaining three entities are the main components of AJECT. The target application and its execution environment are present in Target System which indeed have middleware libraries,operating system and hardware configuration. Using client program the target application service can be invoked remotely. In addition to 377

that it can also be a local daemon supporting a given task of the operating system. In both the cases, wellknown protocol is used by the target application to communicate with the clients, and by transmitting malicious packets, these clients can carry out attacks to the server. If the packets are not correctly processed, the target can suffer various Kinds of errors with distinct consequences, ranging, for instance, from a slow down to a crash. The A graphical interface is provided to target Protocol Specification component for the specification of the communication protocol used by the target application. The Attack Injector is responsible for the generation and implementation of the attacks, and for receiving the responses returned by the target. It also performs some analysis on the information acquired during the attack, to determine if vulnerability was exposed. Therefore, the Monitor needs to run in the same machine as the target, where it can use the low level operating system functions to get, for example, statistics about the CPU and memory usage. On the other hand, the injection of attacks can usually be performed from a different machine. In fact this is a desirable situation, since it is convenient to maintain the target as independent as possible from the Injector, so that interference is kept to a minimal level. So, here we specify the three types of attacks which we used in our paper, Fig.3 shows the pseudo code implementation of special character attack,fig.4 shows the pseudo code implementation of assignment attack, and Fig.5 shows the pseudo code implementation of syntax (or) query attack. Fig.3: Pseudo code to find special character attack Fig.4: Pseudo code to find taint (or) assignment attack Fig.2 Architecture of AJECT The main purpose of the Monitor is to examine and collect data about the target system execution, which requires a careful synchronization with the Injector. IV. DESIGN & IMPLEMENTATION The implementation of this architecture is to achieve two main purposes, one the automatic injection of attacks and other data collection for analysis after injecting the attack. And a relation between target and AJECT is necessary in order to obtain widespread information about the execution. Fig.5: Pseudo code to find syntax (or) query attack As the AJECT tool can be used for two purposes one for injecting attacks and other to discover and analyze the vulnerability, the following pseudo code in Fig.6 shows how it implements second purpose. 378

Fig.6: How those attacks are discovered by AJECT Fig.9: Injection of special character attack V. RESULT Fig.7: Admin Login page for new user Fig.8: New Registration Page for the user Fig.10: Analysis of vulnerability in the server CONCLUSION In this paper we present a tool which is used to discovery and remove the vulnerabilities in server applications. AJECT simulates the behaviour of a malevolent challenger by injecting different kinds of attacks against the target server. In the process of simulating it collects various information of the server by observing the application. And that information which is collected is analyzed later to determine incorrect execution of the server, which is a strong indication that vulnerability exists. To demonstrate the usefulness of this approach, a considerable number of experiments were carried out with several attacks like Special char attack, Assignment attacks, and Query attack. These experiments indicate that AJECT could be utilized to locate and remove a significant number of distinct types of vulnerabilities. 379

REFERENCES [1] B.P. Miller, L. Fredriksen, and B. So, An Empirical Study of the Reliability of UNIX Utilities, Comm. ACM, vol. 33, no. 12, pp. 32-44, 1990. [2] P. Oehlert, Violating Assumptions with Fuzzing, IEEE Security and Privacy, vol. 3, no. 2, pp. 58-62, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1423963, Mar./Apr. 2005. [3] Univ. of Oulu, PROTOS Security Testing of Protocol Implementations, http://www.ee.oulu.fi/research/ouspg/protos/, 1999-2003. [4] M. Sutton, FileFuzz, http://labs.idefense.com/labs-software.php?show=3, Sept. 2005. [5] M. Sutton, A. Greene, and P. Amini, Fuzzing: Brute Force Vulnerability Discovery. Addison-Wesley, 2007. [6] Tenable Network Security, Nessus Vulnerability Scanner, http://www.nessus.org, 2008. [7] Saint Corp., SAINT Network Vulnerability Scanner, http://www.saintcorporation.com, 2008. [8] Qualys, Inc., QualysGuard Enterprise, http://www.qualys.com, 2008. [9] D. Wagner, J.S. Foster, E.A. Brewer, and A. Aiken, A First StepTowards Automated Detection of Buffer Overrun Vulnerabilities, Proc. Network and Distributed System Security Symp., Feb. 2000. [10] E. Haugh and M. Bishop, Testing C Programs for BufferOverflow Vulnerabilities, Proc. Symp. Networked and Distributed System Security, pp. 123-130, Feb. 2003. [11] J. Dura es and H. Madeira, A Methodology for the Automated Identification of Buffer Overflow Vulnerabilities in Executable Software without Source-Code, Proc. Second Latin-Am. Symp.Dependable Computing, Oct. 2005. [12] M. Bishop and M. Dilger, Checking for Race Conditions in File Accesses, Computing Systems, vol. 9, no. 2, pp. 131-152, Spring 1996. [13] Wilander and M. Kamkar, A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention, Proc. Network and Distributed System Security Symp., pp. 149-162, Feb. 2003. [14] Microsoft, Corp., A Detailed Description of the Data Execution Prevention (DEP) Feature in Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005, and Windows Server 2003, http://support.microsoft.com/kb/875352, Sept. 2006. *4 Sailaja D received Bachelors degree in Information Technology from JNTUK, Pursuing M.Tech in Software Engineering from JNTUK. She is a research scholar in field of Data Mining and Software Engineering. She is having experience of 5 Years in the field of Computer Science and Engineering, presently working as Assistant Professor in the department of CSE, Ssnkethika Vidya Parishad Engineering College, Visakhapatnam, A.P, INDIA. She can be reached at sailubahnu25@gmail.com AUTHORS #1 Panchamukesh Chandaka received Bachelors degree in Computer science and Information Technology from JNTUH, M.Tech in Information Technology from JNTUK. He is a research scholar in field of Information Security and Software Engineering. He is having experience of 5 Years in the field of Computer Science and Engineering, presently working as Assistant Professor in the department of CSE, Hyderabad Institute of Technology and Management (HITAM), Gowdavally, R.R.Dist., A.P, INDIA. He can be reached at mukesh_1229@yahoo.com. *2 Kumar Jetti received Bachelors degree in Computer science engineering from JNTUK, M.Tech in Computer science engineering from JNTUK. He is a research scholar in field of Data Mining & Information Security. He is having experience of 4 Years in the field of Computer Science and Engineering, presently working as Assistant Professor in the department of CSE, CMR Group of Institutions, Hyderabad, R.R.Dist., A.P, INDIA. He can be reached at kumarkanna.j@gmail.com. *3 Neelima Sadineni received Bachelors degree in Computer science and Information Technology from JNTUH, Pursuing M.Tech in Software Engineering from JNTUK. She is a research scholar in field of Data Mining and Software Engineering. She is having experience of 5 Years in the field of Computer Science and Engineering, presently working as Assistant Professor in the department of CSE, Pydah College of engineering Kakinada, A.P,INDIA. She can be reached at neelima.sadineni@gmail.com. 380