Abstract
Information flow control (IFC) can effectively resist Trojans and viruses that steal information from systems, and is usually adopted to protect the confidentiality of systems with a high security level. However, covert channel attacks can bypass IFC by exploiting its implementation defects. Thus, it is crucial to verify the system security and identify potential covert channels. Decentralized IFC (DIFC) is a key innovation that provides new flexible mechanisms, including decentralized declassification and taint tracking. However, the flexibility of DIFC systems also brings security risks. At present, there is a lack of a systematic and automatic security analysis approach for complex DIFC systems. In this paper, we propose a formal and automatic method to analyze the security of DIFC systems by using the FDR2 tool. We provide a new definition of noninterference, based on which the security analysis is performed. The analysis results indicate that our approach can both effectively detect covert channels in DIFC systems and accommodate conditional declassification information. The proposed method is more efficient and accurate than existing manual methods of covert channel detection.


Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Song F, Zhou Y, Wang Y, Zhao T, You I, Zhang H (2019) Smart collaborative distribution for privacy enhancement in moving target defense. Inf Sci 479:593–606
Periasamy JK, Latha B (2020) An enhanced secure content de-duplication identification and prevention (ESCDIP) algorithm in cloud environment. Neural Comput Appl 32:485–494
Gopinath MP, Tamizharasi GS, Kavisankar L et al (2019) A secure cloud-based solution for real-time monitoring and management of Internet of underwater things. Neural Comput Appl 31:293–308
Nikolaidis S, Refanidis I (2020) Privacy preserving distributed training of neural networks. Neural Comput Appl 32:17333–17350
Myers AC, Liskov B (2000) Protecting privacy using the decentralized label model. ACM Trans Softw Eng Methodol 9(4):410–442
Wu Z, Chen X, Yang Z, Du X (2019) Reducing security risks of suspicious data and codes through a novel dynamic defense model. IEEE Trans Inf Foren Secur 14(9):2427–2440
VanDeBogart S, Efstathopoulos P, Kohler E, Krohn M, Frey C, Ziegler D, Kaashoek F, Morris R, Mazieres D (2007) Labels and event processes in the Asbestos operating system. ACM Trans Comput Syst 25(4):11:1-11:43
Zeldovich N, Boyd-Wickizer S, Kohler E, Mazieres D (2006) Making information flow explicit in HiStar. In: Proceedings of Usenix association 7th Usenix symposium on operating systems design and implementation(OSDI’2006), Seattle, WA: USENIX Association,.263–278
Krohn M, Yip A, Brodsky M, Cliffer N, Kaashoek MF, Kohler E, Morris R (2007) Information flow control for standard OS abstractions. In: Proceedings of the 21st ACM symposium on operating systems principles (SOSP’2007).Stevenson, WA: ACM. 321–334
Krohn M, Tromer E (2009) Noninterference for a practical DIFC-based operating system. In: Proceedings of the 2009 IEEE symposium on security and privacy. Berkeley, CA: IEEE Computer Society. 61–76
Nadkarni A, Andow B, Enck W, Jha S (2016) Practical DIFC enforcement on android. In: Proceedings of the 25th USENIX security symposium, Austin, TX: USENIX Association. 1119–1136
Barthe G, Betarte G, Campo JD et al (2020) System-level non-interference of constant-time cryptography. Part I: model. J Autom Reason 63(1):1–51
Schultz D, Liskov B (2013) Decentralized information flow control for databases. In: Proceedings of the 8th ACM European conference on computer systems, Prague, Czech Republic: ACM, 43–56
Murray T, Matichuk D, Brassil M, Gammie P et al. (2013) seL4: from general purpose to a proof of information flow enforcement. In: Proceedings of the 2013 IEEE symposium on security and privacy. Berkeley, CA: IEEE Computer Society. 415–429
Roy I, Porter DE, Bond MD, et al. (2009) Laminar: practical fine-grained decentralized information Flow Control. In: Proceedings of 2009 Acm Sigplan conference on programming language design & implementation. Dublin, Ireland: ACM. 63–74
Burket J, Mutchler P, Weaver M, Zaveri M, Evans D. GuardRails (2011) A Data-centricweb application security framework. In: Proceedings of the 2nd USENIX conference on web application development, Portland, OR, USA: USENIX. 1–12
Papagiannis I, Migliavacca M, Eyers DM, Shand B, Bacon J, Pietzuch P (2010) Enforcing user privacy in web applications using Erlang. In: Proceedings of the Web 2.0 Security and Privacy, Oakland, CA, USA: IEEE. 1–8
Said NB, Cristescu I (2020) End-to-end information flow security for web service orchestration. Sci Comput Program 187:102376
Denning DE (1976) A lattice model of secure information flow. Commun ACM 19(5):236–243
Ryan PA, Schneider SA (2001) Process algebra and non-interference. J Comput Secur 9(1–2):75–103
Formal Systems (Europe) Ltd. Failures divergences refinement: FDR2 manual, http://www.fsel.com, 2005
Goguen JA, Meseguer J (1982) Security policies and security models. In: Proceedings of the 1982 IEEE symposium on security and privacy. IEEE Computer Society Press, April. 11–20
Ramirez AG, Schmaltz J, Verbeek F, Langenstein B, Blasum H (2014) On two models of noninterference: Rushby and Greve, Wilding, and Vanfleet. In: Proceedings of the 33rd international conference on computer safety, reliability, and security, Florence, Italy: IEEE Computer Society, 246–261
Schneider S (2000) Concurrent and real-time systems: the CSP Approach. Chichester, UK: Wiley LTD
Nanevski A, Banerjee A, Garg D (2011) Verification of information flow and access control policies with dependent types. In: Proceedings of the 2011 IEEE symposium on security and privacy. Berkeley, CA: IEEE Computer Society. 165–179
Baldan P, Beggiato A (2016) Multilevel transitive and intransitive non-interference, causally. In: Proceedings of the 18th international conference on coordination languages and models, Heraklion, Greece:IFIP. 1–17
Jamroga W, Tabatabaei M (2015) Strategic Noninterference. In: Proceedings of the 2015 international conference on ICT systems security and privacy protection, Hamburg, Germany:IFIP. 67–81
AldousEmail P, Might A (2015) Static analysis of non-interference in expressive low-level languages. LNCS 9291: 1–17
Vaughan AJ, Chong S (2011) Inference of expressive declassification policies. In: Proceedings of the 2011 IEEE symposium on security and privacy. Berkeley, CA: IEEE Computer Society 180–195
Eggert S, Meyden RVD, Schnoor H, Wilke T (2011) The complexity of intransitive noninterference. In: Proceedings of the 2011 IEEE symposium on security and privacy. Berkeley, CA: IEEE Computer Society. 196–211
Acknowledgements
This work was supported by National Natural Science Foundation of China under Grant 61972040, and the Premium Funding Project for Academic Human Resources Development in Beijing Union University under Grant BPHR2020AZ03.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix
Appendix
1.1 A: The language of CSP
Communicating Sequential Processes (CSP) is a process algebra used in specifying systems as a set of parallel state machines that sometimes synchronize on events. We offer a brief review of it here, borrowing heavily from Hoare’s book. Among the most basic CSP examples is Hoare’s vending machine:
This vending machine waits for the event in25, which corresponds to the input of a quarter into the machine. Next, it accepts the event choc, which corresponds to a chocolate falling out of the machine. Then it returns to the original state, with a recursive call to itself. The basic operator at use here is the prefix operator. If x is an event, and P is a process, then (x → P), pronounced “x then P,” represents a process that engages in event x and then behaves like process P. For a process P, the notation αP describes the “alphabet” of P. It is a set of all of the events that P is ever willing to engage in. For example, αVMS = {in25, choc}. For any CSP process P, we can discuss a trace of events that P may accept. For the VMS example, various traces include: < in25 > , < in25, choc > , < in25, choc, in25 > , < in25, choc, in25, choc > ,….
For two traces tr and tr_, define tr^tr_ as their concatenation.
The next important operator is “external choice,” denoted by “[]”. If x and y are distinct events, then: (x → P [] y → Q) denotes a process that accepts x and then behaves like P or accepts y and then behaves like Q. For example, a new vending machine can accept either a coin and output a chocolate, or accept a bill and output an ice cream cone:
A related operator is internal (nondeterministic) choice, denoted by “Π”. In simple choice, the machine reacts exactly to events it fields from the machine’s user. In nondeterministic choice, the machine behaves unpredictably from the perspective of the user, maybe because the machine’s description is underspecified, or maybe because the machine is picking from a random number generator. For instance, a change machine might return coins in any order, depending on how the machine provide services:
That is, the machine takes a quarter as input, and returns two dimes and a nickel in one of two orderings.
CSP provides useful predefined processes like STOP, the process that accepts no events, and SKIP, the process that shows a successful termination and then behaves like STOP, and RUNA, the process that accepts any event of alphabet A. Other processes like DIV and CHAOS are standard in the literature, but are not required here.
The next class of operators relate to parallelism. The notation:\(P\mathop {||}\limits_{A} Q\) denotes P running in parallel with Q, synchronizing on events in A. This means a stream of incoming events can be arbitrarily assigned to either P or Q, assuming those events are not in A. However, for events in A, both P and Q must accept them in synchrony. As an example, consider the vending machine and the change machine running in parallel, synchronizing on the event in25:
FREELUNCH = VMS \(\mathop {||}\limits_{{\{ in25\} }}\) CHNG.
Possible traces for this new process are the various interleavings of the traces for the two component machines that agree on the event in25. For instance: < in25, choc, out10, out10, out5, … > , < in25, out10, choc, out10, out5,… > , < in25, out10, out10, choc, out5, … > , < in25, choc, out10, out5, out10,… > , < in25, out10, out5, out10, choc, … > are possible execution paths for FREELUNCH.
Another variation on parallel composition is arbitrary interleaving, denoted: P||| Q. In interleaving, P and Q never synchronize, operating independently of one another. P |||Q is therefore equivalent to P \(\mathop {||}\limits_{{\{ \} }}\) Q, which means P and Q run in parallel and synchronize on the empty set. In the tool FDR2 for CSP, for concise expression, the process P = ((Q1 ||| Q2 |||Q3|||…|||Qn) can be notated as P = (|||i:{1..n}@Qi). We adopt this form in the descriptions of GTPM specifications.
Processes that run in parallel can communicate with one another over channels. A typical channel c can carry various values v, denoted c.v. This is represented as the sending process accepting the event c!v while the receiving process accepts the event c?x (where x is thus far unbound) and sets x to v. Communication on a channel is possible only when the sender and receiver processes are in the respective states simultaneously. If one process is at the suitable state
and the other is not, the ready process waits until its partner becomes ready. If the channel has a compound name like i.c, its values are, respectively, denoted i.c.v. Channel names are prefix-free so this is never ambiguous. Our GTPM specifications use channels extensively.
The next important CSP feature is concealment or hiding. For a process P and a set of symbols C, the process P\C is P with symbols in C hidden or concealed. The events in C become internal transitions that cannot be observed by other processes through synchronization or channel communication. Concealment can induce divergence—an infinite sequence of internal transitions. For instance, the process P = (c → P)\{c} diverges immediately, never to be useful again.
Other operators like renaming are standard in the literature, but are not required here.
1.2 B: CSP models and process equivalence
The theory of CSP has classically been based on mathematical models. These models have been based on observable behaviors of processes such as traces, failures and divergences, rather than attempt to capture a full operational picture of how the process progresses. These models\*MERGEFORMAT [24] are as follows.
The traces model: a process is represented by the set of finite sequences of communications it can perform. The set of P’s (finite) traces is given by traces(P).
The stable failures model: a process is represented by its traces as above and also by its failures. A failure is a pair (s,X), where s is a finite trace of the process (i.e., in traces(P)) and X is a set of events it can refuse after s. This means (operationally) that after trace s, the process P has come into a state where it can do no internal action and no action from the set X. The set of P’s failures is given by failures (P).
The failures/divergences model: a process is represented by its failures as above, together with its divergences. A divergence is a finite trace during or after which the process can perform an infinite sequence of consecutive internal actions. The set of P’s failures is given by divergences (P). Formally, after a divergence we consider a process to be acting chaotically and able to do or refuse anything. This means that processes are considered to be identical after they have diverged.
All three of these models have the obvious congruence theorem with the standard operational semantics of CSP. Depending on these semantic models, equivalence relations can be defined for systems described in CSP in several ways.
A process Q is a trace equivalence of another, P, if traces(Q) = traces(P).
A process Q is a stable-failures equivalence of another, P, if failures (Q) = failures (P).
A process Q is a failures/divergences equivalence of another, P, if failures (Q) = failures (P) and divergences (Q) = divergences (P).
These equivalences can be used for proving safety properties.
Rights and permissions
About this article
Cite this article
Li, W., Yang, Z. & Liu, J. Automatic analysis of DIFC systems using noninterference with declassification. Neural Comput & Applic 34, 9385–9396 (2022). https://doi.org/10.1007/s00521-021-06334-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00521-021-06334-7