HNHacker News
TopNewBestAskShowJobs

jjarmoc

275 karma · joined November 6, 2013

submissionscomments
jjarmoc··on Ask HN: Who is hiring? (April 2015)
I'm really not sure if we're doing fall internships or not. We've historically done them over the summer, since that's when most candidates tend to be available.

We're currently making the final decisions regarding summer internships. When we're accepting applications for intern candidates again, I'll be sure to note it accordingly in hiring thread posts at that time.

jjarmoc··on Enough with the Salts: Updates on Secure Password Schemes
> There is one thing that I think is often omitted. A lot of user use trivial passwords and they reuse them. These users' passwords will fall essentially no matter what you do because making the check so slow that a dictionary attack with a couple thousand very common passwords becomes impractical is itself borderline impractical.

Sure. This is something I touched on very briefly near the end of the post. Password re-use is a huge problem and could easily be an blogpost of its own.

> On the other hand strong passwords will withstand an attack even if they are hashed with plain MD5 or SHA1 - at least right now, there are already some serious collision attacks.

For some value of 'strong' sure. If you're password is long enough, random enough, and of a broad character set then yes, an md5() of that may well be beyond the reach of most attackers. But that's not the sort of password most people, even security conscious people, choose. A preimage against MD5 would quickly change this too, and that's a risky gamble.

> The user group really benefiting from strong password hashing schemes is the one between the two mentioned extremes.

The best we can do is make attacker costs a function of the password that the user has chosen. If someone makes their password 'password' there's no degree of magic that's going to help. Mostly, the benefit comes if/when disclosure occurs and there's an active incident response effort.

> So if you really want to protect all your users and use simple password authentication you have to enforce strong passwords policies which is itself not trivial and will definitely badly annoy some users.

It's not a zero sum game. When a breach occurs, the rough points in time are something like:

1) Attacker compromises digests (let's just assume all are obtained in an instant, rather than exfiltrated over time) 2) Attacker recovers 1 password 3) Attacker recovers n passwords 4) Attacker recovers all passwords

Our goal isn't to eliminate these steps except hopefully the extreme of 4. Rather, it's to increase the time between 2 and 4, and make sure 3 is closer to 2 than 4.

On the other side of the coin, there's a few points in time:

a) Victim org. realizes digests have been compromised. b) Some credentials valid at 1 are made invalid. c) All credentials valid at 1 are made invalid.

If you accept my previous point that at some extreme there's nothing that can be done to prevent brute force, then you should also see that storing passwords in this fashion isn't meant to be a perfect defense. By minimizing the number of compromised accounts at a given point in time, we can maximize the benefits of our response. We can notify users and force resets, invalidating some set of credentials before they're recovered. We want b and c to be closer in time to 2 than 4, and minimize the value of n when we get there.

jjarmoc··on Enough with the Salts: Updates on Secure Password Schemes
You raise a good point, but one that's probably an issue to a minority of those implementing applications that require an authentication component. Sure, the Twitbooks, GooSofts and FaceLinks of the world that deal with large numbers of concurrent authentications have to think a bit more about this, and that's fine; I would expect that they would be well equipped to do so, and likely also run dedicated authentication servers and carefully considered systems.

I can probably count on one hand the number of times I've seen an application use bcrypt or scrypt and define their work factors. The common case seems to be sticking to the defaults that their chosen library ships with. While these may be somewhat less than ideal, it's universally true that these schemes are stronger than salted passwords fed to a fast cryptographic hash.

jjarmoc··on Ask HN: Who is hiring? (April 2015)
Since we don't have a typical HR team handling inbounds, response times vary significantly from 'really fast' to 'much slower than we'd like.' It depends on a lot of factors outside the applicant's control, including how busy we are with client work, etc. Please try not to read anything into response time, and if you're concerned feel free to send an inquiry.
jjarmoc··on Ask HN: Who is hiring? (April 2015)
~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~

MATASANO SECURITY - Chicago. New York City. Sunnyvale.

Application Security Consultant

Full-Time, work visa sponsorship available

~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~

What excites you and ignites your muse?

When I was a child I'd often get in trouble for 'breaking' things. Teachers, parents, and other authority figures didn't understand what motivated this behavior, but with the benefit of hindsight I now do. I wasn't breaking things at all, I was exploring them. I was learning how they worked by taking them apart and seeing them laid bare. Sometimes, I'd manage to put them back together and occasionally they'd even work!

Once, when I was about twelve or thirteen, I took apart a mechanical bedside alarm clock, laid all the gears out organized by size and was promptly grounded for 'destroying' it. While serving my punishment, I went to work re-assembling it, with one small change. What had previously been a cheap cardboard clock face was replaced with a piece of translucent contact-paper, with numbers careful stenciled in their proper places. I loved that clock. Every morning I'd wake up, see it, and glance deep into its inner workings. That visual reminder that I'd been curious and unlocked its secrets was how I started mornings throughout my formative years.

Somewhere along the line, I lost track of where that clock ended up. It may be gone, but the spirit it demonstrates remains one of my strongest motivators. I've found no better outlet for this drive to understand the inner workings of things than software security assessment.

At Matasano, we treat our client's applications like I did that clock. We take them apart, examine them piece by piece, and arrive at an understanding of what makes them tick. Only after arriving at this can we find and exploit vulnerabilities. We slap a clear face on those applications, with the numbers carefully identifying any discovered flaws. We take them apart and 'break' them, not to be destructive, but to be constructive through understanding them. Thankfully, we don't even end up grounded. :)

There's no area of computing that draws on as many skills, but programming, debugging, protocol analysis, reverse engineering, systems administration, network engineering and cryptographic analysis aren't what make great AppSec consultants. You need to find what motivates you. For me, being tasked with quickly developing a deep understanding of unfamiliar applications plays right into the mindset that led me to explore that clock.

So, again I'll ask, what excites you?

Learn about our hiring process at http://www.matasano.com/careers or contact us at careers@matasano.com

Get a taste for some of what we do at http://www.microcorruption.com and http://www.cryptopals.com

Check out our blog at http://chargen.matasano.com

~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~'`^`'~-,._.,-~

jjarmoc··on Slack was hacked
Ohh, okay. I see what you're getting at now.

Yah, that does seem like a reasonable design. The implementation wrinkles there are that the hardness params have to be encoded in the digest itself, or otherwise stored alongside it. Since implementations commonly do this anyhow, that doesn't seem likely to pose much problem in practice (if any). The other issues would be details around when to calculate the hardness. On app initialization seems obvious, but you'd have to sample over some period of time to get a representative benchmark. I worry that this could exceed administrator tolerance for how long an app can reasonably take to start up, but this doesn't seem like a show stopper either.

Ultimately though, I'm not sure the factors are THAT variable. I mean, you want to reconsider work factors as hardware advances, but I don't think the line is so solid that running a work factor of N versus N+1 will make that much of a practical difference in the span of a few months or even a few years. Still, with the goal of making it as hard as feasible while still being suitably performant in the context of a given system it makes sense.

jjarmoc··on Slack was hacked
Uhh.. it doesn't? While it does give some specific values as 'a reasonable starting point' the article suggests tuning these to the specific environment.

"Each of these algorithms requires setting of an appropriate work factor. This should be tuned to make digest computation as difficult as possible while still performing responsively enough for the application. For concurrent user logins, you may need <0.5ms response times on whatever hardware is performing the validation. For something like single user disk or file encryption, a few seconds might be fine. As a result, the specific work factor values appropriate for your application are dependent on the hardware running your application and the use case of the application itself. Thomas Pornin gave some great guidance on determining these values in a post to stackexchange"

The stackexchange post (which is linked in the article) can be found at http://security.stackexchange.com/questions/3959/recommended...

jjarmoc··on New Vulnerability: Mercurial Command Injection (CVE-2014-9462)
"This Old House" is exactly the intent of the reference. The old Matasano Blog had two ongoing series of posts "This Old Vulnerability" and "This New Vulnerability". The former was used for discussions of older vulnerabilities, while the latter was used for discussing new vulns.

One such example (from 2007) was ported over to our relaunched blog. http://chargen.matasano.com/chargen/2007/7/27/this-new-vulne...

jjarmoc··on Show HN: InstantCryptor – AES256 Encryption for Dropbox and Google Drive
I don't know that I'd necessary push for ChaCha20, but lack of ciphertext authentication is a clear problem. AES-GCM or even AES-CBC with an HMAC that's validated prior to decryption can provide the needed authenticity checks.
jjarmoc··on Show HN: InstantCryptor – AES256 Encryption for Dropbox and Google Drive
CBC mode is not inherently secure. Details matter and can often introduce catastrophic problems.
jjarmoc··on Dropbox Is Probably Not Stealing Your Files
This is pretty close to how their deduplication used to work, and isn't too different than how rsync works.

Of course, this gave rise to the ability to transfer files (even non-public files) quickly between Dropbox accounts provided knowledge of the hashes of its chunks, and Dropbox has since changed their deduplication. See https://github.com/driverdan/dropship

jjarmoc··on Ask HN: Who is hiring? (March 2015)
.................................................................................................................

MATASANO SECURITY - Chicago. New York City. Sunnyvale.

Application Security Consultant

Full-Time or Internship, work visa sponsorship available

..............*________________________________________________________

   <Mission Impossible theme plays>
This thread will, no doubt, be dominated by posts with laundry lists of requirements. Many employers will introduce themselves by describing what they want from you. At Matasano, we're a little different. We like to start by telling you about us. This month, I want to try to do that by drawing analogy to Mission Impossible.

What made the original show so great is exactly what was lost in the 'Tom Cruise takes on the world' reboot. The original 1960's and 70's Mission Impossible was defined primarily by a team working together against all odds to achieve their objective. It acknowledged that what they were doing was improbable, and more so for a solo James Bond or Tom Cruise character. As a team though, each character an expert in their particular focus area, the incredible became credible -- the impossible, possible.

Working at Matasano is a bit like working for the Impossible Missions Force (IMF). No, we're not taking out thinly veiled cold war era Soviet stand in villains, preventing the rise of the third reich, or being tasked with gathering evidence against criminals "outside the reach of conventional law enforcement." But in many cases, we're given tight timelines and tasked with difficult objectives. To the uninitiated, what we do is often seen as impossible, but _together_ we do it every day.

Imagine you (and your team) have a month to circumvent a real world cryptographic system designed and sold for Fortune 500 companies to protect their most sensitive intellectual property. Maybe you're given a week to investigate and undercover flaws in a brand new Ruby on Rails application. You might find yourself facing a never-before-seen client/server application, implementing a proprietary binary protocol, and having to figure it out and attack it. You could end up drawing on binary reverse engineer skills, or reviewing Java code. But whatever the 'mission', you won't be alone. You'll be part of a team of experts, each bringing their own skill set to the team.

We don't have very much call for demolitions experts, special effects makeup artists, or champion weightlifters. Like the IMF, we're looking for people with diverse backgrounds who each bring something unique to the team. There's little in computing that isn't useful for an Application Security Consultant. We need Reverse Engineers. Developers of all backgrounds, Cryptographers, Electrical Engineers, you name it. We're as likely to hire a Mathematics PHD as a college drop out. Many of our best employees have little formal information technology background. In short, we come from a variety of backgrounds, but share one common trait -- We're curious about nearly everything, and have a wide base of knowledge, but have achieved mastery over one (or more) disciplines. These are the sorts of people the IMF built their team from, and they're the sort of people who we're looking for at Matasano.

Your mission, should you choose to accept it, is to visit www.matasano.com/careers to learn more and contact us. In the enclosed dossier, you'll find links to www.cryptopals.com and www.microcorruption.com which may be of interest. Further intelligence is available at the chargen.matasano.com blog, and you can always contact careers@matasano.com with any remaining questions. As always, should any member of your team be caught or killed, the Secretary will disavow all knowledge of your actions.

This isn't Mission Difficult, it's Mission Impossible. Difficult should be a walk in the park for you.

This tape will self destruct in five seconds. Good luck.

________________________________________________________________--(BOOM)

jjarmoc··on Extracting the SuperFish certificate
IANAL;

In the Lenovo case, probably not. But in the case of an employer-provided system and network intended for business purposes which performs SSL interception for security and data leak prevention? I think it can clearly be considered reasonable for the company to do that, and the user's expectation of privacy is significantly different. I do feel it's important that Acceptable Use Policies, Employee handbooks, etc. disclose the activity though.

jjarmoc··on Extracting the SuperFish certificate
Yeah, it's a balancing act, and there's certainly a desire (and probably even a legitimate need) to monitor encrypted comms for malware C&C channels, data exfiltration, etc.

Your view seems to reflect a similar nuance as my own. Administrators need to weigh the risks and benefits as it relates to their own environment, and users should at least be aware that such monitoring is taking place. Beyond that, there's some technical challenges, but I see the bigger issues as political and expectation vs. reality alignment.

There's also a video of my talk online, which I'd honestly forgotten about. Maybe someone will find it interesting; https://www.youtube.com/watch?v=7TNdHzwTNdM

jjarmoc··on Extracting the SuperFish certificate
I've been hoping for years people would wake up to the risks of these things.

I presented on the topic at Blackhat Europe a few years back, where I disclosed several certificate validation flaws in Cisco Ironport. I understand there's legitimate reasons for enterprises to want to decrypt and inspect TLS connections, but it's not without it's risks and downsides.

If you're curious about my past work, see: http://www.secureworks.com/cyber-threat-intelligence/threats... http://media.blackhat.com/bh-eu-12/Jarmoc/bh-eu-12-Jarmoc-SS...

jjarmoc··on Life in a post-database world: Using crypto to avoid database writes
Okay, wow... forgive my typos and grammatical errors. Rage replying :)
jjarmoc··on Life in a post-database world: Using crypto to avoid database writes
Lately I see this approach used more and more. I really don't understand what the big gain is. Sure, you save yourself a few database round trips, but is that really that big a deal?

Compare that savings with the additional size of URL parameters (increasing network overhead) in addition to the processing overhead of encryption/signing/validation. Have we really made a performance gain? I don't have any hard numbers, but I'm willing to wager than at gains are fairly negligable.

From a security standpoint, I'm not fond of this approach, and I don't think it's benefits outweight the added risks. Here's why:

- Encryption (including simple signing) is really easy to get wrong in subtle ways. A simple mistake like using SHA256() instead of HMACSHA256() breaks the system badly.

- A corralary to the first point is that using a strong key is vital. The article says nothing of the criteria a strong key should meet and a poor key could enable additional attacks. While I'm not aware of anything allowing for HMAC key recovery in better than brute force, this could be problematic. If your key is a random 10 character ASCII string, it falls to brute force in minutes at most. If it's 256 random, you're much better off.

- This scheme introduces a significant number of anonymous user-supplied inputs to the application which didn't previously exist. Each of these is a potential place for things to go wrong, which can give rise to other vulnerabilities (XSS, SQLi, etc) depending on what you're doing with that input. You'll need to be sure that you validate the signature prior to doing anything with these unverified inputs, in addition to performing sanity checks on their contents prior to signing. Part of secure application design is to minimize attack surface and complexity - this does the opposite.

- Once a signature is created, it can't be revoked. I mean, you could store the signature in the database and validate it's presence on receipt, or include in your signed values a nonce that's stored in the database, but that kind of defeats the goal of avoiding database storage. This is something the article tries to address by signing over things like an expiry time, the user's old password digest, etc. But that's insufficent as well (I'll get into why below).

- While I'm not aware of anything allowing for HMAC key recovery in better than brute force, choosing a secure key is still important. The article says nothing of the criteria a strong key should meet and a poor key could enable additional attacks.

- Even if you get everything right, key exposure is fatal. You've introduced a single point of failure in the system that didn't previously exist, and a fairly catostrophic one. If the app ever leaks that key, you're only option is to rotate it (assuming you detect the exposure), which invalidates any existing signed values.

That's the broad points, let's look at the article's examples:

  http://myapp.com/resetPassword?userId=johnnysmith&expirationTime=1356156000&token=%SECURITYHASH%
Okay, so we have an irrevokable reset token for johnnysmith valid until 12/22/2012. The article doesn't mention where the key comes from. Since the key is the only thing johnny doesn't know, he can attempt as many keys as he wants offline. If he gets a hit, he can now create a valid token for any account he wants. NOT GOOD If the key is sufficiently long and randomly generated, this becomes much more difficult to the point of infeasibility but if the key is weak, so too is the overall security.

As the article notes the token can also be reused multiple times, even if johnny has already used it. They offer a means of fixing this:

  HMAC256("userId=johnnysmith&expirationTime=1356156000&oldBcryptHash=$oldBcryptHash&clientIpAddress=$clientIpAddress", $mySuperSecretKey)
Okay, so with the bcrypt digest covered under the hash, a change of password will cause the signature to no longer match. But now on verification we have to pull the user's hash before calculating the HMAC, so we've added a database read back which reduces the perceived benefits.

Furthermore, this token is still valid if Johnny requests a password reset, and while waiting for the email to arrive remembers that he changed it from 'Password123' to 'Password456' and logs in. There's then a window of time where that token remains valid (until expirationTime arrives) and can be abused. The article doesn't address this case at all. I suppose they'd say that on issuing a token, you should disable login to Johnny's account until he's reset, but how would you do this? Well, you'd set a flag in that database on Johnny's record, and we're kind of back where we started again with both a database read and write, but with added cryptographic overhead and attack surface too.

The next example talks about account registration. It states that you can verify a user's email account by sending them a link to:

  http://myapp.com/createAccount?email=johnnysmith@gmail.com&token=%SECURITYHASH%
This doesn't concern me as much as password recovery, since account creation is likely to be fairly anonymous anyhow and not nearly as security sensitive. Still, it's not technically true that the token validates your receipt of the email. Instead, it validates your receipt of the email, or your knowledge of the key and values used to generate the token. In practice, this is likely a small difference, but a truly random token stored in the database would require database access or visibility into the email to obtain, whereas this requires only knowledge of the key instead.

Case Study 3 talks about one-time-use and expiring resources. There's not enough detail here about their scheme for me to really critique, but they point out AWS/S3 use of HMAC signing as an example. Except that AWS/S3 signing isn't about one-time use or expiration. Instead, it's about authenticity.

AWS operates with an ACCESS_KEY and SECRET_KEY which are a pair of tokens related to each other. Requests with 'params' are signed as:

  Signature = HMAC(ACCESS_KEY + params, SECRET_KEY)
Signature, ACCESS_KEY, and params are sent to the server. SECRET_KEY is the HMAC signing key. On the server side, AWS presumbaly does a DB lookup for your ACCESS_KEY, obtains the corresponding SECRET_KEY, and validates the signature matches. This authenticates that the requestor has knowledge of the SECRET_KEY, but it implies the existing of a database lookup. If you think of the ACCESS_KEY as a username, you'll see that this is really authenticating each request, as well as preventing tampering. You can issue keypairs that're good for only one use, or expire after a set time period, etc. but there's nothing implicit in the HMAC scheme that causes this. Interestingly, this scheme almost certainly requires storing the token in a server-side database the exact thing the author wants to prevent.

This can be done reasonably well, but it's a minefield to navigate when we have a tried and true solution. What's so bad about database storage of tokens? The post kind of starts with the assertion that they should be avoided, but I see no clear explanation as to why.

jjarmoc··on Authentication Cheat Sheet
"I read they recommend to use the both (adaptive hashing and "local parameterization")."

I read their text as recommending A or B, based on the intro where they state "Two approaches facilitate this, each imperfectly."

"As even if you utilize separate device (HSM for example) for encrypting the passwords (I'd encrypt instead HMAC), you should indeed not give up on adaptive hashing."

Right, this is the sort of thing that led me to hedge by saying I MIGHT be convinced if an HMAC were involved; it still gives me pause, for sure.

jjarmoc··on Authentication Cheat Sheet
Some of this is good advice, but there's a BIG point on the 'Password Storage Cheatsheet' that's linked and referenced by the above article, that I don't think is solid. https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet...

Specifically, it suggests storing passwords using: `return [salt] + HMAC-SHA-256([key], [salt] + [credential]);`

It goes on to note that the key must be protected as private, strongly random, and stored outside the credential store, while the salt (can we please call it a nonce?) can be safely stored against credentials.

I'm still not comfortable with this construction. Stick with their earlier advice and use scrypt, bcrypt, or PBKDF2. That's my order of preference too, which differs from theirs somewhat, but that's a minor quibble; all three are reasonable.

The problem with their construction is that HMAC-SHA-256() is designed to be fast, and so attackers have the opportunity to make a lot of guesses quickly. The secrecy of the key helps over a straight SH256(...), but not a lot for the following reasons:

1 - It assumes an attacker who compromises the credential store won't also have the key.

2 - It assumes an attacker is unable to recover the key.

1) is a valid assumption for certain classes of attack. If your key is stored in an environment variable or something, while credentials are stored in a database, an attacker who compromises your database via a SQL injection won't have the key. But the problem is that an attacker who compromises the application may. If I have full remote code execution on the server (and you have a bad day then, passwords aside) I'll have the key. Or maybe an attacker has an arbitrary file read (not quite as bad a day), and you store your key in a flat file on disk. Or an attacker can cause your application to generate a stack trace (disclosing runtime details) and view the key...

You get the idea - there's lots of potential ways to get that key regardless how you store it, and everything hinges on that. Once they have the key, they can mount dictionary or brute force attacks against credentials just as they would against `SHA256([salt]+[credential])`

2) is a valid assumption only if the attacker doesn't know a single password's plaintext value and the key is sufficiently long and random. If I know the password to my own account (and I likely do) or any other account (let's say one user on the site uses a password that was recovered in another breach) this scheme fails.

Suppose my salt is "SALTYSALT" (okay, so my PRNG sucks; also a detail to be wary of) and my password is ye olde "PASSWORD" (yah, this sucks too.. but it's my crappy password. Maybe I added it just to observe the resulting HMAC value?) Now I can just try calculating `HMAC-SHA-256("A", "SALYTSALT" + "PASSWORD")` If that doesn't match, try `HMAC-SHA-256("B", "SALYTSALT" + "PASSWORD") and so on. The one thing I don't really know that would help is the length of the key. If it's long enough (We'd want at least 256 bits), and strongly random, I may have a difficult time. It it's short (And they make no recommendation on it's length, just that you "Generate the key using cryptographically-strong pseudo-random data"), I'm going to crack the key, and then I'm back to attacking all the other credentials.

I MIGHT be convinced of this being reasonable if it can be ensured that all the HMAC calculations are done in something like an HSA or TPM which generates a large key internally and doesn't expose it, even to the application. But that's probably not the scenario we're talking about here. Even then, you've got nothing to lose by using an adaptive algorithm rather than the HMAC construct. For anything else, it's far safer (and easier really!) to use scrypt, bcrypt, or PBKDF2. So just do that.

jjarmoc··on Ask HN: Who is hiring? (February 2015)
-= MATASANO SECURITY =- Chicago. New York City. Sunnyvale. Hiring Application Security Consultants Full-Time or Internship, work visa sponsorship available.

February - The shortest month of the year, and one of the coldest (maybe not so much in our Sunnyvale, CA location). That month every year when we set aside some time to show appreciation for our loved ones through gifts, greeting cards, dinner dates, flowers, and a well considered application security posture.

Maybe that last one isn't on everyone's minds, but it is here at Matasano Security. In many environments, while application security is desirable, it generally isn't a primary requirement. Applications need to perform their core purpose, whatever that may be, so they can aid business by driving revenue. The conflicting priorities can lead developers to make poor design decisions, rush implementations, and spend less time considering attack scenarios than would be ideal. This isn't their fault! It's a function of conflicting priorities and focusing on those which are most tangible, and most measure.

At Matasano this balance is different. Application security is our passion, and our goal is to fill the unmet needs our clients have to strengthen their posture. Our singular focus on security helps us maintain an aptitude and laser guided precision that's far above the mean. We truly enjoy combing through code, reviewing the flow of information into and out of an application, and finding places where malicious actors can leverage vulnerabilities to their advantage. We love our clients, but it's not the sort of love you'll read about on little candy hearts. We tell them the truth about their security, not just rosy platitudes.

Sometimes this can mean delivering bad news when we're able to totally compromise an application and execute our own code on its server. Other times it means explaining that when the server asks the client to identify itself, the client can just lie. Often it means explaining that their homegrown encryption scheme is no more unintelligible than Pig Latin. But with this bad news comes some assistance and guidance to help them prioritize improvements and strengthen their products.

This sort of work requires a very particular set of skills. A strong Application Security Consultant needs to deeply understand programming and application design. They require a foundation in the common application vulnerabilities, exploitation techniques, and mitigations. But more than this they need to be creative and able to maintain multiple perspectives simultaneously to find places where those perspectives are in conflict. They need to quickly learn and teach themselves, their peers, and their clients. Above all, they need to be able to communicate well and provide actionable advice to our clients.

If you want to see more about the sorts of things we do and love, here's some resources; Our blog - http://chargen.matasano.com The Matasano Crypto Challenges - http://cryptopals.com Microcorruption, Embedded Security CTF - http://microcorruption.com

If you think you have what we need, or just want to learn more about us, visit http://matasano.com/careers or contact us via careers@matasano.com.

jjarmoc··on Ask HN: Who is hiring? (January 2015)
We're far more concerned about a candidate's ability and flexibility to adapt and learn than degrees, certifications, etc.

Some of our employees hold PHDs and/or Masters degrees, others (like me) don't even have a Bachelors.

jjarmoc··on Ask HN: Who is hiring? (January 2015)
Yes, we are really always hiring. Don't feel like this any particular bar you need to reach; you can't waste our time. We interview all sorts of people with all sorts of backgrounds. Some fit, some don't, but not neceessarily the one's you'd think.

We also have a history of interiewing the same person repeatedly. I myself interviewed twice before I came to Matasano. There's nothing wrong with realizing it's not a good fit at this time, and coming back around at a later date. Seriously, you can't waste our time.

jjarmoc··on Ask HN: Who is hiring? (January 2015)
-= MATASANO SECURITY =- Chicago. New York City. Sunnyvale. Application Security Consultant

Full-Time or Internship, work visa sponsorship available.

The start of a new year is a time many people become a bit introspective and reflect on their lives and careers. Those of us who enjoy what we do, and find satisfaction in our work take account of our accomplishments and achievements in the past year. Others may be less satisfied with their current position, and resolve to improve it. If you find yourself in the latter camp, my advice is to find a job for which you are passionate, motivated, and talented. Find your muse; something which engages your heart and mind, and gives you a sense a fulfillment.

For those of us at Matasano Security, this sense of pride and accomplishment comes from assessing the security of application software. We find few things as inately satisfying as discovering ways to abuse application logic and bend it to our will. Better yet is the satisfaction that comes with knowing our clients can now use our information to secure their applications and protect their clients. It takes meticulous attention to detail, and the ability to think outside the box and consider cases the application's own developers didn't. Application Security can be both an intriguing mental puzzle, and an extreme adrenaline rush in a way few disciplines of computing are.

In the coming weeks, gyms will fill up with new members intent on exercising their bodies. Me? I'll continue soldiering on, breaking and helping fix software, exercising my heart and mind. If you'd like to join me, check out matasano.com/careers and contact us at careers@matasano.com.

jjarmoc··on Fun with your friend's Facebook and Tinder sessions
You're describing the concept behind channel bound cookies. https://tools.ietf.org/html/rfc5929

As far as I know, it's not supported by any current browser (I welcome feedback to the contrary) but is included in SChannel. Given that we've only recently (arguably) gotten away from SSLv3, I don't have high hopes that it will be viable to require channel binding in the very near term.

jjarmoc··on Ask HN: Who is hiring? (December 2014)
For what it's worth, we often sponsor VISA candidates. I don't know the particulars of your case, but we have a number of employees who have come to the USA to work for us and do everything we can to support them.
jjarmoc··on Ask HN: Who is hiring? (December 2014)
Another aspect to consider is that given the sensitive nature of our work and access to what is often crown-jewel intellectual property, we have several clients who require we work from their offices. They are sometimes unwilling to cover travel costs. With a more geographically distributed base of employees we'd either have to eat the costs of bringing someone remote in for these projects, or rely more heavily on the now smaller subset of our staff that is present in these geographies. Neither is a desirable scenario.

Most of us like working in an office close to home, and don't like traveling a lot. It works for us.

jjarmoc··on Ask HN: Who is hiring? (December 2014)
Sorry.

All I can really say is that we have a culture of cooperation and interaction that relies, in part, on physical proximity. It may change in the future, but for now we prefer folks to be in the office where they can interact with others with less friction.

We're a lean company, so 'Services' encompasses all positions for which we're hiring.

jjarmoc··on Ask HN: Who is hiring? (December 2014)
;)
jjarmoc··on Ask HN: Who is hiring? (December 2014)
-- .- - .- ... .- -. --- ... . -.-. ..- .-. .. - -.--

Matasano Security - Chicago. New York City. Sunnyvale. Job Title: Application Security Consultant

-- .- - .- ... .- -. --- ... . -.-. ..- .-. .. - -.--

Once a professor shared a piece of career advice with me. "Don't call yourself a coder," he said, "anyone can learn to code, but programming takes real skill." His words have stuck with me since. Coding was, in his description, the mere act of producing something a computer can interpret and act upon. Programming, however, seeks elegance and simplicity through considered design and thought that transcends the code itself. While both take skill, the goals are different and they can be thought of as distinct disciplines.

Application Security, I've come to believe, is yet another discipline with a slightly different focus. 'Coders' focus almost exclusively on iterating until they achieve a desired result. 'Programmers' might test and refine to improve performance and reduce resource consumption. But with an Application Security perspective, we instead look at unintended functionality and edge cases that give rise to problems; 'What if' scenarios involving abuse cases that weren't part of the original design. It's yet another way of looking at the same application, with a different goal and different outcome.

At Matasano, we don't build software, we break it. We find, exploit, document, and prioritize flaws so the application's developers can address them. We identify when security controls are effective, and note areas for improvement. We review use cases, identify abuse cases, and help guide future development efforts. We work across a wide variety of applications ranging from simple web apps, to complex hardware appliances. From HTTP to proprietary encrypted protocols, and everything in between. As a team, we're as comfortable with ROP chains and memory corruption vulnerabilities as Cross-Site Scripting and SQL Injection. As individuals, we excel in our areas of focus while cross-training and broadening our skills. We're among the leaders in our industry and community, and give back through research, tools, and practice environments.

If improving the state of software security while kicking up some dirt in the process seems like fun, check us out. If you're fueled by pride of finding unexpected solutions, we have plenty of challenging problems for you. If you're not content to be a 'coder' and long for something more fulfilling, get in touch.

-- .- - .- ... .- -. --- ... . -.-. ..- .-. .. - -.--

careers@matasano.com or www.matasano.com for more info

-- .- - .- ... .- -. --- ... . -.-. ..- .-. .. - -.--

Curious about Crypto? - www.cryptopals.com Mesmerized by Memory Corruption? - www.microcorruption.com

-- .- - .- ... .- -. --- ... . -.-. ..- .-. .. - -.--

jjarmoc··on Why we use HTTPS for every .gov website we make
I didn't mean to imply that 18F is responsible for everything in the .gov namespace, and I have no reason to doubt that you guys take security seriously.

The problem, from my perspective, is that NO ONE is responsible for everything in the .gov namespace. Trying to sort out an appropriate security contact, especially for relatively minor vulns like this (though it's likely also reflected cross site scripting on benefits.gov) is a nightmare.

Another example involves some work I did while at a previous employer: https://web.archive.org/web/20131114050720/http://www.secure...

I definitely think you're right that a dedicated security inbox would be helpful. Even better would be a dedicated .gov-wide security inbox. I don't know how difficult it would be to establish something like that, but it would give security minded folks who care about improving things an outlet for sharing these sorts of details, and hopefully help get things fixed.

← PreviousPage 2 of 3Next →