TU Darmstadt / ULB / TUbiblio

Don't let data Go astray - A Context-Sensitive Taint Analysis for Concurrent Programs in Go

I Pun, Ka and Steffen, Martin and Stolz, Volker and Wickert, Anna-Katharina and Bodden, Eric and Eichberg, Michael
Larsen, Kim G. and Srba, Jiří (eds.) :

Don't let data Go astray - A Context-Sensitive Taint Analysis for Concurrent Programs in Go.
In: Nordic Workshop on Programming Theory (NWPT'16). Aalborg
[Conference or Workshop Item] , (2016)

Abstract

Taint analysis is a form of data flow analysis aiming at secure information flow. For example, unchecked user input is considered typically as “tainted”, i.e., as untrusted and potentially dangerous. Untrusted data may lead to corrupt memory, undermine the correct functioning or privacy concerns of the software otherwise, if it reaches program points it is not supposed to. Many common attack vectors exploit vulnerabilities based on unchecked data and the programmer’s negligence of foreseeing all possible user inputs (including malicious ones) and the resulting information flows through the program. We present a static taint analysis for Go, a modern, statically typed programming language. Go in particular features concurrent programming, supporting light-weight threads dubbed “goroutines”, and message-based communication. Beside a classical context-sensitive taint analysis, the paper presents a solution for analyzing channel communication in Go. A longer version of the material will appear in [2].

Item Type: Conference or Workshop Item
Erschienen: 2016
Editors: Larsen, Kim G. and Srba, Jiří
Creators: I Pun, Ka and Steffen, Martin and Stolz, Volker and Wickert, Anna-Katharina and Bodden, Eric and Eichberg, Michael
Title: Don't let data Go astray - A Context-Sensitive Taint Analysis for Concurrent Programs in Go
Language: English
Abstract:

Taint analysis is a form of data flow analysis aiming at secure information flow. For example, unchecked user input is considered typically as “tainted”, i.e., as untrusted and potentially dangerous. Untrusted data may lead to corrupt memory, undermine the correct functioning or privacy concerns of the software otherwise, if it reaches program points it is not supposed to. Many common attack vectors exploit vulnerabilities based on unchecked data and the programmer’s negligence of foreseeing all possible user inputs (including malicious ones) and the resulting information flows through the program. We present a static taint analysis for Go, a modern, statically typed programming language. Go in particular features concurrent programming, supporting light-weight threads dubbed “goroutines”, and message-based communication. Beside a classical context-sensitive taint analysis, the paper presents a solution for analyzing channel communication in Go. A longer version of the material will appear in [2].

Place of Publication: Aalborg
Divisions: Department of Computer Science
Department of Computer Science > Software Technology
Event Title: Nordic Workshop on Programming Theory (NWPT'16)
Date Deposited: 19 Apr 2018 13:28
Export:

Optionen (nur für Redakteure)

View Item View Item