Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    28c3: The Science of Insecurity

    28c3

    9 HN recommenders · recommended in 13 months, 2012–2024

    YouTube

    59:23 · 42K views · Dec 29, 2011

    Meredith Patterson and Sergey Bratus argue that networked software stays insecure because protocols and inputs are too complex to recognize safely. They propose using formal language theory and grammars to build secure, verifiable input handling.

    HN commenters call it one of the best security talks and the standard introduction to LANGSEC, which they use to argue for simpler, well-specified input formats.

    Systems, Networks & SecuritySecurity & hackingComputability & complexity theoryLogic & formal methods
    1. 1:00:34
      1. Introduction, Finite Automata, Regular ExpressionsMIT OpenCourseWare628K views • 5 years ago
    2. 36:58
      "A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya SiramStrange Loop Conference26K views • 9 years ago
    3. 42:43
      "Propositions as Types" by Philip WadlerStrange Loop Conference144K views • 11 years ago
    4. 1:07:22
      Invited Talk - Guy SteeleClojureTV39K views • 9 years ago
    5. 1:07:10
      Brian Beckman: Don't fear the Monadjasonofthel33t415K views • 13 years ago
    6. 43:31
      Analyzing Programs with Z3Compose Conference24K views • 10 years ago
    7. 34:00
      Math's Fundamental FlawVeritasium31M views • 5 years ago
    8. 59:04
      On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]PapersWeLove27K views • 7 years ago
    9. 10:44
      P vs. NP and the Computational Complexity Zoohackerdashery3.7M views • 12 years ago
    10. 1:12:56
      Lecture 1A: Overview and Introduction to LispMIT OpenCourseWare421K views • 7 years ago
    11. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    12. 1:03:29
      Maybe Not - Rich HickeyClojureTV181K views • 7 years ago
    13. 51:32
      Great Impractical Ideas in Computer Science: PowerPoint ProgrammingTom Wildenhain2.2M views • 7 years ago
    14. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    15. 59:50
      Leslie Lamport: Thinking Above the CodeMicrosoft Research403K views • 12 years ago
    16. 51:40
      Domain Modeling Made Functional - Scott WlaschinNDC Conferences71K views • 9 years ago
    17. 54:55
      Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott MeyersThe D Language Foundation19K views • 8 years ago
    18. 58:37
      NVIDIA — Securing the Future of Safety and Security of Embedded Software (Captioned)AdaCore5K views • 5 years ago
    19. 54:35
      28c3: The coming war on general computation28c3267K views • 14 years ago
    20. 25:06
      "Making Impossible States Impossible" by Richard Feldmanelm-conf63K views • 10 years ago

    13 comments from Hacker News

    1. @sedachvMay 2016· in “Remote code execution vulnerability in ImageMagick”

      > 1. Simpler formats for file representation and data interchange. When someone tries to add an extra bitfield option, say no. When they keep trying, get a wooden stick with "no" written on it. Part of the disease of modern computing is bloated specs. > 2. Restrictive not permissive code bases. Exit and bail out early. Tell the user "file corrupted". Push back. The best talk on computer security I have seen is Meredith Patterson's Science of Insecurity at 28c3: this video It is really interesting that the techniques needed to achieve these security goals (theory of grammars) is one of the oldest and best explored areas of computer science.

      Strongly recommendsView on HN
    2. @jdietrichApr 2013· in “Ask HN: What's the best technical talk you've heard?”

      Meredith Patterson's astonishing CCC talk on computing and linguistics. It's a tour de force, presenting a systematic and practical proposal for how we can build an open and secure future for computing. I can't imagine a better example of the joys of inter-disciplinary thinking. this video

      Strongly recommendsView on HN
    3. @holmesworcesterMay 2024· in “Civil society in Latvia, Lithuania, and Poland targeted with Pegasus spyware”

      I think a lot of people are mis-seeing these Pegasus attacks as a problem of political will ("we need sanctions on NSO/Israel!") or memory safety ("rewrite it in Rust!") when there is a deeper problem: parser complexity. Specifically, we're using context-sensitive and Turing-complete parsers up and down the software stack, which (at the Turing-complete level of complexity, says Gödel) guarantees that determined attackers can expect to discover an exploitable "weird machine." Folks should watch this panel and other talks by Meredith L. Patterson (co-collaborator and wife of the late Len Sassaman) and Sergey Bratus (previously at DARPA, now Dartmouth) to get a sense of the problem and the solution. [LINK] These folks are saying that, just as the industry handled over-the-wire insecurity with TLS and e2ee (and not rolling our own crypto) we can handle device exploitability with well-described data and automated parser generation from those descriptions (and not rolling our own parsers, which these folks say should be verboten for the same reason as rolling one's own crypto: parsing is too hard for non-specialists to get right). Moreover, we don't have to redo the whole stack for it to be meaningful: big players can start using this tooling (e.g. [LINK] ) for parsers handling data from very untrustworthy inputs, such as message payloads sent to a phone number. Apple's Lockdown mode is a step in this direction, though in such a crude, "burn the village" way that it makes the phone

      RecommendsView on HN
    4. @TeMPOraLAug 2013· in “Comments in JSON”

      > "Code" requires some notion of an execution platform/environment, which does not exist for arbitrary data. Arbitrary data don't exist without some notion of an execution (or interpretation) platform. We tend to use "code" as a word for "commands telling some execution process what to do" and "data" as a word for "information that is meant to be transformed" but in reality this distinction is meaningless; both are fundamentally the same thing, and even our "code" vs. "data" words have blurry borders. It's very apparent when you start reading configuration files. For example, aren't Ant "configuration files" essentially programs[0]? We all know what we usually mean in context by saying what is "code" vs. what is "data", but one has to remember, that in fact they are the same - minding it leads to insights like metaprogramming. Forgetting about it leads to dumb languages and nasty problems, and is generally not wise. [0] - the answer is: yes, they are, see [LINK] for more. ETA: Questions to ponder: - are regular expressions code, or data? - is source written in Prolog code, or data? Also I recommend watching this video to learn how what would be data, as defined by formal grammars of some real-world protocols, can - by means of sloppy grammars and bad parser implementation - cross the threshold of Turing-completeness and become code.

      RecommendsView on HN
    5. @majikaNov 2013· in “Bytecode”

      This is related to Meredith Patterson's talk at the 28th CCC, "The Science of Insecurity": this video > Why is the overwhelming majority of common networked software still not secure, despite all effort to the contrary? Why is it almost certain to get exploited so long as attackers can craft its inputs? Why is it the case that no amount of effort seems to be enough to fix software that must speak certain protocols? > The answer to these questions is that for many protocols and services currently in use on the Internet, the problem of recognizing and validating their "good", expected inputs from bad ones is either not well-posed or is undecidable (i. e., no algorithm can exist to solve it in the general case), which means that their implementations cannot even be comprehensively tested, let alone automatically checked for weaknesses or correctness. The designers' desire for more functionality has made these protocols effectively unsecurable.

      RecommendsView on HN