Oracle’s license agreement as it pertains to reverse engineering
web.archive.org
web.archive.org
[1]> Oracle has told people to stop using @Veracode to test their AppSec. They already got AppSec covered [picture of JS injection attack in the blog post]
(popcorn)
They probably felt it got off on the wrong foot with personal anecdotes. Better to keep it all business, IMHO.
Presumably the only reason a closed source vendor would be against someone reversing their source is because they're afraid someone will steal their ideas and/or redistribute their code for free.
That not being my goal I really couldn't care less. I'll just go ahead and reverse whatever I want whenever I want. I value my security, and that of clients, over some legal piece of toilet-paper. Everyone who doesn't agree, should reconsider. Do you truly believe that people should not be allowed to look at code that is running on their systems for their security's sake? I will not redistribute what I learnt, but I will analyse it to see if it is safe.
If you didn't want me looking, you should not have put it out in the open.
I was once at a startup and another company in Texas released a product with identical typos as found in our object code.
Selling that software was how I got money to pay rent and buy food to put into my food-hole, so I'm going to feel a little more sympathy for people who want to stop others from reverse-engineering their stuff.
It may have been a bit abrasive, but the points were well made, at least from the perspective of a closed source, enterprise software vendor
Until I read this, I didn't think it was possible for me to hate Oracle more, because I'm forced to work with their software and that makes me already hate them quite a bit.
Oracle has a very specific, clear opinion on the matter and it is valid to have that opinion. I don't agree with them, but I respect that we're allowed to disagree. Instead of hating them, I just don't use any of their stuff if I can help it (except Java).
There's no need to be filled with hate over it. Change what you can change and don't worry about the rest.
How much of my private information, as kept by government or private organizations, are stored in Oracle databases that are less secure because of their boneheaded stance on this?
People have all sorts of reasons for choosing Oracle solutions. I am not in a position to influence all those people, even when their choices affect me directly.
A crude example: Imagine you're a janitor. Your company only supplies you with buckets from Leaky Bucket, Inc. Their buckets always leak, creating more messes that you have to clean up. Sure, Leaky Bucket, Inc. needs to fix their bucket processes, but I'd be more angry at the company for continuing to use buckets from a shoddy manufacturer.
edit: And by the way, the very first time you are forbidden from patching a bucket you could patch yourself should be the red flag that tells you to use different buckets. Move on to better things and encourage others to do so too.
I can't understand the argument that I shouldn't be upset with a human being because they're stupid, and make stupid decisions. Humans are capable of introspection, education, and change.
I don't think it's unreasonable to expect more of my fellow humans than of my cat.
But I guess I won't be mad at you.
So, I'm just making the point that frustration makes sense, but hate probably doesn't. They certainly aren't intending to be stupid, but it is frustrating that we can't show them the error of their reasoning sometimes.
That being said, as a (forced) Oracle customer I have been and will continue to do everything in my power to migrate off of Oracle's eco-system. This ridiculously offensive post by their CSO is just more motivation.
It's pretty trivial to break orcaleSQL from a security standpoint. If and when you report a major issue, it'll be fixed in 2-3 years, and only the issue you outlined.
For example. I submit a bug concerning parsing, utf-8 backslash not working. Orcle will fix the bug for only that utf-8 code point, and not all other utf-8 points that also cause the bug. It'll also take them 1-2 releases and they may not back port it. 1
switch (c) {
case BAD_CODEPOINT1: //bug 30943
case BAD_CODEPOINT2: //bug 32821
/*....*/
}
?Heh:
> [...] (and without learning lessons from what you find, it really is “whack a code mole”) [...]
Lets just hope the black hat hackers read this and comply so we can continue to have "safe" Oracle software.
Oracle's database is very good. If you really need it, there is no substitute. But that said, kind of like a F1 race car, you probably don't need it (unless you own an F1 race team).
It is worth checking if this is the case.
e.g. at my workplace, we're going through an Oracle->Postgres migration and it's WONDERFUL. Everything is much better now. Just from being able to have a clustered PG pair per app instead of a centralised expensive monster box.
Oracle's database is very good indeed: it takes data in, it gives it back, it does so very efficiently. But everything else about it is enough reason to look elsewhere.
I understand the sarcasm, on the other hand it really confuses me that those points are mostly what makes closed-source unattractive and exactly what a closed source, enterprise software vendor would not want to discuss openly. At least that's what I thought before reading the article. I find it more likely that the blog was (maybe still is) compromised.
That would be my thought too if it were someone else, but it's Oracle so it's most likely real.
"Reverse engineering kills babies^Wmarriages and the contract says not to look closely at the software you paid for so you're a bad person" is a terrible point.
Firstly, it's perfectly aligned with the world of proprietary software. Oracle is probably more protective than the other vendors, because the restricted access to the source code is at the heart of their business model. But none of the vendors I'm aware of is very keen on reverse engineering.
Secondly, the reverse engineering is prohibited for ages - it's not that it was added to the license agreement yesterday. And there are other restrictions (e.g. on publishing benchmark results), so rather that "Oracle is bad" I'd say "people who sign accept license agreements without reading them are morons."
And thirdly, the article is spot-on about usefulness of the reports generated from a reverse-engineered binary. I've seen shitloads of such reports, usually generated by some clueless consultant with the sole competence to run an automated tool and print the result. So it's probably (at least partially) a protection against a flooding the support with bullshit reports.
And it's also true that many of the companies don't have proper security rules (like encryption, identity or password management, network security) yet pay some consultant for reverse engineering one of the components. Because it's easier to spend a large amount of money than evaluating and rebuilding their infrastructure.
So while I dislike Oracle, you can't blame them for everything - the customers are the ones choosing the vendor. If you happily accept their license agreement, you can't later complain "but we want to do reverse-engineering" no matter how many MBA titles you have. If you want such freedoms, ditch Oracle and proprietary vendors in general. That's what open-source is for.
That one is hugely dependent on jurisdiction. In place I live the right to reverse engineer is codified into law and can't be waived by an EULA.
Not in some countries. Oracle would be against the law in that case, that's why people are unhappy.
"It is not considered infringement of the copyright in a work referred to in Article 10, first paragraph, under 12°, if a copy is made of that work and the code is translated, in the case that these acts are indispensable to obtain the information which is necessary in order to achieve the interoperability of an independently manufactured computer program with other computer programs, provided that:
a. these acts are performed by a person who has gained access to lawfully obtained copy of the computer program or by a third person authorized by him;
b. the data that are necessary in order to achieve the interoperability, are not alreadyquickly and readily available to the persons referred to in point a;
c. these operations are confined to the parts of the original computer program which are necessary to achieve interoperability."
Repairing errors is part of another "artikel", http://wetten.overheid.nl/BWBR0001886/geldigheidsdatum_30-04...,
"Unless otherwise agreed, is not considered an infringement of the copyright in a work referred to in Article 10, first paragraph, under 12°, to reproduce the work by a lawful acquirer of aforementioned work with its intended use. The reproduction referred to in the first sentence, which takes place in the context of starting up, visualizing something, or correcting errors, can not be prohibited by contract."
That correcting errors by the customer cannot be prohibited by an EULA is something Oracle probably won't like. :-)
The correct way to treat these reports is to review them (after all, who knows...) and try to educate those customers who send you bogus reports: explain why they're bogus, why reverse engineering doesn't usually provide good leads, explain them what easier steps they can take for additional security, and maybe remind them about that EULA. This can be done on an individual basis, politely, and Oracle, who seems to employ half the salespeople in this world, certainly has the resources to do so. If they can call me every two months to remind me about their great offers, they can write the standard answer that almost every such report warrants.
But no, instead they chose to dump a load of shit in the form of this blogpost:
1. It's written in the kind of condescending tone that makes you want to punch your interlocutor in the face. Such as: " That said, you would think that before gearing up to run that extra mile, customers would already have ensured they’ve identified their critical systems, encrypted sensitive data, applied all relevant patches, be on a supported product release, use tools to ensure configurations are locked down – in short, the usual security hygiene – before they attempt to find zero day vulnerabilities in the products they are using.". Surprise, surprise: a lot of people who start reverse-engineering binaries are either a) extremely security-conscious people, who, yes, already do those things, or b) extremely good programmers who work for people who -- again -- already do those things! There are exceptions, of course, but assuming that everyone who submits such a report is one of those imbeciles who dreams of Matrix hackers but runs a company where no computer has an antivirus installed is naive.
Or: "there are a lot of things a customer can do like, gosh, actually talking to suppliers about their assurance programs etc.". This sort of crap belongs on a cocky teenager's blog, not on a serious company's website.
2. It's all the more insulting to whine about it when the subtle message you're trying to convey is that zero-day threats aren't that a big deal: "And in fact, there are a lot of data breaches that would be prevented by doing all that stuff, as unsexy as it is, instead of hyperventilating that the Big Bad Advanced Persistent Threat using a zero-day is out to get me!". Yes, it's no problem to state this when you're some random blogger. It is a problem to state this when you're CSO of the company famous for producing the one plugin that's recommended to be disabled by default.
3. Because the argument about the license agreement is childish. After explaining in detail how, even if you were right, you're getting a threatening letter about the license agreement, a requirement to destroy all proof of reverse engineering and so on, she goes on to throw this gem:
"The main reason is that, when I see a spike in X, I try to get ahead of it. I don’t want more rounds of “you broke the license agreement,” “no, we didn’t,” yes, you did,” “no, we didn’t.” I’d rather spend my time, and my team’s time, working on helping development improve our code than argue with people about where the license agreement lines are. "
Well how about skipping that debate and fixing your fucking code, eh?
To put it in the same line as her argument, there are a lot of things Oracle can do in order to reduce the amount of false positives they get, such as fixing their disastrous security track record, improving their communication with the security community (no, blog posts like these don't count as communication for the same reason why hanging out a "fuck you" banner outside your office doesn't exactly count as better communicating with your colleagues, either) and so on. If people had better reasons to trust Oracle, there would be a lot less effort of this kind, too.
4. The analogies being used are demeaning to anyone who doesn't work in sales. Like this:
> Q. But one of the issues I found was an actual security vulnerability so that justifies reverse engineering, right?
> A. Sigh. At the risk of being repetitive, no, it doesn’t, just like you can’t break into a house because someone left a window or door unlocked.
Someone missed their first tech evangelism class, where they use that analogy for exploting, not reporting vulnerabilities.
Is it also wrong to call someone and tell them they left their door unlocked because their dog ran into it and it opened?
The whole things reads like "you guys are like the worst customers ever. We're smarter than you, we have lawyers and we knowz securitiez. Now shut the fuck up."
Sales people are unusable for educating customers, and they're busy with using Licensing Breach Notices to boost sales of cloud services anyway (http://thestack.com/oracle-breach-notice-cloud-services-1007...).
I do agree with you that the blog post seems written in a bit condescending way (it's difficult for me to judge, as I'm not a native speaker).
And I do agree that some of the arguments are misleading - the fact that many breaches are caused by lack of basic security practices does not make zero-days insignificant. And the "assurance programs" guarantee nothing if you fix the issues poorly (nice example from DEFCON 22: https://defcon.org/html/defcon-22/dc-22-speakers.html#Litchf...).
What I perfonally find the funniest about the whole "reverse engineering prohibited" clause is that the bad guys don't give a shit - they'll reverse engineer it anyway, because no one will find out. So the only "victim" is the customer who accepted the licensing agreement, and it does not matter if the purpose was to lower the number of reports or protect the source code.
But I'm still astonished people are surprised by the stupidity of Oracle licensing terms. Bullshit like that blog post is actually one of the main reasons why I stopped working with Oracle products and went full open-source.
Because if they don't, stuff like this happens: they get blamed for any trivial data breach that happened through some of their programs -- even if the problem wasn't that it sucked, it was that the password was admin123.
It's not glamorous and we can all agree that, as long as we're talking about responsible users, it shouldn't be Oracle's job to do this kind of education. However, exploiting users' ignorance is an integral part of their business model; they're consciously targeting them -- it's up to them to deal with all the consequences that brings.
edit: corrected my error
FTFY :-P
My original thought was: "What an interesting artifact! So much has changed in recent years since open source databases have become a viable alternative to Oracle."
Or perhaps the smartphone you "bought", which tracks everywhere you go and doesn't allow you to install your own software.
As proprietary software with DRM invades deeper into our daily lives by becoming part of all the appliances and tools we use, we will no longer have the freedom to use "our" products as we see fit.
[1] https://www.eff.org/deeplinks/2013/11/drm-cars-will-drive-co...
I guess some more people did screenshots, or pdf prints of that page, just for the case Oracle wants a Streisand Effect.
[1]: http://arstechnica.com/information-technology/2015/08/oracle...
Are they being serious? "Uhm, yeah, sure, Mr. CSO, I deleted the file. Here, I'll show you a screenshot of a terminal where I ran the 'rm' command to delete the results. As you can clearly see, the 'ls' command does not see the files anymore."
Astounding the author considers themselves a security professional.
Nice rant about Keynes at the end as well. I always find ranting about Keynes is an excellent way to keep hackers out.
I wonder how many customers Oracle is going to lose because of that piece?
Why did this article just disappear off of the front page after receiving 318 up-votes in 2 hours?
How does post to drop from position #1 to somewhere below #150 in less than 1 minute, unless it was deleted by HN moderators, and if that's the case, why did it happen?
Apart from the legal stuff and a lot off egocentric 'we can do it better', she has one point. There are many companies giving a lot of money for security, manually scrubbing all exploits that come out, create their own patches. While some lack the basic security guidelines. I think this money can be better spend upstream, to create tools so they can test patches for exploits better and create a faster security update release pipeline, so that all downstream and customers can rely on the security releases and that it can be released quicker to everyone. (Controversial: Maybe even adding automatic security updates to the package itself, like wordpress did, so that customer cannot be on a release with exploits)
Though saying to your client that they cannot reverse engineer to look for security problems, is totally not done! What is next? "Exploits will not be fixed, because the users has signed an agreement that they will not hack?"
"This cookbook is to be read by your personal chef only; if you read it and understand it yourself, you're breaking the book's license agreement."
If you pay for some string of bits, you have a right to look at them. Period.
I understand the risks of eating in places with closed kitchens, but ultimately they make better food than I can, that requires less of my time. It may be more expensive for unjustifiable reasons, and maybe I don't want to know how the black pudding is made, I just want to focus on what is important to me: making my wife happy.
Do I prefer to eat in restaurants with open kitchens, where the ingredient list and their source is available on demand? Sure. Am I a zealot about it..? It depends how hungry I am.
I don't see it that way.
The kitchen is like a development area. By looking at just the program code (not source or anything), I'm not stepping into Oracle's engineering labs or "cubicle land"---their kitchen, so to speak. I'm rather doing the equivalent of cutting into the meat pie on my plate and guessing the ingredients.
If I figure out what is in it and how it was prepared, I'm free to make that at home, or even serve it to the public in my own restaurant.
"Do not reverse engineer" is like "eat this meat loaf with your eyes closed, and do not share any hypotheses about what is in it or how it was made with anyone else".
> open kitchens, where the ingredient list and their source is available on demand?
That sounds like an analogy to open source, which is a different topic from license agreements in proprietary software against reverse engineering.
I'm saying that if you sell me some writing, I have a right to read it. Just because that writing was written for an ARM CPU doesn't mean I'm doing anything wrong by reading it anyway.
If you don't want people to know how a piece of language is interpreted to evoke its meaning, then don't sell it. Use it in-house or run it on a server and have clients to connect to it.
This is so pretentious I am completely baffled. Are people at Oracle so full of themselves?
Investigating security vulnerabilities takes a lot of time; and it's very easy to quickly get overwhelmed by false positives. I've seen quite a few analyses of code that I write; and most of them are warnings with no context or exploitability.
If every customer expected an engineer to respond to these, my team would spend all of its time in a "PR role," and wouldn't spend any time improving our products.
Anyway, I've never read a better article supporting the use of free software.
That's like what 5yrs old kids say when they mom ask them something.. "Mooom I was already thinking about it! Hush!"
For all Mary's entertaining points, I think likening the license agreement to marriage is a civil offense.