Live data from Hacker News

Our audit of Homebrew

blog.trailofbits.com

131–140 of 205 posts

Re: Our audit of Homebrew

#131

The main attack vector IMHO is the simple fact that one can sneak in new packages with malicious intent by simply contributing a new formula. The team of maintainers is too small to audit all of the newly contributed formulae. I'm suprised that this attack vector wasn't part of the audit.

I don’t think the current Homebrew core formulae reviewers consider their team too small to sufficiently review all new incoming formula requests. But even if it was: this is one of the vagaries of packaging that’s explicitly called out in the post: the boundary between first- and third-party execution is inherently murky, and there’s IMO relatively more security “value” in determining where third-party execution can surprisingly happen than pointing out all of the unsurprising things that happen when you intentionally run third-party code.

(With that being said, I think packagaging ecosystems in general should be reviewed for those kinds of acceptance processes. But that would be closer to a “red team” style audit than a software audit, since it’s about human processes.)

Re: Our audit of Homebrew

#132
post #107

Earlier quoted context omitted.

IMO, it's just counter to what Apple aspires MacOS to be. If they would do it all over again, I would bet that they would have wanted to make MacOS be like iOS.

I’m not sure. Back in the day Apple marketed macOS as a serious Unix system for scientists and engineers boasting about NASA’s use of it. I think if Apple aspired to lockdown general purpose computing they would push the ipad pro range with more models and slowly kill off the Mac but they’re not doing that.

> Back in the day Apple marketed macOS as a serious Unix system for scientists and engineers boasting about NASA’s use of it.

They still jump through the necessary hoops to be certified as UNIX® with each macOS release:

* https://www.opengroup.org/openbrand/register/

Re: Our audit of Homebrew

#134
post #133
post #66

Earlier quoted context omitted.

It's also a worse design in some aspects, so not a clear winner

For example?

- too much sudo friction

- homebrew's design of having a single app's folder is better, e.g., can use your basic file manager to see the total size

- updates requiring manual inervention

- fewer/less updated packages (mabye due to the previous deficiency?)

- large duplicate database wasting space (and think it's even uncompressed) (brew got better when it moved to it API)

Re: Our audit of Homebrew

#135
I’m a bit puzzled by the wording of this blog post, because it says you’ve worked with Homebrew to do this audit, but your name sounds familiar to me, and indeed if we check Homebrew’s README [1]:

> Homebrew's maintainers are […long list of names…] William Woodruff […]

[1]: https://github.com/Homebrew/brew

Is there any reason this is not mentioned in the blog post? I don’t think it would make a difference, but just to clarify things.

Re: Our audit of Homebrew

#136

I ditched `brew` for `nix` a while back and while the TUI could be more end-user-friendly (to the point that I wrote a wrapper called "ixnay" just so I could do "ixnay install " as easily as with brew, https://github.com/pmarreck/ixnay ), the overall guarantees make it worth it.

I wish I had known about ixnay earlier! I also got annoyed of the user experience, to the point where I also wrote my own tool, hdn: https://github.com/seasonedfish/hdn

I added a mention of ixnay to its readme :)

Re: Our audit of Homebrew

#137
post #135

I’m a bit puzzled by the wording of this blog post, because it says you’ve worked with Homebrew to do this audit, but your name sounds familiar to me, and indeed if we check Homebrew’s README [1]: > Homebrew's maintainers are […long list of names…] William Woodruff […] [1]: https://github.com/Homebrew/brew Is there any reason this is not mentioned in the blog post? I don’t think it would make a difference, but just t…

I wasn’t a maintainer at the time I did the audit :-). I’ve been a non-maintaining “member” of the project for a long time, which is the pseudo-emeritus position we give to previous maintainers who want to continue participating in internal conversations and governance. I was then offered membership again, months after the audit, due to some unrelated work on Homebrew that didn’t exist and wasn’t planned before the audit was planned.

This was all disclosed as part of a conflict-of-interest disclosure I did, both with my company and with the Homebrew maintainers, but I agree that the blog post could also say that explicitly. I’ll try and get it added today.

TL;DR: I was not a maintainer at the time the audit was performed, but I was previously (years before) and am currently a maintainer. The audit was performed by myself and my colleagues in our professional capacities.

Re: Our audit of Homebrew

#138
There's an interesting alternative to Homebrew: Devbox

It abstracts Nix in a way you don't have to know or learn anything about the Nix language.

I wrote a few words on how I use it instead of Homebrew [1].

[1] https://mootoday.com/blog/i-replaced-homebrew-with-devbox

https://mootoday.com/blog/i-replaced-homebrew-with-devbox

Re: Our audit of Homebrew

#139

There's an interesting alternative to Homebrew: Devbox It abstracts Nix in a way you don't have to know or learn anything about the Nix language. I wrote a few words on how I use it instead of Homebrew [1]. [1] https://mootoday.com/blog/i-replaced-homebrew-with-devbox https://mootoday.com/blog/i-replaced-homebrew-with-devbox

As someone unfamiliar with Nix, how is this better than Homebrew?

Re: Our audit of Homebrew

#140

There's an interesting alternative to Homebrew: Devbox It abstracts Nix in a way you don't have to know or learn anything about the Nix language. I wrote a few words on how I use it instead of Homebrew [1]. [1] https://mootoday.com/blog/i-replaced-homebrew-with-devbox https://mootoday.com/blog/i-replaced-homebrew-with-devbox

As someone unfamiliar with Nix, how is this better than Homebrew?

For me, the key push towards using it as a Homebrew replacement was the fact that I already used Devbox to create isolated dev environments for individual projects I work on.

Now I have one tool to manage all dependencies.

Other than that, it likely comes down to personal preference.

One neat thing is `devbox global push/pull ` to persist my config in a repo.

Post reply on HN