From 974a2bbcdfed956392c14e3304ca548d4a00a42e Mon Sep 17 00:00:00 2001 From: Jessica Phoenix Canady Date: Tue, 3 Sep 2024 13:37:10 -0400 Subject: [PATCH] Add keyspace/badwords post. --- ...uining-your-keyspace-for-fun-and-profit.md | 24 ++++++++++++++++++ priv/static/images/hulu_badwords.jpg | Bin 0 -> 31424 bytes 2 files changed, 24 insertions(+) create mode 100644 priv/posts/blog/ruining-your-keyspace-for-fun-and-profit.md create mode 100644 priv/static/images/hulu_badwords.jpg diff --git a/priv/posts/blog/ruining-your-keyspace-for-fun-and-profit.md b/priv/posts/blog/ruining-your-keyspace-for-fun-and-profit.md new file mode 100644 index 0000000..704277f --- /dev/null +++ b/priv/posts/blog/ruining-your-keyspace-for-fun-and-profit.md @@ -0,0 +1,24 @@ ++++ +slug = "ruining-your-keyspace" +title = "Ruining Your Keyspace For Fun And Profit" +date = 2024-09-03T12:51:23.952866-04:00 +draft = false + +[taxonomies] +# An array of quoted strings +tags = ["tales", "cmm", "software"] ++++ + +![Apparently the Hulu activation codes can/could accidentally include hilarious stuff like 6 F A G S E X!](/images/hulu_badwords.jpg) + +Oh, the memories. + +One of the early design decisions at CoverMyMeds was to generate alphanumeric keys for each Prior Auth, to ease communication about them. We figured trying to get pharmacists to read UUIDs to folks over the phone was a losing proposition. Because it was early, we just slapped together a quick "generate key, check for existence, loop back and generate again if used" routine and shipped it. + +As seems obvious in retrospect, we eventaully also generated a key that included the f-slur. Luckily, it was sent to an early partner who found this hilarious instead of wildly offensive. Having dodged a company-ending bullets -- not the first, for damn sure not the last -- we brainstormed a list of offensive words that could be generated, and denylisted them. + +I mean, that's usually the end of the story, but this one has a fun addendum. Our "PA Key" keyspace, which was previously limited to "all the possible combinations of letters/numbers in our strict format," got even smaller after we implemented the denylist. That, plus some new partnerships that turned into gangbusters growth, meant that we had nearly no time between the "hey we're almost out of keys to use for PAs" alarm, and actually being completely out of keys. + +Remember, our key generation routine now looked like "generate key, discard and retry if on denylist, discard and retry if already used." This happened inline during the POST request to create a new Prior Auth, which meant **all of our apache threads across all our production servers** were spinning, constantly regenerating keys. We'd DOSed ourselves. And it took us *a good while* to figure out the cause. + +Lessons learned: maybe don't block the inital database CREATE waiting for keyspace to free up. Or maybe it was to just not have a feasibly bounded keyspace in the first place? I dunno, we just changed our key format to give us more keyspace and set up more alarms. diff --git a/priv/static/images/hulu_badwords.jpg b/priv/static/images/hulu_badwords.jpg new file mode 100644 index 0000000000000000000000000000000000000000..78d23d912df3fc225487bb6af12860244133e184 GIT binary patch literal 31424 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