Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Mohan Dhawan

dblp:09/4218 · DBLP profile ↗
← Back
16ranked-venue papers
4as first author
0since 2021 · last 2018
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 1 first-authorSecurity and privacy · 5 · 2 first-authorComputer networks · 4 · 1 first-authorSystems, architecture and hardware · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
6 papers
Systems and software security · 30% Blockchain and cryptocurrency security · 29% Network security · 21%
Software engineering, system software, and programming languages
5 papers
Program analysis · 26% Software maintenance and evolution · 17% Software testing · 17%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Distributed systems · 45% Electronic design automation · 36% Cloud and datacenter computing · 19%
Computer networks
3 papers
Software-defined and programmable networks · 50% Network measurement and analytics · 24% Internet of things and sensor networks · 16%

Topics — the 27 heaviest of 31, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Blockchain and cryptocurrency security
blockchain applications
0.312018
Blockchain-based real-time cheat prevention and robustness for multi-player online games · CoNEXT 2018
Network security › attack resilience › attack mitigation
denial-of-service defense
0.312018
Blockchain-based real-time cheat prevention and robustness for multi-player online games · CoNEXT 2018
Systems and software security › program analysis
static analysis of smart contracts
0.312018
ZEUS: Analyzing Safety of Smart Contracts · NDSS 2018
Distributed systems
fault tolerance
0.322016
Hansel: diagnosing faults in openStack · CoNEXT 2015
GRETEL: Lightweight Fault Localization for OpenStack · CoNEXT 2016
Distributed systems
root cause analysis
0.322016
Hansel: diagnosing faults in openStack · CoNEXT 2015
GRETEL: Lightweight Fault Localization for OpenStack · CoNEXT 2016
Software maintenance and evolution › software compatibility
library version compatibility
0.212016
POLLUX: safely upgrading dependent application libraries · SIGSOFT FSE 2016
Software testing
regression testing
0.212016
POLLUX: safely upgrading dependent application libraries · SIGSOFT FSE 2016
Cloud and datacenter computing
cloud management
0.212016
GRETEL: Lightweight Fault Localization for OpenStack · CoNEXT 2016
Electronic design automation › hardware test
fault localization
0.212016
GRETEL: Lightweight Fault Localization for OpenStack · CoNEXT 2016
Software-defined and programmable networks › SDN security
attack detection
0.212015
SPHINX: Detecting Security Attacks in Software-Defined Networks · NDSS 2015
Software-defined and programmable networks
SDN security
0.212015
SPHINX: Detecting Security Attacks in Software-Defined Networks · NDSS 2015
Systems and software security
memory safety
0.212015
CLOTHO: saving programs from malformed strings and incorrect string-handling · ESEC/SIGSOFT FSE 2015
Debugging and program repair
automated program repair
0.212015
CLOTHO: saving programs from malformed strings and incorrect string-handling · ESEC/SIGSOFT FSE 2015
Electronic design automation › hardware verification and test
fault diagnosis
0.212015
Hansel: diagnosing faults in openStack · CoNEXT 2015
Program verification › dynamic verification › runtime verification
runtime enforcement
0.212014
Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014
Internet of things and sensor networks › wireless sensor network › network diagnosis
network performance diagnosis
0.112012
Fathom: a browser-based network measurement platform · Internet Measurement Conference 2012
Program analysis
dynamic analysis
0.122016
POLLUX: safely upgrading dependent application libraries · SIGSOFT FSE 2016
Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014
Operating systems › extensible operating systems
exokernel
0.112011
Atlantis: robust, extensible execution environments for web applications · SOSP 2011
Blockchain and cryptocurrency security
smart contract security
0.112018
ZEUS: Analyzing Safety of Smart Contracts · NDSS 2018
Authentication and access control
access control
0.112008
Enforcing authorization policies using transactional memory introspection · CCS 2008
Authentication and access control › access control
authorization policy enforcement
0.112008
Enforcing authorization policies using transactional memory introspection · CCS 2008
Authentication and access control › access control policy › access control policy enforcement
reference monitor
0.112008
Enforcing authorization policies using transactional memory introspection · CCS 2008
Network security › intrusion detection and prevention
intrusion detection
0.112015
SPHINX: Detecting Security Attacks in Software-Defined Networks · NDSS 2015
Program analysis
static analysis
0.112014
Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014
Internet architecture and protocols › world wide web
HTTP performance
0.012012
Fathom: a browser-based network measurement platform · Internet Measurement Conference 2012
Internet architecture and protocols › world wide web
web protocols
0.012012
Fathom: a browser-based network measurement platform · Internet Measurement Conference 2012
Concurrent programming › transactional memory
software transactional memory
0.012008
Enforcing authorization policies using transactional memory introspection · CCS 2008

Methods — techniques the papers use, named apart from their topics

static analysis · 0.8patch generation · 0.4dynamic analysis · 0.4real-time state verification · 0.3peer consensus · 0.3operational fingerprinting · 0.2non-intrusive system monitoring · 0.2narrow API · 0.2execution trace comparison · 0.2composition · 0.2binary analysis · 0.2transactional introspection · 0.2static rewriting · 0.2statement indirection · 0.2javascript measurement primitives · 0.1firefox extension · 0.1transactional memory introspection · 0.1
YearPublicationVenuePosition
2018 Blockchain-based real-time cheat prevention and robustness for multi-player online games
abstract
The gaming industry is affected by two key issues---cheating and DDoS attacks against game servers. In this paper, we aim to present a novel yet concrete application of the blockchain technology to address the seemingly disparate problems. Our approach uses blockchain to manage definitive game state and exploits peer consensus on every player action to track modifications to tangible player assets. While a key impediment to adopting blockchain for real-time systems is its high per-operation latency, our approach leverages several optimizations to enable real-time prevention of a large class of cheats where the reported client state is inconsistent with the observed state at the server. Further, blockchain-based games leverage the robust peer-to-peer architecture to successfully defend against DDoS attacks.
Sukrit Kalra, Rishabh Sanghi, Mohan Dhawan
CoNEXT3
2018 ZEUS: Analyzing Safety of Smart Contracts
Sukrit Kalra, Seep Goel, Mohan Dhawan, Subodh Sharma 0001
NDSS3
2016 GRETEL: Lightweight Fault Localization for OpenStack
abstract
Like any other distributed system, cloud management stacks such as OpenStack, are susceptible to faults whose root cause is often hard to diagnose and may take hours or days to fix. We present GRETEL, a system that leverages non-intrusive system monitoring, to expedite root cause analysis of both operational and performance faults manifesting in OpenStack operations. GRETEL uses unique operational fingerprints to quickly identify faulty operations at runtime. GRETEL is accurate in its diagnosis, and achieves >98% precision in identifying the faulty operation with very few false positives and negatives even under conditions of stress. GRETEL is lightweight and orders of magnitude faster than prior work, sustaining a throughput of ~77 Mbps.
Ayush Goel, Sukrit Kalra, Mohan Dhawan
CoNEXT3
2016 JURY: Validating Controller Actions in Software-Defined Networks
abstract
Software-defined networks (SDNs) only logically centralize the control plane. In reality, SDN controllers are distributed entities, which may exhibit different behavior on event triggers. We identify several classes of faults that afflict an SDN controller cluster and demonstrate them on two enterprise SDN controllers, ONOS and OpenDaylight. We present JURY, a system to validate controller activities in a clustered SDN deployment, involving topological and forwarding state, without imposing any restrictions on the controller behavior. Our evaluation shows that JURY requires minimal changes to the SDN controllers for deployment, and is capable of validating controller actions in near real time with low performance overheads.
Kshiteej Mahajan, Rishabh Poddar, Mohan Dhawan, Vijay Mann
DSN3
2016 POLLUX: safely upgrading dependent application libraries
abstract
Software evolution in third-party libraries across version upgrades can result in addition of new functionalities or change in existing APIs. As a result, there is a real danger of impairment of backward compatibility. Application developers, therefore, must keep constant vigil over library enhancements to ensure application consistency, i.e., application retains its semantic behavior across library upgrades. In this paper, we present the design and implementation of POLLUX, a framework to detect application-affecting changes across two versions of the same dependent non-adversarial library binary, and provide feedback on whether the application developer should link to the newer version or not. POLLUX leverages relevant application test cases to drive execution through both versions of the concerned library binary, records all concrete effects on the environment, and compares them to determine semantic similarity across the same API invocation for the two library versions. Our evaluation with 16 popular, open-source library binaries shows that POLLUX is accurate with no false positives and works across compiler optimizations.
Sukrit Kalra, Ayush Goel, Dhriti Khanna, Mohan Dhawan, Subodh Sharma 0001, Rahul Purandare
SIGSOFT FSE4
2015 Hansel: diagnosing faults in openStack
abstract
With majority of the world's data and computation handled by cloud-based systems, cloud management stacks such as Apache's CloudStack, VMware's vSphere and OpenStack have become an increasingly important component in cloud software. However, like every other complex distributed system, these cloud stacks are susceptible to faults, whose root cause is often hard to diagnose. We present HANSEL, a system that leverages non-intrusive network monitoring to expedite root cause analysis of such faults manifesting in OpenStack operations. HANSEL is fast and accurate, and precise even under conditions of stress.
Dhruv Sharma, Rishabh Poddar, Kshiteej Mahajan, Mohan Dhawan, Vijay Mann
CoNEXT4
2015 SPHINX: Detecting Security Attacks in Software-Defined Networks
Mohan Dhawan, Rishabh Poddar, Kshiteej Mahajan, Vijay Mann
NDSS1
2015 CLOTHO: saving programs from malformed strings and incorrect string-handling
abstract
Software is susceptible to malformed data originating from untrusted sources. Occasionally the programming logic or constructs used are inappropriate to handle the varied constraints imposed by legal and well-formed data. Consequently, softwares may produce unexpected results or even crash. In this paper, we present CLOTHO, a novel hybrid approach that saves such softwares from crashing when failures originate from malformed strings or inappropriate handling of strings. CLOTHO statically analyses a program to identify statements that are vulnerable to failures related to associated string data. CLOTHO then generates patches that are likely to satisfy constraints on the data, and in case of failures produces program behavior which would be close to the expected. The precision of the patches is improved with the help of a dynamic analysis. We have implemented CLOTHO for the JAVA String API, and our evaluation based on several popular open-source libraries shows that CLOTHO generates patches that are semantically similar to the patches generated by the programmers in the later versions. Additionally, these patches are activated only when a failure is detected, and thus CLOTHO incurs no runtime overhead during normal execution, and negligible overhead in case of failures.
Aritra Dhar, Rahul Purandare, Mohan Dhawan, Suresh Rangaswamy
ESEC/SIGSOFT FSE3
2014 Retargetting Legacy Browser Extensions to Modern Extension Frameworks
Rezwana Karim, Mohan Dhawan, Vinod Ganapathy
ECOOP2
2014 Efficient runtime-enforcement techniques for policy weaving
abstract
Policy weaving is a program-transformation technique that rewrites a program so that it is guaranteed to be safe with respect to a stateful security policy. It utilizes (i) static analysis to identify points in the program at which policy violations might occur, and (ii) runtime checks inserted at such points to monitor policy state and prevent violations from occurring. The promise of policy weaving stems from the possibility of blending the best aspects of static and dynamic analysis components. Therefore, a successful instantiation of policy weaving requires a careful balance and coordination between the two. In this paper, we examine the strategy of using a combination of transactional introspection and statement indirection to implement runtime enforcement in a policy-weaving system. Transactional introspection allows the state resulting from the execution of a statement to be examined and, if the policy would be violated, suppressed. Statement indirection serves as a light-weight runtime analysis that can recognize and instrument dynamically generated code that is not available to the static analysis. These techniques can be implemented via static rewriting so that all possible program executions are protected against policy violations. We describe our implementation of transactional introspection and statement indirection for policy weaving, and report experimental results that show the viability of the approach in the context of real-world JavaScript programs executing in a browser.
Richard Joiner, Thomas W. Reps, Somesh Jha, Mohan Dhawan, Vinod Ganapathy
SIGSOFT FSE4
2012 Enhancing JavaScript with Transactions
Mohan Dhawan, Chung-chieh Shan, Vinod Ganapathy
ECOOP1
2012 An Analysis of the Mozilla Jetpack Extension Framework
Rezwana Karim, Mohan Dhawan, Vinod Ganapathy, Chung-chieh Shan
ECOOP2
2012 Fathom: a browser-based network measurement platform
abstract
For analyzing network performance issues, there can be great utility in having the capability to measure directly from the perspective of end systems. Because end systems do not provide any external programming interface to measurement functionality, obtaining this capability today generally requires installing a custom executable on the system, which can prove prohibitively expensive. In this work we leverage the ubiquity of web browsers to demonstrate the possibilities of browsers themselves offering such a programmable environment. We present Fathom, a Firefox extension that implements a number of measurement primitives that enable websites or other parties to program network measurements using JavaScript. Fathom is lightweight, imposing < 3.2% overhead in page load times for popular web pages, and often provides 1 ms timestamp accuracy. We demonstrate Fathom's utility with three case studies: providing a JavaScript version of the Netalyzr network characterization tool, debugging web access failures, and enabling web sites to diagnose performance problems of their clients.
Mohan Dhawan, Justin Samuel, Renata Teixeira, Christian Kreibich, Mark Allman, Nicholas Weaver, Vern Paxson
Internet Measurement Conference1
2011 Atlantis: robust, extensible execution environments for web applications
abstract
Today's web applications run inside a complex browser environment that is buggy, ill-specified, and implemented in different ways by different browsers. Thus, web applications that desire robustness must use a variety of conditional code paths and ugly hacks to deal with the vagaries of their runtime. Our new exokernel browser, called Atlantis, solves this problem by providing pages with an extensible execution environment. Atlantis defines a narrow API for basic services like collecting user input, exchanging network data, and rendering images. By composing these primitives, web pages can define custom, high-level execution environments. Thus, an application which does not want a dependence on Atlantis'predefined web stack can selectively redefine components of that stack, or define markup formats and scripting languages that look nothing like the current browser runtime. Unlike prior microkernel browsers like OP, and unlike compile-to-JavaScript frameworks like GWT, Atlantis is the first browsing system to truly minimize a web page's dependence on black box browser code. This makes it much easier to develop robust, secure web applications.
James W. Mickens, Mohan Dhawan
SOSP2
2009 Analyzing Information Flow in JavaScript-Based Browser Extensions
abstract
JavaScript-based browser extensions (JSEs) enhance the core functionality of Web browsers by improving their look and feel, and are widely available for commodity browsers. To enable a rich set of functionalities, browsers typically execute JSEs with elevated privileges. For example, unlike JavaScript code in a Web application, code in a JSE is not constrained by the same-origin policy. Malicious JSEs can misuse these privileges to compromise confidentiality and integrity, e.g., by stealing sensitive information, such as cookies and saved passwords, or executing arbitrary code on the host system. Even if a JSE is not overtly malicious, vulnerabilities in the JSE and the browser may allow a remote attacker to compromise browser security. We present Sabre (Security Architecture for Browser Extensions), a system that uses in-browser information-flow tracking to analyze JSEs. Sabre associates a label with each in-memory JavaScript object in the browser, which determines whether the object contains sensitive information. Sabre propagates labels as objects are modified by the JSE and passed between browser subsystems. Sabre raises an alert if an object containing sensitive information is accessed in an unsafe way, e.g., if a JSE attempts to send the object over the network or write it to a file. We implemented Sabre by modifying the Firefox browser and evaluated it using both malicious JSEs as well as benign ones that contained exploitable vulnerabilities. Our experiments show that Sabre can precisely identify potential information flow violations by JSEs.
Mohan Dhawan, Vinod Ganapathy
ACSAC1
2008 Enforcing authorization policies using transactional memory introspection
abstract
Correct enforcement of authorization policies is a difficult task, especially for multi-threaded software. Even in carefully-reviewed code, unauthorized access may be possible in subtle corner cases. We introduce Transactional Memory Introspection (TMI), a novel reference monitor architecture that builds on Software Transactional Memory--a new, attractive alternative for writing correct, multi-threaded software.
Arnar Birgisson, Mohan Dhawan, Úlfar Erlingsson, Vinod Ganapathy, Liviu Iftode
CCS2