how is software made
play

How is software made? 2 A stylized software supply chain test - PowerPoint PPT Presentation

in-toto -- Securing the whole software supply chain Santiago Torres-Arias, Hammad Afzali, Lukas Phringer , Reza Curtmola, Justin Cappos How is software made? 2 A stylized software supply chain test code build package 3 Attackers can


  1. in-toto -- Securing the whole software supply chain Santiago Torres-Arias, Hammad Afzali, Lukas Pühringer , Reza Curtmola, Justin Cappos

  2. How is software made? 2

  3. A stylized software supply chain test code build package 3

  4. Attackers can hack the software supply chain test code build package 4

  5. Attackers do hack the software supply chain 5

  6. Attackers do hack the software supply chain 6

  7. Attackers do hack the software supply chain 7

  8. Attackers do hack the software supply chain 8

  9. Attackers do hack the software supply chain 9

  10. How can we fix this? 10

  11. Many good point solutions test code build package 11

  12. Many good point solutions test → git signing, reference state log [Torres USENIX Sec 16] , ... code build package 12

  13. Many good point solutions test → git signing, reference state log [Torres USENIX Sec 16] , ... code build package → TPMs, HSMs, reproducible builds, ... 13

  14. Many good point solutions test → git signing, reference state log [Torres USENIX Sec 16] , ... → TLS, GPG, TUF code build package → TPMs, HSMs, reproducible builds, ... 14

  15. Fixed? 15

  16. Gaps between steps? Compliance? test code build package 16

  17. We want to secure the complete Software Supply Chain! → Verifiably define the steps of the software supply chain → Verifiably define the authorized actors → Guarantee that everything happens according to definition, and nothing else 17

  18. in-toto -- Project Definition -- Steps { "_type": "layout", "expires":"2017-08-31T12:44:15Z", "keys": { "0c6c50": { ... } }, "signatures": [...], "steps": [{ "_type": "step", "name": "checkout-code", "expected_command": ["git", "clone", "..."], "expected_materials": [], "expected_products": [ ["CREATE", "demo-project/foo.py"], ...], "pubkeys": ["0c6c50..."], "threshold": 1 }, ...], "inspections": [...] } 18

  19. in-toto -- Project Definition -- Functionaries Dave { "_type": "layout", "expires":"2017-08-31T12:44:15Z", "keys": { "0c6c50": { ... } Bob }, "signatures": [...], Erin "steps": [{ "_type": "step", "name": "checkout-code", "expected_command": ["git", "clone", "..."], "expected_materials": [], "expected_products": [ ["CREATE", "demo-project/foo.py"], ...], "pubkeys": ["0c6c50..."], "threshold": 1 }, ...], "inspections": [...] } Carol 19

  20. in-toto -- Project Definition -- Materials/Products Dave { "_type": "layout", "expires":"2017-08-31T12:44:15Z", "keys": { "0c6c50": { ... } Bob }, "signatures": [...], Erin "steps": [{ "_type": "step", "name": "checkout-code", "expected_command": ["git", "clone", "..."], "expected_materials": [], "expected_products": [ ["CREATE", "demo-project/foo.py"], ...], "pubkeys": ["0c6c50..."], "threshold": 1 }, ...], "inspections": [...] } Carol 20

  21. in-toto -- Project Definition -- Rules Dave { "_type": "layout", "expires":"2017-08-31T12:44:15Z", "keys": { "0c6c50": { ... } Bob }, "signatures": [...], Erin "steps": [{ "_type": "step", "name": "checkout-code", "expected_command": ["git", "clone", "..."], "expected_materials": [], "expected_products": [ ["CREATE", "demo-project/foo.py"], ...], "pubkeys": ["0c6c50..."], "threshold": 1 }, ...], "inspections": [...] } Carol 21

  22. in-toto -- Project Definition -- Signed Alice Dave { "_type": "layout", "expires":"2017-08-31T12:44:15Z", "keys": { "0c6c50": { ... } Bob }, "signatures": [...], Erin "steps": [{ "_type": "step", "name": "checkout-code", "expected_command": ["git", "clone", "..."], "expected_materials": [], "expected_products": [ ["CREATE", "demo-project/foo.py"], ...], "pubkeys": ["0c6c50..."], "threshold": 1 }, ...], "inspections": [...] } Carol 22

  23. in-toto -- Signed Evidence for each Step $ in-toto-run -- ./do-the-supply-chain-step { { { { "_type": "Link", "_type": "Link", "_type": "Link", "_type": "Link", "name": "code", "name": "build", "name": "build", "name": "build", "byproducts": "byproducts": "byproducts": "byproducts": {"stderr": "", "stdout": {"stderr": "", "stdout": {"stderr": "", "stdout": {"stderr": "", "stdout": ""}, ""}, ""}, ""}, "command": [...], "command": [...], "command": [...], "command": [...], "materials": {}, "materials": {...}, "materials": {}, "materials": {}, "products": { "products": { "products": { "products": { "foo": {"sha256": "foo": {"sha256": "foo": {"sha256": "in-toto/.git/HEAD": "..."}}, "..."}}, "..."}}, {"sha256": "..."}}, "return_value": 0, "return_value": 0, "return_value": 0, "return_value": 0, "signatures": [...] "signatures": [...] "signatures": [...] "signatures": [...] } } } } 23

  24. DEMO: Grep -- Debian’ized & in-toto’ized fetch extract modify build (dget) (dpkg-source) ( interactive ) (dpkg-buildpackage) 24

  25. DEMO: Grep -- Debian’ized & in-toto’ized $ in-toto-run <opts> -- dget http://cdn.debian.net/debian/pool/main/g/grep/grep_2.12-2.dsc $ in-toto-run <opts> -- dpkg-source -x grep_2.12-2.dsc $ cd grep-2.12 $ in-toto-record start <opts> $ dch -i $ vi debian/rules $ in-toto-record stop <opts> $ in-toto-run <opts> -- dpkg-buildpackage -us -uc $ in-toto-verify --layout-keys <key> --layout grep_2.12-2.layout → goo.gl/hgPMHA (demo screencast + demo metadata) 25

  26. DEMO: Grep -- Debian’ized & in-toto’ized fetch extract modify build (dget) (dpkg-source) ( interactive ) (dpkg-buildpackage) 26

  27. Layout wizard (sneak preview) 27

  28. Thank You! Questions? https://in-toto.io/ jcappos@nyu.edu 28

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend