Slashdot Mirror


Popular Android Apps Full of Bugs: Researchers Blame Recycling of Code

New submitter Brett W (3715683) writes The security researchers that first published the 'Heartbleed' vulnerabilities in OpenSSL have spent the last few months auditing the Top 50 downloaded Android apps for vulnerabilities and have found issues with at least half of them. Many send user data to ad networks without consent, potentially without the publisher or even the app developer being aware of it. Quite a few also send private data across the network in plain text. The full study is due out later this week.

150 comments

  1. Not surprised by Noah+Haders · · Score: 0, Flamebait

    Not surprised that android apps are full of holes. The whole android concept was designed to treat people like commodities in a way never before possible. The whole Ecosystem is *engineered* to have holes.

    1. Re:Not surprised by Anonymous Coward · · Score: 5, Funny

      Not surprised that android apps are full of holes. The whole android concept was designed to treat people like commodities in a way never before possible. The whole Ecosystem is *engineered* to have holes.

      Posted from my iPhone

    2. Re:Not surprised by Anonymous Coward · · Score: 2, Funny

      Not surprised that iPhone apps are full of holes. The whole Apple concept was designed to treat people like commodities in a way never before possible. The whole Ecosystem is *engineered* to have holes.

      Posted from my Android phone

    3. Re:Not surprised by Anonymous Coward · · Score: 0, Troll

      Not surprised that android apps are full of holes. The whole android concept was designed to treat people like commodities in a way never before possible. The whole Ecosystem is *engineered* to have holes.

      Do they pay you in MSFT stock or cash?

    4. Re:Not surprised by Anonymous Coward · · Score: 5, Informative

      I'm really surprised that mine is the first comment to mention F-Droid.
      Why does anyone install an app on Android that didn't come from F-Droid?

    5. Re:Not surprised by NotInHere · · Score: 2

      When I've had no android, I've thought that too. But as I've purchased an android phone, I was quite impressed about the efficient and tight rights separation system of android. Don't misunderstand me: I didn't "activate" the play store app, as I needed to couple it with a google account. If you could install the free apps without an account I'd have tried it, but that way google had lost a customer. The next thing I was annoyed of was the samsung bloat, and the possible lock-in the case I really started to like one of those apps. I solved these two problems when I've installed CM and F-Droid. Of course, I can't install the fanciest whatsapp and so on, but at least I know my phone is truly mine (except for the baseband part), and that lock-ins are very hard. I was fascinated when I found out that every installed app has its own UNIX user assigned.

      The rights separation in android is far more better than anything on the linux desktop. In X, every application can keylog me. In android, that's not possible. On the linux desktop, every application has access to all my files, including my .ssh directory.. In android, fs access is far more developed and limited. In linux desktop, every app has access to the webcam. In android, you can see which app has access. Of course, android could do better, perhaps by adding a "revoke right" option and an "always ask" option (osmand for example has a nice recorder feature, but most time I use it I don't need it so why does it have the right *all time*, rather let android ask for that permission the few times I need it), but right now it does best.

      The most annoying features of the android ecosystem radiate from GAPPS, but almost none from AOSP.

    6. Re:Not surprised by Anonymous Coward · · Score: 1

      No, I think he a Unix-Grey-beard with hatred of Garbage Collection. {:==={{}}}

    7. Re:Not surprised by MightyMartian · · Score: 1

      I'm not clear as to how, for instance, using buggy versions of SSL libraries fits into your whole theory. One possibility is that what you wrote is gibberish.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    8. Re: Not surprised by Anonymous Coward · · Score: 0

      Proprietary baseband and proprietary firmware. Try Repliant.

    9. Re:Not surprised by stephanruby · · Score: 2, Insightful

      Why does anyone install an app on Android that didn't come from F-Droid?

      Aside from the fact that I don't like any of the games F-Droid has to offer.

      It's because...

      Wait for it, wait for it...

      ...I don't really care. Believe it or not, but not everyone is as privacy conscious as you are.

    10. Re:Not surprised by brantondaveperson · · Score: 2

      perhaps by adding a "revoke right" option and an "always ask" option

      You mean, just like iOS? Actually, Apple may very well have a patent on that which might explain why Google hasn't yet adopted this obvious paradigm.

    11. Re:Not surprised by Cryacin · · Score: 4, Funny

      All the app developers want this for Christmas:

      http://www.shutterstock.com/pi...

      --
      Science advances one funeral at a time- Max Planck
    12. Re:Not surprised by JustOK · · Score: 3, Funny

      True. --Posted from YOUR phone.

      --
      rewriting history since 2109
    13. Re:Not surprised by TheRaven64 · · Score: 1

      I doubt Apple has such a patent. Both of these were features of Symbian at least since EKA2 (over 10 years ago) and, I think, earlier. Apple may have a patent on some particular way of exposing this functionality to the UI, but that's about the most that they could have without it being shot down in court in 10 seconds (prior art that's in the form of a phone OS that millions of people owned is hard to refute).

      --
      I am TheRaven on Soylent News
    14. Re:Not surprised by Dutch+Gun · · Score: 3, Informative

      How many reasons would you like? F-Droid has about a thousand apps to the Play store's 1.2 million. You have to install it through side channels. Relatively few in the mainstream have heard of it. None of the apps that people's friends or favorite websites are talking about are available on it. A quick peek at some of the new apps listed on the front page reveal these potential blockbusters:

      * A guessing game: try to guess a number between 1 and 100 in under eight tries
      * A ROT-13 encoder/decoder
      * An ASCII/Hex/Ocal/Binary converter
      * Swimming distance calculator
      * TI graphing calculator emulator (no ROMs included)

      It surprises you that people aren't flocking to this in droves? Look, nothing against F-Droid. It's cool that people are doing this, but let's keep our expectations grounded in reality.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    15. Re:Not surprised by Anonymous Coward · · Score: 0

      Except that the patent system was changed from first to innovate to first to file. Apple patented slide to unlock, and the fact that there was a commercial phone running windows CE released in 2005, 2 years prior to the iPhone, that used a slide to unlock that was identical to Apples didn't stop them from getting the patent.

    16. Re: Not surprised by Anonymous Coward · · Score: 1, Interesting

      You know what else? Nobody cares that you're not privacy conscious, and quit trying to turn the term into some kind of insult. It's not, but simple minds kind of annoy the rest of us.

    17. Re:Not surprised by Anonymous Coward · · Score: 1

      First to file doesn't magically remove prior art, does it? If they didn't invent it they can't patent it.

    18. Re:Not surprised by Anonymous Coward · · Score: 1

      ...I don't really care. Believe it or not, but not everyone is as privacy conscious as you are.

      That makes you an idiot, and that's your problem.

      The rest of us have no desire to hand all of our personal information over to marketing people.

      Go ahead, embrace your own stupid, but own the consequences of it. And don't expect us to do the same.

    19. Re:Not surprised by Anonymous Coward · · Score: 0

      Thanks for the link

    20. Re:Not surprised by Anonymous Coward · · Score: 0

      Why does every app name have to start with the letter "a"?

      aDosbox, Agit, agrep, aCal, aAuroraApp....

      WE GET IT, IT'S AN ANDROID APP

    21. Re:Not surprised by Anonymous Coward · · Score: 0

      Why does anyone install an app on Android that didn't come from F-Droid?

      Perhaps because this is now the first time I've ever heard of it. Granted I don't go scouring the web for alternative app portals, or follow much by way of Android news in general, but ... Google Play is integrated on my phone, but I'll now do a thorough investigation into F-Droid, now that I'm aware.

      So with that in mind, thank you for bringing it to my attention!

    22. Re:Not surprised by Anonymous Coward · · Score: 0

      If you have an I device, you've already handed over all of your information to a mass marketing machine, and you've paid a premium for it.

    23. Re:Not surprised by Bing+Tsher+E · · Score: 1

      What do you mean 'all my personal information'??

      I have a number of devices that run Android. Most of them have almost no personal information on them. Why would they need to, when they're for casual media consumption and games?

      Embrace your own zealotry. But, then, I don't need to tell you that.

    24. Re:Not surprised by Zaelath · · Score: 1

      iDunno

    25. Re: Not surprised by Anonymous Coward · · Score: 0

      You're the one who's turning this into ad hominem attack.

      My "simple mind" responded the way I did because of what the parent wrote, not because privacy consciousness is a bad thing. It's not. I never said that it was.

      The parent seemed to imply that everyone thought the same way he did.

      The only comment I do regret is what I said about F-Droid. It's not that I don't like the F-Droid games. It's that the F-Droid games represent only a super tiny sliver of what's available on the Google Play Store. Not only that, but they don't have star ratings next to them, unless you look them up each one at a time, which personally, I'm not going to do.

  2. Laziness by Anonymous Coward · · Score: 4, Insightful

    Code recycling is one thing, but not understanding what that code does when you put it into a production app or not following best practices is another. As Android gains popularity as a platform to develop for, we're going to lose quality as the new folks jumping onto the band wagon don't care how their apps work or look beyond the end goal. This mentality is already popping up with Android Wear developers who cram as much information as they can on the screen and claim that design guidelines are "just recommendations."

    1. Re:Laziness by AuMatar · · Score: 5, Insightful

      Design guidelines are just recommendations. Frequently bad ones. A developer should design the best UI he can, not follow what Google says regardless of whether it fits. And most developer guidelines, Google and Apple both, are crap.

      The problem is that the whole app movement has brought in a whole slew of crappy developers who's idea of coding is to search stack overflow or git for stuff to copy paste. They don't read it, don't understand how to use it right, and expect it to magically work. Worse half of the people writing that code fall into the same category, so its the blind reading the blind. If you pick a library off of github and assume it will work, you deserve what you get. Unfortunately your users don't.

      These people have been around for a while (they used to be "web developers" and program by copy pasting big chunks of javascript). The problem is that on a phone they can do more damage. In a world where the number of quality programmers is fixed and far less than the demand for programmers, how do you fix it? Making it easier to program actually hurts, you end up with those crappy coders trying to do even more. Maybe its time to raise the barriers to entry for a while.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:Laziness by dgatwood · · Score: 5, Informative

      Code recycling is one thing, but not understanding what that code does when you put it into a production app or not following best practices is another. As Android gains popularity as a platform to develop for, we're going to lose quality as the new folks jumping onto the band wagon don't care how their apps work or look beyond the end goal. This mentality is already popping up with Android Wear developers who cram as much information as they can on the screen and claim that design guidelines are "just recommendations."

      The exact same thing happens on every other platform, though perhaps to varying degrees. I refer to it as the Stack Overflow effect. One developer who doesn't know the right way to do something posts a question. Then, a developer who also doesn't know the right way to do it posts how he or she did it. Then ten thousand developers who don't know the right way to do it copy the code without understanding what it does or why it's the wrong way to do it. By the time somebody notices it, signs up for the site, builds up enough reputation points to point out the serious flaw in the code, and actually gets a correction, those developers have moved on, and the bad code is in shipping apps. Those developers, of course, think that they've found the answer, so there's no reason for them to ever revisit the page in question, thus ensuring that the flaw never gets fixed.

      Case in point, there's a scary big number of posts from people telling developers how to turn off SSL chain validation so that they can use self-signed certs, and a scary small number of posts reminding developers that they'd better not even think about shipping it without removing that code, and bordering on zero posts explaining how to replace the SSL chain validation with a proper check so that their app will actually be moderately secure with that self-signed cert even if it does ship. The result is that those ten thousand developers end up (statistically) finding the wrong way far more often than the right way.

      Of course, it's not entirely fair to blame this problem solely on sites like Stack Overflow for limiting people's ability to comment on other people's answers unless they have a certain amount of reputation (a policy that is, IMO, dangerous as h***), and for treating everybody's upvotes and downvotes equally regardless of the reputation of the voter. A fair amount of blame has to be placed on the companies that create the technology itself. As I told one of my former coworkers, "The advantage of making it easier to write software is that more people write software. The disadvantage of making it easier to write software is that... more people write software." Ease of programming is a two-edged sword, and particularly when you're forced to run other people's software without any sort of actual code review, you'd like it to have been as hard as possible for the developer to write that software, to ensure that only people with a certain level of competence will even make the attempt—sort of a "You must be this tall to ride the ride" bar.

      To put it another way, complying with or not complying with design guidelines are the least of app developers' problems. I'd be happy if all the developers just learned not to point the gun at other people's feet and pull the trigger without at least making sure it's not loaded, but for some reason, everybody seems to be hell-bent on removing the safeties that would confuse them in their attempts to do so. Some degree of opaqueness and some lack of documentation have historically been safety checks against complete idiots writing software. Yes, I'm wearing my UNIX curmudgeon hat when I say that, but you have to admit that the easier programming has become, the lower the average quality of code has seemed to be. I know correlation is not causation, but the only plausible alternative is that everyone is trying to make programming easier because the average developer is getting dumber and can't handle the hard stuff, which while p

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    3. Re:Laziness by Anonymous Coward · · Score: 0

      Oh, so that is what it is called. I have always called it the Java way.
      Documentation that only tells you what functions exists and not why they exists and what the intended use is leads to that kind of coding.

    4. Re:Laziness by Neil+Boekend · · Score: 1

      Probably mostly speed. Understanding every tool you use means you must invest time to understand it. In the swift and agile world of app development security is the first victim. Taking time to understand what you are doing seems to be outdated.
      The only thing the users can do is not install apps that request rights they have no need for. Sadly most users do not care.

      --
      Well, I might have a way, but it only works on a semi spherical planet in a vacuum.
    5. Re:Laziness by mean+pun · · Score: 1

      Although you certainly have a point, the core problem is often that the documentation is poor. I find that if there is a proper writeup of the solution somewhere on the net, Stack Overflow will mention it (eventually). If there is no proper writeup, sometimes someone bright posts a solution that is right, and sometimes people stumble upon a voodoo solution that nobody understands properly, but sort-of works.

      The Android APIs are susceptible to this problem, because they are often poorly documented, have glaring documentation bugs, or don't explain the overall concepts. No matter how brilliant your epibration classes are, and no matter how well-documented all the methods in the epibration API are, it doesn't help at all if you don't explain what the hell epibration is, and when and how you should use it.

      Amazingly, security libraries are often in this category. Is there a really good writeup ANYWHERE about SSL, certificates and signing practices? And IPSec with all its intricacies?

    6. Re:Laziness by TheRaven64 · · Score: 1

      The problem is worse on Android than on many other platforms because there are very few native shared libraries exposed to developer and there is no sensible mechanism for updating them all. If there's a vulnerability in a library that a load of developers use, then you need 100% of those developers to update the library and ship new versions of their apps to be secure. For most other systems, core libraries are part of a system update and so can be fixed centrally.

      --
      I am TheRaven on Soylent News
    7. Re:Laziness by Lennie · · Score: 2

      It's the price that is driving this, when an app is free or just 1 dollar, this gives a lot of reasons to not spend a lot of time on it.

      --
      New things are always on the horizon
    8. Re:Laziness by dkf · · Score: 1

      Amazingly, security libraries are often in this category. Is there a really good writeup ANYWHERE about SSL, certificates and signing practices? And IPSec with all its intricacies?

      Funnily enough, on Stack Overflow! Not all of the security-related questions are overflowing with shitty misinformation. (SO might not be great, but it's better than the squillion shitty places for question answering that preceded it.)

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    9. Re:Laziness by Lennie · · Score: 3, Informative

      Crappy developers usually means: uneducated developers.

      They can get simple things done without understanding the whole system. That deliver something that sort of works. This makes them cheap labor.

      Why do we need cheap labor, because of competition and a race to the bottom driven by consumer buying decisions.

      In a talk by Gabe Newell from Valve said that a free game got you 10x more users and 3x more profit (they for example get some money from people selling items inside the game). Not that they use cheap labor, they actually do the exact opposite. But it is just to illustrate how price is important.

      So free like the above is a profitable model, free and ad-supported might actually not be as profitable. I don't know how much money companies get for selling personal information. I assume it is more than the ads.

      So how do you solve that.

      I see a few possible ways:
      - education
      - create good open source libraries that prevent most of the bad things and cheap developers want to use.

      Now comes the kicker:

      Do you think HTML5-apps without any permissions by default on phones would be a better model ? :-)
      That would be a model similar to Javascript-code running in the browser on the desktop where the user is asked to allow access to the camera when needed.

      Actually, I do, but then again I actually do use a FirefoxOS phone to see what it is like.

      A lot of the time the hardware is bit underpowered so it can be sold in countries that currently still have a large number of feature phones or people not willing/able to pay for more expensive hardware.

      But still pretty impressive what they can get out of that cheaper hardware.

      --
      New things are always on the horizon
    10. Re:Laziness by narcc · · Score: 1

      How about "pride in your work"? Remember that old maxim "anything worth doing is worth doing well"?

      I simply can't believe that money is the only thing that motivates people.

    11. Re:Laziness by Antique+Geekmeister · · Score: 0

      > They can get simple things done without understanding the whole system. That deliver something that sort of works. This makes them Java developers.

      Fixed That for You.

      [ Note grammatically correct but confusing capitalization, another of my pet Java peeves. ]

    12. Re:Laziness by jareth-0205 · · Score: 1

      Code recycling is one thing, but not understanding what that code does when you put it into a production app or not following best practices is another.

      No developer completely understands everything that happens on a system, that's impossible. You do your best and you verify as well as you can that it's acting as you expect. Because where else do you stop..? You can't verify every library that you use, otherwise why bother using them, you might as well write your own. You can't verify the system itself because it's far too big.

      Not that I'm saying things couldn't be written better, but programming is not a "correct / incorrect" binary choice, any nontrivial system has problems.

    13. Re:Laziness by gbjbaanb · · Score: 1

      I'll agree there - thought its not Java at fault necessarily - not unless you lump in a bunch of other languages like VB, C#, JS etc.

      The problem is of the library code you're using. Libraries should be small, well defined, easy to use, and documented.

      The problem today is (especially with code written in Java, .NET or JS) that it is knocked up to solve some problem but the problem is not only not properly understood, but the code that is provided doesn't solve it particularly well. Its not defined as a discrete task, more as part of some greater whole that someone thought "worked ok for me in my circumstances, so should be fine for others too".

      If libs were properly specified as libraries and their API documented fully, then we would see more code reuse and better, cheaper code. If only, but the cost of making such a library tends to be too slow and difficult for the 'I want it now' majority, and this is why we continue to have this kind of shitty code problem.

    14. Re:Laziness by dotancohen · · Score: 1

      You are going to hate what the Neovim folks are trying to do to VIM's learning curve:
      https://github.com/neovim/neov...

      I fear the day when Eternal September comes to VIM.

      --
      It is dangerous to be right when the government is wrong.
    15. Re:Laziness by Anonymous Coward · · Score: 0

      How about "pride in your work"? Remember that old maxim "anything worth doing is worth doing well"?

      I simply can't believe that money is the only thing that motivates people.

      Well, maybe it isn't the only thing that motivates developers, but it certainly tends to be the only thing that motivates people who pay developers ...

    16. Re:Laziness by mpe · · Score: 1

      Case in point, there's a scary big number of posts from people telling developers how to turn off SSL chain validation so that they can use self-signed certs, and a scary small number of posts reminding developers that they'd better not even think about shipping it without removing that code, and bordering on zero posts explaining how to replace the SSL chain validation with a proper check so that their app will actually be moderately secure with that self-signed cert even if it does ship. The result is that those ten thousand developers end up (statistically) finding the wrong way far more often than the right way.

      There are also cases where using a self signed certificate is rather more secure than using a CA to. The whole CA idea having all sorts of problems.
      Though the example is one of those where only someone who didn't understand how things worked would need to ask such a question in the first place.

    17. Re:Laziness by mpe · · Score: 1

      Although you certainly have a point, the core problem is often that the documentation is poor.

      A not uncommon problem being "solutions" which omit steps or assume that everyone knows how to find, what is in practice, an obscure option. Sometimes also having "boilerplate" which overexplains another part of the process.

      Amazingly, security libraries are often in this category. Is there a really good writeup ANYWHERE about SSL, certificates and signing practices?

      That would also have to include TLS, STARTTLS, how it can really be STARTSSL, etc. There's also the issue of what is actually part of the protocol and what is implimentation specific.

    18. Re:Laziness by mpe · · Score: 1

      The problem is worse on Android than on many other platforms because there are very few native shared libraries exposed to developer and there is no sensible mechanism for updating them all. If there's a vulnerability in a library that a load of developers use, then you need 100% of those developers to update the library and ship new versions of their apps to be secure. For most other systems, core libraries are part of a system update and so can be fixed centrally.

      It used to be very common with MS Windows for libraries to be bundled with applications. A situation called "DLL hell". Which can be even worst when an application installer tries to update a "system" copy of the library.

    19. Re:Laziness by Anonymous Coward · · Score: 0

      Laziness + people who shouldn't be programming.

      Just to echo the statement above, but go a few points further:
      Inappropriate libraries: eg "How do I do X in Javascript", and the answers are "use (jQuery) thing"
      Inappropriate development language: "I want to do X and Y in C#" and answers explain that X can't be done in C# (because it's not in the runtime) but they "fudged it doing P,Q and R"
      Inappropriate design considerations: "I want to make an app that works on W,i,M,A,X,P,N platforms, but the only platforms that support all these platforms is Unity" forgetting that Unity is a game engine and not designed to be a lightweight app. Or "I really want to use Java for crossplatformness, but iOS doesn't support Java, and the game consoles don't run Java", I'll just nickname this the Minecraft effect. So the end result is that 3 different games end up being built, and only one ever gets updates because three times as much maintenance is required to keep it functioning.

      You'd think after having the 8-bit era do all this before, that we'd be wiser now. Nope.

      Assuming you go through the effort, To make a portable program, be it a game or not:
      You need no less than three build environments. Windows, OSX and Linux
      You need to have all the libraries used by these environments available as both dynamic and static libraries, or the source code with a BSD/MIT type of license, not GPL so you can statically compile any work-arounds that a shared library would break.
      If you want to built for the Xbox, Playstation or Nintendo consoles, you also need their development kits.
      And finally if you want to build for the Mobile devices, you need the oldest and newest version of the device supported. So for iOS you need an iPad2 and the current iPad model along with the iPhone 4s and 5s
      For Android... you may as well say f*ck it and just develop for Android 4.4.2, because good luck getting a thousand different devices to test against. Pick either the Google Nexus or Samsung Galaxy latest version and to hell with the rest.
      I'm not sure these is even a point to developing for Windows Phone, considering that Microsoft has now thrown the OS away several times since it was Windows CE 2003SE. You're basically not guaranteed that Microsoft won't throw away the next version of Windows, so why waste the effort.
      Then you have other devices with no market share to speak of.

      Like as much as I like to rag on how stupid developers are for developing on Android, or using Java at all, for all it's warts, Android at least is a better option than a "Linux Phone" that end users wouldn't have the first clue how to do anything with.

      Nerds aren't "everyone else", what nerds want are devices that do everything, even at the expense of being elegant or functional. Apple is the only one who ever gets it, and they don't make devices to appeal to nerds, they make devices to appeal to everyone who have better things to do than hack their devices.

      There is a small amount of overlap, where Apple developers want to port their stuff to Windows and Linux, but the platform lock-in prevents this. Even if you only develop using SDL and C (no C++) , you still get hamstrung by the development tools used by each platform.
      Windows has awful make tools that don't work with the "Linux" types of build tools. So while building from source or using mingw32 on linux will produce a working binary, it won't produce an optimal one. Using Clang on Windows is kinda broken right now, but that's getting much closer.

      BUT.

      If you use a second tier language (eg C#, Swift) that relies on OS libraries, forget cross platform compatibility. The entire reason Mono works at all is that there is a standard (EMCA 334) but that's only for C# 2.0 not 5.0. It doesn't enable the Microsoft OS Libraries.
      http://mono-project.com/Compatibility

      However, Xarmain is a good choice for someone to start with
      http://xamarin.com/platform , as it compiles things that can be run on every platform*

      *except consoles, there's somet

    20. Re:Laziness by dgatwood · · Score: 1

      You don't have to understand everything, but you do need to at least understand the basics, like how networking works, how crypto works, etc. at a conceptual level. I feel like too many developers learn how to program by learning JavaScript and other scripting languages on their own, then jump into app programming thinking that it's only one step harder because you can sort of do it in Python/Ruby/other Obj-C bridged languages/other .NET languages, or because Swift looks like JavaScript, or whatever their logic might be. Unfortunately, it's not one step harder if you care about doing it right; it's a hundred steps harder, but the apparent accessibility of app programming tries to hide that fact, resulting in a lot of people getting in way over their heads.

      Too many developers then balk when we tell them that they need to read conceptual books, insisting that they just want to learn how to solve their particular problem. The result is that they understand just enough of what they're doing to be dangerous. It's like deciding to build a house and telling someone, "I just want to know how to cut a board and hammer in a nail." You're likely to get a very strange looking house with no right angles. You really need to start with higher-level design and philosophy texts, then work your way down to the practical texts. That's equally true in programming, but the short-attention-span instant-gratification crowd just doesn't get that.

      And I understand the desire to just learn how to solve the problem. I've been there, and I've done that, but only in areas where I was reasonably comfortable. Even then, I've often later discovered that snippets that looked right weren't quite right in certain edge cases, but at least this happens fairly infrequently, because I've taken the time to learn what I'm doing. Developers who don't do this aren't just hurting themselves; they're hurting their users. There's just no reason for that.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    21. Re:Laziness by AuMatar · · Score: 1

      I think that HTML5 would make it far worse. Where do most of these bad programmers start? Where the barriers to entry are lowest-- javascript. You'd be making the problem worse, not better.

      I do think that there's much improvement to be made with permissions on mobile phones. But that's a separate problem, and one a lot of the Android custom ROMs do well.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    22. Re:Laziness by Lennie · · Score: 1

      People that aren't very good developers are proud of their work too. They are proud they made something that works.

      --
      New things are always on the horizon
    23. Re:Laziness by Lennie · · Score: 1

      You misunderstood.

      I meant is: if we are going to have these developers, no matter what. Then giving these developers a sandbox where they can't do any harm that would be an improvement, right ?

      --
      New things are always on the horizon
    24. Re:Laziness by Anonymous Coward · · Score: 0

      Of course, it's not entirely fair to blame this problem solely on sites like Stack Overflow for limiting people's ability to comment on other people's answers unless they have a certain amount of reputation (a policy that is, IMO, dangerous as h***), and for treating everybody's upvotes and downvotes equally regardless of the reputation of the voter.

      I must observe that these two statements are more or less directly in conflict with each other. If you fail to limit commenting until someone has enough reputation points you have problems with spam and inexperienced developers making stupid comments. If you treat votes differently depending on the level of reputation, then you're having to trust that people with more reputation really do know more, so instead of stupid comments you end up with stupid votes. How do see these two as not conflicting with each other?

    25. Re:Laziness by dgatwood · · Score: 1

      A self-signed certificate is never more secure than a CA-signed cert. Period. The only benefit to self-signed certs is cost. Any other perceived benefits are merely side effects caused by forcing you to do extra security checks to make up for the lack of a CA—checks that you could do anyway, but probably won't.

      For example, if you're paranoid about a CA issuing a cert for your organization to someone else, then you might add code in your app to do your own set of checks to decide whether a cert is valid (such as ensuring that a specific cert issued within your organization is part of the chain of trust). You can do such tests on a CA-signed cert just as easily as you can on a self-signed cert. Even if that your policy is to trust only a pre-distributed set of self-signed certs, you can do the same thing by pre-distributing CA-signed certs.

      Thus, in the worst-case scenario, the CA-signed cert gives you no less protection than the self-signed cert, and in the best case, it gives you additional protection.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    26. Re:Laziness by dgatwood · · Score: 1

      Lots of times, you see something wrong, and you want to point it out, but by limiting commenting to people with rep, if you don't have rep on that particular board, you are prevented from correcting the error. That means that there's wrong information without any hint that it might be wrong. So the worst-case scenario there is pretty bad.

      By contrast, if you remove those limits, the worst-case scenario is that people who don't know what they're doing might say that it is wrong, at which point you'll have to investigate to figure out who is right. And if they're wrong in saying that it is wrong, you (who also probably have no rep) can comment and explain why they're wrong about it being wrong. And if they're right, then you saved yourself a lot of swearing.

      So the worst-case scenario is considerably better without those limits (ignoring spam, of course, but that can largely be taken care of by a combination of a proper reporting mechanism, disallowing links by posters without reputation, etc.).

      As for whether you can trust people with more rep to know more, for the most part, people who get upmodded more are, in fact, people who do know more. Mind you, there's always the possibility of an echo chamber effect, but that's a possibility no matter what you do. By using a weighted voting scheme, people who have shown more knowledge (and thus are more likely to be correct) can overcome voting of people who haven't (and thus are more likely to be wrong). Statistically speaking, this approach makes sense, at least on the average.

      For maximum effectiveness, though, such a scheme should be combined with automatic flagging of any post whose reputation changes too far or too often, for future review by other subject-matter experts.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  3. What alternative could be built? by tepples · · Score: 2

    How would an ecosystem be designed not to have these sorts of holes but also not to restrict what the owner of a device can use it for?

    1. Re:What alternative could be built? by EmperorArthur · · Score: 2, Interesting

      How would an ecosystem be designed not to have these sorts of holes but also not to restrict what the owner of a device can use it for?

      Just look at the Xprivacy extension for rooted android phones. Even iPhones let you disable app permissions. What has Google done about the issue? They reduced permissions into groups so users couldn't even know exactly what their apps have access to any more. Oh, and block apps from writing to most of the external SD card, but they can do whatever they want to the internal one. Guess Google doesn't like privacy or SD cards.

      --
      So lets pretend that we've just completed writing this code, as opposed to having just completed sabotaging it -Altera
    2. Re:What alternative could be built? by Anonymous Coward · · Score: 4, Insightful

      Fine grained permissions. Try denying an app access to your contacts in Android. Good luck.

    3. Re:What alternative could be built? by stephanruby · · Score: 4, Informative

      Oh, and block apps from writing to most of the external SD card, but they can do whatever they want to the internal one. Guess Google doesn't like privacy or SD cards.

      That's just incorrect. For the internal memory, an app can't overwrite another app's private data, it can't even read it without special interfaces (assuming a non-rooted device). An external SD card on the other hand is deemed insecure by definition since it can easily be pulled out and placed into another device. So an external SD card was chosen as an easy way to store, share, and manage media files between different applications.

    4. Re: What alternative could be built? by Anonymous Coward · · Score: 1

      Internal memory and internal SD card are two separate things in Android. Internal SD card is simply a part of the internal NAND that the OS treats like a normal SD card. Many phones don't support external SD cards but have moderate amounts of storage, so they compromise.

    5. Re:What alternative could be built? by djupedal · · Score: 2

      How would an ecosystem be designed not to have these sorts of holes but also not to restrict what the owner of a device can use it for?

      What..._and_ make money? Will you settle for 2 out of 3? But first, define 'restrict' and don't point to other platforms, thanks.

    6. Re:What alternative could be built? by Zaelath · · Score: 4, Informative

      Mmmm, Android moved "unacceptable" into "not unusual" at the same time and said a lot more apps "require no special permissions", despite needing Device ID, GPS, and storage access. You know. For a torch app.

    7. Re: What alternative could be built? by Anonymous Coward · · Score: 1

      Internal memory and internal SD card are two separate things in Android. Internal SD card is simply a part of the internal NAND that the OS treats like a normal SD card. Many phones don't support external SD cards but have moderate amounts of storage, so they compromise.

      I'm not sure I follow.

      Many phones don't support external SD cards, but officially their apis still need to support external storage with internal SD memory anyway, otherwise they won't pass the Compatibility Test Suite.

    8. Re: What alternative could be built? by EmperorArthur · · Score: 4, Interesting

      Internal memory and internal SD card are two separate things in Android. Internal SD card is simply a part of the internal NAND that the OS treats like a normal SD card. Many phones don't support external SD cards but have moderate amounts of storage, so they compromise.

      I'm not sure I follow.

      Many phones don't support external SD cards, but officially their apis still need to support external storage with internal SD memory anyway, otherwise they won't pass the Compatibility Test Suite.

      The problem is that the internal SD card and external SD card are treated differently.

      Android apps by default work off the internal SD card. It's actually a separate partition that's mounted at the same place as old phones used for external SD cards. You can't change the default to use an external card. You can't recover space from that internal partition.*

      Here's the kicker. Now external SD cards are mounted somewhere else. (/mnt/extSD) The thing is that many apps don't work with the external SD card. Especially after the latest android release. With android KitKat apps with the, misnamed, external storage permission can read and write anywhere on the internal card. The problem is that now they can read anywhere on the external card, but can only write to a directory on it which is something like "/mnt/extSD/data/app.name" There are a few exceptions for system apps like the camera, but regular apps have to use this weird naming scheme.

      It's actually a good security feature, but the fact they don't apply it to the internal SD card just seems to be Google deliberately moving people away from phones with an external SD card. Not cool.

      *Without rooting, and knowing exactly what you're doing at least. No way a non expert is doing this.

      --
      So lets pretend that we've just completed writing this code, as opposed to having just completed sabotaging it -Altera
    9. Re:What alternative could be built? by johanw · · Score: 2

      " Oh, and block apps from writing to most of the external SD card"

      SDFix to the rescue. Requires root but if you're running XPrivacy you already have that. It saved my Sygic installation after I upgraded to 4.4.

    10. Re: What alternative could be built? by johanw · · Score: 3, Informative

      "Android apps by default work off the internal SD card. It's actually a separate partition that's mounted at the same place as old phones used for external SD cards. You can't change the default to use an external card."

      Depends on the phone. I have a cheapass Android phone with only 4GB of internal memory, but it let me choose (out of the box, no root-only tricks here) wether I want the internal memory or the physical microsd card mounted as /sdcard0 or /sdcard1. The phone switches them if you like (and that is very reccommended with this little internal memory).

    11. Re:What alternative could be built? by johanw · · Score: 1

      Easy. XPrivacy. Requires root, but I would rather use Symbian than an unrooted Android.

    12. Re:What alternative could be built? by Anonymous Coward · · Score: 0

      And the repeated popups of Yes/No permission windows has worked SOOOOO well in the past ROFL.

      If you don't trust the app developer in the first place, what the hell are you doing installing their app? (See Storm8's "accidentally" abusing a bug revealing the user's private information, then "accidentally" transmitting back to their servers). A background bitcoin miner, for example, needs no permission asides from the Internet (which you're not informed of at all).

      The casual user won't have any clue why they're saying yes to... and even the expert user won't have any idea what the app is doing after they say yes. Did they just send your contacts off to shady servers in China?

      CAPTCHA: misuse

    13. Re: What alternative could be built? by Anonymous Coward · · Score: 0

      Galaxy S5 here.

      The internal and external memory show up as two different "drives" inside the "S5" device that shows up in Windows Explorer.

      You can manipulate each to your hearts content through Windows.

      Second fallacy: there are "shared folders" on the SD card where apps have access to. Folders like the "Download" and "DCIM" (pictures / camera) can be written to an manipulated.

    14. Re:What alternative could be built? by Anonymous Coward · · Score: 0

      An external SD card on the other hand is deemed insecure by definition

      By definition, it's a secure digital card. I'm not saying it's not insecure, just not by definition.

    15. Re:What alternative could be built? by Anonymous Coward · · Score: 0

      Only my phone, email, and sms app has this permission. Not even Facebook can read my phone's contacts. That's why Android is awesome.

    16. Re:What alternative could be built? by kcwebmonkey · · Score: 1

      cyanogenmod privacy mode

    17. Re: What alternative could be built? by Anonymous Coward · · Score: 0

      Galaxy S5 here.

      The internal and external memory show up as two different "drives" inside the "S5" device that shows up in Windows Explorer.

      You can manipulate each to your hearts content through Windows.

      Yes, but that's because you granted usb access to your internal drive through the phone itself. In other words, if your phone was password protected, the internal memory would be safe from an average dumb user with physical access.

      Now here comes my disclaimer:

      If you're dealing with a hacker with physical access to your device, or someone who is halfway competent at googling for technical information, or a cop with a handheld device designed to hack phones at the push of a button, again with those people having physical access to your device, then obviously, all bets are off. In any of those cases, even the internal memory can be compromised easily even on a password-protected phone.

    18. Re: What alternative could be built? by swillden · · Score: 2

      The internal "SD Card" is formatted with a Unix-style file system that provides access controls to keep apps from being able to access one anothers' data. External SD Cards are formatted with FAT32, because that's what the whole world expects. Unfortunately, FAT has no concept of ownership or permissions, so the path-based restriction is necessary to ensure that apps can't muck with each others' data.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  4. All software is full of bugs by Tony+Isaac · · Score: 4, Insightful

    It doesn't matter if it is Windows, Mac, iOS, Android, or Linux, all software is full of bugs.

    For that matter, all of everything constructed by human beings...is full of defects, or potential defects, or security vulnerabilities. Your house, for example. You have a lock on your front door, but it takes a thief just a few seconds to kick the door in. Or your car...a thief can break into it in seconds, even if you have electronic theft protection. I'd call those "security vulnerabilities."

    It's the nature of all human creations, software or hardware, electronic or mechanical.

    So what do we do? We improve security until it becomes "just secure enough" that we can live with the risks, and move on.

    1. Re:All software is full of bugs by Greyfox · · Score: 5, Funny
      But we don't do that. We never do that. As developers, we hide our head in the sand until we absolutely can no longer ignore then problem, and then we say "Whoops! My bad!" As consumers we assume that professionally published software should be reasonably free of bugs or exploitable code. And people start being held accountable by law for their shitty software, the status quo will never change.

      I was demonstrating to a shitty software developer the other day how all his input sanitizing routines were in the javascript front end to his web application and anyone bypassing the javascript could essentially have their way with the back-end database, and he told me "Oh you're making a back-end API call, no one will ever do that!" No one except the guy who's hacking your fucking system, jackass. People like that make me want to sign on as Linus' personal dick-puncher. Whenever someone writes some shitty software that pisses Linus off, I will find that person and I will PUNCH THEM IN THE DICK. Because I swear to god, that's what it's going to take. Congress is going to have to WRITE A LAW allowing me to HUNT PEOPLE DOWN and PUNCH THEM IN THE DICK over the SHITTY SOFTWARE they write. And when that day comes, with God as my witness, I will PITCH A TENT outside MICROSOFT HEADQUARTERS, and that will be the LAST TENT EVER PITCHED at MICROSOFT HEADQUARTERS!

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      Says the person who is likely a shitty programmer themselves.

    3. Re:All software is full of bugs by Greyfox · · Score: 4, Funny

      My programming skills are debatable but I tested in the top 10th percentile for dick-punching. Here... let me show you...

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    4. Re:All software is full of bugs by WaffleMonster · · Score: 2

      For that matter, all of everything constructed by human beings...is full of defects, or potential defects, or security vulnerabilities. Your house, for example. You have a lock on your front door, but it takes a thief just a few seconds to kick the door in. Or your car...a thief can break into it in seconds, even if you have electronic theft protection. I'd call those "security vulnerabilities."

      So what do we do? We improve security until it becomes "just secure enough" that we can live with the risks, and move on.

      Who cares about the security of an untrusted and untrustworthy app in the first place?

      What difference does it make if it was written by the most competent team of programmers in the world if while operating as designed still treats the end user with contempt?

    5. Re:All software is full of bugs by gringer · · Score: 2

      For that matter, all of everything constructed by human beings

      You might not be terribly surprised to know that our genes (and the genomes of pretty much everything) are also full of bugs. We have a whole raft of deleterious genetic variants in our DNA that are just waiting for the perfect time to activate and say "hey, you know that life thing? I can make it worse." On top of that, we have a few viral genomes in our DNA (possibly some that are still active), and rely on bacteria and mitochondria to provide us with energy required to live.

      In other words, defective objects are the rule, not the exception.

      p.s. hmm... I've only just realised how much I miss that handy login form that SoylentNews has to deal with accidental AC posts.

      --
      Ask me about repetitive DNA
    6. Re:All software is full of bugs by jmv · · Score: 3, Insightful

      Software on Internet-connected devices is a bit different from your examples though. No matter how insecure cars are, it would be really hard for me to steal a million cars in one night, let alone without being caught. Yet, it's common to see millions of computers/phones being hacked in a very short period of time. And the risk to the person responsible is much lower.

    7. Re:All software is full of bugs by thegarbz · · Score: 1

      So what do we do? We improve security until it becomes "just secure enough" that we can live with the risks, and move on.

      Who's perspective are you talking about?
      The risk of the user being compromised? Or the risk of the programmer being held accountable?

      For the most part we're not talking about fixing all bugs. For the most part the argument isn't even about being "secure enough".

      No. For the most part some of the bugs are outright inexcusable.

    8. Re:All software is full of bugs by Lennie · · Score: 1

      1. Why are you excluding women ? isn't that discrimination ?

      2. Some people just don't know this yet, they don't have a hacker mentality (which is what is needed to understand whole systems and how things can be used in ways they were never intended). A hacker mentality is not taught at educational institutions, so they need to still learn it. It usually isn't malice or laziness it is not understanding what you are doing. All they have learned is is how to get the task completed.

      --
      New things are always on the horizon
    9. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      I would like to amend your law to SUCK THEM IN THE DICK, so i can enjoy many dick sucks.

    10. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      Your (2) is simply a demonstration of ignorance. Don't be an apologist for ignorance.

    11. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      1. Why are you excluding women ? isn't that discrimination ?

      It's the kind feminists could get behind as it's hurting men so it's ok.

      #PunchAllMenInTheDick

    12. Re:All software is full of bugs by Solandri · · Score: 2

      I was demonstrating to a shitty software developer the other day how all his input sanitizing routines were in the javascript front end to his web application and anyone bypassing the javascript could essentially have their way with the back-end database, and he told me "Oh you're making a back-end API call, no one will ever do that!" No one except the guy who's hacking your fucking system, jackass.

      That actually happened in one of the online games I used to play. The game company decided to run a promotion where you filled out a short survey on their web site, and as a reward you'd be mailed a small prize in the game. Someone sifted through the code for the website, and found it was just telling the game server's database to mail the prize's item number to the player's account. He tried changing the item number and it worked. Soon he had dozens of the rarest, most valuable item in the game in his mailbox and was selling them for the RL equivalent of thousands of dollars.

      Anyhow, this is why I've always scoffed at the title "Software Engineer". Real engineers sign off on their work, and can be held personally liable if their design turns out to be flawed and leads to damage, injury, or death. In some engineering professions (e.g. civil engineering), a notable failure can lead to losing one's professional accreditation, turning that expensive engineering degree into a worthless piece of paper. The software industry needs to decide if it wants to continue down this "anyone can write a program" wild west route, or if it wants to become a real profession with real standards and real consequences for failing to adhere to those standards. Just like anyone can write code, anyone can build and wire their own house, treat themselves for an injury, or represent themselves in court. But if you want to sell your services for doing these things you have to be licensed, and you are personally liable for any harm that comes from your work not being up to professional standards.

    13. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      Why do all the Men's Rights Advocates love to Suck Dick?

    14. Re:All software is full of bugs by Anonymous Coward · · Score: 0

      Just wait till all the plans to make future cars "connected" come to pass...

  5. But open source cures all that ails us, right? by Anonymous Coward · · Score: 1

    We can just edit the source, and compile new versions, that work properly?

    Seriously, a system is only as good as its process. And the open-source process is not necessarily any better, it can be, but it need not be.

    1. Re:But open source cures all that ails us, right? by tepples · · Score: 1

      No major video game publisher is going to let unaffiliated individuals see the game's source code.

  6. Code Academies by Fnord666 · · Score: 5, Insightful

    This is the sort of thing that you can expect when you put developers through a whirlwind coding course. They learn to use library after library without understanding the ramifications of their use. Need an ad network? Slap in a library. Need geolocation? Slap in a library. What you end up with are flashlight applications that want permission to read the low level system log. Then again, that's coding in the instant gratification world that we live and develop in today.

    --
    'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    1. Re:Code Academies by thegarbz · · Score: 2

      I wonder what the opposite would look like.

      Just imagine a world where you had no libraries and had to manually code everything. What would that world look like? No developers? No consistency for end users? Do you think security would be better when developers are forced to write more code?

      Somehow I don't think the libraries are necessarily the problem.

    2. Re:Code Academies by Anonymous Coward · · Score: 0

      This is the sort of thing that you can expect when you put developers through a whirlwind coding course.

      Do you know the internals of a simple "CreateThread" or even a "WriteFile" function call (both Kernel32) ? Below the level of what its supposed to do ofcourse

      Well, neither do I, and I pride myself in wanting to know those in-and-outs.

      The reason is simply because there are too many of them to get to know intimatily. And thats apart from the problem that they can change between the versions of the/an OS.

      Yes, I think that there are people that will just add a library because a small part of it will, according to the specs of that lib, do what they want.

      But how are those people different from the accomplished C(whatever) programmers which do not see a problem to use a 'printf' where a 'puts' would suffice ?

      Besides, any compiler worth its salt should be able to only include the parts it actually needs (remove as much "dead" code as possible). If that can't be done, who is to blame ? The programmer using the library, or the person who created it ?

      Granted, there will be a number of programmers who could care less about violating the users wishes, and will add whatever code (advertisments, datamining and even downright malware) will gain them money the fastest.

      Than again, there are quite a few users which could care less if the programmer is payed for his efforts, and will easily "steal" software.

      The problem is that the good ones among both groups have to suffer because of a few (i hope) bad apples.

      Captcha: lynched - How oddly fitting.

    3. Re:Code Academies by Anonymous Coward · · Score: 0

      Well. Did I read wrong? He didnt accuse libraries to be the problem.

      > They learn to use library after library without understanding the ramifications of their use

      Developers are the problem :-) Those cheap fly by night ones that know how to use libraries... only

    4. Re:Code Academies by swb · · Score: 1

      I'd guess it would look like the Apple ][ or the very early days of the IBM PC and there would be just less functionality.

    5. Re:Code Academies by gbjbaanb · · Score: 1

      you'd have a vast library of libraries. Something like CPAN or something you'd get in the C world. Libraries written to perform some task and nothing more. Then documented with care and the API published.

      Anyone wants to do something, they take the library that appeals to them and adds it to their program and build up a program from these bits.

      Now the problem today is that a) some only use libs that come with the OS or language framework, b) the libraries that are out there are shit, written quickly and for a bit of a mishmash of scenarios.

      For example, you can get an XML parser and it will work perfectly. It will only parse XML though, but then, that's what only what you want from a XML parser library! .... well, except it also comes with network routines and specialised SOAP parsing and a suite of http helper methods, including a web services subsystem :-(

      So the problem is not so much that we have libraries, but that the libraries we have are not good enough as library code.

    6. Re:Code Academies by Anonymous Coward · · Score: 0

      Just imagine a world where you had no libraries

      you'd have a vast library of libraries

      "More, smaller libraries" != "no libraries"

      Your solution presents two problems. Either developers will get lost in the myriad of options or someone decides to combine a few of your "well documented libraries" into a single library to "simplify" things.
      Oblig xkcd

  7. Let's see the list of spyware by Animats · · Score: 4, Interesting

    Let's see this list of spyware. Will Google kick them out of the Android store? Will the FBI prosecute the developers for "exceeding authorized access" under the Computer Fraud and Abuse Act? If not, why not?

    1. Re:Let's see the list of spyware by tlhIngan · · Score: 1

      Let's see this list of spyware. Will Google kick them out of the Android store? Will the FBI prosecute the developers for "exceeding authorized access" under the Computer Fraud and Abuse Act? If not, why not?

      Easy, the summary says they analyzed the top 50 downloaded apps. So your list of spyware will be those.

      As for Google, well, Google owns online marketing advertising market, so those apps really are helping Google in the end...

    2. Re:Let's see the list of spyware by GuB-42 · · Score: 1

      As for Google, well, Google owns online marketing advertising market, so those apps really are helping Google in the end...

      Only if they use Google's spyware.

  8. What did you expect would happen by Anonymous Coward · · Score: 1

    When the user has zero control over what is running on their device and what is communicated by their device, things like this will happen over and over again.

    1. Re:What did you expect would happen by Desler · · Score: 1

      These are apps people have to choose to install and run. How do they have zero control when they chose to install them?

    2. Re:What did you expect would happen by Anonymous Coward · · Score: 0

      The only reason that comes to mind why someone might not want users to have fine control over their running apps is if they benefit criminally or otherwise maliciously from the user's lack of control.

    3. Re:What did you expect would happen by Anonymous Coward · · Score: 0

      This! Or it's just cheaper and easier.

    4. Re:What did you expect would happen by Anonymous Coward · · Score: 0

      How do they have zero control when they chose to install them?

      Maybe you should learn to read in context before you open your mouth ?

      Yes, a user has the choice to download and install software. And that is than exactly the only choice he has. He also has to make that choice based on information that is given to him by the writer/seller of that software.

      Which is often less-than-honest. like "forgets" to mention all kinds of implicit contracts with third-parties, which than can range from in-game advertisement to "just" datamining of the phone the game is running on.

      All other choices, of which there are many, are out of the hands of that user.

  9. Games are underspecified by tepples · · Score: 4, Informative

    Why does anyone install an app on Android that didn't come from F-Droid?

    I can think of two reasons. One is that someone might be using a hand me down Android device from the first year that AT&T sold Android phones, and these devices support only Google Play Store, not Unknown sources. But though I have a cousin whom this affects, I imagine few others are still on a Galaxy S 1 Captivate. A more common reason to use non-free Android apps is that free software has shown itself to be poor at producing compelling original video games. Free software works when there's a clear spec, which is true of libraries and productivity apps. But apart from maybe roguelikes, games are less specified up front unless it's a clone of an existing game, such as Aisleriot, Frozen Bubble, or StepMania. A non-free game's developer can afford to put more time into creating both the spec and the implementation.

    1. Re:Games are underspecified by Anonymous Coward · · Score: 1

      compelling original video games

      So you're talking about Candy Crush, right?

    2. Re:Games are underspecified by johanw · · Score: 1

      Another reason: I want to be able to reinstall everything manually so I keep installers. No need to hassle around with stores or repositories when you can have apk's.

    3. Re:Games are underspecified by sumdumass · · Score: 4, Interesting

      I can think of a third. I had no idea fdoid existed until reading these posts. Outside of rooting my phone ans removing a bunch of garbage, i never really looked for more than a few apps and i wont update those due to expanded permisions i find too intrusive.

      That being said, now that i know, i will likely use it when i change phones again in about 2 weeks.

    4. Re:Games are underspecified by Anonymous Coward · · Score: 0

      F-Droid lets you download apks. That's the way I've always done it.

  10. Type system helps find bugs early by tepples · · Score: 1

    Our add features to a language that help the programmer prove that certain defects are not present. Bounds checked arrays are a big one compared to plain C, but others exist. Rust, for example, has separate types for "pointer that can never be null" and "pointer allowed to be null", and it is a compile-time error to pass the latter to a function expecting the former outside of a construction that means essentially "if null then do X else do Y".

    Or research methods of containing the damage that a defect can do. Android, with its overly broad permissions, has tended to fall at this.

    1. Re:Type system helps find bugs early by Anonymous Coward · · Score: 1

      Until the saviour rust browser engine descends from heaven to rule the earth we have to live with the sign of the gecko beast on our forehead. Before servo delivers us from the zeroth day on the last day, a huge fox with fire will be cast into the hdd: and the third part of the hdd shall become blood; And the third part of the tabs which were on the gecko, and had life, died; and many processes will die of the memory, because the memory will be have been made bitter.

      From The Book of Mozilla, the word of LORD.

    2. Re:Type system helps find bugs early by Anonymous Coward · · Score: 0

      Our add features to a language that help the programmer prove that certain defects are not present. Bounds checked arrays are a big one compared to plain C

      Bounds checking in C has been a standardized extension since 2007. (ISO/IEC TR 24731)
      It is briefly covered in "Annex K (normative) Bounds-checking interfaces" of the ISO-C standard.
      If the implementation you use has _ _STDC_LIB_EXT1_ _ set it supports it. If you need to show that the program does bounds checking then use it.

      If you want t go the extra step to ensure that your code works as intended you can always write it to be MISRA C compliant or whatever guidelines you think are needed. Then you have multiple tools that validates your code while you still get the performance benefit of C.
      On that matter, how many of the "safe" languages are actually certifiable for human safety relevant implementations?

  11. Except Id by tepples · · Score: 1

    Correction: I meant within the first few years. A few PC game developers such as Id release source code a couple engine generations back.

    1. Re:Except Id by buckfeta2014 · · Score: 0

      When was the last time that iD has made a game that was relevant? The last one that comes to mind is RTCW: Enemy Territory.

      --
      Buck Feta. You know what to do.
  12. Good job editors by Anonymous Coward · · Score: 0

    What a perfect segue from the previous article..

  13. Ignorance is bliss by WaffleMonster · · Score: 2, Insightful

    TFA is being much nicer than Google and many app vendors deserve.

    The whole ecosystem system is engineered to reward bad behavior /w complete lack of usable access controls speaking for itself.

    They need only do the minimum required to keep all hell from breaking loose and too many people bailing on the platform as a result.

  14. User control of apps post-install by Anonymous Coward · · Score: 0

    The parent was referring to user control of what apps are allowed to do after they are installed.

    You know, just like users have control over applications on all their other computer machinery post-install, either through changing filestore permissions, or firewall rules, or using jails or containers of one kind or another --- normal practice for anyone who values their privacy and security. It's only Android that disallows this among Linux-based systems.

    1. Re:User control of apps post-install by Anonymous Coward · · Score: 0

      This level of control is available if you have root on your Android device. If not, well, just try setting iptables rules without superuser rights on Linux, then tell us again how all this is such a stark contrast.

    2. Re:User control of apps post-install by tepples · · Score: 1

      This level of control is available if you have root on your Android device. If not, well, just try setting iptables rules without superuser rights on Linux

      The difference is that unlike the owner of a newly purchased Android device, the owner of a newly purchased GNU/Linux device has root.

    3. Re:User control of apps post-install by Anonymous Coward · · Score: 0

      And if obtaining root access trivially is important to an Android user, they will choose their device accordingly. Nexus devices don't require some exploit to be found to achieve root... it's a very straightforward process.

      Brand new Ubuntu users have to get used to using sudo. Brand new Nexus users have to follow cookbook instructions to get root. Takes less than 10 minutes, once.

      You can buy Linux devices setup as kiosks that lock the user out of root. You can buy Android devices that disallow unlocking the bootloader. Neither one is a good choice for a power user.

  15. trivial! by martin-boundary · · Score: 1
    That's trivial. It's like saying, there are only two numbers, "zero" and "many". It simply isn't true that all languages and all platforms are full of bugs in any meaningful sense. Some platforms are more buggy than others. This is a function of how old the platform is, how serious the creators are about preventing bugs, etc. That's meaningful.

    For example, the well known OpenBSD aims to be much more secure than other OSes. The well known Windows family doesn't care about security, only as an afterthought. The difference is striking and very well known.

    A good way to estimate which systems are likely to have fewer bugs is to understand the motivation of the application developers and of the OS creators. For example, if your focus is advertising, then you have a natural blind spot where advertising bugs are ignored. If your focus is doing "easy to use" software, then you have a blind spot where security practices are compromised in favour of GUI issues.

  16. Load of ignorant crap by janoc · · Score: 5, Insightful

    The entire article is harping on 3rd-party ad network libraries stealing personal data and phoning tracking info home. As these are libraries and developers are re-using open source libraries, then it follows that "Open source is no free lunch" and is stealing your data. What a majestic leap in logic!

    They conflate open source libraries with various ad-network code stealing personal data, basically trying to portrait open source code as being responsible for it. Never mind that the ad-network code is almost never open source.

    Granted, OSS is certainly not bug-free, but the spyware has little to do with it.

    What a load of ...

  17. "Free" mentality by drolli · · Score: 1

    yeah. as long as the custoemers dont even care about any security, but about a shiny interface and are not willing to pay, focusing on the interface and not on the security of the app seems like a reasonable economic decision to me.

  18. Today: Researchers Blame Recycling of Code by Tanuki64 · · Score: 2

    Tomorrow: Researchers Blame "Not invented here" mentality.

    Instead of using tested standard libs, developers constantly reinvent the wheel.

    1. Re:Today: Researchers Blame Recycling of Code by Anonymous Coward · · Score: 0

      I think reinventing the wheel can be a great thing. There are tons of ugly libraries with inefficient mechanisms. Sometime's it's better to write from scratch (using standard libraries or assembly if you want to take a while).

  19. The choice by Geeky · · Score: 1

    The choice seems to be between the flexibility of Android vs. the (arguably?) better security on iOS.

    I'd like to be able to install Android apps without having to accept all of the permissions they require, but without rooting my phone that's impossible. As a result, there are many apps I just won't install (it took me ages to find a torch app that didn't need anything beyond access to the camera, for example).

    On the other hand, I love widgets - quick access to information and actions from the desktop is really useful and the iOS 8 version doesn't look like it'll be as flexible.

    Ultimately though I'll be looking very closely at the iPhone 6 when it comes out because Android just won't address the concerns around security.

    --
    Sigs are so 1990s. No way would I be seen dead with one.
  20. I define restrict by tepples · · Score: 1

    I understand your fear of falling into a definition trap. I define restrict as A. refusing to make an API for reasonable uses of hardware features, such as no way for an app to see which SSIDs are nearby or no way for web apps to draw 3D scenes or upload data types other than photos and videos, or B. requiring a recurring fee or an organizational background check to run software that you compiled on a machine that you own.

  21. Not allowed to quote MISRA C rules by tepples · · Score: 1

    I would recommend MISRA C, but it's impossible to make a conformance checker under a free software license because quoting the rules in error messages appears to require an incompatible copyright license. Source: presence of the word "prices" in the section "I am a tool vendor" in the official FAQ.

  22. How has slashdot come to this? by lippydude · · Score: 1

    Who's paying these researchers at Codenomicon to research Android vulnerabilities? Howard A. Schmidt, Chairman of the Board at Codenomicon.

    Some people might have been providing a vulnerability on purpose in order to do something nasty .. Who are they working with? Do they have sideline jobs somewhere else? The developers might be getting their dollars from ad networks"

    Is this what slashdot has been reduced to, regurgitating anti Open Source FUD on behalf of a most probably a false-front for the MICROS~1 organization?

    1. Re:How has slashdot come to this? by Jeremy+Allison+-+Sam · · Score: 1

      Utter crap. Codenomicon are very friendly to FLOSS and FLOSS developers. They're also great guys. They have been providing free test services to the Samba project for many years now, and have helped us fix many many bugs.

      In case you hadn't noticed, the code they're reporting on here is closed source proprietary code...

  23. Headline first, results later by Anonymous Coward · · Score: 0

    I'd be more impressed if these people let their findings speak for themselves. Grabbing headlines first, saying the results will be out later, suggests that the results will be picked apart later and there won't be much to them. But these people will have grabbed their headlines already, and no one reads detailed analysis of old results that made headlines earlier in the week.

    If the results are meaningful, let them speak for themselves.

  24. Recycling Code? by Murdoch5 · · Score: 1

    Why on earth would you recycle code, that is rookie programming error 101. Every program you write needs to use a fresh and clean set of functions and structures, because how else can you get everything to fit together perfectly.

  25. "HALF" by Anonymous Coward · · Score: 0

    They found issues with at least Half of them. If they hadn't been re-using code, they'd (eventaully) be finding issues with ALL of them!

  26. Patent still requires novelty by tepples · · Score: 1

    You're correct, as far as I can tell. First to file changes only how conflicts are resolved when two patent applications pending at the same time claim the same invention. It does not remove the novelty requirement, which means that an inventor is still not entitled to a patent if someone else publishes the invention before the inventor applies for a patent.

    So I have two guesses as to how the Windows CE thing came about. Either Fingerworks licensed the patent to Microsoft before Apple acquired Fingerworks, or Microsoft released Windows CE less than 18 months after Fingerworks applied for the patent.

  27. It's a disagreement in definition by tepples · · Score: 1

    It's like saying, there are only two numbers, "zero" and "many".

    Some people believe that either something is secure or it's not, just like a woman is pregnant or she's not, or a dish is vegan or it's not. But to head off an imminent definition debate, let me explain your core idea in terms they'll understand:

    Virtually all off-the-shelf software is insecure. People take out errors and omissions liability insurance ("E&O") to cover their behinds in case a vulnerability causes a noticeable problem. You may call software "more secure" if it has had its vulnerable surface reduced, and you may call software "acceptably secure" if it is more secure to the point where the cost of E&O doesn't eat up too much of your earnings.

  28. Warranty service by tepples · · Score: 1

    How is it so "malicious" to want to reduce the cost of warranty service when missing permissions break apps?

  29. Is anyone really that surprised? by Anonymous Coward · · Score: 0

    I say this after watching a friend working a project he called me into review an issue he was having. He was able to work out where the issue was the problem was he couldn't completely explain to me what the code was expected to do. He then explained that he decided to jump online to find some code that did what he wanted rather than writing it himself to not have to reinvent the wheel. With that being considering I am getting the feeling that many younger programmers who want to save time just look for something that works but don't completely understand what the code is doing.

    From my standpoint, unless you 100% understand what you are embedding into your program it shouldn't be there and if you can't explain the code you are using or writing you might be in the wrong field.

  30. phone firewall? by Anonymous Coward · · Score: 0

    Is anyone using a firewall? Can you trust it? Why?

  31. Today: Researchers Blame Recycling of Code by Anonymous Coward · · Score: 0

    Next week: A discussion on the false dichotomy, and other rhetorical fallacies.

  32. Obvious reasons are obvious by Anonymous Coward · · Score: 0

    Android is simultaneously extremely accessible, with practically no barrier to entry and few standards for publication, and extremely complex, making it difficult for even experienced developers (or perhaps especially for experienced developers) to write decent apps. The end result is a general lowering of customer expectations, which undermines developers' argument for doing things right as opposed to doing them now.

  33. Sandboxes by muridae · · Score: 1

    The article mentions sandbox tools that allow admins to test applications and see what the code and the libraries are really doing, but doesn't name any of them. Any /.ers know if there are FOSS or BSD tools of this sort? Or even cheap proprietary ones? I read the code for any library I use, and I try to add some assert() like statements where the lib dev might have felt them unneeded to be certain that nothing gets past memory boundaries. But everyone misses something now and then, and just look at the IOCCC to spot how code that looks like it does one thing can do something else.

    As someone who has written a few apps (none for sale, just local use) I feel like the article was taunting developers, "We know how to tell if you've been duped by your library code, and while we'll bash on developers who don't read the code they use, we won't help out those are writing in a new language and might get tricked by some language specification (or in C's case, unspecified compiler-dependent behavior). We'll even tell you that tools exist, but we won't name even one of them." Sure, I can spend all day trying to guess what type of sandbox tool I'm looking for, and install and test 30 or so of them, but that opens up the same can of worms of trusting code that I haven't read.

  34. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  35. On GNU/Linux, root is still the rule by tepples · · Score: 1

    And if obtaining root access trivially is important to an Android user, they will choose their device accordingly.

    So how does one who has been given a hand-me-down device, such as my cousin, go about that? Sell the device on Craigslist and buy another?

    Nexus devices don't require some exploit to be found to achieve root... it's a very straightforward process.

    Root on a Nexus requires unlocking the bootloader, which in turn requires wiping the device. This means you lose all your data if you want to gain root at any time other than the day you buy a new device.

    You can buy Linux devices setup as kiosks that lock the user out of root.

    The difference is still that GNU/Linux PC owners are expected to have root. All major distros either ask for a root password or put the first created user into a "wheel" group (which has sudo rights) during installation or the first boot. So there is root by default on the "typical" GNU/Linux PC. Reminding the machine's owner to establish and keep root access is the rule, not the exception as it is on Android. Besides, there are plenty of things that don't require root on GNU/Linux but do on Android, such as installing fonts to a single user account.

    1. Re:On GNU/Linux, root is still the rule by Anonymous Coward · · Score: 0

      So how does one who has been given a hand-me-down device, such as my cousin, go about that? Sell the device on Craigslist and buy another?

      By the time it's a hand-me-down device, it probably has a root exploit if not an official bootloader unlock. If not, then, sure, hit up Craigslist. If you don't like the Linux kiosk that locks you out of root (with no bypass available), then sell that on Craigslist and buy a more appropriate one, too.

      Root on a Nexus requires unlocking the bootloader, which in turn requires wiping the device. This means you lose all your data if you want to gain root at any time other than the day you buy a new device.

      Let's be honest here: most of the data can be backed up. You make it sound like you will irrevocably lose your pictures, etc, etc.

      The difference is still that GNU/Linux PC owners are expected to have root.

      Not on a kiosk, video game console, a TiVo, or any other "appliance". Manufacturers make these smartphones as appliances to keep typical users safer, Just like my grandma had a TV-based WebTV email kiosk for years... there is safety in simplicity, both in reducing the odds of misconfiguration as well as reducing attack surface.

      I prefer to have complete control of my device, and so I root/jailbreak. I am not a typical smartphone user.

  36. What kiosks? by tepples · · Score: 1

    Let's be honest here: most of the data can be backed up.

    I'm aware of that. Say I were to back up my first-generation Nexus 7 tablet through Android Debug Bridge (ADB). How would I verify the completeness of this backup?

    GNU/Linux PC owners are expected to have root.

    Not on a kiosk, video game console, a TiVo, or any other "appliance".

    Which such appliance is a "GNU/Linux PC"? Video game consoles do not run Linux (except for those few remaining fat PlayStation 3 consoles that haven't been upgraded past system software 3.20). TiVo DVRs run Linux but not GNU/Linux. You keep bringing up "kiosks"; to which kiosks are you referring?

    1. Re:What kiosks? by Anonymous Coward · · Score: 0

      You're moving the goalposts with this "No true Linux" thing.

      This is really simple: if you buy an appliance-type computing device (which I gave multiple examples of already, and smartphones are one), you don't get root by default. My TV runs Linux behind the scenes, has apps, and I don't get root on it either. You could consider it a kiosk, or you can google your own examples.

      Don't bother moving the goalposts again.

      You know the reason that unlocking the Nexus bootloader nukes the data, right? It's to keep the data safe for the masses of normal users who sell their device (or lose it) and don't want the next person to have access to all their data (or be able to do a drive-by rootkitting). The proof is simple: once the bootloader is unlocked you can repeatedly flash it without nuking the device. Agree with the rationale or not, it's not like this data wipe aspect exists as "penalty" for unlocking the bootloader.

      Encryption isn't a panacea, in case you've never witnessed the effects on perf on, say, a first-gen Nexus 7 like I have on mine. For now, the nuke on bootloader unlock is a reasonable security compromise.

  37. 7 Essential Things To Plan For A Mobile App Devel by etunescafe · · Score: 1

    Read more from Here

  38. What GNU appliance? by tepples · · Score: 1

    You're moving the goalposts with this "No true Linux" thing.

    I said GNU/Linux in #47550429 precisely to avoid "no true Linux".

    if you buy an appliance-type computing device (which I gave multiple examples of already,

    I must have missed where you named a make or model of appliance of using GNU/Linux, not a non-GNU userland on the Linux kernel. The point I was trying to get across in #47550429 was that GNU/Linux is less likely than other kinds of Linux-based operating system to come installed on an appliance locked down against its owner.

    and smartphones are one)

    As the GNU/Linux FAQ explains: "There are complete systems that contain Linux and not GNU; Android is an example. [...] What makes Android different from GNU/Linux is the absence of GNU." I think we're in violent agreement on the concept, just not on the terminology.