Subscribe free to our newsletters via your
. 24/7 Space News .




TECH SPACE
Better debugger
by Staff Writers
Boston MA (SPX) Mar 24, 2015


File image.

Integer overflows are one of the most common bugs in computer programs - not only causing programs to crash but, even worse, potentially offering points of attack for malicious hackers. Computer scientists have devised a battery of techniques to identify them, but all have drawbacks.

This month, at the Association for Computing Machinery's International Conference on Architectural Support for Programming Languages and Operating Systems, researchers from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) will present a new algorithm for identifying integer-overflow bugs.

The researchers tested the algorithm on five common open-source programs, in which previous analyses had found three bugs. The new algorithm found all three known bugs - and 11 new ones.

The variables used by computer programs come in a few standard types, such as floating-point numbers, which can contain decimals; characters, like the letters of this sentence; or integers, which are whole numbers. Every time the program creates a new variable, it assigns it a fixed amount of space in memory. If a program tries to store too large a number at a memory address reserved for an integer, the operating system will simply lop off the bits that don't fit.

"It's like a car odometer," says Stelios Sidiroglou-Douskos, a research scientist at CSAIL and first author on the new paper. "You go over a certain number of miles, you go back to zero."

In itself, an integer overflow won't crash a program; in fact, many programmers use integer overflows to perform certain types of computations more efficiently. But if a program tries to do something with an integer that has overflowed, havoc can ensue. Say, for instance, that the integer represents the number of pixels in an image the program is processing. If the program allocates memory to store the image, but its estimate of the image's size is off by several orders of magnitude, the program will crash.

Charting a course
Any program can be represented as a flow chart - or, more technically, a graph, with boxes that represent operations connected by line segments that represent the flow of data between operations. Any given program input will trace a single route through the graph. Prior techniques for finding integer-overflow bugs would start at the top of the graph and begin working through it, operation by operation.

For even a moderately complex program, however, that graph is enormous; exhaustive exploration of the entire thing would be prohibitively time-consuming. "What this means is that you can find a lot of errors in the early input-processing code," says Martin Rinard, an MIT professor of computer science and engineering and a co-author on the new paper.

"But you haven't gotten past that part of the code before the whole thing poops out. And then there are all these errors deep in the program, and how do you find them?"

Rinard, Sidiroglou-Douskos, and several other members of Rinard's group - researchers Eric Lahtinen and Paolo Piselli and graduate students Fan Long, Doekhwan Kim, and Nathan Rittenhouse - take a different approach.

Their system, dubbed DIODE (for Directed Integer Overflow Detection), begins by feeding the program a single sample input. As that input is processed, however - as it traces a path through the graph - the system records each of the operations performed on it by adding new terms to what's known as a "symbolic expression."

"These symbolic expressions are complicated like crazy," Rinard explains. "They're bubbling up through the very lowest levels of the system into the program. This 32-bit integer has been built up of all these complicated bit-level operations that the lower-level parts of your system do to take this out of your input file and construct those integers for you. So if you look at them, they're pages long."

Trigger warning
When the program reaches a point at which an integer is involved in a potentially dangerous operation - like a memory allocation - DIODE records the current state of the symbolic expression. The initial test input won't trigger an overflow, but DIODE can analyze the symbolic expression to calculate an input that will.

The process still isn't over, however: Well-written programs frequently include input checks specifically designed to prevent problems like integer overflows, and the new input, unlike the initial input, might fail those checks.

So DIODE seeds the program with its new input, and if it fails such a check, it imposes a new constraint on the symbolic expression and computes a new overflow-triggering input. This process continues until the system either finds an input that can pass the checks but still trigger an overflow, or it concludes that triggering an overflow is impossible. If DIODE does find a trigger value, it reports it, providing developers with a valuable debugging tool. Indeed, since DIODE doesn't require access to a program's source code but works on its "binary" - the executable version of the program - a program's users could run it and then send developers the trigger inputs as graphic evidence that they may have missed security vulnerabilities.


Thanks for being here;
We need your help. The SpaceDaily news network continues to grow but revenues have never been harder to maintain.

With the rise of Ad Blockers, and Facebook - our traditional revenue sources via quality network advertising continues to decline. And unlike so many other news sites, we don't have a paywall - with those annoying usernames and passwords.

Our news coverage takes time and effort to publish 365 days a year.

If you find our news sites informative and useful then please consider becoming a regular supporter or for now make a one off contribution.
SpaceDaily Contributor
$5 Billed Once


credit card or paypal
SpaceDaily Monthly Supporter
$5 Billed Monthly


paypal only


.


Related Links
Massachusetts Institute of Technology
Space Technology News - Applications and Research






Comment on this article via your Facebook, Yahoo, AOL, Hotmail login.

Share this article via these popular social media networks
del.icio.usdel.icio.us DiggDigg RedditReddit GoogleGoogle




Memory Foam Mattress Review
Newsletters :: SpaceDaily :: SpaceWar :: TerraDaily :: Energy Daily
XML Feeds :: Space News :: Earth News :: War News :: Solar Energy News





TECH SPACE
Processing Paradigms That Accelerate Computer Simulations
Washington DC (SPX) Mar 25, 2015
Whether designed to predict the spread of an epidemic, understand the potential impacts of climate change, or model the acoustical signature of a newly designed ship hull, computer simulations are an essential tool of scientific discovery. By using mathematical models that capture the complex physical phenomena of the real world, scientists and engineers can validate theories and explore s ... read more


TECH SPACE
Extent of Moon's giant volcanic eruption is revealed

Yutu Changes Everything We Thought We Knew About Our Moon

Extent of moon's giant volcanic eruption is revealed

NASA's LRO Spacecraft Finds March 17, 2013 Impact Crater and More

TECH SPACE
Mars One's CEO Bas Lansdorp answers questions about mission feasibility

Could Water Have Carved Channels On Mars Half A Million Years Ago?

MARSDROP Microprobes Could Expand Spacecraft Mission Capabilities

NASA Spacecraft Detects Aurora and Mysterious Dust Cloud around Mars

TECH SPACE
Small Staff has Big Impact Showing How NASA Can Engage Students

TED Prize winner wishes for archive of human wisdom

The Science Of The Start-Up

From cancer-battling bacteria to life on Mars at TED

TECH SPACE
China's Yutu rover reveals Moon's "complex" geological history

China's Space Laboratory Still Cloaked

China has ability but no plan for manned lunar mission: expert

Tianzhou-1 cargo ship to dock with space lab in 2016

TECH SPACE
One-Year Crew Set for Launch to Space Station

Russia, US May Sign New Deal to Send Astronauts to ISS

Lockheed Martin reveals new method for resupplying space station

Testing astronauts' lungs in Space Station airlock

TECH SPACE
Soyuz Installed at Baikonur, Expected to Launch Wednesday

Kosmotras Denies Reports of Suspending Russian-Ukrainian Launches

NASA Awards Launch Services Contract for Solar Probe Plus Mission

Payload integration is underway for Soyuz' Galileo passengers

TECH SPACE
Our Solar System May Have Once Harbored Super-Earths

SOFIA Finds Missing Link Between Supernovae and Planet Formation

ESA's CHEOPS Satellite: The Pharaoh of Exoplanet Hunting

Some habitable exoplanets could experience wildly unpredictable climates

TECH SPACE
Want to snag a satellite? Try a net

Slight surface movements on the radar

Processing Paradigms That Accelerate Computer Simulations

Spacecraft Power Systems




The content herein, unless otherwise known to be public domain, are Copyright 1995-2014 - Space Media Network. All websites are published in Australia and are solely subject to Australian law and governed by Fair Use principals for news reporting and research purposes. AFP, UPI and IANS news wire stories are copyright Agence France-Presse, United Press International and Indo-Asia News Service. ESA news reports are copyright European Space Agency. All NASA sourced material is public domain. Additional copyrights may apply in whole or part to other bona fide parties. Advertising does not imply endorsement, agreement or approval of any opinions, statements or information provided by Space Media Network on any Web page published or hosted by Space Media Network. Privacy Statement All images and articles appearing on Space Media Network have been edited or digitally altered in some way. Any requests to remove copyright material will be acted upon in a timely and appropriate manner. Any attempt to extort money from Space Media Network will be ignored and reported to Australian Law Enforcement Agencies as a potential case of financial fraud involving the use of a telephonic carriage device or postal service.