2018
DOI: 10.1007/978-3-319-92612-4_8
|View full text |Cite
|
Sign up to set email alerts
|

Information Flow Tracking for Side-Effectful Libraries

Abstract: Dynamic information flow control is a promising technique for ensuring confidentiality and integrity of applications that manipulate sensitive information. While much progress has been made on increasingly powerful programming languages ranging from low-level machine languages to high-level languages for distributed systems, surprisingly little attention has been devoted to libraries and APIs. The state of the art is largely an all-or-nothing choice: either a shallow or deep library modeling approach. Seeking … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2020
2020
2021
2021

Publication Types

Select...
1
1

Relationship

0
2

Authors

Journals

citations
Cited by 2 publications
(2 citation statements)
references
References 25 publications
0
2
0
Order By: Relevance
“…This involves the following steps: (i) pushing the taint value corresponding to the receiver expression a onto the stack (line 24), (ii) pushing the taint value corresponding to the index expression 1 onto the stack (line 25), (iii) computing the taint value that is to be written and pushing it onto the stack (lines 26-32), (iv) generating a writeprop instruction to associate this value with the specified array element (line 33) without removing it from the stack (see instruction Ins writeprop in Figure 8), and (v) discarding the value computed by the assignment (line 34) 8 . Here, step (iii) reflects the evaluation of the expression process.argv [2], which involves retrieving the taint value associated with property argv of object process (lines [26][27][28], and retrieving the taint value associated with element 2 of the array (lines [29][30]. At this point, taint is introduced by discarding the previously read taint value (line 31) and pushing a taint value '(example.js:3:8)' (line 32).…”
Section: Example: Generating Instructionsmentioning
confidence: 99%
See 1 more Smart Citation
“…This involves the following steps: (i) pushing the taint value corresponding to the receiver expression a onto the stack (line 24), (ii) pushing the taint value corresponding to the index expression 1 onto the stack (line 25), (iii) computing the taint value that is to be written and pushing it onto the stack (lines 26-32), (iv) generating a writeprop instruction to associate this value with the specified array element (line 33) without removing it from the stack (see instruction Ins writeprop in Figure 8), and (v) discarding the value computed by the assignment (line 34) 8 . Here, step (iii) reflects the evaluation of the expression process.argv [2], which involves retrieving the taint value associated with property argv of object process (lines [26][27][28], and retrieving the taint value associated with element 2 of the array (lines [29][30]. At this point, taint is introduced by discarding the previously read taint value (line 31) and pushing a taint value '(example.js:3:8)' (line 32).…”
Section: Example: Generating Instructionsmentioning
confidence: 99%
“…Currently, JSFlow does not run on the Node.js applications that we consider due the absence of models for Node.js native functions. Later work by Hedin et al [29] and Sjösten et al [30] is concerned with developing concise models for tracking information flow in libraries, focusing on a small functional language in each case.…”
Section: Related Workmentioning
confidence: 99%