{"title":"Tutorial: LLVM for Security Practitioners","authors":"J. Criswell, Ethan Johnson, Colin Pronovost","doi":"10.1109/secdev53368.2022.00012","DOIUrl":"https://doi.org/10.1109/secdev53368.2022.00012","url":null,"abstract":"Many security researchers need to build tools that analyze and transform code. For example, researchers may want to build security hardening tools, tools that find vulnerabilities within software, or tools that prove that a program is invulnerable to attack. This tutorial will guide attendees through creating extensions to the LLVM compiler that perform simple analysis and transformation operations.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121469789","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Setareh Ghorshi, Lachlan J. Gunn, Hans Liljestrand, N. Asokan
{"title":"Towards cryptographically-authenticated in-memory data structures","authors":"Setareh Ghorshi, Lachlan J. Gunn, Hans Liljestrand, N. Asokan","doi":"10.1109/SecDev53368.2022.00018","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00018","url":null,"abstract":"Modern processors include high-performance cryptographic functionalities such as Intel's AES- NI and ARM's Pointer Authentication that allow programs to efficiently authenticate data held by the program. Pointer Authentication is already used to protect return addresses in recent Apple devices, but as yet these structures have seen little use for the protection of general program data. In this paper, we show how cryptographically-authenticated data structures can be used to protect against attacks based on memory corruption, and show how they can be efficiently realized using widely available hardware-assisted cryptographic mechanisms. We present realizations of secure stacks and queues with minimal overall performance overhead (3.4%-6.4% slowdown of the OpenCV core performance tests), and provide proofs of correctness.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114859227","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jens-Rene Giesen, Sébastien Andreina, Michael Rodler, Ghassan O. Karame, Lucas Davi
{"title":"Tutorial: Analyzing, Exploiting, and Patching Smart Contracts in Ethereum","authors":"Jens-Rene Giesen, Sébastien Andreina, Michael Rodler, Ghassan O. Karame, Lucas Davi","doi":"10.1109/SecDev53368.2022.00013","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00013","url":null,"abstract":"Smart contracts are programs which encode business logic and execute on the blockchain. While Ethereum is the most popular blockchain platform for smart contracts, an increasing number of new blockchain platforms are also able to support smart contract execution (e.g., Solana or Cardano). Security vulnerabilities in Ethereum smart contracts have demonstrated that writing secure smart contracts is highly challenging. This is exacerbated by the fact that the exploitation of buggy smart contracts seems disproportionately easier compared to exploiting classic PC software. In this tutorial, we overview a number of smart contract vulnerabilities focusing on the Ethereum ecosystem. We also provide an introduction to the de-facto smart contract programming language Solidity and provide a comprehensive hands-on lab tutorial that involves analyzing vulnerable smart contracts, developing proof-of-concept exploits as well as introducing security analysis tools for testing smart contracts","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126408201","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Design and User Study of a Constraint-based Framework for Business Logic Flaw Discovery","authors":"C. Cheh, Nicholas Tay, Binbin Chen","doi":"10.1109/SecDev53368.2022.00029","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00029","url":null,"abstract":"Business logic flaws are common in web application security and pose a huge problem to developers. While there are many tools that check application code for implementation-level vulnerabilities, they are often blind to flaws caused by violation of design-level considerations. In this work, we present a framework that guides developers to create security test scenarios or misuse case scenarios by relating design constraints to existing functional use case scenarios. Those design constraints can then be translated into misuse case scenarios which can be run using existing test code that were written for functional use case scenarios in order to discover potential business logic flaws. In this paper, we conduct a user study with eleven experienced programmers to determine the feasibility of our approach and compare the complexity of our framework to the conventional approach of creating misuse case scenarios from scratch. The results of that study show that our framework saves time, improves coverage, and enhances re-usability compared to the conventional approach of creating misuse case scenarios in an ad-hoc manner.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128096022","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"How Do Developers Follow Security-Relevant Best Practices When Using NPM Packages?","authors":"Md Mahir Asef Kabir, Ying Wang, D. Yao, Na Meng","doi":"10.1109/SecDev53368.2022.00027","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00027","url":null,"abstract":"Node.js has become popular among developers, partially because of its large software ecosystem of NPM (Node Package Manager) packages. When building JavaScript (JS) applications on top of NPM packages, developers can reuse the provided functionalities to improve programmer productivity. However, many NPM packages have been recently found vulner-able or malicious. Such packages can introduce vulnerabilities into their client JS applications, and realize software supply chain attacks. To reduce the impact of potentially malicious NPM packages in Node.js software ecosystem, experts suggested best practices to developers when they maintain package depen-dencies. These best practices include using specific commands and/or tools to (a) conduct security audit for dependencies and remove vulnerable dependencies, (b) remove unused and duplicated dependencies, and (c) fixate the version information of library/package dependencies. We were curious how developers followed and will follow those best practices. For this paper, we did a large-scale empirical study on 841 popularly used open-source JS applications. By analyzing their configuration files (e.g., package.json and package-lock.json), we revealed that only 32% of the applications lock the version numbers of package dependencies. The commands/tools reported (i) vulnerable, (ii) unused, and (iii) duplicated dependencies separately in 55 %, 90 %, and 83 % of applications, which fact implies that developers often ignored the best practices we examined. We did a user study with developers to acquire their opinions on the suggested best practices and got interesting feedback. Our research will enlighten future research on the management of NPM package dependencies.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126440251","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Secure Development Workflows in CI/CD Pipelines","authors":"Pranshu Bajpai, Adam Lewis","doi":"10.1109/SecDev53368.2022.00024","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00024","url":null,"abstract":"Modern development workflows heavily utilize continuous integration (CI) and continuous delivery (CD) pipelines. CI/CD pipelines run with highly privileged credentials capable of accessing code repositories, writing to artifact registries, and in many cases deploying software into production. This represents an attractive target for adversaries. As such, the security of these pipelines and associated workflows is as critical as the security of the developed code. Secure development therefore encompasses writing secure code and securing the workflows for integration and deployment. In this paper, we present the key areas demanding attention when designing secure development workflows and associated CI/CD pipelines.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"139 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131792290","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"From Lemons to Peaches: Improving Security ROI through Security Chaos Engineering","authors":"Kelly Shortridge","doi":"10.1109/SecDev53368.2022.00021","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00021","url":null,"abstract":"Traditional information security presents a poor ROI: payoffs only manifest when attacks are successfully prevented. In a reality where attacks are inevitable, subpar returns are therefore inevitable. The emerging paradigm of Security Chaos Engineering offers a more remunerative and reliable ROI by minimizing attack impacts and generating valuable evidence to inform continuous improvement of system design and operation.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125923716","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ya Xiao, Yang Zhao, N. Allen, Nathan Keynes, D. Yao, C. Cifuentes
{"title":"Industrial Strength Static Detection for Cryptographic API Misuses","authors":"Ya Xiao, Yang Zhao, N. Allen, Nathan Keynes, D. Yao, C. Cifuentes","doi":"10.1109/SecDev53368.2022.00022","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00022","url":null,"abstract":"We describe our experience of building an industrial-strength cryptographic vulnerability detector, which aims to detect cryptographic API misuses in JavaTM11Java is a registered trademark of Oracle and/or its affiliates.. Based on the detection algorithms of the academic tool CryptoGuard, we integrated the detection into the Oracle internal code scanning platform Parfait. The goal of the Parfait-based cryptographic vulnerability detection is to provide precise and scalable crypto-graphic code screening for large-scale industrial projects. We discuss the needs and challenges of the static cryptographic vulnerability screening in the industrial environment.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132691050","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jack B. Harrison, Joseph R. Harrison, Madison G. Boswell, Alan J. Michaels
{"title":"A Hierarchical Database of One Million Websites","authors":"Jack B. Harrison, Joseph R. Harrison, Madison G. Boswell, Alan J. Michaels","doi":"10.1109/SecDev53368.2022.00025","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00025","url":null,"abstract":"As part of a broader cyber-policy experiment on the Use and Abuse of Personal Information, we are seeking efficient methods to generate a hierarchical and malleable database of over one million websites for use in a future large-scale, semi-automated establishment of fake online accounts. Available directories of reputable Internet sites are often incomplete, outdated, or not well categorized. This paper describes the design and challenges associated with a custom web scraper to refine Curlie [1], an online repository of websites, into a concise, readable format. The scraper recursively and distributively crawls Curlie for unique URLs and plain-text names and parses them into our database. We will use the hierarchy functionality of this new database to answer future research questions focused on website stewardship of personal information (PI). This data normalization challenge is one of many we have encountered in the larger open-source intelligence (OSINT) Use and Abuse (U&A) collection framework.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129746566","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Tobias Cloosters, Sebastian Surminski, Gerrit Sangel, Lucas Davi
{"title":"Salsa: SGX Attestation for Live Streaming Applications","authors":"Tobias Cloosters, Sebastian Surminski, Gerrit Sangel, Lucas Davi","doi":"10.1109/SecDev53368.2022.00019","DOIUrl":"https://doi.org/10.1109/SecDev53368.2022.00019","url":null,"abstract":"Intel SGX is a hardware-based security feature that allows executing software in enclaves that are strongly isolated from the operating system and applications. Even if an attacker gains full control over the system, it is not possible to inspect these enclaves. This makes SGX enclaves an adequate solution for storing and processing highly sensitive data, such as encryption keys. However, recent research demonstrates that enclaves are still highly vulnerable to standard software exploitation attacks. While SGX features static attestation, i.e., allowing validation of the integrity of the program code and data in the enclave, static attestation cannot cope with run-time attacks such as return-oriented programming. We present Salsa, the first solution to allow control-flow attestation of SGX enclaves. To show its applicability, we leverage Salsa to implement a video streaming service that uses an SGX enclave to decode the video stream. When a compromise of the SGX enclave is detected, the streaming of the video stops instantly. In the evaluation, we demonstrate that the performance of this setup is sufficiently efficient to attest a live video streaming service.","PeriodicalId":407946,"journal":{"name":"2022 IEEE Secure Development Conference (SecDev)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131711423","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}