skip to main content
10.1145/3065913.3065916acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

The Case of the Poisoned Event Handler: Weaknesses in the Node.js Event-Driven Architecture

Published:23 April 2017Publication History

ABSTRACT

Node.js has seen rapid adoption in industry and the open-source community. Unfortunately, its event-driven architecture exposes Node.js applications to Event Handler-Poisoning denial of service attacks. Our evaluation of the state of practice in Node.js--- combining a study of 353 publicly reported security vulnerabilities and a survey of 151 representative npm modules --- demonstrates that the community is not equipped to combat this class of attack. We recommend several changes to the state of practice and propose both programming language and runtime approaches to defend against Event Handler-Poisoning attacks.

References

  1. New Node.js Foundation Survey Reports New "Full Stack" In Demand Among Enterprise Developers, 2016. https://nodejs.org/en/blog/announcements/nodejsfoundation-survey/.Google ScholarGoogle Scholar
  2. F. Bonomi, R. Milito, J. Zhu, and S. Addepalli. Fog Computing and Its Role in the Internet of Things. In Mobile Cloud Computing (MCC), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Cambiaso, G. Papaleo, and M. Aiello. Taxonomy of Slow DoS Attacks to Web Applications. Recent Trends in Computer Networks and Distributed Systems Security, pages 195--204, 2012. Google ScholarGoogle ScholarCross RefCross Ref
  4. S. A. Crosby and D. S. Wallach. Denial of Service via Algorithmic Complexity Attacks. In USENIX Security, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Ferg. Event-driven programming: introduction, tutorial, history. 2006.Google ScholarGoogle Scholar
  6. K. Gallaba, A. Mesbah, and I. Beschastnikh. Don't Call Us, We'll Call You: Characterizing Callbacks in Javascript. In International Symposium on Empirical Software Engineering and Measurement (ESEM), 2015. Google ScholarGoogle ScholarCross RefCross Ref
  7. D. Goodman and P. Ferguson. Dynamic HTML: The Definitive Reference. O'Reilly, 1 edition, 1998.Google ScholarGoogle Scholar
  8. K. Hashiguchi. Algorithms for determining relative star height and star height. Information and Computation, 78(2):124--169, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Y. Lin, C. Radoi, and D. Dig. Retrofitting Concurrency for Android Applications through Refactoring. In ACM International Symposium on Foundations of Software Engineering (FSE), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Ojamaa and K. Duuna. Assessing the security of Node.js platform. In 7th International Conference for Internet Technology and Secured Transactions (ICITST), pages 348--355, 2012.Google ScholarGoogle Scholar
  11. V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An Efficient and Portable Web Server. In USENIX Annual Technical Conference (ATC), 1999.Google ScholarGoogle Scholar
  12. A. Rathnayake and H. Thielecke. Static Analysis for Regular Expression Exponential Runtime via Substructural Logics. CoRR, 2014.Google ScholarGoogle Scholar
  13. R. Rogers, J. Lombardo, Z. Mednieks, and B. Meike. Android application development: Programming with the Google SDK. O'Reilly Media, Inc., 1 edition, 2009.Google ScholarGoogle Scholar
  14. A. Roichman and A. Weidman. VAC - ReDoS Regular Expression Denial Of Service. OWASP, 2009.Google ScholarGoogle Scholar
  15. A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. Wiley Publishing, 9th edition, 2012.Google ScholarGoogle Scholar
  16. B. Sullivan. Server-Side JavaScript Injection. BlackHat USA, (July):1--7, 2011.Google ScholarGoogle Scholar
  17. R. E. Sweet. The Mesa programming environment. ACM SIGPLAN Notices, 20(7):216--229, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In SOSP, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Wilhelm, J. Engblom, A. Ermedahl, et al. The Worst-Case Execution-Time Problem - Overview of Methods and Survey of Tools. ACM Transactions on Embedded Computing Systems (TECS), 7(3):36, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Z. Wu, M. Xie, and H. Wang. Energy Attack on Server Systems. In USENIX WOOT, 2011.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    EuroSec'17: Proceedings of the 10th European Workshop on Systems Security
    April 2017
    65 pages
    ISBN:9781450349352
    DOI:10.1145/3065913

    Copyright © 2017 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 23 April 2017

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    EuroSec'17 Paper Acceptance Rate10of24submissions,42%Overall Acceptance Rate47of113submissions,42%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader