Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT/Embedded Security //


09:20 AM
Larry Loeb
Larry Loeb
Larry Loeb

Attack Code 'MarioNet' Is Pulling Strings in Your Web Browser

JavaScript APIs have stretched the boundaries of what is run in the browser to enable feature-rich web applications. But this comes at a price...

Modern browsers are really small but powerful operating systems that execute web applications. They run implicitly trusted script code which is confined inside of the browser.

JavaScript APIs have stretched the boundaries of what is run in the browser to enable feature-rich web applications. But this comes at a price.

A web publisher is considered as a trusted source by the browser, and so can run JavaScript code on the user side without any real restriction. Thus far, the code only executes while the browser is in contact with a web page.

But some researchers from FORTH in Greece have shown a way in their research to turn this on its head. In their paper presented this week at the Network and Distributed Systems Security (NDSS) Symposium in San Diego, "Master of Web Puppets: Abusing Web Browsers for Persistent and Stealthy Computation," they show how a framework they call MarioNet (a play on marionette, get it?) could let attackers persistently and stealthily hijack a browser and control its actions.

While this is similar in concept to the PuppetNet of 2007, it varies greatly in the details. More importantly, the attack code will continue to run when the triggering website is left or the tab that resolved it has been closed.

The secret sauce here is an API called Service Worker. Designed to free the rendering of the web page from an underlying computational task, it can operate in a page's background even when the page is not being rendered.

To do this, the Service Worker SyncManager interface is abused in an attack to keep the service worker alive.

The service workers can be controlled from a website that was not the originating one, thus a "command and control" operation is possible. So, attackers could put the attack originating code on some high-traffic websites for only a short period of time, which would get them a lot of service workers, and then remove the attack code. They could still continue to control the infected browsers from another site. Instant bot.

The user would be totally unaware that this is happening, since no interaction is required for this.

However to gain persistence across browser reboots, attackers need the Web Push API. This would require the attacker to obtain user permission.

Now since these are newer HTML5 APIs, they are present in modern browsers. In fact, the only browsers currently safe from this attack are IE (desktop), Opera Mini (mobile), and Blackberry (mobile). The researchers laid out the kinds of criminal activity this approach could enable. They mention DDoS attacks, cryptocurrency mining, distributed password cracking and malicious or illegal data hosting as prime examples of what could be done under MarioNet.

To mitigate this attack, they also suggest putting some form of limitation on service workers so that they just do not run unimpeded. Other defenses could be browser-based or host-based.

In short, the paper should cause a re-evaluation with a security viewpoint of unrestricted JavaScript code use within a browser.

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
COVID-19: Latest Security News & Commentary
Dark Reading Staff 7/6/2020
Another COVID-19 Side Effect: Rising Nation-State Cyber Activity
Stephen Ward, VP, ThreatConnect,  7/1/2020
Lessons from COVID-19 Cyberattacks: Where Do We Go Next?
Derek Manky, Chief of Security Insights and Global Threat Alliances, FortiGuard Labs,  7/2/2020
Register for Dark Reading Newsletters
White Papers
Current Issue
Special Report: Computing's New Normal, a Dark Reading Perspective
This special report examines how IT security organizations have adapted to the "new normal" of computing and what the long-term effects will be. Read it and get a unique set of perspectives on issues ranging from new threats & vulnerabilities as a result of remote working to how enterprise security strategy will be affected long term.
Flash Poll
The Threat from the Internetand What Your Organization Can Do About It
The Threat from the Internetand What Your Organization Can Do About It
This report describes some of the latest attacks and threats emanating from the Internet, as well as advice and tips on how your organization can mitigate those threats before they affect your business. Download it today!
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2020-07-07
An issue was discovered in CMSUno before 1.6.1. uno.php allows CSRF to change the admin password.
PUBLISHED: 2020-07-07
Victor CMS through 2019-02-28 allows XSS via the register.php user_firstname or user_lastname field.
PUBLISHED: 2020-07-07
A memory leak in Openthread's wpantund versions up to commit 0e5d1601febb869f583e944785e5685c6c747be7, when used in an environment where wpanctl is directly interfacing with the control driver (eg: debug environments) can allow an attacker to crash the service (DoS). We recommend updating, or to res...
PUBLISHED: 2020-07-07
Gossipsub 1.0 does not properly resist invalid message spam, such as an eclipse attack or a sybil attack.
PUBLISHED: 2020-07-07
A SQLi exists in the probe code of all Connectwise Automate versions before 2020.7 or 2019.12. A SQL Injection in the probe implementation to save data to a custom table exists due to inadequate server side validation. As the code creates dynamic SQL for the insert statement and utilizes the user su...