System fixes bugs by importing functionality from other programs—without access to source code

systemfixesb

At the Association for Computing Machinery’s Programming Language Design and Implementation conference this month, MIT researchers presented a new system that repairs dangerous software bugs by automatically importing functionality from other, more secure applications.

Remarkably, the system, dubbed CodePhage, doesn’t require access to the source code of the applications whose functionality it’s borrowing. Instead, it analyzes the applications’ execution and characterizes the types of security checks they perform. As a consequence, it can import checks from applications written in programming languages other than the one in which the program it’s repairing was written.

Once it’s imported code into a vulnerable application, CodePhage can provide a further layer of analysis that guarantees that the bug has been repaired.

“We have tons of source code available in open-source repositories, millions of projects, and a lot of these projects implement similar specifications,” says Stelios Sidiroglou-Douskos, a research scientist at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) who led the development of CodePhage. “Even though that might not be the core functionality of the program, they frequently have subcomponents that share functionality across a large number of projects.”

With CodePhage, he says, “over time, what you’d be doing is building this hybrid system that takes the best components from all these implementations.”

Sidiroglou-Douskos and his coauthors—MIT professor of computer science and engineering Martin Rinard, graduate student Fan Long, and Eric Lahtinen, a researcher in Rinard’s group—refer to the program CodePhage is repairing as the “recipient” and the program whose functionality it’s borrowing as the “donor.” To begin its analysis, CodePhage requires two sample inputs: one that causes the recipient to crash and one that doesn’t. A bug-locating program that the same group reported in March, dubbed DIODE, generates crash-inducing inputs automatically. But a user may simply have found that trying to open a particular file caused a crash.

Carrying the past

First, CodePhage feeds the “safe” input—the one that doesn’t induce crashes—to the donor. It then tracks the sequence of operations the donor executes and records them using a symbolic expression, a string of symbols that describes the logical constraints the operations impose.

At some point, for instance, the donor may check to see whether the size of the input is below some threshold. If it is, CodePhage will add a term to its growing symbolic expression that represents the condition of being below that threshold. It doesn’t record the actual size of the file—just the constraint imposed by the check.

Next, CodePhage feeds the donor the crash-inducing input. Again, it builds up a symbolic expression that represents the operations the donor performs. When the new symbolic expression diverges from the old one, however, CodePhage interrupts the process. The divergence represents a constraint that the safe input met and the crash-inducing input does not. As such, it could be a security check missing from the recipient.

CodePhage then analyzes the recipient to find locations at which the input meets most, but not quite all, of the constraints described by the new symbolic expression. The recipient may perform different operations in a different order than the donor does, and it may store data in different forms. But the symbolic expression describes the state of the data after it’s been processed, not the processing itself.

At each of the locations it identifies, CodePhage can dispense with most of the constraints described by the symbolic expression—the constraints that the recipient, too, imposes. Starting with the first location, it translates the few constraints that remain into the language of the recipient and inserts them into the source code. Then it runs the recipient again, using the crash-inducing input.

If the program holds up, the new code has solved the problem. If it doesn’t, CodePhage moves on to the next candidate location in the recipient. If the program is still crashing, even after CodePhage has tried repairs at all the candidate locations, it returns to the donor program and continues building up its symbolic expression, until it arrives at another point of divergence.

Automated future

The researchers tested CodePhage on seven common open-source programs in which DIODE had found bugs, importing repairs from between two and four donors for each. In all instances, CodePhage was able to patch up the vulnerable code, and it generally took between two and 10 minutes per repair.

As the researchers explain, in modern commercial software, security checks can take up 80 percent of the code—or even more. One of their hopes is that future versions of CodePhage could drastically reduce the time that software developers spend on grunt work, by automating those checks’ insertion.

“The longer-term vision is that you never have to write a piece of code that somebody else has written before,” Rinard says. “The system finds that piece of code and automatically puts it together with whatever pieces of code you need to make your program work.”

“The technique of borrowing code from another program that has similar functionality, and being able to take a program that essentially is broken and fix it in that manner, is a pretty cool result,” says Emery Berger, a professor of computer science at the University of Massachusetts at Amherst. “To be honest, I was surprised that it worked at all.”

“The donor program was not written by the same people,” Berger explains. “They have different coding standards; they name variables differently; they use all kinds of different variables; the variables could be local; or they could be higher up in the stack. And CodePhage is able to identify these connections and say, ‘These variables correlate to these variables.’ Speaking in terms of organ donation, it transforms that code to make it a perfect graft, as if it had been written that way in the beginning. The fact that it works as well as it does is surprising—and cool.”

References:http://phys.org/

Graphene takes on a new dimension

3d-graphene

A new process for creating 3D objects out of graphene opens up the possibility of fashioning a whole new range of innovative electronic devices

Graphene is the modern go-to material for scientists and engineers looking to create all manner of new electronic devices. From ultra-frugal light bulbs (both big and small), to super-efficient solar cells, flexible displays and much more, graphene is a multi-tasking marvel. However, in all of these instances, graphene in its original form of atom-thin, flat sheets has had to be used with peripheral supports and structures because it lacks a solid shape and form of its own. Now researchers from the University of Illinois at Urbana-Champaign (UIUC) have come up with a way of creating 3D objects out of graphene that opens up the possibility of fashioning a whole new range of innovative electronic devices.

To create 3D shapes in graphene, the researchers first had to ensure that their approach was sufficient to maintain the structural integrity of the material when it was subjected to deformation. As such, the team used an underlying substrate former over which they laid a film of graphene that had been soaked in solvent to make it swell and become malleable. Once overlaid on the former, the solvent then evaporated over time, leaving behind a layer of graphene that had taken on the shape of the underlying structure. In this way the team was able to produce a range of relatively intricate shapes.

3d-graphene-1

“To the best of our knowledge, this study is the first to demonstrate graphene integration to a variety of different microstructured geometries, including pyramids, pillars, domes, inverted pyramids, and the 3D integration of gold nanoparticles (AuNPs)/graphene hybrid structures,” said SungWoo Nam, assistant professor of mechanical science and engineering at UIUC. “Our swelling, shrinking, and adaptation steps are optimized to minimize the degree of graphene suspension around the 3D microstructures and facilitate successful 3D integration. We control the amount of substrate swelling by adjusting the time of immersion in organic solvent and the mixing ratios of monomer and curing agent of the polydimethylsiloxane (PDMS) substrate.”

Varying in size from just 3.5 to 50 μm, the dimensions of the graphene microstructures developed by UIUC put them right in the middle of a range of electronic devices, including various types of photodetectors, nano antennas, and other sub-miniature components that were once only the domain of silicon-based products. According to the team, these factors, along with graphene’s high carrier mobility, chemical inertness, and biocompatibility, mean that three-dimensional graphene could be adapted over even wider areas.

“We also expect that our new 3D integration approach will facilitate advanced classes of hybrid devices between microelectromechanical systems (MEMS) and 2D materials for sensing and actuation,” said SungWoo Nam.

Due to the fragility of atom-thin graphene, previous methods to bend or mold it into complex shapes resulted in uneven, ill-formed objects at best, and a ruptured mess at worst. In investigating the new technique, the researchers at UIUC were diligent in their testing of the formed graphene via electron microscopy, atomic force microscopy, Raman spectroscopy, and electrical resistance measurement to confirm that it maintained its shape and consistency after forming.

“Our results demonstrate a simple, versatile, and scalable method to integrate graphene with 3D geometries with various morphologies and dimensions,” said Jonghyun Choi, a graduate student in Nam’s research group. “Not only are these 3D features larger than those reported in previous works, but we also demonstrate the uniformity and damage-free nature of integrated graphene around the 3D features.”

References:http://www.gizmag.com/

Compound discovery sets stage for speedier electronic devices

niobium-phosphide-large-magnetoresistance-electronics

lectronics can get faster and better more quickly thanks to the discovery that niobium phosphide has an especially high magnetoresistance – a phenomenon illustrated here in which electrons are deflected from their original direction of flow (green arrow) by a magnetic field (black arrows), increasing electric resistance

A discovery at the Max Planck Institute for Chemical Physics of Solids could pave the way for further leaps forward in the speed of electronic systems. The scientists, who worked in collaboration with colleagues at Helmholtz-Zentrum Dresden-Rossendorf and Radbound University, found that a material called niobium phosphide, which is a compound of transition metal niobium and phosphorus, dramatically increases its resistance in a magnetic field. The material could find use in faster, higher-capacity hard drives and other electronic components.

Electronic components such as hard disks typically use layers of different materials in filigree structure (tiny beads and threads of metal soldered onto the surface) to exploit a phenomenon known as magnetoresistance to develop a high electric resistance, which allows for higher density of data and thus greater storage capacity.

What happens here is that a tiny amount of electricity causes the charge carriers to deflect via a phenomenon called the Lorentz force, and then that causes electrons to flow in the “wrong” direction – thereby increasing electric resistance and allowing a very precise read of the data that’s magnetically stored in a given location.

“The faster the electrons in the material move, the greater the Lorentz force and thus the effect of a magnetic field,” explains study lead author Binghai Yan. The electrons in this material, niobium phosphide, travel very quickly. Niobium phosphide contains superfast charge carriers, or relativistic electrons, that move at 300 km/s (186 mi/s), which is one-thousandth the speed of light. And that extreme speed allows the resistance to increase by a factor of 10,000.

The researchers believe that niobium phosphide has “enormous potential for future applications in information technology” – not only in hard drives but also in many other electronic components that use magnetoresistance to function.

References:http://www.gizmag.com/

Are Wearable Drones Buzzing on the Horizon?

BreatheB

AUSTIN, Texas — Sometime in the near future, drones may be wearable and may even become our buddies — at least if one futurist has any say in the matter.

The wearable tech of the future might be able to perform many more functions than current technology can, from acting as a scout and tour guide in an unfamiliar city to being a rock-climbing companion, one expert said here at the South by Southwest (SXSW) Interactive festival.

That future isn’t so far away, said Adam Pruden, an interaction designer and tech futurist at design firm frog.”Drones are starting to behave like smartphones — and they’re also entering this era of post-smartphone capabilities,” Pruden said. “One day, drones may become an everyday household device.”

Wearable products

Drone technology is advancing rapidly, and these flying bots are already being used for a growing set of functions, from making agriculture more efficient to capturing dramatic video footage of a churning lava lake. Increasingly, drones are also being seen as a key way to deliver supplies to hard-to-reach areas during humanitarian crises. And as drones get smarter, their capabilities have begun to mirror those of smartphones, Pruden said.

Though wearable drones may seem far-fetched, at least one is almost on the market already: the wearable drone Nixie, which is a camera that launches from the wrist, is supposed to be released soon.

Pruden and his colleagues tried to envision what drones might look like in the future when wearable drones become more commonplace. First, they had to determine where drones could live on the body when they’re not in use.

“We have to find a place to put them when we’re not using them,” Pruden said.

Next, the team came up with myriad possible uses for the machines, from drones that carry intravenous drips to drone dog collars. In the end, they settled on four uses that seem the most promising.

The first, called Breathe, would be a pollution sensor and filter that sits passively on a person’s shoulder but deploys when pollution levels are high. The Breathe drone could hover in front of someone’s mouth and nose, cleaning the air they breathe. [See Images of the Wearable Drone Concepts]

Other devices could clip on to someone’s clothing or backpack and devise active games to play. The drone could even identify the proper route for a rock climber scaling a rock wall, the team said.

“It’s set to challenge the owner to continue to improve as they climb again and again,” Pruden said.

A personal tour guide, called the Flare, could attach to a clear wristband. When it’s time to investigate an unfamiliar city, the Flare could launch from the wrist and fly ahead, scouting out the best routes. When it returned, it could hover a few feet in front of the owner, pointing out interesting sites along the way.

The final concept, called Parasol, could act as a personalized weather drone that could be worn like jewelry or a belt buckle when not in use. If the bot were to detect impending precipitation or high levels of ultraviolent radiation, it could morph into protective gear (like an umbrella) to shield its owner from harm.

Drones of the future

Pruden predicts that wearable drones will be in use by around 2030. As these new objects proliferate, humans may create infrastructure to help them do their work, such as drone superhighways or charging stations that allow them to make long-distance journeys.

But these futuristic devices will likely have functions that are different from those on smartphones, which are basically used by just one person.

“They’re going to have to interact at many different scales — interact with other drones, other people and other objects,” Pruden said.

In a drone-filled world, the ever-present buzzing robots could affect human emotional states, Pruden said.

“We can anticipate that more technology and devices will be taking to the sky,” Pruden said. “We must carefully plan and design these objects to improve our lives rather than disrupting them.”

References:http://www.livescience.com/