Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @[email protected]

  • 0 Posts
  • 337 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle
  • It’s because the outage went on for a very long time (over 24 hours to get Outlook operational again!) and more and more companies continue to migrate critical services to “the cloud” (someone else’s computer) because Microsoft convinced company leadership that it’s “more reliable” and that relying on a single vendor for everything is totally okay and can never go wrong.

    So many companies don’t think about hot/warm spares or multi-vendor failover strategies any more because they outsource their thinking to Microsoft or Google. I’ve seen plenty of cases where companies were only able to recover from major issues because they had fully redundant backups or failovers at another vendor (one example - in this case they did it right, with multi-region redundancy on Google Cloud in addition to full backups on AWS - so they were able to recover from Google accidentally deleting all their data)


  • I suspect that institutional knowledge about dealing with Exchange’s quirks is slowly going away as older employees move to other teams, companies, or retire, and are replaced with younger people who think they can solve everything using AI.

    Microsoft’s been dealing with email for a very long time, starting with Microsoft Mail in 1988 then Exchange in 1996. Most of the newer features are just bolted on to the older systems. There’s plenty of legacy cruft in Exchange server (similar to how Windows 11 still has bits from Windows 95 and even icons from Windows 3.0 in it) and that’s the same codebase they still use for Microsoft 365 email.







  • tl;dr it’s a relatively sophisticated approach to make it look real. The fake site reverse proxies the real online ordering site so that it looks and behaves exactly like the real one, blocks some scripts like trackers or anything that’d redirect back to the real site, and swaps out the payment form for a fake one.

    The payment details entered into the fake form go to a live operator that immediately tries to use the credit card elsewhere online. They get through 3-D Secure (where the bank requires verification of suspicious-looking online transactions) by asking the user to confirm the transaction, e.g. by providing an SMS confirmation code or confirming the transaction in their bank app.

    If you didn’t see the incorrect domain name, I think this would be very hard to notice, since the site functions normally. Very different to a regular phishing page where the site looks out of place and is often full of broken links (since they don’t want you navigating away from the fake login page)








  • Wireguard and apps based on it (like Tailscale) don’t respond at all unless the data is signed with the key of a configured peer (or with Tailscale, a system on your tailnet that passes the ACL). It’s literally impossible for an outsider/attacker to detect with a port scan since it just ignores unauthenticated packets.

    The Wireguard codebase is also extremely small. The core Wireguard implementation (the version in the Linux kernel) is around 5,000 lines long, so an experienced developer can read through all the code if they dedicate a day or two to it, and understand how it works.

    For comparison, OpenVPN is around 70,000 lines of code and OpenSSH is around 150,000 lines of code. There’s a huge number of features in SSH!





  • Different philosophies.

    On Linux, you can delete a running application and it’s fine, because files aren’t actually deleted until the last process that has it open closes it. This applies for all files, not just executables.

    Internally, files are mainly identified by an inode rather than the file path. If you delete a file then create a new one with the same name, the new file will have a different inode number to the old file. Anything that had the file open will still have a valid reference to the old file. If you’re running a program and upgrade it while it’s running, the currently running version will still be using the old inode, while any new instances will use the new one.

    Windows doesn’t do that. On Windows, the file path is the main identifier for the file. Files that are in use and executables that are running are locked and can’t be modified. It tells you to restart so that it can swap in the new files after closing everything. When updating a program, you just need to close it to be able to update, but OS files need reboots because they’re locked the whole time the OS is running.

    Note that some versions of Windows don’t require that any more. Some editions of Windows Server 2025 support hotpatching. This patches code (both OS code and program code) directly in memory, avoiding the need to restart to apply the update. On Linux, there’s a proprietary system called Kernelcare that does the same thing for kernel patches.