Frankencode: Creating Diverse Programs Using Code Clones

Total Page:16

File Type:pdf, Size:1020Kb

Frankencode: Creating Diverse Programs Using Code Clones Frankencode: Creating Diverse Programs Using Code Clones Hayley Borck, Mark Boddy, Ian J De Silva, Steven Harp, Ken Hoyme, Steven Johnston, August Schwerdfeger, and Mary Southern Adventium Labs, Minneapolis, MN 55401 Email: fi[email protected] Abstract enable not just new attacks, but new kinds of attacks. Apparently-minor vulnerabilities can be chained to- In this paper, we present an approach to detecting gether in successful attacks, even on software that is novel cyber attacks though a form of program diversifi- extensively tested and generally viewed as secure.1 cation, similar to the use of n-version programming for In this paper, we describe our research on the Func- fault tolerant systems. Building on extensive previous tionally Equivalent Variants using Information Syn- and ongoing work by others on the use of code clones chronization (FEVIS) system. Part of the Cyber Fault- in a wide variety of areas, our Functionally Equivalent tolerant Attack Recovery (CFAR) program, funded by Variants using Information Synchronization (FEVIS) the U.S. Government’s Defense Advanced Research system automatically generates program variants to be Projects Agency (DARPA), FEVIS builds on previ- run in parallel, seeking to detect attacks through diver- ous and ongoing work on “code clones,” substituting gence in behavior. Unlike approaches to diversification redundant code fragments as a means to generate that only change program memory layout and behavior, program variants automatically. These variants are in- FEVIS can detect attacks exploiting vulnerabilities in tended for use in a multi-variant execution environ- execution timing, string processing, and other logic ment, to be used for attack detection and resistance in errors. the presence of both known and unknown attacks. We We are in the early stages of research and devel- are in the early stages of research and development opment for this approach, but have made sufficient for this approach, but have made sufficient progress to progress to provide a proof of concept and some provide a proof of concept and some lessons learned. lessons learned. In this paper we describe FEVIS In the rest of this paper, we describe related work and and its application to diversifying an open-source previous research on which FEVIS builds (Section 2). webserver, with results on several different example We then present FEVIS itself (Section 3), illustrating classes of attack which FEVIS will detect. the approach through the use of examples drawn from the diversification of an open-source webserver (Sec- 1. Introduction tion 4). We conclude with a discussion of ongoing and future research. Software vulnerabilities and the cyber attacks en- abled by them are increasingly prevalent, and continue to increase in both cost and impact. Critical civilian 2. Related Work and military software systems are vulnerable, with new vulnerabilities being discovered all the time. Vulner- abilities enabling attacks can remain undetected for FEVIS applies concepts and techniques from the years, as with the Heartbleed bug in OpenSSL [1]. study of code redundancy as a means of diversifying Worse, both known and unknown vulnerabilities may software for use in multi-variant execution. In this This research was developed with funding from the Defense Ad- section, we summarize related work in these three vanced Research Projects Agency (DARPA) under contract FA8750- areas. 15-C-0110. The views and/or findings contained in this article are those of the author and should not be interpreted as representing the official views or policies of the Department of Defense or the US Government. DISTRIBUTION STATEMENT A: Approved for public 1. The multi-step attacks on Chromium detailed in “A Tale of Two release; distribution is unlimited. Pwnies” provide good examples [2]. 2.1. Multi-Variant Execution the logical structure (i.e., the semantics) of the pro- gram itself. Cross-site scripting, use after free, di- Multi-variant execution is an approach to detecting rectory traversal, SQL and OS command injection, and forestalling attacks, in which multiple variants of and unauthorized disclosure via URL string processing an application are run in parallel. These variants are vulnerabilities are among the many forms of attack specifically chosen to provide the same results for that may not be blocked or detected by diversification an authorized range of inputs, but to diverge under measures that seek to preserve program control flow attack. Multi-variant execution has been an active and semantics. Nor will many of them be caught by research topic for several years, with different research more sophisticated approaches such as automated code groups proposing alternative architectures for variant obfuscation or restructuring, if the semantics of the synchronization and checking, as well as methods modified program remain the same. for variant generation including Address Space Lay- These are the kinds of attacks that we seek to detect out Randomization (ASLR); Intelligence, Surveillance, using variants generated by FEVIS. and Reconnaissance (ISR); and buffer padding. For example, Salamat et al. [3] describe a Multi-Variant 2.3. Code Clones Execution Environment (MVEE), using variants in which the stack grows in opposite directions. Nguyen- Our approach takes as a starting point the well- Tuong et al. devised a multi-variant system using data known concept of code clones, in which redundant transformations derived from N-variant systems [4]. code sections can be substituted one for another. The Multi-variant execution is somewhat different from definition of redundancy that we follow is taken from the use of diversification as a “moving target de- Carzaniga et al. [6], who define code redundancy as fense” (MTD), in which the objective is to present the product of observational equivalence and execu- an attacker with a single binary, but one which has tion distance.3 Observational equivalence is defined in unpredictable differences from previous instances of terms of probing code, code which is input to code the same program they may have investigated. One fragment to determine outputs and an oracle. Both critical difference is that multi-variant execution is are appended to the code fragments being tested for secretless, in the sense that an attacker may know about equivalence. This definition allows us to define “func- how variants are generated, may even know which tional equivalence” in terms of authorized or expected specific variants are currently running, without that input, rather than across the entire space of possible information enabling an attack. In contrast, an attacker input. Carzaniga et al. evaluate several definitions for given time to investigate a single variant, may discover execution distance, settling on data projection, which what has been changed and be able to adjust their is measured in terms of the difference in memory attack accordingly.2 locations read and written, as well as what is written to them. Figure 1 provides two examples of redundant code fragments according to this definition. 2.2. Program Diversification Code clones have been employed for a wide variety of uses, including the automatic generation of test or- One common thread through much previous research acles, self-healing code, fault tolerance, and automatic on program diversification for multi-variant execution test generation. For example Carzaniga [8] creates test is the preservation of program semantics in a very oracles by finding redundancies in code and cross strong sense. ASLR relocates code and data in the checking the execution of a test with the execution of running program, preserving control flow. The same the same test on a variant of the code with redundant is true for techniques such as stack or heap padding, operations replaced. or ISR. Program transformation approaches that seek Clones may either be discovered or constructed, to defeat attacks upon a single binary, such as the both approaches having some currency in the research addition of stack canaries, might plausibly be viewed literature. The prevalence of redundant code fragments as providing diversification. In this case, the altered in large software systems such as the Linux kernel and unaltered programs constitute a set of two. has been extensively documented, as discussed in [8], However, many of the most common exploits, en- abling the most devastating attacks, exploit holes in 3. This is distinct from the more general use of the term “clone” as used (for example) in [7], where clones may differ not at all, or only in layout and choice of identifiers. Clones in this larger sense 2. Larsen et al. [5] provide a good summary of diversification have been applied for purposes such as detecting plagiarism and methods applied as MTD. copyright infringement. of the methods, and the “structural” distance of methods within to have the same result and equivalent side-effects (or state the package hierarchy. The most interesting aspects of the work changes) as A. of Higo and Kusumoto is that, perhaps thanks to the simplicity Other studies on semantically equivalent code adopt a purely of their analysis, they were able to analyze a massive amount functional notion of equivalence, and therefore assume no of code. visible state changes [11]. Yet others consider state changes to be part of the input/output transformation of code fragments, III. CHARACTERIZING SOFTWARE REDUNDANCY but then accept only identical state changes [20]. Instead, we We now formalize our notion of redundancy. We first give would still consider two fragments to be equivalent even if an abstract and general definition that we then specialize to they produce different state changes, as long as the observable develop a practical measurement method. effects of those changes are identical. This notion is close to the We are interested in the redundancy of code. More specif- testing equivalence proposed by De Nicola and Hennessy [27] ically we define redundancy as a relation between two code and the weak bi-similarity by Hennessy and Milner [17]. We fragments within a larger system.
Recommended publications
  • Nginx 1 Web Server Implementation Cookbook
    Nginx 1 Web Server Implementation Cookbook Over 100 recipes to master using the Nginx HTTP server and reverse proxy Dipankar Sarkar BIRMINGHAM - MUMBAI This material is copyright and is licensed for the sole use by 2135 Lymington on 26th March 2012 2135 Lymington, Carrollton, 75007 Nginx 1 Web Server Implementation Cookbook Copyright © 2011 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: May 2011 Production Reference: 1180511 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-849514-96-5 www.packtpub.com Cover Image by Javier Barria ([email protected]) This material is copyright and is licensed for the sole use by 2135 Lymington
    [Show full text]
  • Additional Software 1 Additional Software
    Additional Software 1 Additional Software 1 Additional Software 15 Feb 2014 1 1.1 Description 1.1 Description Where to get software written by other parties that might be useful (or necessary) when running mod_perl. 1.2 Perl Perl is probably already installed on your machine, but you should at least check the version you are using. It is highly recommended that you have at least Perl version 5.004. You can get the latest perl version from http://cpan.org/src/. Try the direct download link http://cpan.org/src/stable.tar.gz. You can get Perl documentation from the same location (although copious documentation is included in the downloaded Perl distribution). 1.3 CPAN Downloads You can download most of the Perl modules from CPAN. There are many mirrors of this site. The main site’s URL is http://cpan.org/. You may want to search the Perl modules database by using http://search.cpan.org/. Either use the search form, or type in the name of the package the module is distributed in. For example if you are looking for Apache::DumpHeaders, you can type: http://search.cpan.org/search?dist=Apache-DumpHeaders . 1.4 Apache Get the latest Apache webserver and documentation from http://httpd.apache.org. Try the direct download link http://httpd.apache.org/dist/. 1.5 Squid - Internet Object Cache http://www.squid-cache.org/ Squid Linux 2.x Redhat RPMs : http://home.earthlink.net/~intrep/linux/ 1.6 thttpd - tiny/turbo/throttling HTTP server http://www.acme.com/software/thttpd/ 1.7 mod_proxy_add_forward Ask Bjoern Hansen has written the mod_proxy_add_forward.c module for Apache that sets the X-Forwarded-For field when doing a ProxyPass, similar to what Squid does.
    [Show full text]
  • Server: Apache
    Modern Trends in Network Fingerprinting SecTor [11.21.07] Jay Graver Ryan Poppa // Fingerprinting Topics Why, What, Who & How? Tools in action Why Tools Break Tools EOL New Approaches New Tool // Why Fingerprint? WhiteHat needs accurate identification of hosts in a PenTest report BlackHat reconnaissance SysAdmins track down and identify new services or hosts when they appear on their network // What is a Fingerprint? Looking at something common … 192.168.2.187:8004 192.168.2.187 [152] 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK. 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f .Connection: clo 73 65 0d 0a 41 6c 6c 6f 77 3a 20 4f 50 54 49 4f se..Allow: OPTIO 4e 53 2c 20 47 45 54 2c 20 48 45 41 44 2c 20 50 NS, GET, HEAD, P 4f 53 54 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e OST..Content‐Len 67 74 68 3a 20 30 0d 0a 44 61 74 65 3a 20 46 72 gth: 0..Date: Fr 69 2c 20 30 32 20 4e 6f 76 20 32 30 30 37 20 32 i, 02 Nov 2007 2 32 3a 32 35 3a 31 38 20 47 4d 54 0d 0a 53 65 72 2:25:18 GMT..Ser 76 65 72 3a 20 6c 69 67 68 74 74 70 64 2f 31 2e ver: lighttpd/1. 34 2e 31 35 0d 0a 0d 0a 4.15...
    [Show full text]
  • Next Generation Web Scanning Presentation
    Next generation web scanning New Zealand: A case study First presented at KIWICON III 2009 By Andrew Horton aka urbanadventurer NZ Web Recon Goal: To scan all of New Zealand's web-space to see what's there. Requirements: – Targets – Scanning – Analysis Sounds easy, right? urbanadventurer (Andrew Horton) www.morningstarsecurity.com Targets urbanadventurer (Andrew Horton) www.morningstarsecurity.com Targets What does 'NZ web-space' mean? It could mean: •Geographically within NZ regardless of the TLD •The .nz TLD hosted anywhere •All of the above For this scan it means, IPs geographically within NZ urbanadventurer (Andrew Horton) www.morningstarsecurity.com Finding Targets We need creative methods to find targets urbanadventurer (Andrew Horton) www.morningstarsecurity.com DNS Zone Transfer urbanadventurer (Andrew Horton) www.morningstarsecurity.com Find IP addresses on IRC and by resolving lots of NZ websites 58.*.*.* 60.*.*.* 65.*.*.* 91.*.*.* 110.*.*.* 111.*.*.* 113.*.*.* 114.*.*.* 115.*.*.* 116.*.*.* 117.*.*.* 118.*.*.* 119.*.*.* 120.*.*.* 121.*.*.* 122.*.*.* 123.*.*.* 124.*.*.* 125.*.*.* 130.*.*.* 131.*.*.* 132.*.*.* 138.*.*.* 139.*.*.* 143.*.*.* 144.*.*.* 146.*.*.* 150.*.*.* 153.*.*.* 156.*.*.* 161.*.*.* 162.*.*.* 163.*.*.* 165.*.*.* 166.*.*.* 167.*.*.* 192.*.*.* 198.*.*.* 202.*.*.* 203.*.*.* 210.*.*.* 218.*.*.* 219.*.*.* 222.*.*.* 729,580,500 IPs. More than we want to try. urbanadventurer (Andrew Horton) www.morningstarsecurity.com IP address blocks in the IANA IPv4 Address Space Registry Prefix Designation Date Whois Status [1] -----
    [Show full text]
  • Simplifying Server Configuration Management Björn Tackmann
    Universit¨atKarlsruhe (TH) Institut f¨ur Betriebs- und Dialogsysteme Lehrstuhl Systemarchitektur Simplifying Server Configuration Management Bj¨ornTackmann Studienarbeit Verantwortlicher Betreuer: Prof. Dr. Frank Bellosa Betreuender Mitarbeiter: Joshua LeVasseur 11. Mai 2005 Hiermit erkl¨areich, die vorliegende Arbeit selbst¨andig verfasst und keine anderen als die angegebenen Literaturhilfsmittel verwendet zu haben. I hereby declare that this thesis is a work of my own, and that only cited sources have been used. Karlsruhe, den 11. Mai 2005 Bj¨ornTackmann Abstract Network services have gained great importance during the last years. Follow- ing the current trend, the number of computers and applications that collabo- rate to provide these services will grow steadily in the future. The dependencies between the collaborating systems along with heterogeneous management inter- faces will continue to increase the complexity of the administration task. This thesis presents a new approach to server configuration management. The inte- gration of the applications into diverse local environments is simplified, and the availability of services is improved by freeing the applications from error-prone tasks. Contents 1 Introduction 1 2 Related Work 3 2.1 Management of Configuration Data . 3 2.2 Dynamic Reconfiguration . 3 3 Proposed Solution 5 3.1 The Traditional Approach . 6 3.2 The Configuration Linking Approach . 7 3.2.1 Separating the Parser from the Application . 8 3.2.2 Configuration Data Bases . 9 3.2.3 Generating the Object Files . 10 3.3 Dynamic Reconfiguration . 10 3.3.1 A Classification of Configuration Parameters . 10 3.3.2 Local Parameters . 11 3.3.3 Global Parameters . 11 4 Evaluation 15 4.1 The thttpd WebServer.......................
    [Show full text]
  • Webserver WEBSER  Shell-Zugriff Via Webbrowser Debian 6.0 S
    COMMUNITY-EDITION Frei kopieren und beliebig weiter verteilen ! 04.2011 04.2011 APACHE-ALTERNATIVEN: WEBSITES AUFSETZEN UND PFLEGEN VER WEBSERVER WEBSER Shell-Zugriff via Webbrowser Debian 6.0 S. 6 Live- und Install-DVDs So verwalten Sie mit PHP Shell und Shell in a Box für 32- und 64-Bit-PCs den Webserver über die Kommandozeile S. 33, DVD Analyse-Tools für die Website Server-Logs grafisch aufbereiten und Benutzerzugriffe detailliert auswerten mit Webalizer und Piwik S. 38, 42, DVD Fünf Apache-Alternativen für alle Fälle S. 20, 28, DVD Profi-Server Nginx, hochsicherer Hiawatha, Allrounder Lighttpd, Minimalist Thttpd, schneller Einstieg mit Monkey HTTP Daemon MoonOS 4 S. 12 Schicke Mac-Optik für Ubuntu „Maverick“ Laptop-Schnäppchen Aspire 5253 Acers neuer 15,6-Zöller auf AMD-Fusion-Basis mit satter Grafik-Leistung und langer Laufzeit S. 80 Texterkennung in Platzfresser von Profi-Qualität S. 48, DVD der Platte putzen S. 70 Unity 2010.2 S. 8 Cuneiform: multilinguale OCR Dateileichen und Altlasten Maßgeschneiderte mit intuitiver Oberfläche aufspüren mit JDiskReport Distro auf Knopfdruck MythTV-Export Geballtes Wissen auf Knopfdruck S. 66 stets zur Hand S. 82, DVD Aufnahmen unkompliziert Goldendict vereint On- und wandeln, streamen, brennen Offline-Lexika in einer GUI ATI FIREPRO 3D • GOLDENDICT LOUT LUCIDOR MYTHTV OCR ATI 4 196067 008502 04 www.linux-user.de EDITORIAL Klare Ansage Sehr geehrte Leserinnen und Leser, im Vorfeld von Ubuntu 11.04 Wohlgemerkt: Die MIT-Lizenz des statt Lizenzgebühren zu verlan- sorgte Canonical immer wieder für Banshee-Projekts hätte jegliche gen. Diesem Geschäftsmodell fol- Schlagzeilen – zuletzt im Zusam- Änderungen auch ganz ohne Nach- gend, werde man grundsätzlich wo menhang mit der Ablösung des frage erlaubt, formaljuristisch war immer möglich aus der Software bisherigen Mediaplayers Rhythm- Canonicals Ansinnen völlig in der freien Upstream-Projekte Ge- box durch Banshee: Der nämlich Ordnung.
    [Show full text]
  • Comparison of Web Server Software from Wikipedia, the Free Encyclopedia
    Create account Log in Article Talk Read Edit ViewM ohrisetory Search Comparison of web server software From Wikipedia, the free encyclopedia Main page This article is a comparison of web server software. Contents Featured content Contents [hide] Current events 1 Overview Random article 2 Features Donate to Wikipedia 3 Operating system support Wikimedia Shop 4 See also Interaction 5 References Help 6 External links About Wikipedia Community portal Recent changes Overview [edit] Contact page Tools Server Developed by Software license Last stable version Latest release date What links here AOLserver NaviSoft Mozilla 4.5.2 2012-09-19 Related changes Apache HTTP Server Apache Software Foundation Apache 2.4.10 2014-07-21 Upload file Special pages Apache Tomcat Apache Software Foundation Apache 7.0.53 2014-03-30 Permanent link Boa Paul Phillips GPL 0.94.13 2002-07-30 Page information Caudium The Caudium Group GPL 1.4.18 2012-02-24 Wikidata item Cite this page Cherokee HTTP Server Álvaro López Ortega GPL 1.2.103 2013-04-21 Hiawatha HTTP Server Hugo Leisink GPLv2 9.6 2014-06-01 Print/export Create a book HFS Rejetto GPL 2.2f 2009-02-17 Download as PDF IBM HTTP Server IBM Non-free proprietary 8.5.5 2013-06-14 Printable version Internet Information Services Microsoft Non-free proprietary 8.5 2013-09-09 Languages Jetty Eclipse Foundation Apache 9.1.4 2014-04-01 Čeština Jexus Bing Liu Non-free proprietary 5.5.2 2014-04-27 Galego Nederlands lighttpd Jan Kneschke (Incremental) BSD variant 1.4.35 2014-03-12 Português LiteSpeed Web Server LiteSpeed Technologies Non-free proprietary 4.2.3 2013-05-22 Русский Mongoose Cesanta Software GPLv2 / commercial 5.5 2014-10-28 中文 Edit links Monkey HTTP Server Monkey Software LGPLv2 1.5.1 2014-06-10 NaviServer Various Mozilla 1.1 4.99.6 2014-06-29 NCSA HTTPd Robert McCool Non-free proprietary 1.5.2a 1996 Nginx NGINX, Inc.
    [Show full text]
  • Ipv6 in Freebsd.Pdf
    The FreeBSD Project http://www.freebsd.org/ 1/28 IPv6 in FreeBSD Joseph Koshy [email protected] i ? P Structure of this talk What is FreeBSD? 2/28 • The FreeBSD development model • The KAME project • IPv6 support in FreeBSD • Configuring IPv6 in FreeBSD • Available IPv6 capable application software. • Tracking IPv6 development under FreeBSD • Conformance and performance • A look at IPv6 in operation; demos • Conclusion • i ? P What is FreeBSD? http://www.freebsd.org/ 3/28 A high-performance, volunteer developed, open source, protected mode operating • system. University of California, Berkeley heritage (BSD4.4-Lite). BSD License. • Released for Intel (x86) PCs, laptops and Alpha workstations. • Most recent stable release: FreeBSD v4.2 • Linux, SVR4 (Solaris), SCO application compatibility. • A large number of ported applications (over 4000). • used in very high load scenarios (YAHOO,HOTMAIL, . ); excellent as a worksta- • tion OS. Possesses an excellent IPv6 stack. i ? • P The BSD License very open to commercial use 4/28 • unlike the GPL, there is no requirement that you have to release your modified • sources to the public only requires you to acknowledge authorship of the code • no warranties on the code • many companies are using the FreeBSD code base in their products • e.g. the Interjet from Whistle Inc. (an internet appliance), many router products . i ? P The FreeBSD Organization 5/28 USER COMMUNITY COMMITTERS CORE FreeBSD.ORG FreeBSD is developed and managed by its users. • 3-level organization: • – Over 75% of changes to the source tree originate from the FreeBSD user com- munity. – COMMITTERS are individuals who have the rights to change the source tree.
    [Show full text]
  • Security Assessment INTERNAL NETWORK VULNERABILITIES SUMMARY REPORT
    Security Assessment INTERNAL NETWORK VULNERABILITIES SUMMARY REPORT CONFIDENTIALITY NOTE: The information contained in this report is for the exclusive use of the client specified above and may contain Prepared for: Your Customer / confidential, privileged, and non-disclosable information. If you are Prospect not the client or addressee, you are strictly prohibited from reading, photocopying, distributing, or otherwise using this report or its Prepared by: Your Company Name contents in any way. 23-Feb-2021 Scan Date: 12-Feb-2021 Your Company Name Prepared for: MSP WEBSITE URL Your Customer / Prospect MSP PHONE Scan Date: MSP EMAIL 12-Feb-2021 Internal Network Vulnerabilities Summary The Management Plan ranks individual issues based upon their potential risk to the network while providing guidance on which issues to address by priority. Fixing issues with lower Risk Scores will not lower the global Risk Score, but will reduce the global Issue Score. To mitigate global risk and improve the health of the network, address issues with higher Risk Scores first. Appliances Used: 1. NDA1-5488JF 2. NDA1-7584JY 3. NDA1-9644PG High Risk CVSS RECOMMENDATION 10 Trojan horses Summary An unknown service runs on this port. It is sometimes opened by Trojan horses. Unless you know for sure what is behind it, you'd better check your system. Solution If a trojan horse is running, run a good antivirus scanner. Affected Nodes 10.200.1.16(myco-bdr)1 10 IPMI Cipher Zero Authentication Bypass Vulnerability Summary Intelligent Platform Management Interface is prone to an authentication- bypass vulnerability. Solution Ask the Vendor for an update.
    [Show full text]
  • Kqueue: a Generic and Scalable Event Notification Facility
    Kqueue: A generic and scalable event notification facility Jonathan Lemon [email protected] FreeBSD Project Abstract delivered to the application, when a file in the filesystem changes in some fashion, or when a process exits. None Applications running on a UNIX platform need to be no- of these are handled efficiently at the moment; signal de- tified when some activity occurs on a socket or other de- livery is limited and expensive, and the other events listed scriptor, and this is traditionally done with the select() or require an inefficient polling model. In addition, neither poll() system calls. However, it has been shown that the poll() nor select() can be used to collect these events, performance of these calls does not scale well with an in- leading to increased code complexity due to use of mul- creasing number of descriptors. These interfaces are also tiple notification interfaces. limited in the respect that they are unable to handle other This paper presents a new mechanism that allows the potentially interesting activities that an application might application to register its interest in a specific event, and be interested in, these might include signals, file system then efficiently collect the notification of the event at a changes, and AIO completions. This paper presents a later time. The set of events that this mechanism covers generic event delivery mechanism, which allows an ap- is shown to include not only those described above, but plication to select from a wide range of event sources, may also be extended to unforeseen event sources with and be notified of activity on these sources in a scalable no modification to the API.
    [Show full text]
  • Reference Guide
    Systemwalker Service Quality Coordinator Reference Guide Windows/Solaris/Linux J2X1-7662-01ENZ0(01) September 2012 Preface Purpose of this manual This manual explains the different commands and messages used by Systemwalker Service Quality Coordinator. Target audience This manual is intended for users who will use the Systemwalker Service Quality Coordinator Console window. Readers of this manual should also have a general understanding of basic operating system and GUI operations as well as a working knowledge of communications protocols such as TCP/IP and SMTP. Organization of Systemwalker Service Quality Coordinator manuals The Systemwalker Service Quality Coordinator manuals are organized as follows: - Systemwalker Service Quality Coordinator Technical Guide Provides an overview of the functions of Systemwalker Service Quality Coordinator. - Systemwalker Service Quality Coordinator Installation Guide Explains how to install and set up Systemwalker Service Quality Coordinator. - Systemwalker Service Quality Coordinator User's Guide Explains how to use the functions of Systemwalker Service Quality Coordinator. - Systemwalker Service Quality Coordinator User's Guide (Console Edition) Explains how to use those functions related to console windows. - Systemwalker Service Quality Coordinator User's Guide (Dashboard Edition) Explains how to use dashboard function. - Systemwalker Service Quality Coordinator Reference Guide Explains commands, data formats, messages and so on. - Systemwalker Service Quality Coordinator Troubleshooting Guide
    [Show full text]
  • An Introduction to HTTP Fingerprinting Table of Contents
    An Introduction to HTTP fingerprinting Saumil Shah [email protected] 30th November, 2003 Table of Contents 1. Abstract 2. Theory of Fingerprinting 3. Banner Grabbing 4. Applications of HTTP Fingerprinting 5. Obfuscating the server banner string 6. Protocol Behaviour 6.1 HTTP Header field ordering 6.2 HTTP DELETE 6.3 Improper HTTP version response 6.3 Improper protocol response 6.5 Summary of test results 6.6 Choosing the right tests 7. Statistical and Fuzzy analysis 7.1 Assumptions 7.2 Terms and Definitions 7.3 Analysis Logic 8. httprint - the advanced HTTP fingerprinting engine 8.1 httprint signatures 8.2 httprint command line and GUI interfaces 8.3 Running httprint 8.4 The significance of confidence ratings 8.5 httprint Reports 8.6 Customising httprint 9. Trying to defeat HTTP Fingerprinting 10. Conclusion 11. References 1. Abstract HTTP Fingerprinting is a relatively new topic of discussion in the context of application security. One of the biggest challenges of maintaining a high level of network security is to have a complete and accurate inventory of networked assets. Web servers and web applications have now become a part of the scope of a network security assessment exercise. In this paper, we present techniques to identify various types of HTTP servers. We shall discuss some of the problems faced in inventorying HTTP servers and how we can overcome them. We shall also introduce and describe a tool, httprint, which is built using the concepts discussed in this paper. 2. Theory of Fingerprinting A fingerprint is defined as: 1. The impression of a fingertip on any surface; also: an ink impression of the lines upon the fingertip taken for the purpose of identification.
    [Show full text]