- Principle of least privilege.
- Zero Trust.
- Compartmentation.
- Hardened Operating Systems with no malware and strong endpoint defense.
- Firewalls that whitelist only your IP and disavow everything else.
- 2FA/MFA/Biometrics auth for everything.
- Defense in Depth.
- Use crytography tools vetted from the community surrounding it, and use tools which are battle hardened.
Modern computing is very leaky and every node is malicious. You need extreme vigilance to safeguard crypto.
Are people up to the task of doing all this?
I'm asking because I lost crypto before, and now I'm more resilient and have better security posture.
Set up your own wallet and lose access? YOUR FAULT, DUMMY
Use an exchange and get hacked? YOUR FAULT, DUMMY
Use an exchange and they scam you? YOUR FAULT, DUMMY
Fall for a spearphishing email? YOUR FAULT, DUMMY
A flaw in the implementation that leads to an exploit? YOUR FAULT, DUMMY
Fail to maintain an EAL7-certified computing environment using only FIPS 140-3 level V cryptographic products in an ISO 27001:2022 Annex A.11.1-secured facility and something goes wrong? YOUR FAULT DUMMY-DUM-DUM!
It's never, ever, a flaw with entire concept-- it's always you.
Agreed, the extent of victim blaming in crypto is mind blowing.
1. Make a paper wallet, laminate it, put it in a safe location or maybe two
2. Use any exchange and send the coins to the wallet. Never leave any coins on the exchange
When you want to get them out again, this is the safest approach:
1. Boot Tails from USB
2. Enter your private key in Electrum (it's preinstalled in Tails)
3. Send to exchange and convert to fiat
If you want to do daytrading it's a whole other story
Crypto unfortunately requires people to be a lot more careful and knowledgeable than traditional fiat currency. And I don't think that will meaningfully improve anytime soon.
and that's an attack vector/point of doubt that you bring in into the equation. You need a trustful source for Tails, the USB drive and the surrounding OS.
One can turn it as one wants: "cryptos" are not safe.
And I am saying this as someone who's holding a handful of values on different crypto currencies. And I know it is insane.
No. Anyone who thinks they are is deluding themselves. There is no such thing as a setup that is 100% secure against human error (and nobody is infallible) or a sufficiently motivated and skilled attacker (and there are supreme amounts of motivation here).
The core problem is the lack of legal recourse. Anonymous, irreversible, distributed transactions for money are a really fucking stupid idea.
That is indeed the crux and the big advantage that traditional fiat currency has. And I believe that this is why crypto as a day-to-day currency won't surpase fiat.
The centralised trust and the government authority and enforcement of fiat is what enables millions of people to pay and transact so easily with strangers.
The problem has gotten much, much worse, not better, over the past decade.
Seriously, the idea that crypto (with its concomitant key management problems) is a solution for the challenges facing the poor in badly governed countries is rather absurd.
The same should be at Google Play and Apple Store. Scam apps and sanctioned apps are regularly passing through reviews.
amazing how little effort goes into UX these days.
When I create a transaction with Electrum on my computer, I use a hardware wallet to sign the transaction. When I sign the transaction, the hardware wallet shows the amounts, and the output addresses.
But if my copy of Electrum was backdoored and smart about what it did, it could use an output address for the remaining amount that went to another wallet. And since I and most people mainly check the address we are sending to but don’t pay close attention to the change address, we could end up having our funds stolen that way.
I’ve been thinking about moving to a multisig setup instead, that would have multiple computers independently used for checking and signing the transactions.
So far I’ve been putting it off because a single wallet and being diligent about checking the output address that you send to seemed sufficient. But now I think moving to a multisig setup is something me and more people should do sooner rather than later.
- if it does, then the change output is simply hidden from the user validation flow
- if it doesn’t it will appear as a second bitcoin transfer to approve, which require a second physical approval on the device. this is highly unusual and should trigger the user's suspicion.
I can’t say for other vendors but this is pretty standard security practice I’m sure, hardware wallets are fighting against attacks that are way more elaborate than this one.
So rather than being “wrong”, maybe I am more similar to most regular user of hardware wallets, and that this kind of attack would indeed be a disaster for a lot of users who have hardware wallets. Myself included.
Line could go up, but if you aren’t extremely careful with processes that most people don’t and won’t comprehend—and don’t even realize are something you need to do—you can just straight up lose everything.
https://www.aura.com/learn/i-got-scammed-on-venmo-what-do-i-...
https://help.venmo.com/hc/en-us/articles/235171088-Cancel-Pa...
A fool and their money..
Though, the industry is aware of this and working on it. There is at least one company (Chia Network) where the on-chain language (ChiaLisp) is both capable and secure enough to allow for the sort of management needed to allow for self-custody to happen in a safe, sane manner. GUIs for this sort of thing aren't ready for the general public yet, but are definitely on the way.
That's why it's still early days.
Those generic arguments can be applied to literally everything we already have. People get scammed via their bank accounts every day too, people literally get scammed by the phone. You have to use your brain when it comes to _anything_ that involves a real world value these days, saying 'crypto bad cause scams' is pointless as there are way more scams involving real world money everywhere.
The story is not much different in Traditional Finance; though in some cases you can recover your money. The US (and to some extent EU) have some protection, but for the rest of the world it's not much different than crypto.
If they were ready btc would be $1m and they would be widely used.
The screen is tiny, and protocol devs don't usually put a lot of thought into making stuff easily human readable. Ideally a transaction can be fully understood and verified from the hardware wallet but we still have a ways to go.
It's much more likely you'll fall victim to malware that waits until you're on an exchange website, and substitutes the attacker's receive address for the exchange's. You think you're depositing funds in your account, but they vanish instead. This is basically the same attack as fake escrow instructions emailed to people buying a home.
While it’s not foolproof, it’s a good reason to compile things yourself from source instead of using the binaries. Unless someone trusted is validating build reproducibility, but that isn’t as common as we’d all like.
Some 4y old discussion of how some OSs for electrum are built reproducibly: https://old.reddit.com/r/Bitcoin/comments/dcz0my/what_is_not...
This app simply transmitted seed phrases to a server, or derived the first private key of one and sent that
Starting to agree with everyone else here, if the crypto enthusiasts on HN can’t differentiate
Pretty sure this is not the case for Trezor (This was an angle that got addressed a long time ago). Also, Ethereum doesn't have a change address.
> So far I’ve been putting it off because a single wallet and being diligent about checking the output address that you send to seemed sufficient.
If you are too concerned and use Bitcoin, there is an easier/simpler way. Sign the transaction offline and don't broadcast it. Copy the transaction Hex and decode it. You can there read the details of the output addresses, fees, etc.. When you are sure, then you can broadcast the transaction.
Read the comment you quoted again.
I said Electrum. The Bitcoin wallet.
If you have the technical ability to create an app, you probably have the ability to upload something to /.well-known/ or to add a DNS TXT record.
That way the Snap store could say "This app came from this website."
OK, it doesn't help if someone goes to the trouble of registering a homograph address, but it would at least give normal users a chance to check out who the author is.
That seems to be how Flathub works. It shows a verified domain, or prominently says that it is a community released app.
They might consider it further if the store got to a decent scale (like the contemporaries like iOS, Play and Microsoft). But with "only" 6K applications published, and the money canon being pointed in other directions, I can't see it happening any time soon.
> OK, it doesn't help if someone goes to the trouble of registering a homograph address
Doesn't even have to be homograph, it can just be something that has "exodus" in it (coming back to users not paying attention, this would work, and is also the reason phishing and other fake sites work), if "exodus-wallet.com" was verified then many people would still fall for it.
The entire thing would've been avoided if users paid attention and going to the official website instead of blindly trusting the Snap Store (and following VERY common advice, such as don't enter your secret phrase or password anywhere)
I'm not sure what Bitcoiner's preference would be exactly, but I'm sure they've got something involving signed wallet hashes published on the chain.
The hard part, as with anywhere else, is getting users to check it.
The point being - you should know when you want to access certain services so you switch on this mode, not allowing normal DNS name jacking or the like.
Sorta like privacy mode but for dapps/"web3"
Just random musings
Right now, the only real usage for apis is in oauth2.
There are dozens of tiny use cases we could use a standard uri for ease of use in corporate environments…
.well-known/documentation - redirects to the docs
.well-known/health - health check
.well-known/specificiation - api contracts
Etc…
... as well as the ACME HTTP-01 challenge as used by Let's Encrypt etc.
> it connects to some API at https://www.exchangerate-api.com/
This is not necessarily right. The exchangerate-api.com site is hosted behind Cloudflare, so I don't know where it's actually hosted, but the IP addresses shown in bandwhich could be unrelated.
You also said:
> Visiting one of those IPs redirects to https://www.exchangerate-api.com/
It is common for malicious sites to redirect to legitimate sites to help evade detection, so it is possible that exchangerate-api.com is an unrelated and legitimate site.
Obviously it's upsetting to have our API used by a scammer, but our service couldn't have been involved in this hack beyond fetching a JSON-formatted response of up-to-date exchange rates because that's the only functionality our service/domain provides.
My guess is that the scammer implemented a call to our API to fetch up-to-date exchange rates in order to make their fake wallet seem more plausible & real. Interestingly my API doesn't even support any exchange rates involving cryptocurrencies and so the scammer would have had to additionally integrate with a different API to get something like the up-to-date exchange rate between BTC and USD.
The API is a very simple service - it's just a few endpoints that supply JSON formatted exchange rates over HTTPS. Anyone with an email address can sign up to use the service for free and there are even some totally "open access" endpoints that don't require any authentication. One of these has been used in the GNU `units` converter software for a while.
With regard to proving it's a legitimate service, this is the point where I wish I had made more progress with the landing page update that emphasizes social proof I've been working on recently! The API is used by ICs/teams at hundreds of recognizable companies. There are tens of thousands of free users including some that have used the API consistently for free for over a decade. I guess you could check many instances of the service being archived on the wayback machine? https://web.archive.org/web/20240000000000*/https://www.exch... I'll definitely admit the domain does look a bit odd but back in 2010 when registering it the "Exact Match Domain" bonus was a big factor for SEO. The site has been a top 3 Google result for "exchange rate api" pretty consistently - presumably also how the scammer ended up using the service.
I've used Cloudflare since approx. 2019 and their "cloudflared" tunnel infrastructure since approx. 2021 to secure servers against DDoS.
I'll contact popey to see if we can get more details on the exact path/request they saw being made to our domain and if that leads to any further information or logging from our side.
I still have the snap, and could test further, but I suspect the endpoint linode boxes will disappear and popup somewhere else sometime.
The only thing implicating that site is a redirect that you got from a site that you know you don't trust.
I appreciate your comments, as they made me think more about that topic.
The desktop on Linux has gone Flatpak.
If I'm running a server, why the heck would I trust Snap, a platform that until recently didn't even let me control updates, over Docker? If something goes wrong, who do I call? If I need a custom storage arrangement, who do I call? If I need a custom network arrangement, who do I call? If I need to scale up, who do I call? Why would I subject myself to this?
Is it IoT? Maybe it has a market there - but why doesn't it focus on being the best it can be, solely for that market, then?
One more note: Snap even allowing unapproved repackaging of apps was, in my opinion, a very bad idea in the first place. Case in point: Even the Snap homepage is advertising a community repackage of a password manager ("NordPass" - developer not verified). Why the heck should Snap be proud of that?
(Edit: Apparently NordPass's website does point to it - but the developer remains unverified. What's the point of verification...)
Sounds like assurances made by UX and Marketing, which engineering might've been able to tell them they can't make.
If it ends up costing them $490K plus legal fees, that's still a relatively inexpensive way to learn this lesson.
Source: I’m a former Canonical employee.
(Never understood why ‘be your own bank’ was meant to be at all appealing. Being a bank is terrible. And still realistically less risky than this sort of thing; apart from truly bizarre edge cases (see the Citi/Revlon drama), this sort of thing simply can’t happen.)
For 99+ % of the world's population using fiat currency is simple and the learning curve is basic school maths.
He's around 75 and has known me for maybe 20 years, we're not close friends but we run into each other every now and then and he knows I work with IT; I'm about half his age.
Long story short, I find out he needs help to retrieve his bitcoin wallet because he's lost $300k. I spend an hour looking around his devices and find out he's been buying bitcoin from a young hip instagram lady in Florida.
Wait for it…
…they shared access to the wallet.
He had a chat log stretching back one year on whatsapp with her, he was now paying her smaller sums to cover the cost for some "hacker" to retrieve his wallet.
¯\_(ツ)_/¯
He was saving it for his grandchildren and he basically had a meltdown when I told him he's probably been scammed.
I felt really bad and also uncomfortable with the whole situation, I gave him a hug and told him to get in touch with his bank and tell them everything he told me.
Not likely that they'll help him but I just didn't know how to deal with the situation.
That is such a poor attitude. Instead maybe hope that canonical may fix the lax vetting and security of their store, but to care directly about their reputation and not the user who was scammed due to their weak practices goes hand in hand with everything else I’ve seen from snap.
Case in point: https://www.web3isgoinggreat.com/?id=fixedfloat-hack
So we need to be careful with how we interpret "Safe!"
Multiple laminated (real) paper wallets in a safety deposit box and multiple locations is the only way to go.
The wallet file is for keeping BTC, and whether you print it on laminated paper or copy it to multiple USB sticks that you distribute in multiple places (you can encrypt a USB stick, but not really a piece of paper, so beware who has access to your storage!), doesn't matter once you want to use your BTC. Using your BTC requires a computer and a wallet app; there's no way around that besides online platforms.
The real solution for fake wallets is to independently validate signatures of wallet app releases or to build from source yourself. Also wait for a few weeks before jumping onto the latest wallet version. Who knows if the developer's supply chain got compromised.
Edit for completeness: Last but not least, do offline transactions (send the signed transaction using an online device without access to the wallet).
How about an offline virtual machine on Qubes OS?
I agree with all the recommendations - add human gates. Yes, it's expensive, but still far cheaper than the unbounded reputational damage that just occurred around the untrustworthiness of the store (hi Amazon).
Crypto has a long way to go and some improvements are being made but it definitely is one of the main pain points.
when they said that these Snap packages were "safe" they probably meant from a "linux is secure" and "properly sandboxed" meaning, not "we've verified that this person isn't trying to scam you".
* No way for anyone (user or store) to verify the identity of the publisher.
* User was not given enough understanding to be able to protect their Bitcoin identity (usability, identity backup).
* No way for anyone (user or store) to identify who had downloaded the malicious snap.
I could also see a sophisticated attacker holding off on draining wallets until the amount contained started to drop or increased past a threshold. Draining funds as soon as a user attempts to setup the app gets you a few suckers but also means you'll be reported quickly. Giving everyone a failure message while recording the recovery key might let you go significantly longer before discovery.
Snap is only bad because the people developing snap are incompetent. The idea itself isn't bad.
then tried to 'self checkout' the app store
"One of the goals is to automate the whole Snapcraft publishing and review pipeline so there’s fewer (expensive and slow) humans in the loop." (from op article).
automation should not replace human judgement, it should replace human drudgery.
A security product built by people who have zero understanding of actual financial security and how financial crimes actually happen. Truly astonishing.
"If only there was a mode or system of human transportation backed by long-standing institutions with a deep commitment to dirt trails and rideability that occurred at speeds which were safe for this type of thing."
*spits into spittoon*
Or perhaps not, and they have a ton of other wallets full to the brim with crypto-nonsense.
So hell yeah, it would matter, because that setup process alone makes you understand crypto better and why it's isolated from your PC. As others mentioned, that person later realized this.
When you plug a thumbdrive with keys on it into a computer the computer can just take the keys.
It's the same as the difference between a YubiKey and a thumbdrive with GPG keys on it.
A hardware wallet can make sense for "checking" purposes, but if you're only moving around small amounts of money occasionally, then you have to ask yourself whether one is worth using over a wallet app on your phone when the latter is more convenient.
http[://]example.com