C
Cigital Blog
cigital.com · Company blog · on HN since 2008
Cigital was a software security consulting firm whose blog covered application security, agile security and vulnerability analysis before Synopsys bought it.
What HN saysHN links its classic paper on cheating at online poker as a cautionary tale about poor random number generator seeding.
32HN people shared it
20linked it in comments
13stories submitted
87story points
10 years agolast shared
2008people per year2026
Most-shared posts
- 1How We Learned to Cheat at Online Poker: A Study in Software Security (1999)20 people · 74 points · first shared 2008 · 15 comments on HN
- 2Node.js and Socket.IO: How Security Fails When ‘null’ Is ‘false’2 people · 6 points · first shared 2016 · discussion on HN
- 3Jobs2 people · first shared 2013
- 4Top Web Application Security Vulnerabilities Compared to the OWASP Top 101 people · 2 points · first shared 2016 · 1 comments on HN
- 5I Repeat Myself When Under Stress, I Repeat Myself When Under Stress1 people · 1 points · first shared 2010 · discussion on HN
- 6Synopsys acquires Cigital and Codiscope1 people · 1 points · first shared 2016 · discussion on HN
- 7The Agile Security Manifesto1 people · 1 points · first shared 2016 · discussion on HN
- 8Cloud Hype and de-Hype1 people · 1 points · first shared 2010 · discussion on HN
- 9Learn How the Agile Security Manifesto Guides Secure Development1 people · 1 points · first shared 2016 · discussion on HN
- 10Show 1121 people · first shared 2016
- 11Show 1111 people · first shared 2015
- 12Secureassist1 people · first shared 2013
- 13Services1 people · first shared 2013
What HN people wrote when they linked it
jsaxton86 · 2012-12-05
I think the author was alluding to the following: http://www.cigital.com/papers/download/developer_gambling.php
Wingman4l7 · 2011-07-20
An excellent (if a bit dated) example of this is discussed in depth in this article:
http://www.cigital.com/papers/download/developer_gambling.php
snorkel · 2009-10-24
Reminds me of this classic cautionary tale of poor PRNG seeding, How We Learned to Cheat at Online Poker, http://www.cigital.com/papers/download/developer_gambling.php
bsamuels · 2014-06-01
Cigital - Hiring software security folks, product evangelists, product support engineers, sales reps, and a few marketing people!
INTERN, FULL TIME
What we do: We're a software security consulting firm that prevents e-bay incidents from happening. Static analysis, penetration testing, architecture review, threat modeling, you name it. We work with a wide variety of clients and products ranging from big banks to mobile apps to video games.
Almost all of our security people are consultants - so there can be a fair amount of travel involved. The work is varied so you can really focus the type of work you do based on your interests and skill. It's an amazing place to work - there's rarely a dull moment.
We have locations all over the place, including:
• Northern Virginia
• Boston, MA
• Santa Clara, CA
• New York, NY
• Bloomington, IN
• London
You can read more about our open positions here: http://www.cigital.com/careers/jobs/
If you're looking to challenge yourself or try something new, email me your resume at [email protected]
mcherm · 2016-04-04
And this inability to cover all possible sequences has real-world implications.
https://www.cigital.com/papers/download/developer_gambling.php
http://superuser.com/questions/712551/how-are-pseudorandom-and-truly-r…
tacon · 2016-03-11
Recently I listened to an episode of the Silver Bullet security podcast that had Steve Bellovin and Matt Green as guests, discussing this then recently released report. It's pretty sobering to hear how government decision makers just blow off tech warnings. Bellovin has a story from his stint as FTC CTO, and how easy it is for people to convince themselves that doing something technical isn't really that hard. They never come right out and say it, but Dunning-Kruger must be in the back of their minds.
https://www.cigital.com/podcasts/show-112/
quarktasche · 2015-10-03
If you like this kind of thing go read this write-up of predicting hands in online poker due to bad implementations of shuffling and PRNG algorithms! Its quite a fun read.
https://www.cigital.com/papers/download/developer_gambling.php
chilgart · 2015-07-10
This is a timely piece for me after seeing and hearing thoughts from the YC side[0] and the practitioner side[1]. I'm of the belief that many security issues can't be innovated away like a stereotypical startup is funded to solve. There aren't any "products" to sell when many of the problems lie with the decision making processes at insecure organizations.
[0]: https://twitter.com/sama/status/618883756774916096
[1]: http://www.cigital.com/silver-bullet/show-111/
swang · 2015-04-24
This is PlanetPoker[0]
The gist of it is their algorithm never chose the last card in the array to swap with, and the last card was never guaranteed to be the last card. They also committed the common mistake of implementing the "naive" shuffle, which is not equally distributed.
[0] http://www.cigital.com/papers/download/developer_gambling.php
UrMomReadsHN · 2014-09-01
It has happened before!
See http://www.cigital.com/papers/download/developer_gambling.php for a very detailed explanation of how one figured out all the cards in Texas hold-em.
jonahx · 2014-09-01
This has happened in the past. Interesting read:
http://www.cigital.com/papers/download/developer_gambling.php
rfugger · 2014-02-11
There's a decent explanation here:
http://www.codinghorror.com/blog/2007/12/the-danger-of-naivete.html
There's also a more complete story about the online poker exploit here:
http://www.cigital.com/papers/download/developer_gambling.php
MikeTV · 2014-02-10
Direct link to the full article with a detailed explanation of the exploit: http://www.cigital.com/papers/download/developer_gambling.php
zprit · 2013-06-01
Cigital does exactly this and more. We've even got a plugin for Eclipse that will provide suggestions on secure coding for Java.
Info about the QA/Security Consulting:
http://www.cigital.com/services/
Secure coding plugin -
http://www.cigital.com/products/secureassist/
luser001 · 2013-04-30
Really good article on the pitfalls of a weak random number generator. I think it's been on HN before: http://www.cigital.com/papers/download/developer_gambling.php
For me, this was the article that made it crystal clear why you cannot use current time as a seed for a RNG.
aidanf · 2012-03-21
Here's another interesting case-study in exploiting a bad RNG. It's from 1999 and shows how the authors were able to exploit the weak RNG at planetpoker.com to predict the sequences output by their card-shuffling algorithm.
http://www.cigital.com/papers/download/developer_gambling.php
shabble · 2011-09-01
Using a physical process is generally going to be harder to exploit than a software one. There's going to be the possibility of uneven distribution (customer order timestamps may cluster at certain parts of the day, rather than being evenly distributed), as well as the (granted, small) possibility that on some small site without Amazon scale, the attacker can generate enough entries that it can reasonably assume one of them will be picked by the random index.
One interesting story about exploiting a poor RNG in Online Poker: http://www.cigital.com/papers/download/developer_gambling.php
https://webcache.googleusercontent.com/search?q=cache:AdC18Y8C6UkJ:tae…
is another one, where the PRNG seed for a shared Nethack server wasn't random enough, and could be discovered and synchronised for fun and cheaty profit.
dirtyb1t · 2014-08-04
Cigital is hiring software security folks!
What we do: We're a software security consulting firm that helps build security into the SDLC. We work on a wide variety of projects involving static analysis, penetration testing, architecture review, threat modeling, red teaming, network pen testing, etc. We deal mostly with the private sector and the types of applications we work with are varied from mobile to webapps to video games.
We're all consultants so we tend to travel a fair amount. As I said, the work is varied and you can really focus the type of work you do based on your interests and skills. It's definitely a fun place to work. The people here are really smart and there's lots of room to grow your skills. We're looking for everything from interns to principal consultants and we have positions open all over the place including:
• Northern Virginia
• Boston, MA
• Santa Clara, CA
• New York, NY
• Bloomington, IN
• Seattle, WA
• London
You can read more about the jobs here: http://www.cigital.com/careers/jobs/
DO NOT apply directly to our website. Email your resume to cigitalrecruiting[at]gmail.com, along with a desired position and location. I have tons of tips to help you nail the interviews. (sorry for the personal email, but the amount of spam emails I have gotten after posting here is ridiculous, and unfortunately there is not a PM system).
aestra · 2014-02-06
Take a look here: http://www.cigital.com/papers/download/developer_gambling.php
They found a flaw in a REAL poker site because they were using a pseudo random number generator (and a stupid algorithm) and were able to know the order of the cards being used in the game!
>The RST exploit itself requires five cards from the deck to be known. Based on the five known cards, our program searches through the few hundred thousand possible shuffles and deduces which one is a perfect match. In the case of Texas Hold'em poker, this means our program takes as input the two cards that the cheating player is dealt, plus the first three community cards that are dealt face up (the flop). These five cards are known after the first of four rounds of betting and are enough for us to determine (in real time, during play) the exact shuffle. Figure 5 shows the GUI we slapped on our exploit. The "Site Parameters" box in the upper left is used to synchronize the clocks. The "Game Parameters" box in the upper right is used to enter the five cards and initiate the search. Figure 5 is a screen shot taken after all cards have been determined by our program. We know who holds what cards, what the rest of the flop looks, and who is going to win in advance.
crux_ · 2009-11-07
Besides the performance difference, the main issue is the ideal of a perfect shuffle: each of the N! sorts ought to be equally likely.
(N.b.: this post ended up being mostly the same point as fhars, only phrased differently.)
However, this is tricky to achieve. It requires either:
- an infinite source of random numbers
- a psuedo random number generator whose pool size (the # of random numbers it can generate) is an even multiple of N! (If not, then it have bias towards certain shuffles almost by definition.)
Here's what happens when someone does it all wrong -- the wrong shuffle algorithm and, far more devastatingly, a poor PRNG choice:
http://www.cigital.com/papers/download/developer_gambling.php
(Consider that if your PRNG takes a 32-bit seed, there will be at most be 2^32 possible shuffles, even with a correctly perfect shuffling algorithm --- few enough for an attacker to pre-calculate every possible shuffle to use against you.)