similarity analysis in verona imdea
play

Similarity Analysis in Verona & IMDEA Roberto Giacobazzi - PowerPoint PPT Presentation

Similarity Analysis in Verona & IMDEA Roberto Giacobazzi Niccol Marastoni Mila Dalla Preda Giacobazzi Big Data Structured & Batch Unstructured y t V e e The 3Vs i r l a o V c Big i t Streaming y Data


  1. Similarity Analysis in Verona & IMDEA Roberto Giacobazzi Niccolò Marastoni Mila Dalla Preda ⓒ Giacobazzi

  2. Big Data Structured & Batch Unstructured y t V e e The 3Vs i r l a o V c Big i t Streaming y Data Structured Data We need Automation Zettabytes Terabytes e V m o l u ⓒ Giacobazzi

  3. Surveillance in Big Data Pattern Recognition Abstraction ⓒ Giacobazzi

  4. Automated Surveillance Devices = Cameras Abstraction = Pattern recognition Analysis = Similarity ⓒ Giacobazzi

  5. Big Data vs Big Code Major Threat Transformed & Diversity Dependecy Executable Documented My 3Ds Big Mobile Code Source Code We need even more Dynamic Static Automation Dimension ⓒ Giacobazzi

  6. Automated Surveillance Devices = Compromised networks Abstraction = Abstract Interpretation Analysis = Code Similarity ⓒ Giacobazzi

  7. Similarity Analysis ⓒ Giacobazzi

  8. On THE (im)possibility result! 1952 CLASSES OF RECURSIVELY ENUMERABLE SETS AND THEIR DECISION PROBLEMS^) BY H. G. RICE 1. Introduction. In this paper we consider classes whose elements are re- cursively enumerable sets of non-negative integers. No discussion of recur- sively enumerable sets can avoid the use of such classes, so that it seems de- sirable to know some of their properties. We give our attention here to the properties of complete recursive enumerability and complete recursiveness (which may be intuitively interpreted as decidability). Perhaps our most interesting result (and the one which gives this paper its name) is the fact ? that no nontrivial class is completely recursive. ? W ∈ { P | P ≈ Q } W We assume familiarity with a paper of Kleene [5](2), and with ideas which are well summarized in the first sections of a paper of Post Í7]. Code I. Fundamental definitions 2. Partial recursive functions. We shall characterize recursively enumer- able (r.e.) sets of non-negative integers by the partial recursive functions of Kleene. The set characterized (or, as we shall say more frequently, enumer- ated) by a partial recursive function of one variable will be taken as the We can only approximate!!! range of values of the function. A function undefined for all arguments (and thus producing no values) will be considered to produce an enumeration of the empty set o. ⓒ Giacobazzi Kleene has shown [5, pp. 50-58] that a Gödel enumeration of the partial recursive functions is possible, so that we may designate any partial recursive function of one variable as <j>n(x), where n is a Gödel number of the function. Actually, it requires only a minor adjustment of Kleene's constructions to insure that, not only does every function have at least one number, but that every non-negative integer n is the number of some function. We shall assume this to be the situation, and shall make one other minor adjustment: <t>o(x) is the identity function. Kleene further showed the existence of a recursive predicate 7"(x, y, z) and a primitive recursive function U(x) such that Presented to the Society, December 28, 1951; received by the editors of the Journal for Symbolic Logic, November 16, 1951, subsequently transferred to the Transactions, and re- ceived in revised form May 26, 1952. (') Most of the results in this paper were contained in a thesis written under Professor Paul Rosenbloom, to whom the author wishes to express his gratitude, and presented toward the degree of Doctor of Philosophy at Syracuse University. (l) Numbers in brackets refer to the bibliography at the end of the paper. 358

  9. Code Example of static analysis (input) {n0>=0} n := n0; {n0=n,n0>=0} i := n; {n0=i,n0=n,n0>=0} while (i <> 0 ) do {n0=n,i>=1,n0>=i} j := 0; {n0=n,j=0,i>=1,n0>=i} while (j <> i) do {n0=n,j>=0,i>=j+1,n0>=i} j := j + 1 {n0=n,j>=1,i>=j,n0>=i} od; {n0=n,i=j,i>=1,n0>=i} i := i - 1 {i+1=j,n0=n,i>=0,n0>=i+1} od {n0=n,i=0,n0>=0} ⓒ Giacobazzi

  10. Code Understanding Example of static analysis (output) {n0>=0} n := n0; {n0=n,n0>=0} i := n; {n0=i,n0=n,n0>=0} while (i <> 0 ) do {n0=n,i>=1,n0>=i} j := 0; {n0=n,j=0,i>=1,n0>=i} while (j <> i) do {n0=n,j>=0,i>=j+1,n0>=i} j := j + 1 {n0=n,j>=1,i>=j,n0>=i} od; {n0=n,i=j,i>=1,n0>=i} i := i - 1 {i+1=j,n0=n,i>=0,n0>=i+1} od {n0=n,i=0,n0>=0} ⓒ Giacobazzi

  11. Code Obfuscation Example of static analysis (output) {n0>=0} n := n0; {n0=n,n0>=0} i := n; {n0=i,n0=n,n0>=0} while (i <> 0 ) do {n0=n,i>=1,n0>=i} j := 0; {n0=n,j=0,i>=1,n0>=i} while (j <> i) do {n0=n,j>=0,i>=j+1,n0>=i} j := j + 1 {n0=n,j>=1,i>=j,n0>=i} od; {n0=n,i=j,i>=1,n0>=i} i := i - 1 {i+1=j,n0=n,i>=0,n0>=i+1} od {n0=n,i=0,n0>=0} ⓒ Giacobazzi

  12. Code Obfuscation ⓒ Giacobazzi

  13. Code Obfuscation ⓒ Giacobazzi

  14. Another (im)possibility result! 2001 ? ? W ∈ { P | P ≈ Q } Q W Code VBB We can only partially obfuscate!!! ⓒ Giacobazzi

  15. Can we build a theory in PL? (outside crypto) ⓒ Giacobazzi

  16. The Concrete Model x ( t ) [ [ P ] ] t ⓒ Giacobazzi

  17. The Concrete Model x ( t ) Bad State [ [ P ] ] 1 bug! t We need computers to reason about computers ⓒ Giacobazzi

  18. Partial Execution x ( t ) Bad State Still [ [ P ] ] buggy! t stop Cheap, efficient, but unsound!!! ⓒ Giacobazzi

  19. Testing & Dynamic analysis x ( t ) Bad State Still [ [ P ] ] buggy! t Efficient but unsound! ⓒ Giacobazzi

  20. Abstracting the Model x ( t ) α ([ [ P ] ]) t Still too complicated, complex, undecidable ⓒ Giacobazzi

  21. Abstracting the Model x ( t ) α ([ [ P ] ]) t Still too complicated, complex, undecidable ⓒ Giacobazzi

  22. Abstracting the Model x ( t ) Bad State α ([ [ P ] ]) No bug! t This is NOT Abstract Interpretation!!! ⓒ Giacobazzi

  23. Abstract Interpretation x ( t ) [ [ P ] ] α t Affordable (sound) loss of precision Abstract Interpretation by Cousot & Cousot ACM POPL 1977 ⓒ Giacobazzi

  24. Abstract Interpretation x ( t ) I [ [ P ] ] α t Affordable (sound) loss of precision Abstract Interpretation by Cousot & Cousot ACM POPL 1977 ⓒ Giacobazzi

  25. Abstract Interpretation x ( t ) I II [ [ P ] ] α t Affordable (sound) loss of precision Abstract Interpretation by Cousot & Cousot ACM POPL 1977 ⓒ Giacobazzi

  26. Abstract Interpretation x ( t ) I II III [ [ P ] ] α t Affordable (sound) loss of precision Abstract Interpretation by Cousot & Cousot ACM POPL 1977 ⓒ Giacobazzi

  27. Abstract Interpretation x ( t ) IV Fix-point [ [ P ] ] α t Affordable (sound) loss of precision Abstract Interpretation by Cousot & Cousot ACM POPL 1977 ⓒ Giacobazzi

  28. Soundness x ( t ) Bad State Guaranteed [ [ P ] ] α Security t Affordable (sound) loss of precision α ([ [ P ] ]) ⊆ [ [ P ] ] α ⓒ Giacobazzi

  29. Soundness x ( t ) Bad State [ [ P ] ] α True Alarm t Affordable (sound) loss of precision α ([ [ P ] ]) ⊆ [ [ P ] ] α ⓒ Giacobazzi

  30. (In)completeness x ( t ) Bad State [ [ P ] ] α False Alarms t Affordable (sound) loss of precision α ([ [ P ] ]) ⊆ [ [ P ] ] α ⓒ Giacobazzi

  31. You can always refine!!! x ( t ) Bad State X Just [ [ P ] ] α true bugs! t Completeness Domain Refinement Giacobazzi et al. JACM 2000 ⓒ Giacobazzi

  32. You can always refine!!! x ( t ) Bad State X Just [ [ P ] ] α true bugs! t Completeness Domain Refinement α ([ [ P ] ]) = [ [ P ] ] α ⓒ Giacobazzi

  33. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ Q } Code Domain Simplify Refine α ⓒ Giacobazzi

  34. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ Q } Code α Domain Simplify Refine ⓒ Giacobazzi

  35. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ Q } Code α Domain Simplify Refine ⓒ Giacobazzi

  36. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ Q } Code α Domain Simplify Refine ⓒ Giacobazzi

  37. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ } α Q Code Code De-obfuscate Obfuscate Q ⓒ Giacobazzi

  38. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ } Code α Code De-obfuscate Obfuscate Q ⓒ Giacobazzi

  39. Exploiting the (im)possibility results! ? W W ∈ ! / ? { P | P ≈ } Q Code α Code De-obfuscate Obfuscate ⓒ Giacobazzi

  40. On the Completeness Class Obfuscation/De-obfuscation is compilation between completeness classes Obfuscate then C α then C α Incomplete Complete De-obfuscate def C ( α ) = { P program | α ( J P K ) = J P K α } Giacobazzi et al. ACM POPL 2015 ⓒ Giacobazzi

  41. On the Completeness Class def C ( α ) = { P program | α ( J P K ) = J P K α } A J skip K ; Infinite ⓒ Giacobazzi

  42. On the Completeness Class def C ( α ) = { P program | α ( J P K ) = J P K α } A A A J skip K ; Infinite J skip K J skip K ; ; ⓒ Giacobazzi

  43. On the Completeness Class def C ( α ) = { P program | α ( J P K ) = J P K α } A A A J skip K ; Infinite A A A J skip K J skip K ; ; J skip K J skip K J skip K ; ; ; ⓒ Giacobazzi

Recommend


More recommend