<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>Troy Hunt's Blog</title><description>Observations, musings and conjecture about the world of software and technology</description><link>https://www.troyhunt.com/</link><image><url>https://www.troyhunt.com/favicon.png</url><title>Troy Hunt</title><link>https://www.troyhunt.com/</link></image><generator>Ghost 5.101</generator><lastBuildDate>Thu, 21 Nov 2024 07:36:07 GMT</lastBuildDate><atom:link href="https://www.troyhunt.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>I&apos;ve spent more than a decade now <a href="https://www.troyhunt.com/working-with-154-million-records-on/" rel="noreferrer">writing about how to make Have I Been Pwned (HIBP) fast</a>. <em>Really</em> fast. Fast to the extent that sometimes, it was even <em>too</em> fast:</p><blockquote>The response from each search was coming back so quickly that the user wasn&#x2019;t sure</blockquote>]]></description><link>https://www.troyhunt.com/closer-to-the-edge-hyperscaling-have-i-been-pwned-with-cloudflare-workers-and-caching/</link><guid isPermaLink="false">66ee0ca5f5f67f00015b35ef</guid><category><![CDATA[Have I Been Pwned]]></category><category><![CDATA[Cloudflare]]></category><category><![CDATA[Azure]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Thu, 21 Nov 2024 07:35:59 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/11/2024-11-20_12-46-16.png"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/11/2024-11-20_12-46-16.png" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching"><p>I&apos;ve spent more than a decade now <a href="https://www.troyhunt.com/working-with-154-million-records-on/" rel="noreferrer">writing about how to make Have I Been Pwned (HIBP) fast</a>. <em>Really</em> fast. Fast to the extent that sometimes, it was even <em>too</em> fast:</p><blockquote>The response from each search was coming back so quickly that the user wasn&#x2019;t sure if it was legitimately checking subsequent addresses they entered or if there was a glitch.</blockquote><p>Over the years, the service has evolved to use emerging new techniques to not just make things fast, but make them scale more under load, increase availability and sometimes, even drive down cost. For example, 8 years ago now <a href="https://www.troyhunt.com/azure-functions-in-practice/" rel="noreferrer">I started rolling the most important services to Azure Functions, &quot;serverless&quot; code</a> that was no longer bound by logical machines and would just scale out to whatever volume of requests was thrown at it. And just last year, <a href="https://www.troyhunt.com/to-infinity-and-beyond-with-cloudflare-cache-reserve/" rel="noreferrer">I turned on Cloudflare cache reserve to ensure that all cachable objects <em>remained</em> cached</a>, even under conditions where they previously would have been evicted.</p><p>And now, the pi&#xE8;ce de r&#xE9;sistance, the coolest performance thing we&apos;ve done to date (and it is now &quot;we&quot;, <a href="https://www.troyhunt.com/have-i-been-pwned-employee-1-0-stefan-jokull-sigurdarson/" rel="noreferrer">thank you Stef&#xE1;n</a>): just caching the whole lot at Cloudflare. Everything. Every search you do... almost. Let me explain, firstly by way of some background:</p><p>When you hit any of the services on HIBP, the first place the traffic goes from your browser is to one of <a href="https://www.cloudflare.com/en-au/lp/ppc/overview-x/?ref=troyhunt.com" rel="noreferrer">Cloudflare&apos;s 330 &quot;edge nodes&quot;</a>:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/Artboard-1.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="1200" height="759" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/Artboard-1.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/Artboard-1.png 1000w, https://www.troyhunt.com/content/images/2024/11/Artboard-1.png 1200w" sizes="(min-width: 720px) 720px"></figure><p>As I sit here writing this on the Gold Coast on Australia&apos;s most eastern seaboard, any request I make to HIBP hits that edge node on the far right of the Aussie continent which is just up the road in Brisbane. The capital city of our great state of Queensland is just a short jet ski away, about 80km as the crow flies. Before now, every single time I searched HIBP from home, my request bytes would travel up the wire to Brisbane and then take a giant 12,000km trip to Seattle where the Azure Function in the West US Azure data would query the database before sending the response 12,000km back west to Cloudflare&apos;s edge node, then the final 80km down to my Surfers Paradise home. But what if it didn&apos;t have to be that way? What if that data was already sitting on the Cloudflare edge node in Brisbane? And the one in Paris, and the one in well, I&apos;m not even sure where all those blue dots are, but what if it was <em>everywhere?</em> Several awesome things would happen:</p><ol><li>You&apos;d get your response much faster as we&apos;ve just shaved off more than 99% of the distance the bytes need to travel.</li><li>The availability would massively improve as there are far fewer nodes for the traffic to traverse through, plus when a response is cached, we&apos;re no longer dependent on the Azure Function or underlying storage mechanism.</li><li>We&apos;d save on Azure Function execution costs, storage account hits and especially egress bandwidth (<a href="https://www.troyhunt.com/how-i-got-pwned-by-my-cloud-costs/" rel="noreferrer">which is <em>very</em> expensive</a>).</li></ol><p>In short, pushing data and processing &quot;closer to the edge&quot; benefits both our customers and ourselves. But how do you do that for 5 <em>billion</em> unique email addresses? (Note: As of today, HIBP reports over 14 billion breached accounts, the number of unique email addresses is lower as on average, each breached address has appeared in multiple breaches.) To answer this question, let&apos;s recap on how the data is queried:</p><ol><li><a href="https://haveibeenpwned.com/?ref=troyhunt.com" rel="noreferrer">Via the front page of the website</a>. This hits a &quot;unified search&quot; API which accepts an email address and <a href="https://www.troyhunt.com/fighting-api-bots-with-cloudflares-invisible-turnstile/" rel="noreferrer">uses Cloudflare&apos;s Turnstile to prohibit automated requests not originating from the browser</a>.</li><li><a href="https://haveibeenpwned.com/API/v3?ref=troyhunt.com#BreachesForAccount" rel="noreferrer">Via the public API</a>. This endpoint also takes an email address as input and then returns all breaches it appears in.</li><li><a href="https://www.troyhunt.com/were-baking-have-i-been-pwned-into-firefox-and-1password/" rel="noreferrer">Via the k-anonyity enterprise API</a>. This endpoint is used by a handful of large subscribers such as Mozilla and 1Password. Instead of searching by email address, it implements k-anonymity and searches by hash prefix.</li></ol><p>Let&apos;s delve into that last point further because it&apos;s the secret sauce to how this whole caching model works. In order to provide subscribers of this service with complete anonymity over the email addresses being searched for, the only data passed to the API is the first six characters of the SHA-1 hash of the full email address. If this sounds odd, read the blog post linked to in that last bullet point for full details. The important thing for now, though, is that it means there are a total of 16^6 different possible requests that can be made to the API, which is just over 16 million. Further, we can transform the first two use cases above into k-anonymity searches on the server side as it simply involved hashing the email address and taking those first six characters.</p><p>In summary, this means we can boil the entire searchable database of email addresses down to the following:</p><ol><li>AAAAAA</li><li>AAAAAB</li><li>AAAAAC</li><li>...about 16 million other values...</li><li>FFFFFD</li><li>FFFFFE</li><li>FFFFFF</li></ol><p>That&apos;s a large albeit finite list, and that&apos;s what we&apos;re now caching. So, here&apos;s what a search via email address looks like:</p><ol><li>Address to search: test@example.com</li><li>Full SHA-1 hash: 567159D622FFBB50B11B0EFD307BE358624A26EE</li><li>Six char prefix: 567159</li><li>API endpoint: https://[host]/[path]/567159</li><li>If hash prefix is cached, retrieve result from there</li><li>If hash prefix is <em>not</em> cached, query origin and save to cache</li><li>Return result to client</li></ol><p>K-anonymity searches obviously go straight to step four, skipping the first few steps as we already know the hash prefix. All of this happens in a Cloudflare worker, so it&apos;s &quot;code on the edge&quot; creating hashes, checking cache then retrieving from the origin where necessary. That code also takes care of handling parameters that transform queries, for example, <a href="https://haveibeenpwned.com/API/v3?ref=troyhunt.com#BreachesForAccount" rel="noreferrer">filtering by domain or truncating the response</a>. It&apos;s a beautiful, simple model that&apos;s all self-contained within a worker and a very simple origin API. But there&apos;s a catch - what happens when the data changes?</p><p>There are two events that can change cached data, one is simple and one is major:</p><ol><li>Someone <a href="https://haveibeenpwned.com/OptOut?ref=troyhunt.com" rel="noreferrer">opts out of public searchability</a> and their email address needs to be removed. That&apos;s easy, we just call an API at Cloudflare and flush a single hash prefix.</li><li>A new data breach is loaded and there are changes to a large number of hash prefixes. In this scenario, we flush the entire cache and start populating it again from scratch.</li></ol><p>The second point is kind of frustrating as we&apos;ve built up this beautiful collection of data all sitting close to the consumer where it&apos;s super fast to query, and then we nuke it all and go from scratch. The problem is it&apos;s either that or we selectively purge what could be many millions of individual hash prefixes, <a href="https://developers.cloudflare.com/api-next/resources/cache/?ref=troyhunt.com" rel="noreferrer">which you can&apos;t do</a>:</p><blockquote>For Zones on Enterprise plan, you may purge up to 500 URLs in one API call.</blockquote><p>And:</p><blockquote>Cache-Tag, host, and prefix purging each have a rate limit of 30,000 purge API calls in every 24 hour period.</blockquote><p>We&apos;re giving all this further thought, but it&apos;s a non-trivial problem and a full cache flush is both easy and (near) instantaneous.</p><p>Enough words, let&apos;s get to some pictures! Here&apos;s a typical week of queries to the enterprise k-anonymity API:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-9.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="1884" height="840" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image-9.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/image-9.png 1000w, https://www.troyhunt.com/content/images/size/w1600/2024/11/image-9.png 1600w, https://www.troyhunt.com/content/images/2024/11/image-9.png 1884w" sizes="(min-width: 720px) 720px"></figure><p>This is a <em>very</em> predictable pattern, largely due to one particular subscriber regularly querying their entire customer base each day. (Sidenote: most of our enterprise level subscribers use callbacks such that we push updates to them via webhook when a new breach impacts their customers.) That&apos;s the total volume of inbound requests, but the really interesting bit is the requests that hit the origin (blue) versus those served directly by Cloudflare (orange):</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-10.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="1884" height="860" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image-10.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/image-10.png 1000w, https://www.troyhunt.com/content/images/size/w1600/2024/11/image-10.png 1600w, https://www.troyhunt.com/content/images/2024/11/image-10.png 1884w" sizes="(min-width: 720px) 720px"></figure><p>Let&apos;s take the lowest blue data point towards the end of the graph as an example:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-12-1.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="305" height="189"></figure><p>At that time, 96% of requests were served from Cloudflare&apos;s edge. Awesome! But look at it only a little bit later:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-15-1.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="287" height="206"></figure><p>That&apos;s when I flushed cache for <a href="https://twitter.com/haveibeenpwned/status/1858730478226100721?ref=troyhunt.com" rel="noreferrer">the Finsure breach</a>, and 100% of traffic started being directed to the origin. (We&apos;re still seeing 14.24k hits via Cloudflare as, inevitably, some requests in that 1-hour block were to the same hash range and were served from cache.) It then took a whole 20 hours for the cache to repopulate to the extent that the hit:miss ratio returned to about 50:50:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-11-1.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="325" height="312"></figure><p>Look back towards the start of the graph and you can see the same pattern from when I loaded <a href="https://twitter.com/haveibeenpwned/status/1856638427325976584?ref=troyhunt.com" rel="noreferrer">the DemandScience breach</a>. This all does pretty funky things to our origin API:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-13.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="1898" height="733" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image-13.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/image-13.png 1000w, https://www.troyhunt.com/content/images/size/w1600/2024/11/image-13.png 1600w, https://www.troyhunt.com/content/images/2024/11/image-13.png 1898w" sizes="(min-width: 720px) 720px"></figure><p>That last sudden increase is more than a 30x traffic increase in an instant! If we hadn&apos;t been careful about how we managed the origin infrastructure, we would have built a literal DDoS machine. Stef&#xE1;n will write later about how we manage the underlying database to ensure this doesn&apos;t happen, but even still, whilst we&apos;re dealing with the cyclical support patterns seen in that first graph above, I know that the best time to load a breach is later in the Aussie afternoon when the traffic is a third of what it is first thing in the morning. This helps smooth out the rate of requests to the origin such that by the time the traffic is ramping up, more of the content can be returned directly from Cloudflare. You can see that in the graphs above; that big peaky block towards the end of the last graph is pretty steady, even though the inbound traffic the first graph over the same period of time increases quite significantly. It&apos;s like we&apos;re trying to race the increasing inbound traffic by building ourselves up a bugger in cache.</p><p>Here&apos;s another angle to this whole thing: now more than ever, loading a data breach costs us money. For example, by the end of the graphs above, we were cruising along at a 50% cache hit ratio, which meant we were only paying for half as many of the Azure Function executions, egress bandwidth, and underlying SQL database as we would have been otherwise. Flushing cache and suddenly sending all the traffic to the origin doubles our cost. Waiting until we&apos;re back at 90% cache it ratio literally increases those costs 10x when we flush. If I were to be completely financially ruthless about it, I would need to either load fewer breaches or bulk them together such that a cache flush is only ejecting a small amount of data anyway, <a href="https://twitter.com/haveibeenpwned/?ref=troyhunt.com" rel="noreferrer">but clearly, that&apos;s not what I&apos;ve been doing</a> &#x1F604;</p><p>There&apos;s just one remaining fly in the ointment...</p><p>Of those three methods of querying email addresses, the first is a no-brainer: searches from the front page of the website hit a Cloudflare Worker where it validates the Turnstile token and returns a result. Easy. However, the second two models (the public and enterprise APIs) have the added burden of validating the API key against Azure API Management (APIM), and the only place that exists is in the West US origin service. What this means for those endpoints is that before we can return search results from a location that may be just a short jet ski ride away, we need to go all the way to the other side of the world to validate the key and ensure the request is within the rate limit. We do this in the lightest possible way with barely any data transiting the request to check the key, plus we do it in async with pulling the data back from the origin service if it isn&apos;t already in cache. In other words, we&apos;re as efficient as humanly possible, but we still cop a massive latency burden.</p><p>Doing API management at the origin is super frustrating, but there are really only two alternatives. The first is to distribute our APIM instance to other Azure data centres, and the problem with that is <a href="https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-deploy-multi-region?ref=troyhunt.com" rel="noreferrer">we need a Premium instance of the product</a>. We presently run on a Basic instance, which means <a href="https://azure.microsoft.com/en-au/pricing/details/api-management/?ref=troyhunt.com" rel="noreferrer">we&apos;re talking about a 19x increase in price just to unlock that ability</a>. But that&apos;s just to go Premium; we then need at least one more instance somewhere else for this to make sense, which means we&apos;re talking about a 28x increase. And every region we add amplifies that even further. It&apos;s a financial non-starter.</p><p>The second option is for Cloudflare to build an API management product. <em>This</em> is the killer piece of this puzzle, as it would put all the checks and balances within the one edge node. It&apos;s a suggestion I&apos;ve put forward on many occasions now, and who knows, maybe it&apos;s already in the works, but it&apos;s a suggestion I make out of a love of what the company does and a desire to go all-in on having them control the flow of our traffic. <a href="https://www.troyhunt.com/weekly-update-422/#comment-6595482405" rel="noreferrer">I did get a suggestion this week about rolling what is effectively a &quot;poor man&apos;s API management&quot; within workers</a>, and it&apos;s a really cool suggestion, but it gets hard when people change plans or when we want to apply quotas to APIs rather than rate limits. So c&apos;mon Cloudflare, let&apos;s make this happen!</p><p>Finally, just one more stat on how powerful serving content directly from the edge is: I shared this stat last month for Pwned Passwords which serves well over 99% of requests from Cloudflare&apos;s cache reserve:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">There it is - we&#x2019;ve now passed 10,000,000,000 requests to Pwned Password in 30 days &#x1F62E; This is made possible with <a href="https://twitter.com/Cloudflare?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">@Cloudflare</a>&#x2019;s support, massively edge caching the data to make it super fast and highly available for everyone. <a href="https://t.co/kw3C9gsHmB?ref=troyhunt.com">pic.twitter.com/kw3C9gsHmB</a></p>&#x2014; Troy Hunt (@troyhunt) <a href="https://twitter.com/troyhunt/status/1842650209475801598?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">October 5, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>That&apos;s about 3,900 requests <em>per second</em>, on average, non-stop for 30 days. It&apos;s obviously way more than that at peak; just a quick glance through the last month and it looks like about 17k requests per second in a one-minute period a few weeks ago:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-8.png" class="kg-image" alt="Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching" loading="lazy" width="1850" height="856" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image-8.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/image-8.png 1000w, https://www.troyhunt.com/content/images/size/w1600/2024/11/image-8.png 1600w, https://www.troyhunt.com/content/images/2024/11/image-8.png 1850w" sizes="(min-width: 720px) 720px"></figure><p>But it doesn&apos;t matter how high it is, because I never even think about it. I set up the worker, I turned on cache reserve, and that&apos;s it &#x1F60E;</p><p>I hope you&apos;ve enjoyed this post, <a href="https://youtube.com/live/6CqqgqhopTo?feature=share&amp;ref=troyhunt.com" rel="noreferrer">Stef&#xE1;n and I will be doing a live stream on this topic at 06:00 AEST Friday morning</a> for this week&apos;s regular video update, and it&apos;ll be available for replay immediately after. It&apos;s also embedded here for convenience:</p>
<!--kg-card-begin: html-->
<iframe width="100%" height="480" src="https://www.youtube.com/embed/6CqqgqhopTo" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Weekly Update 426]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>I have absolutely no problem at all talking about the code I&apos;ve screwed up. Perhaps that&apos;s partly because after 3 decades of writing software (and doing some meaningful stuff along the way), I&apos;m not particularly concerned about showing my weaknesses. And this week, I</p>]]></description><link>https://www.troyhunt.com/weekly-update-426/</link><guid isPermaLink="false">673951881102370001150083</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sun, 17 Nov 2024 02:39:54 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/11/Splash-Template@1x_1-1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/11/Splash-Template@1x_1-1.jpg" alt="Weekly Update 426"><p>I have absolutely no problem at all talking about the code I&apos;ve screwed up. Perhaps that&apos;s partly because after 3 decades of writing software (and doing some meaningful stuff along the way), I&apos;m not particularly concerned about showing my weaknesses. And this week, I screwed up a bunch of stuff; database queries that weren&apos;t resilient to SQL database scale changes, partially completed breach notifications I didn&apos;t notice until it was too late to easily fix, and some queries that performed so badly they crashed the entire breach notification process after loading the massive DemandScience incident. Fortunately, none of them had any impact of note, we fixed them all and re-ran processes, and now we&apos;re more resilient than ever &#x1F604;</p><p>Oh - and if you like this style of content, this coming Friday, Stefan and I will do a joint live stream on all sorts of other bits about how now HIBP runs.</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 426"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 426"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 426"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 426"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/7stL_Xs3e6k" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li><li><a href="https://twitter.com/troyhunt/status/1856940146169434556?ref=troyhunt.com" rel="noreferrer">Elon Musk is right</a> (I hate cookie warnings, but I&apos;m entertained by people losing their minds &quot;because Elon&quot;)</li><li><a href="https://au.pcmag.com/security/107921/hacker-may-have-breached-hot-topic-stolen-data-on-millions?ref=troyhunt.com" rel="noreferrer">The Hot Topic breach went into HIBP</a> (that&apos;s another 57M email addresses right there)</li><li><a href="https://www.troyhunt.com/inside-the-demandscience-by-pure-incubation-data-breach/" rel="noreferrer">There are also now 122M more records in HIBP courtesy of the DemandScience breach</a> (it&apos;s publicly aggregated data, but it&apos;s still a breach)</li></ol>]]></content:encoded></item><item><title><![CDATA[Inside the DemandScience by Pure Incubation Data Breach]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Apparently, before a child reaches the age of 13, <a href="https://humanrights.gov.au/about/news/opinions/protect-children-data-surveillance?ref=troyhunt.com" rel="noreferrer">advertisers will have gathered more 72 <em>million</em> data points on them</a>. I knew I&apos;d seen a metric about this sometime recently, so I went looking for &quot;7,000&quot;, which perfectly illustrates how unaware we are of the</p>]]></description><link>https://www.troyhunt.com/inside-the-demandscience-by-pure-incubation-data-breach/</link><guid isPermaLink="false">67314e7deb0e870001376084</guid><category><![CDATA[Have I Been Pwned]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Wed, 13 Nov 2024 09:59:27 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/11/7b1d8fe9-cf8c-4aa9-9dbd-b693a9068266.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/11/7b1d8fe9-cf8c-4aa9-9dbd-b693a9068266.jpg" alt="Inside the DemandScience by Pure Incubation Data Breach"><p>Apparently, before a child reaches the age of 13, <a href="https://humanrights.gov.au/about/news/opinions/protect-children-data-surveillance?ref=troyhunt.com" rel="noreferrer">advertisers will have gathered more 72 <em>million</em> data points on them</a>. I knew I&apos;d seen a metric about this sometime recently, so I went looking for &quot;7,000&quot;, which perfectly illustrates how unaware we are of the extent of data collection on all of us. I started <a href="https://haveibeenpwned.com/?ref=troyhunt.com" rel="noreferrer">Have I Been Pwned</a> (HIBP) in the first place because I was surprised at where my data had turned up in breaches. 11 years and 14 billion breached records later, I&apos;m <em>still</em> surprised!</p><p>Jason (not his real name) was also recently surprised at where his data had appeared. He found it in a breach of a service called &quot;Pure Incubation&quot;, a company whose records had appeared on a popular hacking forum earlier this year:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/DataLeak?src=hash&amp;ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">#DataLeak</a> Alert &#x26A0;&#xFE0F;&#x26A0;&#xFE0F;&#x26A0;&#xFE0F;<br><br>&#x1F6A8;Over 183 Million Pure Incubation Ventures Records for Sale &#x1F6A8;<br><br>183,754,481 records belonging to Pure Incubation Ventures (<a href="https://t.co/m3sjzAMlXN?ref=troyhunt.com">https://t.co/m3sjzAMlXN</a>) have been put up for sale on a hacking forum for $6,000 negotiable. <br><br>Additionally, the threat actor with&#x2026; <a href="https://t.co/tqsyb8plPG?ref=troyhunt.com">pic.twitter.com/tqsyb8plPG</a></p>&#x2014; HackManac (@H4ckManac) <a href="https://twitter.com/H4ckManac/status/1762838131055702398?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">February 28, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>When Jason found his email address and other info in this corpus, he had the same question so many others do when their data turns up in a place they&apos;ve never heard of before - how? <em>Why?!</em> So, he asked them:</p><blockquote>I seem to have found my email in your data breach. I am interested in finding how my information ended up in your database.</blockquote><p>To their credit, he got a very comprehensive answer, which I&apos;ve included below:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://www.troyhunt.com/content/images/2024/11/image.png" class="kg-image" alt="Inside the DemandScience by Pure Incubation Data Breach" loading="lazy" width="1310" height="3384" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image.png 600w, https://www.troyhunt.com/content/images/size/w1000/2024/11/image.png 1000w, https://www.troyhunt.com/content/images/2024/11/image.png 1310w"></figure><p>Well, that answers the &quot;how&quot; part of the equation; they&apos;ve aggregated data from public sources. And the &quot;why&quot; part? It&apos;s the old &quot;data is the new oil&quot; analogy that recognises how valuable our info is, and as such, there&apos;s a market for it. There are lots of terms used to describe what DemandScience does, including &quot;B2B demand generation&quot;, &quot;buyer intelligence solutions provider&quot;, &quot;empowering technology companies to accelerate ROI&quot;, &quot;supercharging pipelines&quot; and &quot;account intelligence&quot;. Or, to put it in a more lay-person-friendly fashion, they sell data on people.</p><p>DemandScience is what we refer to as a &quot;data aggregator&quot; in that they combine identity data from multiple locations, bundle it up, and then sell it. Occasionally, data aggregators end up having sizeable data breaches; before today, HIBP already contained <a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com#Adapt" rel="noreferrer">Adapt</a> (9M records), <a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com#DataAndLeads" rel="noreferrer">Data &amp; Leads</a> (44M records), <a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com#Exactis" rel="noreferrer">Exactis</a> (132M records), <a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com#Factual" rel="noreferrer">Factual</a> (2M records), and <a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com#YouveBeenScraped" rel="noreferrer">You&apos;ve Been Scraped</a> (66M records). According to DemandScience, &quot;none of our current operational systems were exploited&quot;, yet simultaneously, &quot;the leaked data originated from a system that has been decommissioned&quot;. So, it&apos;s a breach of an old system.</p><p>Does it matter? I mean, if it&apos;s just public data, should people care? Jason cared, at least enough to make the original enquiry and for DemandScience to look him up and realise he&apos;s not in their <em>current</em> database. Still, he existed in the breached one (I later sent Jason his record from the breach, and he confirmed the accuracy). As I often do in these cases, I reached out to a bunch of recent HIBP subscribers in the breach and asked them three simple questions:</p><ol><li>Is the data about you accurate and if not, which bits are wrong?</li><li>Is this data you would consider to be in the public domain already?</li><li>Would you expect to be notified about your data being used in this fashion, and consequently appearing a breach?</li></ol><p>The answers were all the same: the data is accurate, it&apos;s already in the public domain, and people aren&apos;t too concerned about it appearing in this breach. Well that was easy &#x1F642; However...</p><p>There are two nuances that aren&apos;t captured here, and the first one is that this <em>is </em>valuable data, that&apos;s why DemandScience sells it! It comes back to that &quot;new oil&quot; analogy and if you have enough of it, you can charge good money for it. Companies typically use data such as this to do precisely the sort of catchphrasey stuff the company talks about, primarily around maximising revenue from their customers by understanding them better.</p><p>The second nuance is that whilst this data may already be in the public domain, did the owners of it expect it to be used in this fashion? For example, if you publish your details in a business directory, is your expectation that this info may then be sold to other companies to help them upsell you on their products? Probably not. And if, like many of the records in the data, someone&apos;s row is accompanied by their LinkedIn profile, would they expect that data to matched and sold? I suggest the responses would likely be split here, and that in itself is an important observation: how we view the sensitivity of our data and the impact of it being exposed (whether personal or business) is extremely personal. Some people take the view of &quot;I have nothing to hide&quot;, whilst others become irate if even just their email address is exposed.</p><p>Whilst considering how to add more insights to this blog post, I thought I&apos;d do a quick check on just one more email address:</p>
<!--kg-card-begin: html-->
<pre><code>&quot;54543060&quot;,,&quot;0&quot;,&quot;TROY&quot;,&quot;HUNT&quot;,&quot;PO BOX 57&quot;,,&quot;WEST RYDE&quot;,,,&quot;AU&quot;,&quot;61298503333&quot;,,,,&quot;troy.hunt@pfizer.com&quot;,&quot;pfizer.com&quot;,&quot;PFIZER INC&quot;,,&quot;250-499&quot;,&quot;$50 - 99 Million&quot;,&quot;Healthcare, Pharmaceuticals and Biotech&quot;,&quot;VICE PRESIDENT OF INFORMATION TECHNOLOGY&quot;,&quot;VP Level&quot;,&quot;2834&quot;,,&quot;Senior Management (SVP/GM/Director)&quot;,&quot;IT&quot;,,&quot;1&quot;,&quot;GemsTarget INTL&quot;,&quot;GEMSTARGET_INTL_648K_10.17.18&quot;,,,,,,,,,&quot;18/10/2018 05:12:39&quot;,&quot;5/10/2021 16:47:56&quot;,&quot;PFIZER.COM&quot;,,,,,&quot;IT Management General&quot;,&quot;Information Technology&quot;
</code></pre>
<!--kg-card-end: html-->
<p>I&apos;ll be entirely transparent and honest here - my exact words after finding this were &quot;<em>motherfucker!</em>&quot; True story, told uncensored here because I want to impress on the audience how <em>I</em> feel when my data turns up somewhere publicly. And I do feel like it&apos;s &quot;my&quot; data; it&apos;s certainly <em>my</em> name and even though it&apos;s my old Pfizer email address <a href="https://www.troyhunt.com/today-marks-two-important-milestones/" rel="noreferrer">I&apos;ve not used for almost a decade now</a>, that also has my name in it. <em>My</em> job title is also there... and it&apos;s completely wrong! I never had a VP-level role, even though the other data around my tech role is at least in the vicinity of being correct. But other than the initial shock of finding myself in yet another data breach, personally, I&apos;m in the same boat as the HIBP subscribers I contacted, and this doesn&apos;t bother me too much. But I also agree with the following responses I received to my third question:</p><blockquote>I think it is useful to be notified of such breaches, even if it is just to confirm no sensitive data has been compromised. As I said, our IT department recently notified me that some of my data was leaked and a pre-emptive password reset was enforced as they didn&apos;t know what was leaked.&#xA0;</blockquote><blockquote>It would be good to see it as an informational notification in case there&apos;s an increase in attack attempts against my email address.</blockquote><blockquote>I would like to opt-out of here to reduce the SPAM and Phishing emails.</blockquote><p>That last one seems perfectly reasonable, and fortunately, DemandScience does have a link on their website to <a href="https://demandscience.com/privacy-policy-ccpa/?ref=troyhunt.com" rel="noreferrer">Do Not Sell My Information</a>:</p><figure class="kg-card kg-image-card"><img src="https://www.troyhunt.com/content/images/2024/11/image-1.png" class="kg-image" alt="Inside the DemandScience by Pure Incubation Data Breach" loading="lazy" width="694" height="210" srcset="https://www.troyhunt.com/content/images/size/w600/2024/11/image-1.png 600w, https://www.troyhunt.com/content/images/2024/11/image-1.png 694w"></figure><p>Dammit! If, like me, you&apos;re part of the 99.5% of the world that doesn&apos;t live in California, then apparently this form isn&apos;t for you. However, they do list <a href="mailto:dataprivacy@demandscience.com">dataprivacy@demandscience.com</a> on that page, which is the same address Jason was communicating with above. Chances are, if you want to remove your data then that&apos;s where to start.</p><p>There were almost 122M unique email addresses in this corpus and those have now been added to HIBP. Treat this as informational; I suspect that for most people, it won&apos;t bother them, whilst others will ask for their data not to be sold (regardless of where they live in the world). But in all likelihood, there will be more than a handful of domain subscribers who take issue with that volume of people data sitting there in one corpus easily downloadable via a clear web hacking forum. For example, mine was just one of many tens of thousands of Pfizer email addresses, and that sort of thing is going to raise the ire of some folks in corporate infosec capacities.</p><p>One last comment: there was a story published earlier this year titled <a href="https://cybelangel.com/pure-incubation-ventures-leak-threat-note/?ref=troyhunt.com" rel="noreferrer">Our Investigation of the Pure Incubation Ventures Leak</a> and in there they refer to &quot;encrypted passwords&quot; being present in the data. Many of the files do contain a column with bcrypt hashes (which is definitely <em>not </em>encryption), but given the way in which this data was collated, I can see no evidence whatsoever that these are password hashes. As such, I haven&apos;t listed &quot;Passwords&quot; as one of the compromised data classes in HIBP and you find yourself in this breach, I wouldn&apos;t be at all worried about this.</p>]]></content:encoded></item><item><title><![CDATA[Weekly Update 425]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>This was a much longer than usual update, largely due to the amount of time spent discussing the Earth 2 incident. As I said in the video (many times!), the amount of attention this has garnered from both Earth 2 users and the company itself is incommensurate with the impact</p>]]></description><link>https://www.troyhunt.com/weekly-update-425/</link><guid isPermaLink="false">672f05e2eb0e87000137604e</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sat, 09 Nov 2024 07:15:01 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/11/Splash-Template.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/11/Splash-Template.jpg" alt="Weekly Update 425"><p>This was a much longer than usual update, largely due to the amount of time spent discussing the Earth 2 incident. As I said in the video (many times!), the amount of attention this has garnered from both Earth 2 users and the company itself is incommensurate with the impact of the incident itself. It&apos;s a nothing-burger. Email addresses and usernames, that&apos;s it, and of course, their association with the service, which may lead to some very targeted spam or phishing attempts. It&apos;s still a breach by any reasonable definition of the term, but it should have been succinctly summarised and disclosed to impacted parties with everyone moving on with more important things in life a few moments later. And that&apos;s exactly what I&apos;m going to do right now &#x1F60A;</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 425"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 425"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 425"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 425"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/KLfJeUZy0Zo" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://report-uri.com/?src=troyhunt.com&amp;ref=troyhunt.com" rel="noopener">Sponsored by:&#xA0;Report URI: Guarding you from rogue JavaScript! Don&#x2019;t get pwned; get real-time alerts &amp; prevent breaches #SecureYourSite</a></li><li><a href="https://twitter.com/earth2io/status/1854445855279108259?ref=troyhunt.com" rel="noreferrer">Speaking of giving a nothing-burger incident more attention than it deserves, the Earth 2 Twitter screed hasn&apos;t done them any favours</a> (something something Streisand effect)</li><li><a href="https://www.troyhunt.com/data-breach-disclosure-101-how-to-succeed-after-youve-failed/" rel="noreferrer">Data breach disclosure 101: How to succeed after you&apos;ve failed</a> (7 years on, this is still the guidance I give breached orgs)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 424]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>I have really clear memories of listening to the Stack Overflow podcast in the late 2000&apos;s and hearing Jeff and Joel talk about the various challenges they were facing and the things they did to overcome them. I just suddenly thought of that when realising how long this</p>]]></description><link>https://www.troyhunt.com/weekly-update-424/</link><guid isPermaLink="false">67271c82c485880001d617c0</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sun, 03 Nov 2024 07:33:01 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/11/Splash-Template@1x_1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/11/Splash-Template@1x_1.jpg" alt="Weekly Update 424"><p>I have really clear memories of listening to the Stack Overflow podcast in the late 2000&apos;s and hearing Jeff and Joel talk about the various challenges they were facing and the things they did to overcome them. I just suddenly thought of that when realising how long this week&apos;s video went for with no real plan other than to talk about our HIBP backlog. People seem to love this in the same way I loved listening to the guys a decade and a half ago. I&apos;ll do one of these with Stefan as well over the course of this month, let us know what you&apos;d like to hear about &#x1F60A;</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 424"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 424"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 424"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 424"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/mAZBwBfwq28" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 423]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Firstly, my apologies for the minute and a bit of echo at the start of this video, OBS had somehow magically decided to start recording both the primary mic and the one built into my camera. Easy fix, moving on...</p><p>During the livestream, I was perplexed as to why the</p>]]></description><link>https://www.troyhunt.com/weekly-update-423/</link><guid isPermaLink="false">671d6c05e1de33000199250c</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sat, 26 Oct 2024 22:41:54 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/10/Splash-Template-2.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/10/Splash-Template-2.jpg" alt="Weekly Update 423"><p>Firstly, my apologies for the minute and a bit of echo at the start of this video, OBS had somehow magically decided to start recording both the primary mic and the one built into my camera. Easy fix, moving on...</p><p>During the livestream, I was perplexed as to why the HIBP DB was suddenly maxing out. Turns out that this aligned with <em>dropping</em> a constraint on the table of domains which appears to have caused the table to reindex and massively slow down the queries for breached email addresses. Further, we simultaneously started having problems related to MAXDOP (the maximum degree of parallelism for the stored procedure running the query), which was only resolved after we forced it to <em>not</em> run on multiple CPUs by setting it to 1 (weirdly, 2 is also fine but 3 or higher completely killed perf). Fun times, running a service like this.</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 423"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 423"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 423"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 423"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/_wKyxd_RS5U" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li><li><a href="https://x.com/troyhunt/status/1847919775302750422?ref=troyhunt.com" rel="noreferrer">The Internet Archive&apos;s Zendesk was accessed and replies sent to a bunch of tickets</a> (it&apos;s just gone from bad to bad for them, and still no disclosure to individuals...)</li><li><a href="https://x.com/troyhunt/status/1849348747047706667?ref=troyhunt.com" rel="noreferrer">Basically everyone thinks unauthorised access should result in breach notifications being sent to impact individuals</a> (I mean, it&apos;s a predictable outcome, but there were still some wacky arguments against it)</li><li><a href="https://x.com/troyhunt/status/1849905006293680518?ref=troyhunt.com" rel="noreferrer">I&apos;m feeling pretty damn exasperated about the lack of breach disclosure lately</a> (multiple incidents this year have included my own personal data, and I&apos;m pissed)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 422]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Apparently, Stefan and I trying to work stuff out in real time about how to build more efficient features in HIBP is entertaining watching! If I was to guess, I think it&apos;s just seeing people work through the logic of how things work and how we might be</p>]]></description><link>https://www.troyhunt.com/weekly-update-422/</link><guid isPermaLink="false">6715bc1f2b6b0900014a9d06</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Mon, 21 Oct 2024 02:43:24 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/10/Splash-Template-1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/10/Splash-Template-1.jpg" alt="Weekly Update 422"><p>Apparently, Stefan and I trying to work stuff out in real time about how to build more efficient features in HIBP is entertaining watching! If I was to guess, I think it&apos;s just seeing people work through the logic of how things work and how we might be able to approach things differently, and doing it in real time very candidly. I&apos;m totally happy doing that, and the comments from the audience did give us more good food for thought too. I&apos;ll try and line up a session just like that before the end of the year, we&apos;ve certainly got no shortage of material!</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 422"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 422"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 422"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 422"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/CqLbpQBV_Yk" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://report-uri.com/?src=troyhunt.com&amp;ref=troyhunt.com" rel="noopener">Sponsored by:&#xA0;Report URI: Guarding you from rogue JavaScript! Don&#x2019;t get pwned; get real-time alerts &amp; prevent breaches #SecureYourSite</a></li><li><a href="https://x.com/troyhunt/status/1846277150393209086?ref=troyhunt.com" rel="noreferrer">If you read the BBC, I hacked Internet Archive</a> (this was followed by much apologising, but it was still pretty damn sloppy writing)</li><li><a href="https://www.theatlantic.com/technology/archive/2024/10/muah-ai-hack-child-abuse/680300/?gift=jcu4mMZ6fZ-0NpAhL-dTk44UUM82ENp-59Fu0mHytOI&amp;utm_source=copy-link&amp;utm_medium=social&amp;utm_campaign=share" rel="noreferrer">Muah.AI and their users continue to push back against controls to limit child abuse requests</a> (and when they talk about implementing controls, the users get upset)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 421]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>It wasn&apos;t easy talking about the Muah.AI data breach. It&apos;s not just the rampant child sexual abuse material throughout the system (or at least requests for the AI to generate images of it), it&apos;s the reactions of people to it. The tweets justifying</p>]]></description><link>https://www.troyhunt.com/weekly-update-421/</link><guid isPermaLink="false">670c3ec1ab8c520001830127</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Mon, 14 Oct 2024 00:17:35 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/10/Splash-Template@1x_1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/10/Splash-Template@1x_1.jpg" alt="Weekly Update 421"><p>It wasn&apos;t easy talking about the Muah.AI data breach. It&apos;s not just the rampant child sexual abuse material throughout the system (or at least requests for the AI to generate images of it), it&apos;s the reactions of people to it. The tweets justifying it on the basis of there being noo &quot;actual&quot; abuse, the characterisation of this being akin to &quot;merely thoughts in someone&apos;s head&quot;, and following my recording of this video, the backlash from their users about any attempts to curb creating sexual image of young children being &quot;too much&quot;:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Which is making customers unhappy - &quot;any censorship is too much&quot;: <a href="https://t.co/fzfrFdKL8w?ref=troyhunt.com">pic.twitter.com/fzfrFdKL8w</a></p>&#x2014; Troy Hunt (@troyhunt) <a href="https://twitter.com/troyhunt/status/1844910617230241986?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">October 12, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>The law will catch up with this (and anyone in that breach creating this sort of material should be feel very bloody nervous right now), <a href="https://legiscan.com/CA/text/AB1831/2023?ref=troyhunt.com" rel="noreferrer">and the writing is already on the wall for people generating CSAM via AI</a>:</p><blockquote>This bill would expand the scope of certain of these provisions to include matter that is digitally altered or generated by the use of artificial intelligence, as such matter is defined.</blockquote><p>The bill can&apos;t pass soon enough.</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 421"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 421"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 421"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 421"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/XexWHnEh0Z0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://report-uri.com/?src=troyhunt.com&amp;ref=troyhunt.com" rel="noopener">Sponsored by:&#xA0;Report URI: Guarding you from rogue JavaScript! Don&#x2019;t get pwned; get real-time alerts &amp; prevent breaches #SecureYourSite</a></li><li><a href="https://x.com/troyhunt/status/1843788319785939422?ref=troyhunt.com" rel="noreferrer">The Muah.AI data breach revealed an enormous volume of requests for CSAM material</a> (you can hear me struggling to even properly explain this, it&apos;s just hard to find the words)</li><li><a href="https://x.com/troyhunt/status/1844136762727448644?ref=troyhunt.com" rel="noreferrer">Internet Archive was breached, defaced and DDoS&apos;d</a> (4 days on from that tweet thread, they&apos;re still offline)</li><li><a href="https://www.pcmag.com/news/company-behind-major-social-security-number-leak-files-for-bankruptcy?ref=troyhunt.com" rel="noreferrer">National Public Data - the service that siphoned up hundreds of millions of social security numbers then exposed them all in a breach - is dead</a> (now, how many more of these are left?)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 420]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Ok, the scenery here is <em>amazing</em>, but the real story is data breach victim notification. Charlotte and I wanted to do this one together today and chat about some of the things we&apos;d been hearing from government and law enforcement on our travels, and the victim notification angle</p>]]></description><link>https://www.troyhunt.com/weekly-update-420/</link><guid isPermaLink="false">670198550b7d4d000170af63</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sun, 06 Oct 2024 01:36:37 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/10/Splash-Template.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/10/Splash-Template.jpg" alt="Weekly Update 420"><p>Ok, the scenery here is <em>amazing</em>, but the real story is data breach victim notification. Charlotte and I wanted to do this one together today and chat about some of the things we&apos;d been hearing from government and law enforcement on our travels, and the victim notification angle featured heavily. She reminded me of the trouble even the police have when reaching out to organisations about security issues, often being confronted by lawyers or other company representatives worried about legal reprisals. It&apos;s nuts, and if it&apos;s hard for the law to get someone&apos;s attention, what hope is there for us?!</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 420"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 420"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 420"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 420"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/cVKq-fnRoj8" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li><li><a href="https://www.troyhunt.com/pwned-or-bot/" rel="noreferrer">We mentioned &quot;Pwned or Bot&quot;, the use of HIBP to help establish the legitimacy of email addresses</a> (this is such a cool use case we&apos;d never even considered until hearing it)</li><li><a href="https://www.youtube.com/watch?v=UIoGmA4VwEk&amp;ref=troyhunt.com" rel="noreferrer">I mentioned the NCA&apos;s Cyber Choices program tackling youth cybercrime</a> (6 years on, this is still <em>such</em> an awesome video!)</li><li><a href="https://www.facebook.com/troyahunt" rel="noreferrer">I&apos;m sharing a lot more pics from travels on Facebook</a> (there are some rather epic shots there from the current trip)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 419]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>It&apos;s not a green screen! It&apos;s just a weird a weird hotel room in Pittsburgh, but it did make for a cool backdrop for this week&apos;s video. We were there visiting our FBI friends after coming from Washington DC and a visit to CISA,</p>]]></description><link>https://www.troyhunt.com/weekly-update-419/</link><guid isPermaLink="false">66f80c55691e6c000104136a</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sat, 28 Sep 2024 21:42:39 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/Splash-Template--2-@1x_1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/Splash-Template--2-@1x_1.jpg" alt="Weekly Update 419"><p>It&apos;s not a green screen! It&apos;s just a weird a weird hotel room in Pittsburgh, but it did make for a cool backdrop for this week&apos;s video. We were there visiting our FBI friends after coming from Washington DC and a visit to CISA, the &quot;America&apos;s Cyber Defence Agency&quot;. This week, I&apos;m talking about those visits, some really cool new Cloudflare features, and our ongoing effort to push more and more of HIBP&apos;s data to Cloudflare&apos;s edges. Enjoy!</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 419"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 419"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 419"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 419"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/yH4dUAn1L0c" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://lithnet.io/products/access-manager?ref=troyhunt.com" rel="noopener">Sponsored by:&#xA0;Lithnet Access Manager. Level up your lateral movement defence with RapidLAPS, the passwordless LAPS experience.</a></li><li><a href="https://developers.cloudflare.com/waf/detections/leaked-credentials/?ref=troyhunt.com" rel="noreferrer">Cloudflare has added an awesome leaked credential service that uses Pwned Passwords as one of the data sources</a> (the easier checking known bad passwords becomes, the more effective blocking them becomes)</li><li><a href="https://twitter.com/troyhunt/status/1839081665001586740?ref=troyhunt.com" rel="noreferrer">And they&apos;ve also added a very cool UI-based config for setting up a security.txt file</a> (and again, the easier this becomes...)</li></ol>]]></content:encoded></item><item><title><![CDATA[The Data Breach Disclosure Conundrum]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>The conundrum I refer to in the title of this post is the one faced by a breached organisation: disclose or suppress? And let me be even more specific: should they disclose to <em>impacted individuals,</em> or simply never let them know? I&apos;m writing this after many recent such</p>]]></description><link>https://www.troyhunt.com/the-data-breach-disclosure-conundrum/</link><guid isPermaLink="false">66e7a8471c6d8300014b51b6</guid><category><![CDATA[Security]]></category><category><![CDATA[Have I Been Pwned]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Fri, 27 Sep 2024 18:27:44 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/ezgif-5-d90db32a91.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/ezgif-5-d90db32a91.jpg" alt="The Data Breach Disclosure Conundrum"><p>The conundrum I refer to in the title of this post is the one faced by a breached organisation: disclose or suppress? And let me be even more specific: should they disclose to <em>impacted individuals,</em> or simply never let them know? I&apos;m writing this after many recent such discussions with breached organisations where I&apos;ve found myself wishing I had this blog post to point them to, so, here it is.</p><p>Let&apos;s start with tackling what is often a fundamental misunderstanding about disclosure obligations, and that is <em>the legal necessity to disclose</em>. Now, as soon as we start talking about legal things, we run into the problem of it being different all over the world, so I&apos;ll pick a few examples to illustrate the point. As it relates to the UK GDPR, there are two essential concepts to understand, and they&apos;re the first two bulleted items in <a href="https://ico.org.uk/for-organisations/report-a-breach/personal-data-breach/personal-data-breaches-a-guide/?ref=troyhunt.com" rel="noreferrer">their personal data breaches guide</a>:</p><blockquote>The UK&#xA0;GDPR introduces a duty on all organisations to report certain personal data breaches to the relevant supervisory authority. You must do this within 72 hours of becoming aware of the breach, where feasible.</blockquote><blockquote>If the breach is likely to result in a high risk of adversely affecting individuals&#x2019; rights and freedoms, you must also inform those individuals without undue delay.</blockquote><p>On the first point, &quot;certain&quot; data breaches must be reported to &quot;the relevant supervisory authority&quot; within 72 hours of learning about it. When we talk about disclosure, often (not just under GDPR), that term refers to the responsibility to report it to the <em>regulator</em>, not the <em>individuals</em>. And even then, read down a bit, and you&apos;ll see the carveout of the incident needing to expose personal data that is <em>likely </em>to present a &quot;risk to people&#x2019;s rights and freedoms&quot;.</p><p>This brings me to the second point that has this massive carveout as it relates to disclosing to the individuals, namely that the breach has to present &quot;a high risk of adversely affecting individuals&#x2019; rights and freedoms&quot;. <a href="https://www.oaic.gov.au/privacy/your-privacy-rights/data-breaches/what-is-a-notifiable-data-breach?ref=troyhunt.com" rel="noreferrer">We have a similar carveout in Australia</a> where the obligation to report to individuals is predicated on the likelihood of causing &quot;serious harm&quot;.</p><p>This leaves us with the fact that in many data breach cases, organisations may decide they don&apos;t need to notify individuals whose personal information they&apos;ve inadvertently disclosed. Let me give you an example from smack bang in the middle of GDPR territory: Deezer, the French streaming media service that went into HIBP early January last year:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">New breach: Deezer had 229M unique email addresses breached from a 2019 backup and shared online in late 2022. Data included names, IPs, DoBs, genders and customer location. 49% were already in <a href="https://twitter.com/haveibeenpwned?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">@haveibeenpwned</a>. Read more: <a href="https://t.co/1ngqDNYf6k?ref=troyhunt.com">https://t.co/1ngqDNYf6k</a></p>&#x2014; Have I Been Pwned (@haveibeenpwned) <a href="https://twitter.com/haveibeenpwned/status/1609754235557777408?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">January 2, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>229M records is a <em>substantial</em> incident, and there&apos;s no argument about the personally identifiable nature of attributes such as email address, name, IP address, and date of birth. However, at least initially (more on that soon), Deezer chose not to disclose to impacted individuals:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Chatting to <a href="https://twitter.com/Scott_Helme?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">@Scott_Helme</a>, he never received a breach notification from them. They disclosed publicly via an announcement in November, did they never actually email impacted individuals? Did *anyone* who got an HIBP email get a notification from Deezer? <a href="https://t.co/dnRw8tkgLl?ref=troyhunt.com">https://t.co/dnRw8tkgLl</a> <a href="https://t.co/jKvmhVCwlM?ref=troyhunt.com">https://t.co/jKvmhVCwlM</a></p>&#x2014; Troy Hunt (@troyhunt) <a href="https://twitter.com/troyhunt/status/1610010254649221120?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">January 2, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">No, nothing &#x2026; but then I&#x2019;ve not used Deezer for years .. I did get this&#x1F447;from FireFox Monitor (provided by your good selves) <a href="https://t.co/JSCxB1XBil?ref=troyhunt.com">pic.twitter.com/JSCxB1XBil</a></p>&#x2014; Andy H (@WH_Y) <a href="https://twitter.com/WH_Y/status/1610014498852577280?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">January 2, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">Yes, same situation. I got the breach notification from HaveIBeenPwned, I emailed customer service to get an export of my data, got this message in response: <a href="https://t.co/w4maPwX0Qe?ref=troyhunt.com">pic.twitter.com/w4maPwX0Qe</a></p>&#x2014; Giulio Montagner (@Giu1io) <a href="https://twitter.com/Giu1io/status/1610010540717346818?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">January 2, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>This situation understandably upset many people, with many cries of &quot;but GDPR!&quot; quickly following. <a href="https://web.archive.org/web/20221129113711/https://support.deezer.com/hc/en-gb/articles/7726141292317-Third-Party-Data-Breach" rel="noreferrer">And they did know <em>way </em>before I loaded it into HIBP too</a>, almost two months earlier, in fact (courtesy of archive.org):</p><blockquote>This information came to light November 8 2022 as a result of our ongoing efforts to ensure the security and integrity of our users&#x2019; personal information</blockquote><p>They knew, yet they chose not to contact impacted people. <a href="https://support.deezer.com/hc/en-gb/articles/7726141292317-Third-Party-Data-Breach?ref=troyhunt.com" rel="noreferrer">And they&apos;re also confident that position didn&apos;t violate any data protection regulations</a> (current version of the same page):</p><blockquote>Deezer has not violated any data protection regulations</blockquote><p>And based on the carveouts discussed earlier, I can see how they drew that conclusion. Was the disclosed data likely to lead to &quot;a high risk of adversely affecting individuals&#x2019; rights and freedoms&quot;? You can imagine lawyers arguing that it wouldn&apos;t. Regardless, people were <em>pissed,</em> and if you read through those respective Twitter threads, you&apos;ll get a good sense of the public reaction to their handling of the incident. HIBP sent 445k notifications to our own individual subscribers and another 39k to those monitoring domains with email addresses in the breach, and if I were to hazard a guess, that may have been what led to this:</p>
<!--kg-card-begin: html-->
<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">Is this *finally* the <a href="https://twitter.com/Deezer?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">@Deezer</a> disclosure notice to individuals, a month and a half later? It doesn&#x2019;t look like a new incident to me, anyone else get this? <a href="https://t.co/RrWlczItLm?ref=troyhunt.com">https://t.co/RrWlczItLm</a></p>&#x2014; Troy Hunt (@troyhunt) <a href="https://twitter.com/troyhunt/status/1627757160221519872?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com">February 20, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--kg-card-end: html-->
<p>So, they know about the breach in Nov, and they told people in Feb. It took them a quarter of a year to tell their customers they&apos;d been breached, and if my understanding of their position and the regulations they were adhering to is correct, they never needed to send the notice at all.</p><p>I appreciate that&apos;s a very long-winded introduction to this post, but it sets the scene and illustrates the conundrum perfectly: an organisation may not need to disclose to individuals, but if they don&apos;t, they risk a backlash that may eventually force their hand.</p><p>In my past dealing with organisations that were reticent to disclose to their customers, their positions were often that the data was relatively benign. Email addresses, names, and some other identifiers of minimal consequence. It&apos;s often clear that the organisation is leaning towards the &quot;uh, maybe we just don&apos;t say anything&quot; angle, and if it&apos;s not already obvious, that&apos;s not a position I&apos;d encourage. Let&apos;s go through all the reasons:</p><h3 id="whose-data-is-it-anyway">Whose Data is it Anyway?</h3><p>I ask this question because the defence I&apos;ve often heard from organisations choosing the non-disclosure path is that the data is <em>theirs</em> - the company&apos;s. I have a fundamental issue with this, and it&apos;s not one with any legal basis (but I can imagine it being argued by lawyers in favour of that position), rather the commonsense position that someone&apos;s email address, for example, is theirs. If my email address appears in a data breach, then that&apos;s <em>my</em> email address and I entrusted the organisation in question to look after it. Whether there&apos;s a legal basis for the argument or not, the assertion that personally identifiable attributes become the property of another party will buy you absolutely no favours with the individual who provided them to you when you don&apos;t let them know you&apos;ve leaked it.</p><h3 id="the-determination-of-rights-freedoms-and-serious-harm">The Determination of Rights, Freedoms, and Serious Harm</h3><p>Picking those terms from earlier on, if my gender, sexuality, ethnicity, and, in my case, even my entire medical history were to be made public, I would suffer no serious harm. You&apos;d learn nothing of any consequence that you don&apos;t already know about me, and personally, I would not feel that I suffered as a result. However...</p><p>For some people, simply the association of their email address to their name may have a tangible impact on their life, and using the term from above jeopardises their rights and freedoms. Some people choose to keep their IRL identities completely detached from their email address, only providing the two together to a handful of trusted parties. If you&apos;re handling a data breach for your organisation, do you know if any of your impacted customers are in that boat? No, of course not; how could you?</p><p>Further, let&apos;s imagine there is nothing more than email addresses and passwords exposed on a cat forum. Is that likely to cause harm to people? Well, it&apos;s just cats; how bad could it be? Now, ask that question - how bad could it be? - with the prevalence of password reuse in mind. This isn&apos;t just a cat forum; it is a repository of credentials that will unlock social media, email, and financial services.  Of course, it&apos;s not the fault of the breached service that people reuse their passwords, but their breach could lead to serious harm via the compromise of accounts on totally unrelated services.</p><p>Let&apos;s make it even more benign: what if it&apos;s just email addresses? Nothing else, just addresses and, of course, the association to the breached service. Firstly, the victims of that breach may not want their association with the service to be publicly known. Granted, there&apos;s a spectrum and <a href="https://twitter.com/lawindsor/status/1836932778933313704?ref=troyhunt.com" rel="noreferrer">weaponising someone&apos;s presence in Ashley Madison</a> is a very different story from pointing out that they&apos;re a LinkedIn user. But conversely, the association is <em>enormously</em> useful phishing material; it helps scammers build a more convincing narrative when they can construct their messages by repeating accurate facts about their victim: &quot;Hey, it&apos;s Acme Corp here, we know you&apos;re a loyal user, and we&apos;d like to make you a special offer&quot;. You get the idea.</p><h3 id="who-is-non-disclosure-actually-protecting">Who is Non-disclosure <em>Actually</em> Protecting?</h3><p>I&apos;ll start this one in the complete opposite direction to what it sounds like it should be because this is what I&apos;ve previously heard from breached organisations:</p><blockquote>We don&apos;t want to disclose in order to protect our customers</blockquote><p>Uh, you sure about that? And yes, you did read that paraphrasing correctly. In fact, here&apos;s a copy paste from a recent discussion about disclosure where there was an argument against any public discussion of the incident:</p><blockquote>Our concern is that your public notification would direct bad actors to search for the file, which can potentially do harm to both the business and our mutual users.</blockquote><p>The fundamental issue of this clearly being an attempt to suppress news of the incident aside, in this particular case, the data was already on a popular clear web hacking forum, and the incident has appeared in multiple tweets viewed by thousands of people. The argument makes no sense whatsoever; the bad guys - <em>lots of them</em> - already have the data. And the good guys (the customers) don&apos;t know about it.</p><p>I&apos;ll quote precisely from another company who took a similar approach around non-disclosure:</p><blockquote>[company name] is taking steps to notify regulators and data subjects where it is legally required to do so, based on advice from external legal counsel.</blockquote><p>By now, I don&apos;t think I need to emphasise the caveat that they inevitably relied on to suppress the incident, but just to be clear: <em>&quot;where it is legally required to do so&quot;</em>. I can say with a very high degree of confidence that they never notified the 8-figure number of customers exposed in this incident because they didn&apos;t have to. (I hear about it pretty quickly when disclosure notices are sent out, <a href="https://twitter.com/search?q=from%3Atroyhunt+%22data+breach+at%22&amp;src=typed_query&amp;f=live&amp;ref=troyhunt.com" rel="noreferrer">and I regularly share these via my X feed</a>).</p><p>Non-disclosure is intended to protect the brand and by extension, the shareholders, <em>not</em> the customers.</p><h3 id="non-disclosure-creates-a-vacuum-that-will-be-filled-by-others">Non-Disclosure Creates a Vacuum That <em>Will</em> be Filled by Others</h3><p>Usually, after being sent a data breach, the first thing I do is search for &quot;[company name] data breach&quot;. Often, the only results I get are for a listing on a popular hacking forum (again, on the clear web) where their data was made available for download, complete with a description of the incident. Often, that description is wrong (turns out hackers like to embellish their accomplishments). Incorrect conclusions are drawn and publicised, and <em>they&apos;re</em> the ones people find when searching for the incident.</p><p>When a company doesn&apos;t have a public position on a breach, the vacuum it creates is filled by others. Obviously, those with nefarious intent, but also by journalists, and many of those don&apos;t have the facts right either. Public disclosure allows the breached organisation to set the narrative, assuming they&apos;re forthcoming and transparent and don&apos;t water it down such that there&apos;s no substance in the disclosure, of course.</p><h3 id="the-truth-is-in-the-data-and-it-will-be-set-free">The Truth is in the Data, and it Will be Set Free</h3><p>All the way back in 2017, I wrote about <a href="https://www.troyhunt.com/the-5-stages-of-data-breach-grief/" rel="noreferrer">The 5 Stages of Data Breach Grief</a> as I watched The AA in the UK dig themselves into an ever-deepening hole. They were doubling down on bullshit, and there was simply <em>no way</em> the truth wasn&apos;t going to come out. It was such a predictable pattern that, just like with K&#xFC;bler-Ross&apos; stages of personal grief, it was very clear how this was going to play out.</p><p>If you choose not to disclose a breach - for whatever reason - how long will it be until your &quot;truth&quot; comes out? Tomorrow? Next month? <em>Years from now?!</em> You&apos;ll be looking over your shoulder until it happens, and if it does one day go public, how will you be judged? Which brings me to the next point: </p><h3 id="the-backlash-of-non-disclosure">The Backlash of Non-disclosure</h3><p>I can&apos;t put any precise measure on it, but I feel we reached a turning point in 2017. I even remember where I was when it dawned on me, sitting in a car on the way to the airport <a href="https://www.troyhunt.com/heres-what-im-telling-us-congress-about-data-breaches/" rel="noreferrer">to testify before US Congress on the impact of data breaches</a>. News had recently broken that <a href="https://www.darkreading.com/cyberattacks-data-breaches/uber-paid-hackers-100k-to-conceal-2016-data-breach?ref=troyhunt.com" rel="noreferrer">Uber had attempted to cover up its breach of the year before by passing it off as a bug bounty</a> and, of course, not notifying impacted customers. What dawned on me at that moment of reflection was that by now, there had been so many data breaches that we were judging organisations not by whether they&apos;d been breached but <em>how they&apos;d handled</em> the breach. Uber was getting raked over the coals not for the breach itself but because they tried to conceal it. (<a href="https://www.justice.gov/usao-ndca/pr/former-chief-security-officer-uber-convicted-federal-charges-covering-data-breach?ref=troyhunt.com" rel="noreferrer">Their CTO was also later convicted of federal charges for some of the shenanigans pulled under his watch</a>.)</p><h3 id="just-plain-simple-decency">Just Plain, Simple Decency</h3><p>This is going to feel like I&apos;m talking to my kids after they&apos;ve done something wrong, but here goes anyway: If people entrusted you with your data and you &quot;lost&quot; it (had it disclosed to unauthorised parties), the only decent thing to do is own up and acknowledge it. It doesn&apos;t matter if it was your organisation directly or, as with the Deezer situation, a third party you entrusted with the data; you are the coalface to your customers, and you&apos;re the one who is accountable for their data.</p><p>I am yet to see any valid reasons not to disclose that are in the best interests of the impacted customers (<a href="https://9to5mac.com/2024/07/15/att-hack-ransom-fbi/?ref=troyhunt.com" rel="noreferrer">the <em>delay</em> in the AT&amp;T breach announcement at the request of the FBI due to national security interests</a> is the closest I can come to justifying non-disclosure). It&apos;s undoubtedly the customers&apos; expectation, and increasingly, it&apos;s the governments&apos; expectations too; I&apos;ll leave you with a quote from our previous Cyber Security Minister Clare O&apos;Neil in <a href="https://www.cyberdaily.au/digital-transformation/10787-podcast-becoming-the-worlds-most-cyber-secure-nation-with-cyber-security-minister-clare-oneil?ref=troyhunt.com" rel="noreferrer">a recent interview</a>:</p><blockquote>But the real people who feel pain here are Australians when their information that they gave in good faith to that company is breached in a cyber incident, and the focus is not on those customers from the very first moment. The people whose data has been stolen are the real victims here. And if you focus on them and put their interests first every single day, you will get good outcomes. Your customers and your clients will be respectful of it, and the Australian government will applaud you for it.</blockquote><p>I&apos;m presently on a whirlwind North America tour, <a href="https://twitter.com/troyhunt/status/1839057704121176308?ref=troyhunt.com" rel="noreferrer">visiting government and law enforcement agencies</a> to understand more about their challenges and where we can assist with HIBP. As I spend more time with these agencies around the world, I keep hearing that data breach victim notification is an essential piece of the cybersecurity story, and I&apos;m making damn sure to highlight the deficiencies I&apos;ve written about here. We&apos;re going to keep pushing for <em>all</em> data breach victims to be notified when their data is exposed, and my hope in writing this is that when it&apos;s read in future by other organisations I&apos;ve disclosed to, they respect their customers and disclose promptly. Check out <a href="https://www.troyhunt.com/data-breach-disclosure-101-how-to-succeed-after-youve-failed/" rel="noreferrer">Data breach disclosure 101: How to succeed after you&apos;ve failed</a> for guidance and how to do this.</p><p><strong>Edit (a couple of days later):</strong> I&apos;m adding an addendum to this post given how relevant it is. I just saw the following from <a href="https://www.linkedin.com/in/ruben-van-well/?ref=troyhunt.com" rel="noreferrer">Ruben van Well</a> of the Dutch Police, someone who has invested a lot of effort in victim notification and we had the pleasure of spending time with last year in Rotterdam:</p>
<!--kg-card-begin: html-->
<iframe src="https://www.linkedin.com/embed/feed/update/urn:li:share:7245489878832939009" height="791" width="504" frameborder="0" allowfullscreen title="Embedded post"></iframe>
<!--kg-card-end: html-->
<p>To translate the key section:</p><blockquote>Reporting and transparency around incidents is important. Of the companies that fall victim, between 8 and 10% report this, whether or not out of fear of reputational damage. I assume that your image will be more damaged if you do not report an incident and it does come out later.</blockquote><p>It echos my sentiments from above precisely, and I hope that message has an impact on anyone considering whether or not to disclose.</p>]]></content:encoded></item><item><title><![CDATA[Weekly Update 418]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Just watching back through bits of this week&apos;s video, the thing that&apos;s really getting at me is the same thing I&apos;ve come back to in so many past videos: lack of organisational disclosure after a breach. Lack of disclosure to impacted customers, lack of</p>]]></description><link>https://www.troyhunt.com/weekly-update-418/</link><guid isPermaLink="false">66efae97f5f67f00015b3651</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sun, 22 Sep 2024 06:12:56 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-3.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-3.jpg" alt="Weekly Update 418"><p>Just watching back through bits of this week&apos;s video, the thing that&apos;s really getting at me is the same thing I&apos;ve come back to in so many past videos: lack of organisational disclosure after a breach. Lack of disclosure to impacted customers, lack of disclosure to the public, and a general apathy towards the transparency with which we expect organisations to behave post-breach. This is a topic I&apos;m increasingly pushing in front of governments and law enforcement agencies, and it&apos;ll be front of mind during my visits to the US and Canada this coming week and next. I have a longer form blog post in draft I&apos;ll try and wrap up before those meetings, hopefully that&apos;ll be one to talk about in next week&apos;s update. For now, see what you think of how I&apos;ve framed the issue here:</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 418"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 418"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 418"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 418"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/nPmUlZcLRaw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li><li><a href="https://en.wikipedia.org/wiki/2024_Lebanon_pager_explosions?ref=troyhunt.com" rel="noreferrer">The exploding pagers and walkie-talkies in Palestine is a fascinating story</a> (one day, we&apos;ll learn more about how this was pulled off)</li><li><a href="https://www.troyhunt.com/from-dreams-to-reality-the-magic-of-3d-printing-with-elle-hunt/" rel="noreferrer">My 3D printing talk with Elle (11) at NDC Oslo is now up</a> (so, so proud &#x1F60A;)</li></ol>]]></content:encoded></item><item><title><![CDATA[From Dreams to Reality: The Magic of 3D Printing, with Elle Hunt]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>I was in my mid-30s before I felt comfortable standing up in front of an audience and talking about technology. Come to think of it, &quot;comfortable&quot; isn&apos;t really the right word, as, frankly, it was nerve-racking. This, with my obvious bias as her father, makes it</p>]]></description><link>https://www.troyhunt.com/from-dreams-to-reality-the-magic-of-3d-printing-with-elle-hunt/</link><guid isPermaLink="false">66ea3d14f5f67f00015b35b7</guid><category><![CDATA[3D Printing]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Wed, 18 Sep 2024 06:07:13 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/230613NDCOslo0397.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/230613NDCOslo0397.jpg" alt="From Dreams to Reality: The Magic of 3D Printing, with Elle Hunt"><p>I was in my mid-30s before I felt comfortable standing up in front of an audience and talking about technology. Come to think of it, &quot;comfortable&quot; isn&apos;t really the right word, as, frankly, it was nerve-racking. This, with my obvious bias as her father, makes it all the more remarkable that Elle was able to do it at NDC Oslo when she was just 11 years old. That she was able to do that and teach a room full of hundreds of technology professionals things they almost certainly hadn&apos;t seen before makes it all the more remarkable, and I&apos;m very happy to now share the full video from that event in June with you all:</p>
<!--kg-card-begin: html-->
<iframe width="100%" height="480" src="https://www.youtube.com/embed/t0Dqb45ebQY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<!--kg-card-end: html-->
<p>If you watch nothing else in this video, fast forward through to the 55-minute mark and watch Elle with our 3D printed catapult launching projectiles generated from a Chat GPT prompt into the audience during the Q&amp;A. That kid is having the time of her life &#x1F60A;</p>]]></content:encoded></item><item><title><![CDATA[Weekly Update 417]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>Today was all about this whole idea of how we index and track data breaches. Not as HIBP, but rather as an industry; we simply don&apos;t have a canonical reference of breaches and their associated attributes. When they happened, how many people were impacted, any press on the</p>]]></description><link>https://www.troyhunt.com/weekly-update-417/</link><guid isPermaLink="false">66e688b51c6d8300014b5198</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Sun, 15 Sep 2024 07:25:05 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-2.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-2.jpg" alt="Weekly Update 417"><p>Today was all about this whole idea of how we index and track data breaches. Not as HIBP, but rather as an industry; we simply don&apos;t have a canonical reference of breaches and their associated attributes. When they happened, how many people were impacted, any press on the incident, the official disclosure messaging and so on and so forth. As someone in the video today said, &quot;what about the Airtel data breach?&quot; Yeah, whatever happened to that?! A quick Google reminds me that <a href="https://www.thehindu.com/sci-tech/technology/internet/hacker-claims-to-have-accessed-airtels-customer-database-company-denies-data-breach/article68370519.ece?ref=troyhunt.com" rel="noreferrer">this was a few months ago</a>, but did they ever acknowledge it? Send disclosure notices? Did the data go public? I began talking about all this after someone mentioned a breach during the week and for the life of me, I had no idea whether I&apos;d heard about it before, looked into it, or even seen the data. Surely, with so many incidents floating around that have so much impact, we should have a way of cataloguing it all? Have a listen to this week&apos;s video and see what you think.</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 417"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 417"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 417"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 417"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/sHy6M45qwU0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&amp;utm_source=troy_hunt_blog&amp;utm_medium=paid_ad&amp;utm_content=xam_product" rel="noopener">Sponsored by:&#xA0;1Password Extended Access Management: Secure every sign-in for every app on every device.</a></li><li><a href="https://www.troyhunt.com/setting-the-bar-for-government-access-to-have-i-been-pwned/" rel="noreferrer">I&apos;ve previously given thought to how much easy access to data I give governments</a> (but I do agree that redistributing data breaches to them raises a whole world of issues and <em>is not</em> a good idea)</li><li><a href="https://haveibeenpwned.com/PwnedWebsites?ref=troyhunt.com" rel="noreferrer">HIBP does has a list of the 809 data breaches I&apos;ve already loaded into the system</a> (but this is merely a subset; what about all the stuff that isn&apos;t in there because the data hasn&apos;t surfaced or there&apos;s no email addresses?)</li></ol>]]></content:encoded></item><item><title><![CDATA[Weekly Update 416]]></title><description><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><p>It&apos;s been a while since I&apos;ve just gone all &quot;AMA&quot; on a weekly update, but this was just one of those weeks that flew by with my head mostly in the code and not doing much else. There&apos;s a bit of discussion</p>]]></description><link>https://www.troyhunt.com/weekly-update-416/</link><guid isPermaLink="false">66db6b71fd930d0001de72cb</guid><category><![CDATA[Weekly update]]></category><dc:creator><![CDATA[Troy Hunt]]></dc:creator><pubDate>Fri, 06 Sep 2024 21:10:06 GMT</pubDate><media:content medium="image" url="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-1.jpg"/><content:encoded><![CDATA[<p><a href="https://1password.com/xam/extended-access-management?utm_campaign=xam_launch&utm_source=troy_hunt_blog&utm_medium=paid_ad&utm_content=xam_product"><strong>Presently sponsored by:</strong> 1Password Extended Access Management: Secure every sign-in for every app on every device.</a></p><img src="https://www.troyhunt.com/content/images/2024/09/Splash-Template@1x_1-1.jpg" alt="Weekly Update 416"><p>It&apos;s been a while since I&apos;ve just gone all &quot;AMA&quot; on a weekly update, but this was just one of those weeks that flew by with my head mostly in the code and not doing much else. There&apos;s a bit of discussion about that this week, but it&apos;s mostly around the ongoing pain of resellers and all the various issues supporting them then creates as a result. I think we just need to get on with writing the code to automate everything they do so I just don&apos;t need to think about them any more &#x1F62D;</p>
<!--kg-card-begin: html-->
<div><div style="width: 170px; display: inline-block; margin-right: 3px;"><a href="https://itunes.apple.com/au/podcast/troy-hunts-weekly-update-podcast/id1176454699?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/05/Listen-on-Apple-Podcasts.svg" alt="Weekly Update 416"></a></div><div style="width: 175px; display: inline-block; margin-right: 3px;"><a href="https://www.youtube.com/playlist?list=PL7LAAxaabizMAXnJe0s3xjQ30q12EVmjt&amp;ref=troyhunt.com"><img src="https://www.troyhunt.com/content/images/2024/09/Watch-and-Listen-on-YouTube.svg" alt="Weekly Update 416"></a></div><div style="width: 118px; display: inline-block; margin-right: 3px;"><a href="https://open.spotify.com/show/7jMtKFohdrw6qmz8AkLqit?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2019/10/spotify.svg" class="kg-image" alt="Weekly Update 416"></a></div><div style="width: 120px; display: inline-block;"><a href="https://omny.fm/shows/troy-hunt-weekly-update/playlists/podcast.rss?ref=troy-hunt"><img src="https://www.troyhunt.com/content/images/2018/07/Download-via-RSS.svg" alt="Weekly Update 416"></a></div><iframe width="100%" height="480" src="https://www.youtube.com/embed/C9WhlEsBIk0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
<!--kg-card-end: html-->
<h3 id="references">References</h3><ol><li><a href="https://report-uri.com/?src=troyhunt.com&amp;ref=troyhunt.com" rel="noopener">Sponsored by:&#xA0;Report URI: Guarding you from rogue JavaScript! Don&#x2019;t get pwned; get real-time alerts &amp; prevent breaches #SecureYourSite</a></li><li><a href="https://www.troyhunt.com/the-trouble-with-procurement-departments-resellers-and-stripe/" rel="noreferrer">Somehow, a bunch of this week&apos;s video ended up going on resellers again</a> (the trickle down effects this model has are just painful, but I think we can automate a lot of that away)</li><li><a href="https://www.troyhunt.com/i-now-own-the-coinhive-domain-heres-how-im-fighting-cryptojacking-and-doing-good-things-with-content-security-policies/" rel="noreferrer">How am I still getting so much traffic to Coinhive?!</a> (definitely needs some deeper analysis, I might need to update that JS to log some more details about who&apos;s still calling it)</li><li><a href="https://x.com/troyhunt/status/1831421271344869611?ref=troyhunt.com" rel="noreferrer">I added a heap of additional domains to my Pi Hole naughty list</a> (that&apos;s a link through to a neat tool for measuring the percentage of ads blocked)</li></ol>]]></content:encoded></item></channel></rss>