We present a novel, unified approach to the development of compositional symbolic execution tools, which bridges the gap between traditional symbolic execution and compositional program reasoning based on separation l...
详细信息
ISBN:
(纸本)9781450364416
We present a novel, unified approach to the development of compositional symbolic execution tools, which bridges the gap between traditional symbolic execution and compositional program reasoning based on separation logic. We apply our approach to javascript, providing support for full verification, whole-program symbolic testing, and automatic compositional testing based on bi-abduction.
Over the past few years, there is a significant shift from web to mobile devices. In addition, the success of HTML5 has negatively impacted the usage and support for Adobe Flash. This has resulted in unmaintained Flas...
详细信息
ISBN:
(纸本)9781450348560
Over the past few years, there is a significant shift from web to mobile devices. In addition, the success of HTML5 has negatively impacted the usage and support for Adobe Flash. This has resulted in unmaintained Flash assets and code bases. In this paper, we discuss the feasibility of a semi-automated technique to transform Flash based animations to HTML5 and javascript against re-writing the same animations from scratch. Writing animations from scratch in javascript is a time taking effort due to adherence to aesthetic details of the animation, domain knowledge and enumeration of all states. Our approach addresses these challenges by providing techniques to transform the Small Web Format (SWF) files to javascript. We validate our approach by conducting an experimental study to measure the efforts for a set of animations with respect to transformation from scratch, and transformation using our proposed approach. The results showed that our approach has the potential to significantly bridge the process of Flash to HTML5 migration.
There is a common approach to detecting drive-by downloads using a classifier based on the static and dynamic features of malicious websites collected using a honeyclient. However, attackers detect the honeyclient and...
详细信息
ISBN:
(数字)9783319687865
ISBN:
(纸本)9783319687865;9783319687858
There is a common approach to detecting drive-by downloads using a classifier based on the static and dynamic features of malicious websites collected using a honeyclient. However, attackers detect the honeyclient and evade analysis using sophisticated javascript code. The evasive code indirectly identifies clients by abusing the differences among javascript implementations. Attackers deliver malware only to targeted clients on the basis of the evasion results while avoiding honeyclient analysis. Therefore, we are faced with a problem in that honeyclients cannot extract features from malicious websites and the subsequent classifier does not work. Nevertheless, we can observe the evasion nature, i.e., the results in accessing malicious websites by using targeted clients are different from those by using honeyclients. In this paper, we propose a method of extracting evasive code by leveraging the above differences to investigate current evasion techniques and to use them for analyzing malicious websites. Our method analyzes HTTP transactions of the same website obtained using two types of clients, a real browser as a targeted client and a browser emulator as a honeyclient. As a result of evaluating our method with 8,467 javascript samples executed in 20,272 malicious websites, we discovered unknown evasion techniques that abuse the differences among javascript implementations. These findings will contribute to improving the analysis capabilities of conventional honeyclients.
Online inquiry communities such as Question-Answer Communities (QAC) have captured interest of online users since they can share and search for any information from any place in the world. The number of questions and ...
详细信息
ISBN:
(纸本)9781509048342
Online inquiry communities such as Question-Answer Communities (QAC) have captured interest of online users since they can share and search for any information from any place in the world. The number of questions and answers submitted to a popular community can increase rapidly, and that can make it difficult for users who look for the "right" questions to answer. That is, from the view of knowledgeable experienced users, they tend to look for hard challenging questions as an opportunity to share their knowledge and to build respect with the community. Hence it is desirable to distinguish difficult questions from easy ones. Current researches estimate complexity of questions based on the analysis of the features of the QAC without considering the contents of the questions. This paper presents a method to measure question difficulty levels based directly on the question contents. In particular, we analyze the difficulty of terms that appear in a javascript-related question, based on the proposed javascript concept hierarchy. In an evaluation of the performance of the question difficulty estimation, our concept-based measure gives similar performance to that of the existing measure based on the features of the QAC, but when they are used together, the performance can be enhanced.
API specifications play an important role in software development. However, API specifications are often not well documented, especially for javascript. Many javascript API specifications lack of precise type informat...
详细信息
ISBN:
(纸本)9781538636817
API specifications play an important role in software development. However, API specifications are often not well documented, especially for javascript. Many javascript API specifications lack of precise type information for API parameters and return values. In this paper, we propose a static approach for mining javascript type specifications automatically. We gather the usage information of return values and parameters statically, and infer types of return values based their usages, by identifying a known type which they are used most likely to be, and infer parameters by identifying the most used parameters. We evaluate the approach on the homepages of Alexa top 1000 websites, the experimental results show that our approach can gain high precision. Our case study on jQuery shows that our approach gains high precision and reasonable recall on jQuery, and we can use our inferred API type specifications to detect 2 jQuery misusage errors in real-world web sites, and 1 missing type error in jQuery documentations.
Web-based malware equipped with stealthy cloaking and obfuscation techniques is becoming more sophisticated nowadays. In this paper, we propose J-FORCE, a crash-free forced javascript execution engine to systematicall...
详细信息
ISBN:
(纸本)9781450349130
Web-based malware equipped with stealthy cloaking and obfuscation techniques is becoming more sophisticated nowadays. In this paper, we propose J-FORCE, a crash-free forced javascript execution engine to systematically explore possible execution paths and reveal malicious behaviors in such malware. In particular, J-FORCE records branch outcomes and mutates them for further explorations. J-FORCE inspects function parameter values that may reveal malicious intentions and expose suspicious DOM injections. We addressed a number of technical challenges encountered. For instance, we keep track of missing objects and DOM elements, and create them on demand. To verify the efficacy of our techniques, we apply J-FORCE to detect Exploit Kit (EK) attacks and malicious Chrome extensions. We observe that J-FORCE is more effective compared to the existing tools.
We present a static analysis for determining whether and to what extent functions in javascript programs are pure. To this end, the analysis classifies functions as pure functions, observers, or procedures. A function...
详细信息
We present a static analysis for determining whether and to what extent functions in javascript programs are pure. To this end, the analysis classifies functions as pure functions, observers, or procedures. A function is pure if none of its executions generate or depend upon externally observable side effects. A function is an observer as soon as one of its executions depends on an external side effect, but none of its executions generate observable side effects. Otherwise, the function is classified as a procedure. Function executions and associated callers are found by traversing all reachable function execution contexts on the call stack at the point where an effect occurs. Our approach is based on a flow analysis that, in addition to computing traditional control and value flow, keeps track of read and write effects. To increase the precision of our purity analysis, we combine it with an intraprocedural analysis that determines freshness of variables and objects. We formalize the core aspects of our technique and discuss its implementation and results on common javascript benchmarks. Results show that our approach is capable of determining function purity in the presence of higher-order functions, dynamic property expressions, and prototypal inheritance. When compared with existing purity analyses, we find that our approach is as precise or more precise than the existing analyses.
暂无评论