Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 200
  1. Is it correct?

    If I ask you if some code is correct, there are broadly two things I could be asking: (1) does this code have the desired behavior for the set of inputs that users will provide, and (2) does it have the desired behavior for all possible inputs.

  2. (I work for Anthropic.)

  3. If it could have, why didn't it?

    Anytime you see some someone describing how they used a new vulnerability research technique to find a bug, you’ll see an internet commenter state with confidence that static analysis could have found this bug.

  4. (I’m not a lawyer, and I did precious little research in drafting this.

  5. Relish: A new serialization format

    I’ve recently created and open sourced a new serialization format, named Relish1, and a Rust library implementing it.

  6. When a project receives a vulnerability report, what’s the first question they should ask?

  7. So you want to serialize some DER?

    (Editor’s Note: My day job is at Anthropic.)

  8. What is a Benchmark?

    Benchmarks are how we measure performance, obviously.

  9. Standard libraries are among the most debated topics in programming language design.

  10. Putting a Price Tag on Open Source

    I’ve previously written about common reasons that developing open source software is not funded.

  11. Postel’s Law famously states that “implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.”

  12. Notes on coreutils in Rust

    Canonical recently announced that they’re on the path to switching the coreutils that Ubuntu ships from being the venerable upstream GNU coreutils to a newer Rust implementation.

  13. Things have reasons

    Toby: I read it, I think, 16 years ago.

  14. Generality

    Once upon a time, a group of scientists built a machine learning model to predict whether a radiological scan contained a tumor.

  15. In the United States, federal antitrust law is composed of several complementary statutes, one of the centerpieces of which is Section 2 of the Sherman Act.1 Section 2 prohibits monopolization (and attempted monopolization).

  16. For years, people have criticized the “SSO Tax”, SaaS companies' practices of limiting single-sign-on to only their more expensive plans, effectively imposing a tax on organizations that care about security.

  17. Stop Demanding Performance

    Often in life, we want something from someone else.

  18. Challenges to funding open source

    I’ve had the good fortune to get paid to write open source as part of my job several times.

  19. Risky Business

    There are a variety of professions whose job it is to help businesses manage risks, for example, information security, accounting, and legal.

  20. I’ve maintained a popular cryptography library for years and in that time I’ve realized that many of the differences between cryptographic libraries flow from their creators' philosophies.

  21. Signatures are like backups

    I’m indebted to a colleague who many years ago succinctly told me: Backups don’t matter, only restores matter.

  22. Sandboxing and memory safety are generally considered two orthogonal, and therefore complementary, approaches to improving security.

  23. Safer C++

    I am an unrepentant advocate for migrating away from memory-unsafe languages (C and C++) to memory safe languages in security-relevant contexts.

  24. Defining the memory safe problem

    I’m a staunch advocate for need to migrate away from memory unsafe programming languages, in order to address the endemic security issues they produce.

  25. Buffers on the edge: Python and Rust

    One of my least favorite kinds of bug is when two different systems are interacting and the result has bad behavior but it’s difficult to say which (if either!)

  26. Software packages have version numbers.

  27. Why software ends up complex

    Complexity in software, whether it’s a programming languages, an API, or a user interface, is generally regarded as a vice.

  28. CSVs: The good, the bad, and the ugly

    CSVs are a relatively popular data format, it seems particularly common as a format for providing exports of medium-sized datasets.

  29. There are not a lot of very strong empirical results in the field of programming languages.

  30. Dayenu for Open Source

    Every Passover, Jews around the world sing Dayenu, which translates roughly as “it would have been enough”.

  31. Scaling Software Development

    software engineering is programming integrated over time This quote, from Titus Winters, expresses an important notion: that software engineering as a discipline must be considered not just with programming at a point in time, but with programming over an…

  32. 2019 Security Wish List In Review

    In January of this year, I put together a wish list for security in 2019.

  33. On Safety Critical Software

    When you read “safety critical software” your mind probably went to something like medical device software (perhaps the Therac-25), or maybe avionics software, or perhaps industrial control systems that run nuclear power plants.

  34. A Memory Safety Research Agenda

    I’ve been a ferocious critic of C, C++, and other memory unsafe languages, and a booster of memory safe languages such as Swift, Go, and particularly Rust.

  35. What is memory unsafety?

  36. Read code more

    As software engineers, we overwhelmingly focus on the skill of writing code.

  37. Modern C++ Won't Save Us

    I’m a frequent critic of memory unsafe languages, principally C and C++, and how they induce an exceptional number of security vulnerabilities.

  38. It’s no secret that I’m a big believer in the adoption of security keys.

  39. Earlier this week the Google Security Team disclosed a pair of vulnerabilities, known to be exploited in the wild, one in Windows and the other in Chrome.

  40. ImageMagick and GraphicsMagick are two popular libraries for manipulating images.

  41. Security wish list for 2019

    About 3 years ago I wrote about five projects I thought were very important for advancing the state of computer security.

  42. Optimize for Auditability

    When we write code, we optimize for many different things.

  43. Attackers just need one vulnerability, defenders need to be perfect This may be the single most repeated truism in information security.

  44. Lessons learned at USDS

    From 2015 to 2017 I worked for the United States Digital Service, a team within the US Government, created after the launch failure of healthcare.gov, dedicated to improving the government’s ability to use technology.

  45. This past week Google’s Project Zero disclosed an unfixed security issue in Microsoft’s Edge browser.

  46. My day job is working on sandboxing for Firefox.

  47. A vulnerability by any other name

    Heartbleed, POODLE, Shellshock.

  48. This week Deputy Attorney General Rod Rosenstein gave two speeches on encryption; one at the U.S.

  49. Surviving Apache Struts CVE-2017-5638

    If you’re a software engineer or work in tech, there’s a decent chance that your first thought after hearing about the Equifax breach was “oh my god, how incompetent do you have to be to get owned like that?”

  50. There’s a lot of different types of work that tend to get put into the bucket “security engineering”.