Poker is card game that many people around the world enjoy. Poker is played at kitchen tables, in casinos and cardrooms, and, recently, on the Web. A few of us here at Reliable Software Technologies (http://www.rstcorp.com) play poker. Since many of us spend a good amount of time on-line, it was only a matter of time before some of us put the two interests together. This is the story of how our interests in online poker and software security mixed to create a spectacular security exploit.
developed into a workingsoftware prototype.2 Controlling Malicious Software ExecutionOne of the key ideas in containing malicious software is to prevent its execution and proliferation. Malicioussoftware finds manyways to spread itself. Traditionally, viruses were passed from BBS systems and publicshareware to individual machines. Typically, these viruses infected boot sectors on hard drives and floppies.Macro viruses changed the nature of propagation by spreading via shared documents....
As Windows NT workstations become more entrenched in enterprise-critical and even mission-critical applications, the dependability of the Windows 32-bit (Win32) platform is becoming critical. To date, studies on the robustness of system software have focused on Unix-based systems. This paper describes an approach to assessing the robustness for Win32 software and providing robustness wrappers for third party commercial off-the-shelf (COTS) software. The robustness of Win32 applications to failing operating system (OS) functions is assessed by using fault injection techniques at the interface between the application and the operating system. Finally, software wrappers are developed to handle OS failures gracefully in order to mitigate catastrophic application failures.
In this short paper we describe a tool for testing the reliability and robustness of Windows NT soft ware applications under stressful environmental con ditions i e under system resource failure conditions Windows NT systems are increasingly being deployed in mission critical applications such as for command and control in US Navy ships However as re cently as July the Navy s Aegis missile cruiser USS Yorktown su ered a signi cant software problem in the Windows NT systems that control the smart ship that e ectively left the ship dead in the water The ship had to be towed to the Norfolk Naval ship yard because a database over ow error resulting from a divide by zero operation caused the ship s propul sion system to fail The research approach and prototype tool de scribed here are speci cally designed to analyze com mercial o the shelf COTS software for Win sys tems where source code is not released but binary executables are available for dynamic analysis The purpose of this research is to assess the robustness of software applications to failing system resources such as memory allocation functions and system I O func tions The tool gives an analyst the capability to ar ti cially simulate stressful conditions e g complete memory utilization that a program may experience during its lifetime using simple toggle functions
Today, the vast majority of software executing on defense systems is untrusted commercial o -the-shelf software such as Microsoft Windows software. Vulnerabilities in this software may be exploited to gain unauthorized access to security-critical systems. A number of studies have analyzed the robustness of software that run on Unix systems. The results of these studies have pointed to vulnerabilities in the software that could be potentially exploited into security intrusions. This paper describes a new study aimed at analyzing the robustness of software running on Windows NT systems. This relatively new operating system has not yet been thoroughly analyzed by the security research community using the tools and techniques applied to Unix system software. The goal of the research is to identify robustness gaps in the application software and operating system software that potentially could be exploited for violations of security. Contributions in this paper include a grammar-based input generator, a taxonomy of failure conditions, and experimental results from robustness testing of software running on the NT