Skip to main content
Log in

Automatic analysis of DIFC systems using noninterference with declassification

  • S.I.: AI-based Web Information Processing
  • Published:
Neural Computing and Applications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  1. 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

    Article  Google Scholar 

  2. 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

    Article  Google Scholar 

  3. 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

    Article  Google Scholar 

  4. Nikolaidis S, Refanidis I (2020) Privacy preserving distributed training of neural networks. Neural Comput Appl 32:17333–17350

    Article  Google Scholar 

  5. Myers AC, Liskov B (2000) Protecting privacy using the decentralized label model. ACM Trans Softw Eng Methodol 9(4):410–442

    Article  Google Scholar 

  6. 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

    Article  Google Scholar 

  7. 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

    Article  Google Scholar 

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

    Article  MathSciNet  Google Scholar 

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. Said NB, Cristescu I (2020) End-to-end information flow security for web service orchestration. Sci Comput Program 187:102376

    Article  Google Scholar 

  19. Denning DE (1976) A lattice model of secure information flow. Commun ACM 19(5):236–243

    Article  MathSciNet  Google Scholar 

  20. Ryan PA, Schneider SA (2001) Process algebra and non-interference. J Comput Secur 9(1–2):75–103

    Article  Google Scholar 

  21. Formal Systems (Europe) Ltd. Failures divergences refinement: FDR2 manual, http://www.fsel.com, 2005

  22. 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

  23. 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

  24. Schneider S (2000) Concurrent and real-time systems: the CSP Approach. Chichester, UK: Wiley LTD

  25. 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

  26. 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

  27. 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

  28. AldousEmail P, Might A (2015) Static analysis of non-interference in expressive low-level languages. LNCS 9291: 1–17

  29. 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

  30. 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

Download references

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

Authors

Corresponding author

Correspondence to Jia Liu.

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:

$$ VMS = in25 \to choc \to VMS $$

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:

$$ VMS2 = \, (bill \to cone \to VMS2[]in25 \to choc \to VMS2) $$

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:

$$ CHNG = \, (in25 \to (out10 \to out10 \to out5 \to CHNG\ O out10 \to out5 \to out10 \to CHNG)) $$

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00521-021-06334-7

Keywords

Navigation