9 research outputs found
The Queen's Guard: A Secure Enforcement of Fine-grained Access Control In Distributed Data Analytics Platforms
Distributed data analytics platforms (i.e., Apache Spark, Hadoop) provide
high-level APIs to programmatically write analytics tasks that are run
distributedly in multiple computing nodes. The design of these frameworks was
primarily motivated by performance and usability. Thus, the security takes a
back seat. Consequently, they do not inherently support fine-grained access
control or offer any plugin mechanism to enable it, making them risky to be
used in multi-tier organizational settings.
There have been attempts to build "add-on" solutions to enable fine-grained
access control for distributed data analytics platforms. In this paper, first,
we show that straightforward enforcement of ``add-on'' access control is
insecure under adversarial code execution. Specifically, we show that an
attacker can abuse platform-provided APIs to evade access controls without
leaving any traces. Second, we designed a two-layered (i.e., proactive and
reactive) defense system to protect against API abuses. On submission of a user
code, our proactive security layer statically screens it to find potential
attack signatures prior to its execution. The reactive security layer employs
code instrumentation-based runtime checks and sandboxed execution to throttle
any exploits at runtime. Next, we propose a new fine-grained access control
framework with an enhanced policy language that supports map and filter
primitives. Finally, we build a system named SecureDL with our new access
control framework and defense system on top of Apache Spark, which ensures
secure access control policy enforcement under adversaries capable of executing
code.
To the best of our knowledge, this is the first fine-grained attribute-based
access control framework for distributed data analytics platforms that is
secure against platform API abuse attacks. Performance evaluation showed that
the overhead due to added security is low
Java Cryptography Uses in the Wild
[Background] Previous research has shown that developers commonly misuse
cryptography APIs. [Aim] We have conducted an exploratory study to find out how
crypto APIs are used in open-source Java projects, what types of misuses exist,
and why developers make such mistakes. [Method] We used a static analysis tool
to analyze hundreds of open-source Java projects that rely on Java Cryptography
Architecture, and manually inspected half of the analysis results to assess the
tool results. We also contacted the maintainers of these projects by creating
an issue on the GitHub repository of each project, and discussed the misuses
with developers. [Results] We learned that 85% of Cryptography APIs are
misused, however, not every misuse has severe consequences. Developer feedback
showed that security caveats in the documentation of crypto APIs are rare,
developers may overlook misuses that originate in third-party code, and the
context where a Crypto API is used should be taken into account. [Conclusion]
We conclude that using Crypto APIs is still problematic for developers but
blindly blaming them for such misuses may lead to erroneous conclusions.Comment: The ACM/IEEE International Symposium on Empirical Software
Engineering and Measurement (ESEM) 202
Bilingual Problems: Studying the Security Risks Incurred by Native Extensions in Scripting Languages
Scripting languages are continuously gaining popularity due to their ease of use and the flourishing software ecosystems that surround them. These languages offer crash and memory safety by design, thus, developers do not need to understand and prevent low-level security issues like the ones plaguing the C code. However, scripting languages often allow native extensions, which are a way for custom C/C++ code to be invoked directly from the high-level language. While this feature promises several benefits such as increased performance or the reuse of legacy code, it can also break the language's guarantees, e.g., crash-safety.
In this work, we first provide a comparative analysis of the security risks of native extension APIs in three popular scripting languages. Additionally, we discuss a novel methodology for studying the misuse of the native extension API. We then perform an in-depth study of npm, an ecosystem which is most exposed to threats introduced by native extensions. We show that vulnerabilities in extensions can be exploited in their embedding library by producing reads of uninitialized memory, hard crashes or memory leaks in 33 npm packages, simply by invoking their API with well-crafted inputs. Moreover, we identify six open-source web applications in which such exploits can be deployed remotely by a weak adversary. Finally, we were assigned seven security advisories for the work presented in this paper, most labeled as high severity
Bilingual Problems: Studying the Security Risks Incurred by Native Extensions in Scripting Languages
Scripting languages are continuously gaining popularity due to their ease of use and the flourishing software ecosystems that surround them. These languages offer crash and memory safety by design, thus, developers do not need to understand and prevent low-level security issues like the ones plaguing the C code. However, scripting languages often allow native extensions, which are a way for custom C/C++ code to be invoked directly from the high-level language. While this feature promises several benefits such as increased performance or the reuse of legacy code, it can also break the language's guarantees, e.g., crash-safety.
In this work, we first provide a comparative analysis of the security risks of native extension APIs in three popular scripting languages. Additionally, we discuss a novel methodology for studying the misuse of the native extension API. We then perform an in-depth study of npm, an ecosystem which is most exposed to threats introduced by native extensions. We show that vulnerabilities in extensions can be exploited in their embedding library by producing reads of uninitialized memory, hard crashes or memory leaks in 33 npm packages, simply by invoking their API with well-crafted inputs. Moreover, we identify six open-source web applications in which such exploits can be deployed remotely by a weak adversary. Finally, we were assigned seven security advisories for the work presented in this paper, most labeled as high severity