HNHacker News
TopNewBestAskShowJobs

juliusmusseau

517 karma · joined April 28, 2016

@juliusmusseau - https://mergebase.com/ - securing the software supply chain (well, trying to!)
submissionscomments
juliusmusseau··on Parsing JSON Is a Minefield (2018)
Here's some stuff where it would bite me in my work:

- I sometimes use random 64 bit integers in my data (usually as cheaper synthetic guid-like keys).

- I sometimes use CRC-64 hashes.

- I sometimes use 2^63 as a sentinel.

juliusmusseau··on Parsing JSON Is a Minefield (2018)
When the tests fail to 1.) experiment with numeric values greater than 2^53 or less than -2^53 and 2.) fail to carefully check the results even in the situations where they did experiment with such values.
juliusmusseau··on Parsing JSON Is a Minefield (2018)
What about the 2^63 corner-case?

Consider this JSON: {"key": 9223372036854775807}. With most parsers it never fails.

But... some JSON parsers (include JS.eval) parse it to 9223372036854776000 and continue on their merry way.

The problem isn't user-provided JSON here. The problem is user-provided data (or computer-provided data) that's inside the JSON.

rachelbythebay's take (http://rachelbythebay.com/w/2019/07/21/reliability/):

On the other hand, if you only need 53 bits of your 64 bit numbers, and enjoy blowing CPU on ridiculously inefficient marshaling and unmarshaling steps, hey, it's your funeral.

juliusmusseau··on Parsing JSON Is a Minefield (2018)
Because of this article (which I encountered a year ago) I would say Parsing JSON is no longer a minefield.

I had to write my own JSON parser/formatter a year ago (to support Java 1.2 - don't ask) and this article and its supporting github repo (https://github.com/nst/JSONTestSuite) was an unexpected gift from the heavens.

juliusmusseau··on Some items from my “reliability list”
CSV.

Just kidding, but I suspect it would be a lot faster.

juliusmusseau··on How not to sign a JSON object
The one approach you missed on that blog post: put an envelope inside an envelope. Does anyone ever do this?

  {
    "original":"json",
    "goes":"here"
  }
Signed:

  {
  
  "original_json_contents_base64":"ewogICJvcmlnaW5hbCI6Impzb24iLAogICJnb2VzIjoiaGVyZSIKfQo=",

  
  "hmac_sha256_of_base64":"bf1f4cb95ce8633aff46888e1717873e32bb2a770b3d4b5b74a59e5e9adefeda"

  }

This way you have full control over the raw bytes you want to sign (by forcing them into Base64 where other systems can't get their dirty paws on them).

I guess the problem here is if intermediate systems want to do stuff based on the payload (but without validating it), they won't like this.

But if the problem is just intermediate systems barfing on non-json, this might work!

p.s. enjoyable blog post - as they always are! ;-)

juliusmusseau··on Using files is fraught with peril
Why alter the article's title? Original is fine: "Files are fraught with peril"
juliusmusseau··on Tor Browser 8.5
The one time I ever used the Tor Browser (at work, out of curiosity), my desk phone rang within 5 minutes: the in-house IT security team wanted to know what I was doing. So you're not kidding when you say it makes one's internet traffic more "interesting"!
juliusmusseau··on The Most Expensive Lesson of My Life: Details of SIM Port Hack
This reminds me of Popehat's "Don't judge the victims too harshly" paragraph from Chapter 5 from his "Anatomy of a Scam" (https://www.popehat.com/2011/09/18/anatomy-of-a-scam-investi...):

> Many of you are thinking, "Jesus, I would never fall for the "the check's in the mail, we had trouble with the wire transfer, the money is coming in from our affiliate in New York, I'll get you the tracking number" routine day after day. But sociopaths are very, very good at this. You don't want to believe you've been conned, you don't want to believe you have to go hire a lawyer and file a lawsuit, you don't want to believe someone can do this to you, you want the income that this transaction promises, and often you don't want to go tell your superiors — so you keep hoping that the money is coming any day now. It can happen to you. It's happened to very smart lawyers I know. It's happened to me. And I used to put these people in jail. So don't judge the victims too harshly. When you find yourself in such a situation, you've got to focus — to convince yourself to bail out and cancel the contract, stop providing services, and file suit if necessary.

juliusmusseau··on Bullshit I had to go through while organizing a software conference
Good luck in the courts. Unfortunately that route is very slow.

(You're probably looking at 1.5 to 3 years before you obtain any final orders - and then there's the issue of enforcing any orders you might obtain!)

juliusmusseau··on What I Learned in My First Year Year as a Solo Founder
For $35K.
juliusmusseau··on Ask HN: Resources/Steps for Becoming a Consultant?
> Don't track hours.

In Canada there are important federal tax credits (e.g., SR&ED) that work best if staff and contractors track hours in at least 4-hour chunks.

But if a client hopes to get tax credits back for your hours, that's another good reason to raise your rates!

juliusmusseau··on Notepad++ drops code signing for its releases
Also, the "disable" in the signed case is much more powerful, since it disables all apps signed by the same key.
juliusmusseau··on Notepad++ drops code signing for its releases
There might be some risk to your business if a malicious person can get that number assigned to their phone since you're no longer using it.
juliusmusseau··on Notepad++ drops code signing for its releases
For those that don't know, D&B stands for Dun & Bradstreet (https://www.dnb.com/). They have this concept of a D-U-N-S Number which basically means information about your business is in their database.

Last I checked expedited D&B was around $40 USD (10 business days) and same-day D&B around $500 USD.

Free D&B said it would take 30 business days, but it actually only took them 5 business days when I applied for it.

juliusmusseau··on Notepad++ drops code signing for its releases
Exactly! I trust "you must do some things to obtain this" more than I trust "you don't have to do anything".
juliusmusseau··on Notepad++ drops code signing for its releases
My point was I would trust someone who drops $20 more than I would trust someone who drops nothing.

$61/yr (USD) will get you an OV cert - there are 10% discount codes that are easy to find for these guys, and their list price is $67/yr:

https://codesigning.ksoftware.net/

But the Notepad++ guy will need a business registered with that name before he can obtain CN=Notepad++, no matter how much he's willing to pay.

juliusmusseau··on Notepad++ drops code signing for its releases
Funny thing about trust: I trust a developer who drops some $$$ on a code-signing certificate more than I trust a developer who doesn't. Even if it's just $20.

Also, the validation requirements to obtain a code-signing certificate, while certainly not bulletproof, are not nothing: you need to send in articles of incorporation and your business needs a listing with a physical address and phone number in a public directory (e.g., bbb.org), and someone representing your business needs to pick up that phone when the cert validator calls it.

Your business name and physical address are injected into the certificate. Basically code-signing certificates make it easier for people to find you and sue you if they truly want to. I suspect that's the whole point.

The problem here is that the Notepad++ developer wants his certificate to say CN=Notepad++, but he won't be able to obtain that until he has some kind of business or organization registered in his jurisdiction with that name. Whereas CN=FIRSTNAME LASTNAME he could probably obtain immediately (just send in his driver's license during validation).

juliusmusseau··on The password “ji32k7au4a83” has been seen over a hundred times
"So many good memories" - ha ha!
juliusmusseau··on The most popular docker images each contain at least 30 vulnerabilities
Exactly!

It often takes more time to assess whether your system is truly vulnerable to a given public exploit than it takes to just grab a newer version of the component.

Also worth considering: getting pwned because of a 0day is no fun, but getting pwned because of an unpatched CVE in your system - priceless.

juliusmusseau··on Consumer Protection Bureau Aims to Roll Back Rules for Payday Lending
I don't think they take cheques anymore. At least not in Canada?

When I took out a payday loan they made me sign a PAD authorization (pre-authorized debit) that was timed to hit my account the same day as my next payroll.

They also needed my last bank statement so they could 1.) verify my payroll was through direct deposit, and 2.) help them estimate the right date for their PAD.

In other words: yup! You must be banked!

juliusmusseau··on TinySeed (bootstrap accelerator) applications are live
Sounds like it behaves a bit like a 1x participating preferred but without any special voting rights. (Presumably they vote their shares alongside the common voting shares?)

I think it strikes a good balance between founder-friendly and investor-friendly.

juliusmusseau··on Athletes Don’t Own Their Tattoos – a Problem for Video Game Developers
I'm just hoping DannyBee posts something to this thread! (He's a lawyer).

https://news.ycombinator.com/user?id=DannyBee

juliusmusseau··on Podcast Advertising: What We Learned
risky.biz is brilliant for podcast advertising - but last time I asked them (around 6 months ago) the regular sponsorship slots were fully booked until 2020! Their model is quite a bit different compared to the podcasts covered by OP: typically you buy a single 12 minute interview where the host interviews you directly. Pricing was around $7K USD for that (but perhaps that's changed in last 6 months).
juliusmusseau··on Podcast Advertising: What We Learned
Yes, their name sucks for podcast/radio. But it's too late for them to change that.
juliusmusseau··on Don’t sign a CLA
Wow, regarding #1 - am I understanding this correctly? Linus's widow or children can revoke his GPL license of his kernel contributions after he dies unless he covers this scenario explicitly in his will?

Edited to add: Seems there's a 5-year window from year 35-40 after the initial license or grant where the license or grant can be terminated, either by the original author or their heirs, but honestly I have no idea if I'm reading this correctly. This whole statutory terminations thing goes way over my head. I cannot parse this document: https://akbllp.com/introduction-and-copyright-overview/statu...

juliusmusseau··on Taking apart a double zero-day sample discovered in joint hunt with ESET
Thanks for the explanation. Very helpful!
juliusmusseau··on Taking apart a double zero-day sample discovered in joint hunt with ESET
I don't understand how VirusTotal was able to catch this. I suspect the malware author uploaded it because they wanted to ensure it appeared clean to all malware detectors - VirusTotal is a great way to test that!

It seems VirusTotal is a tool for running 70 anti-virus products at once against the same file. How can VirusTotal catch freshly developed malwares? How would VirusTotal even suspect that an uploaded file was fresh malware? That doesn't make sense to me.

juliusmusseau··on GitHub Alternatives
Bitbucket On-Prem (aka Bitbucket Server) is pure Java + direct git invocations, so runs very nicely on modest hardware. Can get by on 1GB RAM! (But more recommended if you have more than 10 users).
juliusmusseau··on Why teams are switching from GitHub to Bitbucket after Microsoft acquisition
Atlassian is a public company with a market cap of $15 billion. I don't think Microsoft is going to acquire them.
← PreviousPage 2 of 3Next →