this post was submitted on 07 Jun 2024
532 points (98.4% liked)

Technology

63137 readers
3449 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each other!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


founded 2 years ago
MODERATORS
 
  • Web3 developer Brian Guan lost $40,000 after accidentally posting his wallet's secret keys publicly on GitHub, with the funds being drained in just two minutes.
  • The crypto community's reactions were mixed, with some offering support and others mocking Guan's previous comments about developers using AI tools like ChatGPT for coding.
  • This incident highlights ongoing debates about security practices and the role of AI in software development within the crypto community.
(page 2) 27 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 8 months ago

What a muppet

[–] [email protected] 11 points 8 months ago (1 children)

I use a text file version of a novel to back up my keys, then I store the key map in multiple cloud drives. For example, if the word is "lighting" then my key map for that word would be 487,5 (line 487, word 5). Easy to crack, if you know what novel I am using.

[–] [email protected] 31 points 8 months ago (4 children)

That's the copy protection on dozens of computer games from the 90s.

[–] [email protected] 5 points 8 months ago

Well, I am a Gen-X'r.

load more comments (3 replies)
[–] [email protected] 372 points 8 months ago (4 children)

The developer said he forgot that his secret keys were in the repository.

If you have your secret keys in your repository you've already fucked up, long before you accidentally make that repository public.

[–] [email protected] 92 points 8 months ago (13 children)

One of the first things you should do in a repo is add a .gitignore file and make sure there are rules to ignore things like *secret* or *private* etc. Also, I pretty much never use git add . because I don't like the laziness of it and EVERY TIME one of my coworkers checked in secrets they were using that command.

[–] [email protected] 55 points 8 months ago (6 children)

Even though that's a good extra precaution, per person config data, such as keys, should be stored outside of the repo, eg. in the parent directory or better in the users home dir. There is zero reason to have it in the repo. Even if you use a VM/containers, you can add the config in an extra mount/share.

load more comments (6 replies)
load more comments (12 replies)
[–] [email protected] 26 points 8 months ago (2 children)

And that’s why you always ~~leave a note~~ recheck your .gitignore file before committing

[–] [email protected] 7 points 8 months ago (4 children)

Does Microsoft's GitHub offer any pre-receive hook configuration to reject commits pushed that contain private keys? Surely that would be a better feature to opt all users into rather than Windows Copilot.

[–] [email protected] 2 points 8 months ago

they notify but that's all

load more comments (3 replies)
load more comments (1 replies)
[–] [email protected] 7 points 8 months ago (3 children)

Ehhh. I mean, I have local repositories that contain things that I wouldn't want to share with the world. Using git to manage files isn't equivalent to wanting to publish publicly on github.

I could imagine ways that private information could leak. Like, okay, say you have some local project, and you're committing notes in a text file to the project. It's local, so you don't need to sanitize it, can put any related information into the notes. Or maybe you have a utility script that does some multi-machine build, has credentials embedded in it. But then over time, you clean the thing up for release and forget that the material is in the git history, and ten years later, do an open-source release or something.

I do kind of think that there's an argument that someone should make a "lint"-type script to automatically run on GitHub pushes to try and sanity-check and maybe warn about someone pushing out material that maybe they don't want to be pushing to the world. It'll never be a 100% solution, but it could maybe catch some portion of leakage.

[–] [email protected] 14 points 8 months ago

Having plain text secrets, or having secrets at all in a repository is always a bad practice. Even if it's a super-duper private/local/no one will ever see this repo.

[–] [email protected] 3 points 8 months ago

That's exactly what pre-commit.com project is doing

[–] [email protected] 16 points 8 months ago (1 children)

Users often don't take care to separate private and public environments. They just dump all their stuff into one and expect their brain to make the correct decision all the time.

Put your private data into a private space. Never put private data into a mixed use space or a public space.

e.g. Don't use your personal email at work. Don't use your personal phone for business. Don't put your passwords or crypto keys in the same github or gitlab account or even instance and don't reuse passwords and keys, etc.

[–] [email protected] 2 points 8 months ago* (last edited 8 months ago) (1 children)

Put your private data into a private space. Never put private data into a mixed use space or a public space.

Sure, but nothing I said conflicts with that.

I'm talking about a situation where someone has a private repository, and then one day down the line decide that they want to transition it to a public repository.

You're not creating the repository with the intention that it is public, nor intending to mix information that should be public and private together.

load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 38 points 8 months ago* (last edited 8 months ago) (2 children)

If there was any sort of password / highly entropic string detection in their build pipeline it would have caught a wallet's keys. They aren't an excuse for lack of diligence, but they should still be in every pipeline where passwords or keys might have to get used.

I'm terrible about building pipelines for most of my personal projects though, so I'm throwing rocks from my glass house here.

[–] [email protected] 9 points 8 months ago

I like your CI plan but maybe they just needed some sort of sane policy. Like never commit plaintext keys to any repo. Never work with a $40k key in a new project under development. Never convert a private repo to public.

load more comments (1 replies)
[–] [email protected] 82 points 8 months ago (4 children)

It must be automated for it to happen in 2 minutes. Which implies these kind of things happen often enough for someone to write a script for it.

[–] [email protected] 92 points 8 months ago* (last edited 8 months ago) (1 children)

Yes, it absolutely is automated.

There are bots running constantly looking for things that match patterns for exploitable credentials in public commits.

AWS credentials

SSH keys

Crypto wallets

Bank card info

If you push secrets to a public github repo, they will be exploited almost immediately.

[–] [email protected] 9 points 8 months ago (1 children)

The scanning part is definitely automated by many different actors (for the gains or the "lulz"), but being this fast, also automated key usage (account draining) must have been implemented which is a bit more impressive...

load more comments (1 replies)
[–] [email protected] 59 points 8 months ago* (last edited 8 months ago) (3 children)

If it was a script I wrote, it would have successfully stolen the $40k, but also stolen my own money and deposit both sets of money into a second intended victims account because I forgot to clear a variable before the main loop runs again.

[–] [email protected] 15 points 8 months ago

You always mess up some mundane detail!

load more comments (2 replies)
load more comments (2 replies)
[–] [email protected] 6 points 8 months ago

Incredibly funny story, incredibly awful website.

[–] [email protected] 124 points 8 months ago (5 children)

I have no sympathy for him, if he is a crypto developer he knows how important those private keys are. And he also knows people scrape public areas all the time looking for keys just like that. The whole point of crypto is to be immutable, so that money is simply lost to him now.

He seems to know how much of a dumb mistake that was, although his description of himself was a bit more colorful.

load more comments (5 replies)
[–] [email protected] 74 points 8 months ago* (last edited 8 months ago) (2 children)

That's the kind of mistake you only make once.

[–] [email protected] 17 points 8 months ago (1 children)

I wouldn't survive that mistake.

[–] [email protected] 13 points 8 months ago (1 children)

Well, either you do it once :P

load more comments (1 replies)
load more comments (1 replies)
load more comments
view more: ‹ prev next ›