Slashdot Mirror


Comparison of Java and .NET security

prostoalex writes "The Computer Science Department at the University of Virginia has published a comparative study of security in Java and .NET in Portable Document Format. DevMktg blog on MSDN summarizes the findings saying that due to careful design process, .NET presents security advantages over Java platform in several areas." From the article: "Where Java evolved from an initial platform with limited security capabilities, .NET incorporated more security capability into its original design. With age and new features, much of the legacy code of Java still remains for backwards compatibility including the possibility of a null SecurityManager, and the absolute trust of classes on the bootclasspath. Hence, in several areas .NET has security advantages over Java because of its simpler and cleaner design."

80 of 461 comments (clear)

  1. Except... by Anonymous Coward · · Score: 4, Funny

    Except it run on Windows.
    D'OH!

    1. Re:Except... by fbjon · · Score: 2, Funny
      I have an idea: I'm going to write a new .Net VM.... in Java!

      Eat that, hax0rs!

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    2. Re:Except... by __aaitqo8496 · · Score: 2, Informative

      ...and Linux, Windows, OSX, BSD, and Solaris

      Welcome to the world of hackers making life better

      http://www.mono-project.com/Main_Page

  2. Had to switch from Java to .NET by TheShadowHawk · · Score: 3, Interesting

    Since starting in my new job, I had to switch from Java to .Net... so this is a little bit of good news. I guess....

    I still miss the Eclipse IDE though... Visual Studio blows chunks in comparison. :(

    --
    Friends don't let Friends use Internet Explorer.
    1. Re:Had to switch from Java to .NET by ars+matica · · Score: 2, Interesting

      Yes, and present to me how many VS users you know that have made a conscious switch to Eclipse?

    2. Re:Had to switch from Java to .NET by IWorkForMorons · · Score: 4, Interesting

      He doesn't know me...but I'm one...

      I have quite a number of years experience with VS6, more specifically VB6. Recently I started a job that, while not a programming role, allows me the time and flexibility to create programs to do my job how I want to code them. At first, since this an MS shop, I grabbed the .NET "Learning Edition" or whatever they're calling it nowadays. I understood that I wouldn't be able to create executables, but I could send my code to systems and get them to do it. After using the IDE for a couple of days, I found it so convoluted that I just gave up. Then I downloaded Eclipse with the Visual Class editor. Nice, simple, and it reminds me of the VB6 IDE. Only cleaner. Now I will say that I've had some problems with the Visual Class editor not rendering properly, but that hasn't stopped me from coding. In 2 weeks of coding on and off, I've created my first program and have been using it to do my job. Granted, it's not complex. Just does a database search and grabs data. But I still prefer the Ecplise IDE, even without the Visual Class editor working properly, over the VS.NET IDE. And I don't need to jump through MS' hoops just to get an executable. I'm distributing the program to the rest of the team next week after the boss tests it, and other departments are getting interested in it too. And with any luck, I'll get out of this support position and into a nice well-paid programming job at the same time.

    3. Re:Had to switch from Java to .NET by zootm · · Score: 2, Interesting

      As a contrary opinion, I've used both and found them both good in different areas. And I've certainly not found any difference in reliance on "Wizards" between the two packages.

      I've found that, in general, VS.NET is a little better integrated with its languages, whereas Eclipse has far superior refactoring support and integration with build processes (as you mention). 2005 is going some way to fixing this.

      They're both fantastic IDEs though. I'd recommend either (although the only C# plugin I've found for Eclipse is very, very basic so far, which is a real shame).

    4. Re:Had to switch from Java to .NET by hwangeruk · · Score: 2, Insightful

      Stop personally insulting each other.

      VS.Net 2003 has lots of issues, certainly around web projects. It sure lacks refactoring, and it does not highlight errors without a compile.
      All Java advocates here are shouting Eclipse, but the Java pro's I work with use IntelliJ. Sometimes paying for something is better.
      VS 2005 has impoved alot, and for doing .Net you would have to be mad to use anything else. Even the lovely/cute Sharpdevlop could not be used for real serious development even though I adore their whole project.
      I'm downloading Eclipse now to take a look at it again, but if its the usual Java sluggish/ugly normal Java client stuff we are used to then I won't be using it for very long. .Net does rock, I don't like the security paper that started this threads obvious bias, but .Net is newer so its no surpise the design has some advantages. Java and .Net can live in the world together, there is no need to get hysterical or get in a fight about. You eat veggies, I'll eat the meat, meat and vegatable can coexist, get over yourselves.

    5. Re:Had to switch from Java to .NET by khchung · · Score: 2, Insightful
      Ever heard of refactoring?

      It seems most moderators haven't heard of it either, as nobody modded you up yet.

      I am Eclipse/Java guy now working on a VS C# project. Anyone who thinks VS is great please tell me how to do these automatically in VS.Net 2003 (I am admittedly a novice with the VS interface, so I am hoping these things are actually doable):

      1. Generate getter and setter so I don't have to type them all by myself!
      2. Automatically rename the namespace of in the file when I move the file between folders/projects, AND update other classes that references the moved class.
      3. Automatically rename the class name when I rename the file, AND update other classes that references the renamed class.
      4. When I rename a member method/variable name, automatically other classes that references the method.
      5. Fix the damn web reference caching so hell won't break loose after methods in a web service has been changed. We have to end up rebooting the machine to get other projects to compile after stuff in a referred web service project changes (Yes, we have tried "update web reference").
      6. Ever heard of "Extract method"?
      7. Let me "generate method" when it found a method called does not already exist.
      8. Let me rename method parameters or local variables and auto-rename all uses in the rest of the method.
      --
      Oliver.
    6. Re:Had to switch from Java to .NET by skraps · · Score: 2, Informative
      I have quite a number of years experience with VS6, more specifically VB6[...]
      VB6 and VS6 were packaged together, but they were completely different programs! VB6 and all previous versions of VB have their own completely different IDE. The Visual Studio IDE evolved from the Visual C++ series of IDEs. Your comparison is based on a faulty assumption.
      --
      Karma: -2147483648 (Mostly affected by integer overflow)
  3. Difference in ages by Anonymous Coward · · Score: 4, Interesting

    In the first page of the study they document the difference of age of .net and java. Java has been out for over 9 years, .net, 2-3. Let's see how .net is doing in number of vulnerabilities in 9 years.

    1. Re:Difference in ages by Three+Headed+Man · · Score: 4, Insightful

      Do you really think that age has anything to do with current vulnerabilities, or does security stem from good design, rather than patches?

      --
      I'm probably at the karma cap. Mod up a funny troll instead, it lightens the mood :)
    2. Re:Difference in ages by eCecuguru · · Score: 2, Interesting

      I agree with you, but also think the anoncow is right. The chart is misleading, indicating that java has oh so many cumulative holes. If we looked at Apache like that, it would be less secure than IIS. Also, was this strictly applets? Or was it all things ever written in Java? That's a lot of variations, platforms, etc, which although the fact that a java app will run differently on my mac versus my windows box is itself potentially unsecure, the fact that it has that capability beats the current functionality of .net. Which, IMO, brings this down to, the more functionality, the less secure it's going to be. Java has more functionality, it's inevitible it will be less secure.

    3. Re:Difference in ages by kbw · · Score: 3, Insightful

      Performance over time is a measure of success. And so .NET's performance over 9 years would be a fair comparison.

      Over the years I've seen many remarkable architectural designs, including the Windows NT Security Model (back when NT meant New Technology), which were thought to be ideal. 11 years on, no one could seriously claim that the Windows security model is ideal.

    4. Re:Difference in ages by boa13 · · Score: 5, Interesting

      That's a lot of variations, platforms, etc,

      Actually, 10 of the 45 vulnerabilities that the authors chose to use in the chart were (or are?) in Microsoft JVM.

      I think including them in the chart is misleading at best.

    5. Re:Difference in ages by STFS · · Score: 2, Insightful

      The difference in age has something to do with it... you can't say that the "score" is 45 - 0 because the 45 vulnerabilities have been reported over 9 years for Sun. However, the chart clearly shows that in its first three years the Java platform was already up to 15 vulnerabilities while .NET is still at 0 after 3 years out.

      --
      You don't think enough... therefore you better not be!
  4. PDF text by Anonymous Coward · · Score: 5, Informative
  5. .NET? Is this thing still around? by Mensa+Babe · · Score: 3, Insightful

    It's not truly cross-platform so it's out of question for any serious production environment. Sorry, but until Micro$oft releases the most important classes under a free license and port them to Linux I won't touch it with a ten foot stick. Java is closer but it's hardly fast enough. If Sun adds real OOP features like multiple inheritance, operator overloading, traits, mixins, and introduces optional strong or weak dynamical typing, I might consider using it. But right now I am stuck with Perl, Ruby, Lisp, Smalltalk, Eiffel, Scheme and Python, and what I am really looking forward is a study comparing their respective security and how the development of the Parrot VM will affect it. Of course since it's a blog on M$DN I am not holding my breath.

    --
    Karma: Positive (probably because of superiour intellect)
    1. Re:.NET? Is this thing still around? by dotslashdot · · Score: 5, Insightful

      Operator overloading, multiple inheritance? Are you crazy? These things ultimately make code very difficult to maintain and scale because a developer can unnecessarily overload all kinds operations and make it difficult for others to figure out just what the hell is going on. C++ sucks for that very reason when it comes to a production environment. These are only useful in useless settings like school or maybe a Mensa meeting. Have you heard of Mensa? You should join. Especially because you are so subtle and humble about it. :)

    2. Re:.NET? Is this thing still around? by shutdown+-p+now · · Score: 3, Insightful
      Operator overloading, multiple inheritance? Are you crazy? These things ultimately make code very difficult to maintain and scale because a developer can unnecessarily overload all kinds operations and make it difficult for others to figure out just what the hell is going on.
      Well maybe the developers should learn more about operator overloading and multiple inheritance, like, how to use them properly, instead of whining endlessly about how "C++ sucks for that very reason"? You know, start with some decent programming language like Eiffel, which was designed from grounds-up to handle both these cases very nicely. See how MI is used there, why is it used, and what it can do in skilled hands that SI+interfaces can't. Then maybe you will be able to learn to comprehend the power Lisp macros give to the programmer (I'm half-expecting someone to shout "but macros are evil because they can be abused, that's why C sucks!").

      Speaking of abuse, pretty much every language can be abused to no end. Java is no exception. It won't stop you from making public fields, for example, which is generally considered a bad thing to do. Nor will it limit write access to them from outside the class (in contrast to Eiffel, where public fields are read-only from outside). The whole type system is a big mess as well (int vs Integer, anyone? and now with autoboxing?).

    3. Re:.NET? Is this thing still around? by rjshields · · Score: 5, Informative
      If Sun adds real OOP features like multiple inheritance, operator overloading, traits, mixins, and introduces optional strong or weak dynamical typing
      Multiple inheritance is best avoided for clarity (multiple interface inheritance is OK). Operator overloading is rarely useful and often abused. Java is a strongly typed language and this is not going to change ("dynamical typing" doesn't mean anything by the way).

      Some of these points are misinformed and you missed out the things that bug people most about Java, the lack of deterministic finalisation and direct memory control, so it looks like your intellect is not superior after all. People who really do have superior intellect do not need to boast about it, it shows through in the things they do and say.
      --
      In this world nothing is certain but death, taxes and flawed car analogies.
    4. Re:.NET? Is this thing still around? by btobin · · Score: 2, Insightful

      C++ sucks because of poor design decisions made around features like multiple inheritance, not because of inherent problems with MI. Eiffel and Common Lisp both support MI without any of the blow-your-leg-off problems C++ introduces. Learn something other than Cxx/Java, it's a big world out there.

    5. Re:.NET? Is this thing still around? by dnoyeb · · Score: 2, Informative

      Why should you care when the garbage collector runs?

      I don't mean to insult you, but you have a misunderstanding. Java does not have destructors. Finalizers are not destructors. Once you accept that, you wont ask for certain behavior of destructors to be attributed to finalizers. finalizers are just there for testing and information. No production environment should use them. In fact, in production, they should disappear like asserts...

      Why do you need a call to x.close in the finalizer? You opened it, you close it.

      My solution has been to do a sort of c++ style thing. I have a reference counting system, and when they reach 0, I close the thing myself. Java does not use reference counting to know when to release an object, so perhaps thats why they dont have a destructor.

    6. Re:.NET? Is this thing still around? by Procyon101 · · Score: 3, Insightful

      I've got to use the same arguement for Multiple inheritance. It absolutely great when done in a sane fashion. The occassional default implementation of an interface, or even more useful, inheriting from policy classes for decoupling are great uses of multi-inheritance. It's the OOP nightmare of deep, wide inheritance trees that leads to gouging your eyes out insanity and prayers for single inheritance, just like seeing an overloaded comma and tertiary is likely to make you swear off operator overloading. But that's a symptom of crazy programming, not a crazy language construct.

  6. Professionals use C for everything by Anonymous Coward · · Score: 5, Funny

    C is portable, fast, very complex and since 35+ years the leading standard for professional OS and APP development.

    C is so successful that C++ had to be invented to get more people into OO style C programming. C++ was designed as an syntax aid for people who lacked the skill writing OO in C by disciplined use of structs and func pointers.

    C is obviously too complex for the average CS student who crouch from one alternative to the next.

    Java? .NET??? ...amusing.

    1. Re:Professionals use C for everything by owlstead · · Score: 2, Informative

      You are trying to be funny, but I'll bite. .NET and Java are clearly a much cleaner subset of C++, with many runtime features. Both are designed to do away with many legacy programming features (like pointer arithmetic). These features will only take your eye off your original target (for a small speed advantage, granted).

      These languages are less error prone and easier to debug. Therefore, they are the tool of choice for someone to create a program within a certain timeframe, a program which sources that can be read and changed for years to come (if well documented).

      And yes, they use OO. Things like streams and those nice GUI's wouldn't be possible without it. Maybe namespaces are even more important though.

  7. They looked at Java and improved it! by vdex42 · · Score: 5, Insightful

    Well ignoring the fact that Microsoft is mean to be 'teh evil' and looking purely at the framework that their engineers have produced I have found very little to criticize.

    It feels like they looked at Java and stripped out the bad and produced easy to use clean languages. The first things that spring to mind:
    * Easier exception handling.
    * Transparency with the whole string class/primitive issue.
    * Really easy to create and catch events.

    The Visual studio IDE however! Piece of HTML mangling non XHTM compliant &*$£

    1. Re:They looked at Java and improved it! by Krimszon · · Score: 2, Informative

      2 more months and we should have VS2005, the devs promised it wouldn't touch code and would produce valid xhtml.

      If it does, that's a good (although somewhat late) improvement (which should've been a free upgrade, since I consider the absence of that 'feature' a bug).

    2. Re:They looked at Java and improved it! by MemoryDragon · · Score: 2, Insightful

      Add to that that you basically have half the classes sitting with a thin layer on a 20 year old api designed with no security at all in the mind of the developers and some stuff basicall moved 1:1 over.... .Net can have lots of security features as long as you can pump a string directly into win32 in half of the classes, which triggers a buffer overflow everything is null and void in this article.

    3. Re:They looked at Java and improved it! by vdex42 · · Score: 2, Informative

      The whole point of a a virtual machine is to sandbox your code. So it doesn't matter how un-secure the layer is that is running it. The only way to get out of the virtual machine and buffer overflow the real PC would be to first buffer overflow your virtual machine, or find some other type of vulnerability in the VM first. Which as this article points out is pretty solid.

    4. Re:They looked at Java and improved it! by zootm · · Score: 2, Interesting

      Easier exception handling.

      Now, I'll grant it's easier (since you don't have to!), but in systems where reliability is a requirement the lack of checked exceptions can be a bit of a hassle, too easy to overlook and requiring good documentation (which, on the other hand, is a good thing).

      Transparency with the whole string class/primitive issue.

      Java does have autoboxing as of 5.0, but I know that's not really what you're on about. Being able to switch on strings and so on is handy though. Their special handling of strings seems a little "non-OO", but it eases development and is mighty handy.

      Really easy to create and catch events.

      Yes. Yes. Yes. Delegates are a fantastic construct.

    5. Re:They looked at Java and improved it! by zootm · · Score: 4, Informative

      Net can have lots of security features as long as you can pump a string directly into win32 in half of the classes, which triggers a buffer overflow everything is null and void in this article.

      You can't do that unless you're P/Invoking worse code, or running in the unsafe mode, both of which are similar to running a JNI interface with which you could do the same thing

      The CLI system is sandboxed, the underlying API is hidden and — in general, unless there's a problem with the implementation of the system — its shortcomings are essentially hidden.

    6. Re:They looked at Java and improved it! by jallen02 · · Score: 2, Insightful

      But it is almost a given that in any large application someone somewhere dipped into the PInvoke toolbox to get something done. I haven't seen many .NET GUI apps of any large size that don't dip into PInvoke. Usually it was because the developers were familiar with the older Win32 API and didn't feel like doing things right, but still. You don't really see that in Java nearly as often. I have used JNI code a handful of times in 3 or 4 years of Java development and it is almost encouraged my Microsoft to PInvoke things when you need more power/control.

      Jeremy

  8. Totally bogus by Anonymous Coward · · Score: 4, Interesting

    Security in Java is multi layered and complex, you cannot possibly cover all its faces. ".Net" managed code is very rare and all .NET applications I know of (that are real applications) use native code thus removing any sense of security.
    Java has had years of full source code visibility (not open source) and had several holes plugged by the community, .NET has no such thing.
    Saying that .NET is more secure is just about the stupidest thing someone can say... Its like saying Windows is more secure than Linux since its newer than UNIX and Linux is based on UNIX.

    1. Re:Totally bogus by tommck · · Score: 2, Insightful

      I wonder why all these MSFT bashers keep coming in as Anonymous.... .NET managed code is NOT rare. People who write .NET code interfacing with unmanaged code are usually porting existing applications.

      Comparing this security to a native Java app is like comparing a Java app with JNI calls to an exiting C or C++ app. The code is only as secure as the other code it is trusting.

      Apples and Oranges

      P.S. Your last analogy makes no sense whatsoever

      --
      ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  9. Source code access by boa13 · · Score: 5, Insightful

    First of all, it's interesting to note that 10 of the 45 Java vulnerabilities that the researchers take in account are due to Microsoft. They are specific to the ill-famed Microsoft JVM.

    Furthermore, 10 of the remaining 35 vulnerabilities were discovered and fixed in the first six months after the initial Java release. I consider that quickly-fixed flaws in a young product.

    So, we're left with 25 vulnerabilities found in a mature product, between 2 and 3 every year. Not quite pretty, not quite a disaster either.

    Now, question is, why are there no vulnerabilities discoveries in the .Net runtime? The researchers talk at length about the better .Net design, which is unsurprising given it was designed after many years of experience with the JVM.

    However, they fail to assess any impact the availability of Java source code might have on finding vulnerabilities and fixing them. The whole source code for the JVM is available (free as in beer), anybody can have a look once they register with Sun. I don't know if the same applies to the .Net runtime, somehow I doubt it. Some partners might have portions of it, maybe.

    So, availability of source code might be enough to generate two or three vulnerability discoveries per year.

    Note that I'm not saying that there are six to nine vulnerabilities yet to be discovered in .Net; maybe Microsoft did it right this time, and spent they money where it matters most in the long run.

    1. Re:Source code access by Johnno74 · · Score: 5, Informative

      Most of the source code for .Net is available here - Its called "rotor" and is Microsoft's open source implementation of .Net. It doesn't cover the complete framework, but it includes the runtime, C# compiler, and the parts of the framework that were submitted to ECMA.

      Anyone is free to download, modify and distribute rotor, it compiles on OSX and BSD. I believe someone has modified it to compile and run on Linux. Unfortunately the license prohibits commercial use...

      The major differences between Rotor and the full framework are a simplified garbage collector, and a simplified JIT compiler. Microsoft aren't saying how much of the framework code is shared between Rotor and the full version, but I've been told by people with access to the source that the answer is "pretty much all of it"

    2. Re:Source code access by boa13 · · Score: 2, Informative

      you execute a program and it will run before next Christmas (not something you can say for Java)

      Heh, that part is quite a troll.

      I use Java apps daily (Eclipse, Moneydance, JAlbum), and now that you make me think of it, they might not be "lightning fast", but they're fast enough that I don't think about their speed. In my book, that's the definition of being "fast enough".

      I don't have experience with .Net apps however, so it might well be the case that they're faster. As others have commented, they only run on one platform, someone also said it's easy to embark native code in .Net, this might make a huge difference.

      Anyway, Java is not "slow" anymore, it may be not as fast as others, but it's fast enough.

    3. Re:Source code access by fcgreg · · Score: 2, Insightful

      Please spare us the repetition of this specious argument. Since you cannot even tell us with any degree of certainty how much of Rotor is used in .NET, nor which parts of the framework, we can't even have a discussion about it in this context.

      Oh wait... you have it on good authority from an unnamed source that MS uses "pretty much all of it". Hardly a good basis for discussion.

      Sorry.

      --
      Greg T.
    4. Re:Source code access by fcgreg · · Score: 2, Insightful
      True, it's not the exact same source code that's in the downloadable .NET runtime, and it's missing a lot of the libraries that make .NET what it is. ...
      ----------

      <sarcasm>
      But other than all that... it's a pretty good match!
      </sarcasm>

      Sheesh.

      --
      Greg T.
  10. Age vs Usage by ErrorBase · · Score: 2, Interesting

    I've seen the crossplatform remarks already, but no one asked the question yet about how widespread implementations are. I currently see much more .Net implementations in Intranet environments, and java when the client is less known. my guess is that those more local implementations are much less scrutinized. opposed to the much more open and directly accesible implementations in java.

  11. hardly objective by jilles · · Score: 3, Insightful

    Im not going to read the article but the reasons stated in the summary suggests a strong (and maybe well funded) bias. In short, the summary is basically bullshit. The quoted material on the ms blog is suspicious and the scientific study might actually be quite good (I wouldnt criticize it without reading it first).

    Security is not something you just switch on in a project. You design your project from the ground up to have security features. Both Java and .Net come with very similar security features. Both have finegrained role based security features. Id say Java is somewhat more flexible by providing an extensible model so that you may provide your own protocol implementations. For example, I used an oss pgp implementation recently that plugs into the default Java security api. .Net on the other hand has some nice language features like attributes. Java has null securitymanagers; .net has unmanaged code.

    Javas security features are designed through the JCP process in which a broad range of industries and individual experts have been and continue to be involved. Indeed some of the older security features come from the earlier JDK versions developed by SUN. Overall I trust this process more than I trust the microsoft process which when it comes to security has received a lot of criticism over the past few years.

    --

    Jilles
    1. Re:hardly objective by leakingmemory · · Score: 2, Interesting

      "The most widely publicized security issue in .NET was W32.Donut, a virus that took control of the excecutable before the .NET runtime had control. Since the vulnerability occurs before the .NET runtime takes control, we consider this a problem with the way the operating system transfers control to .NET, not with the .NET platform"

      Isn't the whole point with a VM that the executable will never be directly exposed to system resources? Why doesn't the same thing happen to JVM? As far as I can see, this reveals that the .NET system is having issues controling it's applications, which to me is a major security flaw.

  12. blah... flawed logic by JeremyALogan · · Score: 4, Insightful

    Ok... let me get this out there first. I like the .Net framework (not all the stuff M$ tried to label as .Net after they realized that they were on the right track).

    However, this study is flawed. .Net 1.0 came out 6 YEARS after Java 1.0... it's not exactly fair to compare them as pure equals. Considering that they're so similar you have to take into account that M$ had time to see what was wrong w/ Java and fix it. It's kinda like saying "Well, this brand new bridge is far supperior to that one over there that was built 200 years ago. I mean, sure it's better looking, but this one is stronger AND lighter." People learn things and then implement them... is that so hard to understand?

    1. Re:blah... flawed logic by iapetus · · Score: 4, Insightful

      Why is it wrong to compare them as pure equals? Speaking as someone wanting to implement a solution today, using today's technology, I want to know which one is better for my needs now. I'm not going to say "Well, Java sucks, but for the time it was great, so I'll use that instead of something that meets my requirements right now."

      --
      ++ Say to Elrond "Hello.".
      Elrond says "No.". Elrond gives you some lunch.
    2. Re:blah... flawed logic by boa13 · · Score: 4, Insightful

      I want to know which one is better for my needs now.

      And this is why the comparison is wrong. It does not compare them "now", it compares them "overall". Do you care about ten-years-old flaws that were quickly fixed and have not bothered anyone since then? I think not. Do you care about flaws in a special vendor version that no sane person uses now? I think not. Would you be interested in knowing that the above-mentioned flaws were created by the very vendor the proprietary technology of whom you are trying to evaluate? I think you should.

      What should interest you is how many security issues are found per year. The article lets you learn that (even though it doesn't explicitly do the math for you). What should also interest you is how the Java community and Sun reacted to the flaws, how fast and how well they were fixed. The article is tight-lipped about that.

      Actually, since no flaws have been found for .Net, there is no way to know how Microsoft will react in such a case. Past reactions should at the very least have you worried.

      (And actually, there have been flaws, but the authors of the study chose to ignore them, see appendix A for why. Unfortunately, there's no appendix B for how they chose the Java flaws.)

  13. Yeay! Security plus portability minus cost... by freeplatypus · · Score: 5, Interesting

    .NET
    price: free, You only need to have Windows 2003 Business Server for serious work
    secure: rtfa in few years to make sure
    portable: it runs on many systems, like Windows and ... Windows ... but not all of them.
    speed: well actually speedy on Windows machine
    IDE: brilliant Visual Studio, unfortunatelly no plugins

    Java
    price: free, well it is free
    secure: most likely as secure as Your application
    portable: well actually, even my SonyEricsson cell runs it :)
    speed: a bit clumsy, but hey, almost all >1GHz desktop PC can run Java application in very responsive manner (Eclipse, Netbeans, Azureus, etc.)
    IDE: Eclipse and/or Netbeans ROCKS!

    This reply seems biased, but well, almost every opinion will be biased.

    1. Re:Yeay! Security plus portability minus cost... by sosume · · Score: 2, Insightful

      ok, I feel a strong need to shamelessly plug the .NET platform and refute your arguments..

      >.NET: price: free, You only need to have Windows
      >2003 Business Server for serious work
      >portable: it runs on many systems, like
      >Windows and ... Windows ... but not all of them.

      mono and .GNU works on bsd, linux and windows. You are not required to use the System.Windows namespace if you're not developing for windows.
      You shouldn't look at anything older that windows2 000 though..

      >IDE: brilliant Visual Studio, unfortunatelly
      >no plugins

      really now. They are called 'add-ins'.

      >Java: price: free, well it is free

      Sure, but not as in beer. Can I independently create my own JVM and distribute it?

      >secure: most likely as secure as Your application

      Sure, you can always trust the developer.

      >speed: a bit clumsy, but hey, almost all >1GHz
      >desktop PC can run Java application in very
      >responsive manner (Eclipse, Netbeans, Azureus,
      >etc.)

      Sure. So if i want speed i should just add more machines.

      >IDE: Eclipse and/or Netbeans ROCKS!

      and all that in a very slow manner indeed..

    2. Re:Yeay! Security plus portability minus cost... by Richard_at_work · · Score: 4, Informative
      Java: price: free, well it is free Sure, but not as in beer. Can I independently create my own JVM and distribute it?

      Well, actually, yes you can. Theres nothing stopping you reimplimenting a JVM to the released specifications, infact Kaffe is one such reimplementation. Go get a book detailing the VM specifications and how to implement a good VM from Sun!

    3. Re:Yeay! Security plus portability minus cost... by kelzer · · Score: 2, Informative

      You can write in lots of nice languages for it, wheras Java afaik only has Java and Ruby.

      No offense, but I guess you don't know much. Here are just a few of the available languages for the JVM:

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
  14. NASA World Wind uses .NET by Anonymous Coward · · Score: 2, Interesting

    As a side note NASA World Wind uses .NET:

    http://worldwind.arc.nasa.gov/

    It's similar to Google Earth, except that its 180MB and once you download it it tells you you need to upgrade your version of .NET, and another dialog pops up saying Direct X needs to be upgraded too. At this point, I decided not to continue. I don't fancy reading one of MS's EULAs, don't care to download one of their hulking tarballs, don't want Direct X changed in case it breaks something.

    Piece of shit Nasa, .NET is just a wrapper for Windows on the local machine, why didn't you just make native code you f**** idiots.

  15. Open source java security projects by iksrazal_br · · Score: 5, Informative
    I think this article overlooks the fact that many 'free as in speech' third party security libraries and frameworks are available for java.

    1) ACEGI - Aspect-orientaded-programming using a dependency injection model to replace or complement JAAS for authentication and authorization in an Application server independant way. A subproject of the Spring framework:

    http://acegisecurity.sourceforge.net/docbook/acegi .html/

    2) XML Encryption and XML Digital Signatures. Used in Web Service security or independently.

    http://xml.apache.org/security/

    http://ws.apache.org/wss4j/

    3) Container managed security implemented in every servlet container on the market, including tomcat.

    In short, I'd like to see a comparison of the features and availablity of what people actually use in their applications, rather than an entirely fudgable comparison of reported/unreported security flaws.

    "None are more hopelessly enslaved than those who falsely believe they are free. -- Goethe"

    iksrazal

  16. Re:Just don't put .Net on a network by dedazo · · Score: 4, Informative
    The whole thing used DCOM

    That's unfortunate, because .NET does not require DCOM at all.

    DCOM uses RPC which means that firewalls have to allow the entire high port range

    Yes, well, you can always open DCOMCNFG, switch to the protocols tab, select the TCP/IP entry and set the port range that suits you. Wow.

    MS consultant all insisted this was standard and typical

    An "MS consultant" told you you needed DCOM to jump over tiers with .NET and failed to tell you that you can select a port range to play nice with your firewall over the DMZ? Crap, I would have called his boss or the TAM at the regional office and have his ass fired.

    consultant strongly urged not doing multi-tiered

    You know what, while I don't doubt that there's someone dumb enough to recommend something like that out there, I really doubt it was an "MS consultant". Microsoft is moving away from heavy physical tier designs to avoid the wire overhead (which admittedly makes them look slightly stupid after years of telling everyone to use as many boxes as possible), but to recommend running the application and the database server on the same box is just plain retarded. MSCS (or whomever you were supposedly talking to) has some dumb people in the file and rank, but not *that* dumb.

    I'm gonna have to call bullshit on your apocryphal story here, unless by "MS consultant" you mean some random dude that has an MCSD and has read "Software Fortresses" five times while moving his lips.

    --
    Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  17. Who needs programming language security? by Ulrich+Hobelmann · · Score: 2, Interesting

    Whatever that would be. Use an operating system that gives you memory protection, and even better: capabilities (rights to read/write files and other things), and you can run ANY program, written in ANY language, without the programs even being ABLE to do any harm.

    Oh, that would be too much of progress, wouldn't it?

  18. Re:Brr... by Anonymous Coward · · Score: 2, Interesting

    Well, I use .NET to build web apps which run on our corporate intranet. These are HR, purchasing, scheduling and budgeting apps that run a medium-sized film production company. We have a mix of clients (600+) - Linux, OSX and Windows - in roughly equal numbers that access these applications. Ironically, I picked .NET simply becaue we had the hardware and license resources available after consolidating a lot of W2K3 servers into a few Netapp filers. The browser we use is Firefox because it's the only one that really works in a uniform fashion across all platforms in a way you can predict and work with.

    So, my apps run on a bunch of Windows boxes behind the scenes, but ultimately using .NET has not meant lock-in to MS products, it's actually allowed us to use the best tools for the jobs in hand; .NET for the back-end code, Firefox as a browser, and any OS you need for your particular job. Has it locked us in to MS products? No.

    I'd agree with you about Mono though, it reminds me of many hair-losing moments I had a few years ago converting someone's classic ASP code to run on that Chilisoft approximation. Bits worked, bits didn't, and this is what I'd expect from Mono. YMMV though.

  19. Heh! by miffo.swe · · Score: 4, Insightful

    The gall to put into account vulnerabilitys from Microsofts own JWM in a comparison to Microsofts .Net is astonoshing. What a way to belittle your competitor, make crappy implementation of their product and call them unsecure.

    I lack words.

    --
    HTTP/1.1 400
    1. Re:Heh! by cpu_fusion · · Score: 2, Insightful

      I completely agree. This single point alone screams, "ignore this study! it's biased!"

      Either the people writing the study are purposefully distorting their own data, or they are idiots, or both.

      Expect more acts of desperation from Microsoft marketing as Java continues to dominate the enterprise server space.

  20. My take on the first 'graph' used by tod_miller · · Score: 4, Interesting

    Wow, look at their nice graph will you. Their first graph shows 'vunerabilities found' in Java VM's... nothing mentioned about patches... and 0 in .net...

    Now look at this: In this paper we explore the more optimistic hypothesis that .NET's design is fundamentally more secure than Java's

    So they have a bent from the start to discredit Java. Onto my point:

    Java is 10 years old. There are groups of people looking at Java VM code and multiple versions of VM's, all of which are bunged in here. These 'vunerabilities' are not even reflections on the fundemental paradigm of the Java security model.

    This article is FUD, and bad FUD to counter Goslings stand against the 'untrusted code' model of the .Net.

    No, quoting JNI is not relevant in that argument because JNI still works within the seucrity model, yet it allows native code to be interfaced with, that is a seperate issue, and akin to making a network call, and running code on another server.

    They then mark up 9 security vunerabilities listed with Microsoft 'but because the way they classify them they do not count for this paper' (paper is the new word, because papers sound academic, not like paid research).

    There are many possible explanations for the .NET platform's apparent lack of security vulnerabilities.
    One possibility is that .NET is a less desirable platform for attackers to compromise than Java so it has
    not received the scrutiny necessary to reveal vulnerabilities. This is unlikely, however, since the .NET
    framework is now provided as a Windows update. Since Windows has over 90% of the desktop market
    with a large number of machines using .NET, the .NET platform presents an attractive target.


    Well, yes, windows runs on 90% of desktops, I would say .net runs on 15% of that figure.

    From the available information, the one implementation that did have many of its own
    unique vulnerabilities was Microsoft's Java implementation,


    They even try and discredit sources that go against their ideas. 'from the available information' or is the a way of saying 'this might be worse than we imply'.

    I didn't want to dig deeper, I found the single statement copied into a marketting guys website (fuck the word blog) rather twatish of the guy.

    This is FUD, yet the people this is aimed at are those who will read the '.Net found to be more secure than Java!!!!111OMGLOL!!' on [insert one of the many microsoft run 'news' farms that are used to infect propoganda into the media].

    pteeesh.

    To confirm you're not a script,
    please type the word in this image: binomial

    random letters - if you are visually impaired, please email us at pater@slashdot.org

    --
    #hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
    1. Re:My take on the first 'graph' used by MobyDisk · · Score: 2, Insightful
      This article is FUD, and bad FUD to counter Goslings stand against the 'untrusted code' model of the .Net.
      No, your reply is FUD, just like Goslings stuff about untrusted code. I won't waste my time explaining why it was FUD, that was already well-covered in the Slashdot comments around that article.
      ...JNI still works within the security model, yet it allows native code to be interfaced with, that is a seperate issue, and akin to making a network call, and running code on another server.
      You just made that up hoping most readers have never used JNI. That isn't how JNI works. It works very similarly to how .NET works. And you can, if you write code to do so, completely screw with the native security model using JNI.
      Well, yes, windows runs on 90% of desktops, I would say .net runs on 15% of that figure.
      I would love to know where you got that figure. It might be right. But without some facts behind it that is a meaningless attempt to belittle .NET.
      So they have a bent from the start to discredit Java.
      You just misunderstand: that is a reasonable way to start an academic paper: Begin with a hypothesis, and test it. If they were trying to write something subtly biased, they wouldn't start by telling you. They would hide it with words like FUD which is in nearly every paragraph you wrote.
      It's actually good to do it that way because you can't do research until you have a hypothesis, otherwise you don't know what you are measuring. You have to establish that basis before doing the research, not after.

      One last personal request: Using bold all over the place at random looks kinda like USING LOTS OF CAPS and doesn't help make a point. I recommend using bold on no more than one or two words in a paragraph.

  21. It's been done by Anonymous Coward · · Score: 3, Informative
  22. Re:Brr... by rjshields · · Score: 2, Interesting
    In what way? In the way that for some bizarre reason I can't port to another platform in the future if I want to?
    Take the code and try to compile and run it on Linux. Go on.
    In the way that they are telling me what I can and can't do in the future?
    I'm merely stating the obvious that seems to have escaped your attention.
    I think you may be confusing lock-in with making a choice.
    I don't think so.
    In that way, whatever platform and development language I choose, I will always be 'locked in' according to people who use other products.
    No you won't.
    It's a stupid point to make.
    No it's not.
    I don't do what I do based on fitting the problem around the solution, I find a solution for a problem.
    This is revolutionary.
    .NET fits in with what I need to do infinitely better than any of the other languages you mention.
    Not just slightly better but infinitely better.
    And this isn't a choice I make based on products being made by specific companies or it being open source, or the cool geek technology buzzword of the month. Ultimately, it's not a choice I make by being a blinkered techie that has no understanding of the peripheral business aspects.
    Bully for you. I bet you're really proud of yourself.
    Incidentally, I'd compare .NET to J2EE, rather than Java
    As I suspect you're not interesting in comparing anything but in making statements like ".NET is infintely better" which makes you look like a complete fool, incidentally.
    and maybe point you towards Pythont for .NET and Perl .NET, both of which allow you to write in both languages for the .NET CLR.
    Why the fuck would I want to run Python or Perl under the CLR? I have no desire to be locked in like you, thanks very much.
    --
    In this world nothing is certain but death, taxes and flawed car analogies.
  23. Re:Nonsense, utter nonsense by Peaker · · Score: 2, Insightful

    writing oo in c when you have c++ is stupid, you entirely fundamental basics of oo-concepts such as inheritance, encapsulation and the like.

    Inheritance (at least single-inheritence) is easy in C, you can just create the first member of your object (struct) be an instance of another object. Thus, you can cast up (by dereferencing that member), the only difference being that the cast up is explicit (not necessarily such a bad thing!). And you can cast down implicitly by using casted function pointers that take the subclass pointer (works because it is the first member in the struct).

    As for encapsulation, you get that in C simply by encapsulating all you want in the same module. Hiding the data and code you want in the C side and exposing what you want in the H side. Sure, you can't enforce the hiding the private data in your struct, but you can hide it by convention.

    Also note that in C++, you can't really enforce the data hiding either, i.e:

    #define private public
    #include "some_class.h"

  24. Re:wow, i expect linux-touting crap when i open /. by Baggio · · Score: 2, Interesting

    I couldn't agree more. And I've been around long enough to know, look at my user ID.

    Why is it when you have an unpopular view point, you're considered a troll. Granted the opinion expressed didn't apply to the article directly, so it might be better modded as "off-topic", but it isn't as if there will be a /. article posted about how much it has been going down hill.

    How else is one going to express their viewpoint? /. seriously needs to return to the site of "Stuff that matters." Instead there are 20 articles posted a day and only a few of them are actually worthy of posting. Maybe there should be a recycling bin page you can go to which has all the drivel, leaving just the good stuff on the front... like a newspaper -- the crap should be shuffled to page 2 or more.

    --
    Time flies like an arrow;
    Fruit flies like a bananna
  25. What is with all this willful ignorance? by tommck · · Score: 2, Informative

    MSFT has ported the .NET Framework to FreeBSD themselves!

    AND, Mono and .GNU run on many platforms (Linux, Windows, BSD, OSX and Solaris). As long as you don't use System.Windows (the desktop app stuff), you can do cross-platform development in many languages!

    I have written GTK# apps in VS.NET and run it on my Windows and SuSE box with ZERO modifications.

    If you want to bash something, you should probably learn a bit more about it. That's the reason I read the Bible multiple times: so I can refute Bible thumpers' arguments.

    --
    ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  26. Re:Interoperability? by CrazyLegs · · Score: 2, Informative
    Dude.... I gotta comment. I'm a senior architect at a very large multi-national back and I can attest that (in our case):
    • Java interoperability is extremely important. It's not about running the same code on different platforms, though. It's more about being able to switch out the platform when we need to (e.g. going from Wintel servers, to Linux and z/OS)
    • .NET is not knocking the socks off of Java. They are both shaping up to find their places. In our org, anything we write is Java (any tier, including clients where balls-to-the-wall performance is required). When we buy stuff, we look at Java (very few products) and .NET (more products).
    • Web Services are simply grand. But someone please wake me up when there's a full-featured implementation that's interoperable. Until then, Java has not lost any advatange here (if there ever was an advantage here).
    • your comments about 'beloved Linux desktops' simply describes the power of a Web interface, which is not specific to ASP.NET. Incidently, a Web interface is not always the right solution, so how does the Linux front-end play with the Windows back-end there?
    Not trying to diss you here. Just trying to give some perspective from this corner.
    --

    CrazyLegs

    "Pork!!" said the Fish, and we all laughed.

  27. Re:who cares? by Tarwn · · Score: 2, Insightful
    There is absolutely no point to .NET when it only runs on windows.


    How many companies are purely Windows shops? I would think that given that one fact (and ignoring mono, .GNU, etc) there might be a reason for the existence of .Net.

    Don't get me wrong, I'm not a .Net zealot by any measure, though I do write a good bit of it at work. Work being mostly a Windows shop with only two linux boxes and one Mac (compared to 5-600 windows boxes). We don't care if Java works on desktops and servers, we're not going to write an applicaiton that will need to run on both. The closest we'll come to that is a distributed application that could easily be C# on one side and Perl on the other because we don't create applications that both have the user interface and server capabilities all bundled into one executable.

    And as far as running cel phones to an existing application, we decided to go the web-based route. There is no Java front-end or back-end requirement. Hell, you could easily have a Java front-end and C# back-end if you wanted, but we went with html front-end and C# back-end (though I was pushing for PHP :P ).

    i'm not really familiar with .NET, but seeing as it only runs on windows it really makes no sense to me.

    And if you work in a mixed shop tat does require application functionality that is exactly the same across multiple platforms, I can see your point. However, in a Microsoft house you have the option of choosing your tools to fit the job. Maybe Java will be the best fit or maybe .Net will be the best fit, but once you choose one then it makes sense to continue using that one technology in most places to standardize your infrastructure as much as possible (software-wise, not necesarally OS-wise).
    --
    Whee signature.
  28. I'm glad the word is getting out by callipygian-showsyst · · Score: 3, Interesting
    saying that due to careful design process, .NET presents security advantages over Java platform in several areas

    Microsoft did an excellet job with .NET. While we all like to make fun of Ballmer jumping up and down and saying "Developers...", Microsoft actually means it.

    Their tools, concepts, and design are *way* ahead of, say Xcode and Objective-C. It's painful for me when I have to do Mac development because everything's so backward.

    I would love it if other companies starting implementing C#/.NET/CLR products based on the ECMA standard (unlike Java, C#/.NET has been accepted by a neutral standards committee)...this would prevent Microsoft from changing the language drastically from release to release.

  29. In addition by doc+modulo · · Score: 2, Insightful

    .NET is Free source (as in free speech, mono or dotGNU)

    Java isn't

    --
    - -- Truth addict for life.
    1. Re:In addition by VGPowerlord · · Score: 2, Informative
      .NET is Free source (as in free speech, mono or dotGNU)

      Java isn't

      That's right, there's no open source Java solutions. You also can't download the source code.

      Oh wait...

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:In addition by doc+modulo · · Score: 2, Interesting

      Java is mined with software patents. The core of .NET was submitted to an international standards body which won't let any submissions be encumbered by non-freedom-adjusted patents. It would make the standards body irrelevant.

      In other words, Sun could pull the plug on an open-source rival version of Java in the US and Japan if it becomes the dominant programming platform. Microsoft won't be able to pull the patent card on the freedom versions of .NET

      Sun better shape up, they're losing, it's only guys like you that haven't caught on to the trap/mine that's keeping Java on the marketing/hype list #1

      In my humble opinion.

      --
      - -- Truth addict for life.
  30. Good try, but no by hao2lian · · Score: 2, Insightful

    The main reason to use Java is that its cross-platform. If you think Microsoft's plan is to lure over Java developers to a platform that's locked into Windows from a platform that runs on who knows how many platforms, you have another thought coming to you.

    --
    Pelé!
  31. What about unsafe code by gregluck · · Score: 3, Informative
    C# includes the "unsafe" keyword to allow a block of code to run outside the verifier.

    The study authors say "Since a security policy cannot be enforced on unmanaged code, we only consider managed code." Given that most C# applications use unmanaged code, they are potentially vulnerable to buffer overflow attacks and the like.

    C# has been criticised repeatdely in the security community for this feature. Java always runs in safe or managed mode and is therefore more secure than C#.

    For more on what unsafe code means see http://msdn.microsoft.com/library/default.asp?url= /library/en-us/dncscol/html/Csharp10182001.asp

    That the authors of the paper make conclusions about C# security, while deliberatley excluding a gaping hole, and the papers appearance on an MS site leads me to the belief that the paper was probably sponsored by MS and they directed the study authors to exclude unmanaged code from the scope.

    Bill Caelli, one of the world's leading security experts, humiliated a Microsoft representative over unsafe code and stated that "Microsoft had missed an historic opporunity to improve security in their products".

  32. There are at least 9 security flaws in .NET by 51337 · · Score: 3, Informative

    There are at least 9 security flaws in .NET. The paper conveniently dismisses them all as not being part of the framework even though Microsoft classifies them as such on their Knowledge Base. This is only to justify their pretty little chart in the introduction showing that .NET has zero security flaws. If .NET has zero security flaws... nevermind. The paper is deception.

  33. Re:Except... it ONLY runs on Windows by NatteringNabob · · Score: 2, Interesting

    Java runs on Solaris/SPARC, Solaris/X86, Windows, MacOS, and Linux. As soon as Microsoft starts supplying .NET for those platforms, on similar terms to what Sun offers, then I'll consider using it. In addition, a GPL compatible RFND patent license for every 'invention' required to implement .NET and the framework would give them a step up on Java. Until then, I'll pass, thanks anyway.

  34. not an IDE fan, but... by namekuseijin · · Score: 2, Interesting

    ... i see you never used Borland Delphi.

    Having used many development tools like Emacs, VIM, SciTe, kate, Eclipse, Visual Studio.Net and Delphi, i gotta say Delphi is the best IDE i've used hands down.

    Simplicity and high productivity is the key here.

    You don't have tons of floating dialogues, icons, buttons and drop-downs poluting your interface just for no other reason than to show off and make you feel like your investment was well worth it

    No, just the right form designer, object inspector and class hierarchies, along with the project manager. Less bloat and complexity, more productivity...

    KISS.

    --
    I don't feel like it...
  35. should the language force security? by jonathanduty · · Score: 2, Interesting

    I'm not sure a language forcing security is a good thing. It seems to me writing secure systems is really the responsibility of the development team. Especially since different situations call for different security levels and methodologies.

  36. Re:I'm monopenxourcist on AMD64 recently,3 against by moro_666 · · Score: 2

    at first, mono is no imaginable way more secure than java, java is being tested by millions of programmers, thats why flaws are detected, if mono would have millions of users, it would definetly have an enormous bug database :D

    and now to the real world part, what should i do with that thing you call mono or the windows executable on my 104 node sun server ? stick it up it's ventilation shaft ? read my lips : your toy doesnt scale nor probably even run on it.

    or should i just try to fit your mono into my mobile phone with 1 meg of ram ... i doubt that even the licence agreement of .net itself would fit in there ... .net and mono are completely different from java in every sense, this is a pointless comparision, just the same as if you would compare a rocket with a jet.

    people who cant handle java choose something else. people who dont need java choose something else. i know that java has many flaws but .Net definetly is .Not the answer for most of them. so why go on some fresh born platform when you can choose something that works ?

    bush is more similar with adolf than java is with dotNet.

    --

    I'd tell you the chances of this story being a dupe, but you wouldn't like it.
  37. I hate to play the creditability card, but... by Bill_the_Engineer · · Score: 3, Interesting
    This paper is a paper from a Grad Student, with an endorsement from Dr. David Evans. These papers (despite what the author may think) are not definative and MUST be contrasted with other papers on the subject.

    With all due respect for the author(s), I have the following questions:

    Why the mis-leading chart so early in the paper? I believe a table may have been more appropriate.

    Why not have more peer-reviewed references? I see plenty of references from MSDN, and some from some conferences. But it looks like most of the arguments are being supported by non-peer reviewed sources.

    Why are there a SMALL number of peer-reviewed articles directly related to JAVA?

    Why are the peer-reviewed articles on JAVA so old? And most likely no longer relevant?

    What is the deployment history of .NET vs. Java? Market share? Security incidents (in the wild)?

    Why the microscopic view of JAVA's flaws and the lack of depth in .NET?

    Why isn't the dangers of native code discussed (.NET or JNI)?

    I do however like the information in Table 3... but what practical advantages do the "finer grained" security functions provided by .NET give the programmer or the end-user?

    I think it is a decent paper that maybe was turned in for an assignment. BTW, if the author has asbestos underwear and reads slashdot. Don't forget a short biography at the end of the paper next time. This gives the paper extra creditability.

    Regards, Bill

    --
    These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
  38. .NET vs Java security......??? by rshimizu12 · · Score: 2, Informative

    This is a really blatantly biased study. I wonder where his grant money is coming from.......??? There is some major flaws with his theory....... He is focusing on .NET framework vulnerabilities. Microsoft tries to act as though the languages and .net api's have had no vulnerabilities. Here is just a few ASP.NET vulnerabilites: " Microsoft ASP.NET URI Canonicalization Unauthorized Web Access Vulnerability (Vulnerabilities) Rank: 1000 Last modified on: 2004-10-05 18:00:00 MDT URL: http://www.securityfocus.com/bid/11342 2 Microsoft Ships Nimda To Korea in .NET (News) Rank: 952 Last modified on: 2002-06-13 18:00:00 MDT URL: http://www.securityfocus.com/news/480 3 Microsoft ASP.NET StateServer Cookie Handling Buffer Overflow Vulnerability (Vulnerabilities) Rank: 944 Last modified on: 2002-06-05 18:00:00 MDT URL: http://www.securityfocus.com/bid/4958 4 Microsoft Visual Studio .NET Debugger Privilege Enforcement Weakness (Vulnerabilities) Rank: 932 Last modified on: 2004-04-15 18:00:00 MDT URL: http://www.securityfocus.com/bid/10161 5 Microsoft Visual Studio .NET Korean Version Nimda Infected File Vulnerability (Vulnerabilities) Rank: 907 Last modified on: 2002-06-12 18:00:00 MDT URL: http://www.securityfocus.com/bid/5012 6 Microsoft Visual Studio .NET msdds.dll Remote Code Execution Vulnerability (Vulnerabilities) Rank: 885 Last modified on: 2005-08-17 00:00:00 MDT URL: http://www.securityfocus.com/bid/14594 7 Microsoft Visual C++ 7/Visual C++.Net Buffer Overflow Protection Weakness (Vulnerabilities) Rank: 882 Last modified on: 2002-02-13 17:00:00 MST URL: http://www.securityfocus.com/bid/4108 8 Microsoft ASP.NET Unicode Character Conversion Multiple Cross-Site Scripting Vulnerabilities (Vulnerabilities) Rank: 879 Last modified on: 2005-02-15 17:00:00 MST URL: http://www.securityfocus.com/bid/12574 9 Microsoft ASP.NET RPC/Encoded Remote Denial Of Service Vulnerability (Vulnerabilities) Rank: 871 Last modified on: 2005-07-11 18:00:00 MDT URL: http://www.securityfocus.com/bid/14217 10 Microsoft ASP.NET Request Validation Null Byte Filter Bypass Vulnerability (Vulnerabilities) Rank: 871 Last modified on: 2003-09-07 18:00:00 MDT URL: http://www.securityfocus.com/bid/8562 11 Multiple Vulnerabilities found in Microsoft .Net Passport Services Rank: 871 Last modified on: 2003-05-07 18:00:00 MDT URL: http://www.securityfocus.com/archive/82/320989 12 Multiple Vulnerabilities found in Microsoft .Net Passport Services Rank: 871 Last modified on: 2003-05-07 18:00:00 MDT URL: http://www.securityfocus.com/archive/1/320808" So the idea that there is no vulnerabilites in .net is bunk at best..... Another problem is that because of the MSDN EULA there has not been any hack challenges or external without Microsoft's permission. A few months ago Windows NT Pro magazine hosted a IIS6 hack challenge and it was mysteriously pulled fromt their site. I tried contacting them, but they never responded to my questions about the hack challenges. The big issue however is that there is architectual flaws in the Windows architecture Microsoft's Blind Spot (http://news.com.com/2010-1071-831385.html

  39. And that is the biggest problem. by khasim · · Score: 4, Informative
    It isn't which is really more "vulnerable".

    It is how you define your criteria as to what is "vulnerable" and what is "safe".

    They would have done a LOT better in just sticking to the design of each instead of counting admitted vulnerabilities and patches.

    Microsoft has been known to sit on vulnerabilities for a LONG time (http://www.eeye.com/html/research/upcoming/index. html

    Security starts with the security model. Here is where you'll see patches to disable stuff in a flawed model. You cannot just count the patches here, but they are useful for evaluating the model itself.

    Then that model has to be implemented in code. This is where you'll see bug fixes for code errors.

    The last thing to look at is any application built by someone else on that platform.

    And one last item to consider. Any platform is only as "secure" as the level beneath it. If .Net can be exploited by a vulnerability in Windows, then it can be exploited. This is particularly important because Microsoft builds both platforms.

    Here is where they get it wrong on Java:
    Both platforms need some way of bootstrapping to install the initial classes and loading mechanisms. Java 1.0 used a trusted file path that gave full trust to any class stored on the path. Code on the system CLASSPATH was fully trusted, so problems occurred when untrusted code could be installed on the CLASSPATH [15]. Java 2 treats code found on the CLASSPATH as any other code, but maintains backwards compatibility by using the bootclasspath to identify completely trusted code necessary to bootstrap the class loader.
    So, if Windows is compromised and code inserted to Java to run, then Java is at fault ... but if Windows is compromised and code is inserted for .Net to run, then that shouldn't count because the compromise happened before .Net was running.

    Either you count it as a flaw in both, or you don't count it for either.