Pages:
Author

Topic: Monero dice seed hacked? (Read 4159 times)

legendary
Activity: 3808
Merit: 1723
February 12, 2017, 04:54:28 PM
#63
The thing is, this guy who did this was an idiot and by betting like that he made it very obvious that there are security leaks somewhere.

But imagine how many BTC were lost by small gamblers who made less obvious bets for the past couple of months prior, they must of cleared out thousands of dollars before it was caught on.

Not really running a gambling site these days with all these security issues.
hero member
Activity: 560
Merit: 500
February 10, 2017, 04:27:27 AM
#62
WOW!!!!

looks like he exactly know which roll is going to come next. However, he tried to look it real with those few red bets. I am not sure but someone can't be that much lucky when it comes to probability.
legendary
Activity: 1540
Merit: 1011
FUD Philanthropist™
February 09, 2017, 12:16:00 PM
#61
Custom API, so I don't think this affects anyone else. We've disabled betting in the meantime whilst we sort this out, but I really think the lesson to other operators is not to be overconfident in your code or in your setup. Everything can and will be compromised, so assume it's going to happen and put safeguards in place to handle that eventual scenario.

What a fucking sleazy little bullshitter.

He has the god damn nerve to say bullshit like that and sell merch with the below printed on it..



These Monero guys and all their misc companies and associations are corrupt back stabbing deceitful lying & bullshitting little obnoxious fucking pigs.

Snake oil salesmen raking in large profits while selling you all this ANON gimmick bullshit
and the big dream of...... "One day"

Maybe these cocky stupid fucking assholes should should change the text on their hoodies ?

Maybe something like.. "Everything can and will be compromised" ?  Cheesy

PS:
Know where he got that from ?
Me and my so called "FUD" i posted for damn near 3 years now.
But it's true when he says it and lying Troll FUD when i do huh ?

Fluffy you are a fucking greedy deceitful little crypto-rat in the shadows counting your cash like all the other profiteers with their gimmick coins.. and tell Risto you want a raise bud LOL
And yeah Risto did admit way back to paying the dev's so don't play that off as a joke either.

Of course my questions went unanswered earlier.. little pussies in hiding  Roll Eyes

Go fuck yourselves Morono's ..i told you 2017 was gonna be fun HAHHAHAHAHHA
legendary
Activity: 1540
Merit: 1011
FUD Philanthropist™
February 08, 2017, 02:51:40 AM
#60
I think probably it is added back to the investors at the time of adding back. So if someone divested, he won't get anything, but if someone invested, he would get a share of the added back amount Huh

Yeah, that's how it sounds like. Actually when I designed the moneypot investment system, what I did was create a repayable log of all the investment/divestment/bet events for in a nightmare situation like this (or software bug) it could be replayed so investors wouldn't have made/lost money from the changes in the bankroll when a fake better (or software bug) was playing.

The situation is probably a big mess now, as some investors have lost more than they should've and others made more than they should've. And it's probably pretty likely the ones who unfairly made money have already withdrawn (?) or at the very least, will be unhappy if their balance gets put to the correct amount

Reminds me of Cryptsy's POINTS hack roll-back drama.
Seems the Monero guys who make a coin and RUN a GAMBLING SITE BUSINESS using said coin are smarter than everyone else.. except when they get hacked.. via "over confidenceCheesy

I think he is lucky only. how hack seed? it's impossible.

We found the bug he exploited that leaked the seed, and we've subsequently patched it.

Oh yeah ?
I guess just take your word for it huh ?
What makes you think there was an exploit in your API ?
..the result ?

I understand the risk is on the investors too and the situation would have been different if the cheater managed to withdraw all the money.

But the cheater didn't get any of it, so if you do rewind the cheater's bets, it seems very obvious that you should refund to the affected investors. To suggest otherwise seems ridiculous to me. And to give free money to people who invested after the whole situation seems even more crazy.

We made a decision on how to handle it at the time, under pressure, to the best of our ability. You are welcome to disagree with that decision, but unless you're in that scenario running your own site your opinion is largely meaningless. It's easy to look at it after the fact and go "well I would have done X" - I can think of any one of 30 different ways we could have handled things.

That seems like a normal thing to do. If I see a site is hacked, obviously my first reaction is to withdraw my own money. You must be pretty stupid to not immediately make sure your left-over money is safe.

So then you cut your losses and you get out, the end. There is no coming back later on to try reclaim imagined profit.

Perhaps a comparison will help: let's say that you have 10 BTC in Poloniex. You hear that Poloniex isn't processing BTC withdrawals, along with panic that they're hacked, and use your BTC to buy a bunch of WaffleCoin and withdraw it. You sell your WaffleCoin on ShapeShift, but now the market's tanked and you end up with 9 BTC. Later that day Poloniex put out a statement apologising for the issues and stating that they're now fixed. Would you insist that they roll the trades back? What about the shorters that took profit from you?

Or what if you invested in a startup, and then when it looked like things were going south you sold your investment at a loss. Two years later the startup is a huge, successful company. Do you insist on taking profit from the growth because you *used to be* an investor?

You shouldn't roll the whole database back, you should look which investors got affected by the cheater and how much they lost. In theory just the rolls and invest/divest information, should be sufficient. I understand it's technically tricky and needs some custom script to calculate, but that seems like the only fair way.

EG: you have the invested amounts of the current investors. Loop all events (= all bets + divests/invests) from latest to start of cheater. First event is probably some real bet after the cheater, recalculate what the invested amounts where before that bet. Second event same. If event is a invest/divest, adjust invested amounts too. Then when you reach the last bet of cheater, you should have all the info of which investors were invested at that time including the amount. Separately save how much they lost (or gained) in that cheater's bet. Continue loop and if the event is a cheater's bet, do the same. All till you are back to the first cheater's bet. IMO after this, you should have a list of investors with specific amounts of how much they lost? Reimburse those amounts to the investors.

We thought about this, but we decided that it would be too dangerous for us to spend days and weeks trying to build a magical "undo" script, completely wrecking any auditability, and potentially ending up with a screwed up data set at the end.

BillyBurns already made a loss from the cheater? So if you decided the losses were on the investors, nothing would have changed? He wouldn't need to deposit - he is already in loss.

edit: TBH I am not sure how many investors actually divested like BillyBurns. If he is the only one, things are probably more easy :x But just the mindset of refunding the investors who actually lost money seems important to me.

With all respect to the affected investor, he took his $100 loss and walked away. He didn't contact us, he didn't ask for input on how we were going to handle things. He just assumed that it was the end, and he would have been the *only* investor to get out with his money had we not had safeguards and had the attacker been able to actually drain the wallet. What would have happened then?

You stated at the outset that you understand that the situation would have been different had the attacker managed to withdraw, but you're not actually following that thought through. Had that played out we'd have a total loss on the part of all the investors, and one investor who only incurred a $100 loss, and you can bet that investor wouldn't volunteer to divvy up his remaining funds among the affected investors.

Ultimately you're asking us to take up a morally hazardous position. What happens when someone "accidentally" places a large bet and loses? Should we undo their bet, and take the profits from the investors? An investor that divests and withdraws is no longer part of the bankroll. They bailed out with a profit or with a loss, and that's the end of that.

Nevertheless, I've already offered to send $100 to the affected investor, so I'm not sure what more you expect?

Teach us how gambling sites are *suppose* to work. LOL
Does this involve SPECULATING a seed was compromised ?

And who exactly is "we" ?
Is King Risto involved with the site in any way ? Who is ?
legendary
Activity: 1540
Merit: 1011
FUD Philanthropist™
February 08, 2017, 02:30:38 AM
#59
It would be interesting to know if this was a custom API or a public one, meaning that maybe other sites are affected and their owners could use this news to protect their sites too.
Of course patching your own is top priority.


Custom API, so I don't think this affects anyone else. We've disabled betting in the meantime whilst we sort this out, but I really think the lesson to other operators is not to be overconfident in your code or in your setup. Everything can and will be compromised, so assume it's going to happen and put safeguards in place to handle that eventual scenario.

I am bookmarking this comment gold  Cheesy

Best comment of 2017 so far easily.
legendary
Activity: 2730
Merit: 1288
October 24, 2016, 07:45:09 PM
#58
Why do you even care ? If he is clever and can hack then shame for you. He found a way into the system so good for him. Ga!nbling sites mostly bitch so its good to see someone got them back.


Well actually this gambling site seems quite fair.

I have few XMR invested on bankroll or however is it called. I invested over a year ago so quite soon after start and so far gained 4.5%. If i remember right half should go to casino and half to bankroll owners.
This shows how little players actually lose.


Oh and i had no ideas this happened Tongue  You can imagine how surprised i was reading it here.
Lucky me all went well and illegal bets was stornated and lucky me i had no ideas what was going on and I did nto do something stupid as withdraw XMR.
legendary
Activity: 1386
Merit: 1020
DGbet.fun - Crypto Sportsbook
October 23, 2016, 11:15:16 PM
#57
Looks like its just a bug not a hack because the gambler is gamble in normal until the 3 result  from nearly end are bug..
It is a large amount of monero if this is true and i think they should contact the support and maybe they give some rewards to say that than withdrawing it because like other said its manually withdrawal..

Look at the bets, look at the bet sizings, looks at the results of the bets and the sizings together. If you cant see it let me know so I can face palm.


They cant really see it  , i could say  that theres  no dice seed  hacked with these  bettings   its jsut  pure  luck  though, We cant really believe  it  hence these are  huge  winnings with  low  winning rate  seems  not  too common for us  thats  why  we could really say   theres an exploit.
sr. member
Activity: 429
Merit: 263
October 23, 2016, 07:49:31 PM
#56
Looks like its just a bug not a hack because the gambler is gamble in normal until the 3 result  from nearly end are bug..
It is a large amount of monero if this is true and i think they should contact the support and maybe they give some rewards to say that than withdrawing it because like other said its manually withdrawal..

Look at the bets, look at the bet sizings, looks at the results of the bets and the sizings together. If you cant see it let me know so I can face palm.
legendary
Activity: 3374
Merit: 3095
Playbet.io - Crypto Casino and Sportsbook
October 23, 2016, 06:51:17 PM
#55
Looks like its just a bug not a hack because the gambler is gamble in normal until the 3 result  from nearly end are bug..
It is a large amount of monero if this is true and i think they should contact the support and maybe they give some rewards to say that than withdrawing it because like other said its manually withdrawal..
hero member
Activity: 630
Merit: 500
RealistaToken.com
October 23, 2016, 06:30:44 PM
#54
if you've sent an email to admin ?. maybe it is in the hack. because first there was gambling sites were hacked. but in my opinion this is not because the systems in which errors in hack Grin
hero member
Activity: 896
Merit: 1000
October 22, 2016, 08:25:42 PM
#53
Oh good to hear you fixed it.
Looked like some test bets then hits.
legendary
Activity: 1302
Merit: 1005
New Decentralized Nuclear Hobbit
October 22, 2016, 01:13:33 AM
#52
I think probably it is added back to the investors at the time of adding back. So if someone divested, he won't get anything, but if someone invested, he would get a share of the added back amount Huh

Yeah, that's how it sounds like. Actually when I designed the moneypot investment system, what I did was create a repayable log of all the investment/divestment/bet events for in a nightmare situation like this (or software bug) it could be replayed so investors wouldn't have made/lost money from the changes in the bankroll when a fake better (or software bug) was playing.

The situation is probably a big mess now, as some investors have lost more than they should've and others made more than they should've. And it's probably pretty likely the ones who unfairly made money have already withdrawn (?) or at the very least, will be unhappy if their balance gets put to the correct amount

The log is a pretty good idea. I don't think there are many casinos here that have such a mechanism, probably just Moneypot. Cheesy

https://bitcointalksearch.org/topic/m.13969066 did they use the log when they removed the duplicate bets, or did they just add or subtract it back to the latest balance pro rata? I assume the latter because it is much easier?




So then you cut your losses and you get out, the end. There is no coming back later on to try reclaim imagined profit.

Perhaps a comparison will help: let's say that you have 10 BTC in Poloniex. You hear that Poloniex isn't processing BTC withdrawals, along with panic that they're hacked, and use your BTC to buy a bunch of WaffleCoin and withdraw it. You sell your WaffleCoin on ShapeShift, but now the market's tanked and you end up with 9 BTC. Later that day Poloniex put out a statement apologising for the issues and stating that they're now fixed. Would you insist that they roll the trades back? What about the shorters that took profit from you?

Or what if you invested in a startup, and then when it looked like things were going south you sold your investment at a loss. Two years later the startup is a huge, successful company. Do you insist on taking profit from the growth because you *used to be* an investor?
-snip-
We thought about this, but we decided that it would be too dangerous for us to spend days and weeks trying to build a magical "undo" script, completely wrecking any auditability, and potentially ending up with a screwed up data set at the end.
-snip-
With all respect to the affected investor, he took his $100 loss and walked away. He didn't contact us, he didn't ask for input on how we were going to handle things. He just assumed that it was the end, and he would have been the *only* investor to get out with his money had we not had safeguards and had the attacker been able to actually drain the wallet. What would have happened then?

I disagree with almost all of the examples. You cannot consider all your investors as a single entity.


Well, if you can set the investor's balance as would have if this guy didn't make the bets, it will be the best thing to do, especially if the amount added back is of a significant amount to the bankroll.

If you cannot, however, well...

Anyway, did you make certain you could not add it back in a fairer way?



To be honest, I considered investing once I read Grin
Looks like they managed to grab the server seed through a leak in the API - we're busy patching it, and will rollback the naughty bets. Thankfully we process every single withdrawal manually, and most of the funds are all locked up in a cold wallet, so no money was lost. It's precisely because of the very high risk of an exploit that we don't let withdrawals process automatically!
(I didn't though) so I can't say the adding back was very   fair. Anyone paying attention could guess well in advance what was gonna happen and make a profit.


Quote
Nevertheless, I've already offered to send $100 to the affected investor, so I'm not sure what more you expect?

That is nice Smiley
Pif
member
Activity: 153
Merit: 18
October 20, 2016, 03:31:16 AM
#51
...
Am I the only one who thinks this is just unacceptable?


No, and it is clear for what I already wrote in this thread. I understand that not being in their shoes and without the pressure of the moment to take a decision is easier but saw some bad attitude and thinking process here.

Anyway glad to see they decided to do what they should and fully refunded BillyBurns.
sr. member
Activity: 429
Merit: 263
October 19, 2016, 11:55:19 PM
#50
I was paid back in full and left with the impression they would  not handle the situation in this manner again.
legendary
Activity: 2030
Merit: 1189
October 19, 2016, 10:45:09 PM
#49
I don't have any skin in this game but imo the way FluffyPony/Monero is handling this is incorrect.

Someone tried to steal a bunch of money.  They were caught.  That money should be RETURNED TO THE PEOPLE WHO IT WAS STOLEN FROM!  Saying "We're not going to return the money that was stolen from you because" and then any reason is horrible and wrong.  So they divested?  Irrelevant.  They still had money stolen from them and keeping that money for yourself is a Very Bad Decision.  Who cares if figuring out who the money belongs to if a complex situation?  That's on you as the owner of the site, the person who allowed this money to be stolen, and the person who is making risk-free money.  This is your job.  Do it.
legendary
Activity: 1876
Merit: 1295
DiceSites.com owner
October 19, 2016, 09:23:36 PM
#48
You can say that, but it is still completely unacceptable. Just a TL;DR for those who didn't follow (simplified example but exactly what happened):




Imagine there are 4 investors with each 100 XMR, so total BR is 400 XMR. Cheater comes and wins 200 XMR, leaving all investors with 50 XMR each. 3 of the investors decide to divest to limit the amount the cheater can win (but the cheater doesn't bet anymore.) Owner luckily processes all withdrawals manually so is able to stop all the withdrawals including the one from the cheater (and from any investor, if temporarily needed.)

Now the owner has 2 refund options. Give 50 XMR back to each investor (who were invested at the time of the cheater.) This way, there is literally no loss for anyone. Or give all 200 XMR to the 1 investor that is left, so he can profit from the situation. The first option seems 100% obvious to me. And the second option is basically just scamming the other investors. You chose the second option and somehow still doesn't understand why it is wrong.





Don't even start about "what if", Poloniex or start-ups, the above is exactly what happened (with different numbers obviously.)

Am I the only one who thinks this is just unacceptable?
donator
Activity: 1274
Merit: 1060
GetMonero.org / MyMonero.com
October 19, 2016, 02:01:12 PM
#47
We already have a replayable log (that's the point of the MySQL log after all), but we couldn't rewind the entire system. Consider, for instance, a new user that created an account and deposited funds. If we roll the system state back we would have to manually allocate all of those and manually recreate the users. And, too, consider the exact issue we've got above, where a user divested and withdrew - how do you roll that back? You can't, so you have to move forward with the system in the current state.

::sigh::

That's not what a replayable log is, at all. A replayable log is logging all the individual events (e.g. bets, investments and divestments), in such a way that if you found a mistake had occurred (or in this case, fraud) you could fix the mistake (in this case, delete the bets) then replay everything so the investors balance is exactly is if the fraud never occurred in the first place.

It's actually just a good practice to be in, when ever I mutate state I *always* store the cause of it. (e.g. if someone transfers money, I log an event of the transfer. If someone claims the faucet, I store the details of that, if someone invests I store a record of it (and things like how much the bankroll was before they invested) etc).

And probably the other mistake people make, is over-constraining their database to not allow negative values. e.g. While a user balance never should be negative, the system should support it as cases like this might cause some accounts to legitimately be negative (them withdrawing gains they shouldn't have) or even deposits reverting after a blockchain reorg etc.

It's great for a disaster recovery situation like this, and it's great from an audibility perspective

Exactly, see http://martinfowler.com/eaaDev/EventSourcing.html

Note that even if you don't follow strict event sourcing best practices you should still have a log of everything anyway so that you can replay, just takes more effort. Surely each bet/invest/divest actoin must have a timestamp on his MySql rows?


Guys, you don't know our system design, you don't know our architecture. Even if you did, you can't possibly have all the facts of the matter. The continuous string of commentary is entirely pointless - the decision is not going to be made again, we've already moved past it.

And yes, we have timestamped logs for every single action, every single bet, every single investor credit, every single investor debit.
sr. member
Activity: 350
Merit: 250
October 19, 2016, 09:45:50 AM
#46
Custom API, so I don't think this affects anyone else. We've disabled betting in the meantime whilst we sort this out, but I really think the lesson to other operators is not to be overconfident in your code or in your setup. Everything can and will be compromised, so assume it's going to happen and put safeguards in place to handle that eventual scenario.

Do you think it could have been compromised a long time ago? Maybe the hacker got tired of milking it and just went for a big score.

It's entirely possible, but one of the Monero Research Lab wrote a paper (for fun) a year ago establishing a way to analyse whether someone is cheating by determining whether they are massively changing the deviation of the site.

We run this analysis in the back all the time, so if someone was consistently cheating, even if they were using multiple accounts and small amounts, we'd see it show up because the site would (statistically speaking) be far out of the expected variance.

You can read the paper here: https://lab.getmonero.org/pubs/MRL_Monte_Carlo_Edition.pdf
Even with small amounts? imagine if he were doing 2 losses for every win, but, every win he bets 3~5 times the lose value.
statistically, this wouldnt be almost impossible to find and with small amount it would be even harder.. any way, everything on internet have vulnerabilities.
legendary
Activity: 1400
Merit: 1021
October 19, 2016, 08:26:49 AM
#45
We already have a replayable log (that's the point of the MySQL log after all), but we couldn't rewind the entire system. Consider, for instance, a new user that created an account and deposited funds. If we roll the system state back we would have to manually allocate all of those and manually recreate the users. And, too, consider the exact issue we've got above, where a user divested and withdrew - how do you roll that back? You can't, so you have to move forward with the system in the current state.

::sigh::

That's not what a replayable log is, at all. A replayable log is logging all the individual events (e.g. bets, investments and divestments), in such a way that if you found a mistake had occurred (or in this case, fraud) you could fix the mistake (in this case, delete the bets) then replay everything so the investors balance is exactly is if the fraud never occurred in the first place.

It's actually just a good practice to be in, when ever I mutate state I *always* store the cause of it. (e.g. if someone transfers money, I log an event of the transfer. If someone claims the faucet, I store the details of that, if someone invests I store a record of it (and things like how much the bankroll was before they invested) etc).

And probably the other mistake people make, is over-constraining their database to not allow negative values. e.g. While a user balance never should be negative, the system should support it as cases like this might cause some accounts to legitimately be negative (them withdrawing gains they shouldn't have) or even deposits reverting after a blockchain reorg etc.

It's great for a disaster recovery situation like this, and it's great from an audibility perspective

Exactly, see http://martinfowler.com/eaaDev/EventSourcing.html

Note that even if you don't follow strict event sourcing best practices you should still have a log of everything anyway so that you can replay, just takes more effort. Surely each bet/invest/divest actoin must have a timestamp on his MySql rows?
legendary
Activity: 1463
Merit: 1886
October 19, 2016, 08:15:16 AM
#44
We already have a replayable log (that's the point of the MySQL log after all), but we couldn't rewind the entire system. Consider, for instance, a new user that created an account and deposited funds. If we roll the system state back we would have to manually allocate all of those and manually recreate the users. And, too, consider the exact issue we've got above, where a user divested and withdrew - how do you roll that back? You can't, so you have to move forward with the system in the current state.

::sigh::

That's just rolling back the database, and not what I meant at all. A replayable log is logging all the individual events (e.g. bets, investments and divestments), in such a way that if you found a mistake had occurred (or in this case, fraud) you could fix the mistake (in this case, delete the bets) then replay everything so the investors balance is exactly is if the fraud never occurred in the first place.

It's actually just a good practice to be in, when ever I mutate state I *always* store the cause of it. (e.g. if someone transfers money, I log an event of the transfer. If someone claims the faucet, I store the details of that, if someone invests I store a record of it (and things like how much the bankroll was before they invested) etc).

And probably the other mistake people make, is over-constraining their database to not allow negative values. e.g. While a user balance never should be negative, the system should support it as cases like this might cause some accounts to legitimately be negative (them withdrawing gains they shouldn't have) or even deposits reverting after a blockchain reorg etc.

It's great for a disaster recovery situation like this, and it's great from an audibility perspective. It's probably too late for this time around, but it might be worth designing around in the future.
Pages:
Jump to: