15

I always hear about backdoors and I understand the main purpose but I have some questions:

  • In what kind of software/web application/OS can I find them ?
  • How can I recognize one ?
  • How do I prevent them ?
  • Is the analogy good to compare them to have root access (in a Linux way) ?
  • Any more relevant information about them.
  • 5
    1. What research have you done? Where have you looked? We expect you to do a significant amount of research on your own before asking here, including searching here, via Google, on Wikipedia, and other standard sources. See security.stackexchange.com/help/how-to-ask. In this case there's lots of information on backdoors on Wikipedia: en.wikipedia.org/wiki/Backdoor_(computing). If your question is answered on Wikipedia, you probably haven't done enough research before asking. – D.W. Jun 10 '15 at 20:33
  • 4
    2. We also want you to be specific, and to ask only about real problems you actually face. Your question is quite broad -- probably too broad to be suitable for this site. I count 5 questions in your post. We usually want you to ask 1 question per question. 3. Preferably, questions on this site should display a minimum level of understanding, appropriate for a professional-level site. See meta.security.stackexchange.com/q/16/971 and meta.security.stackexchange.com/q/1772/971. – D.W. Jun 10 '15 at 20:39
  • 1
    How did this get 9 up votes? – Tim Jonas Jun 11 '15 at 13:33
38

In what kind of software/webapplication/OS can I found them ?

Literally anything.

How can I recognize one ?

By reverse engineering the software and carefully analysing it for flaws in authentication and access control, as well as issues with memory access in native applications. It's the same process by which you'd find any other vulnerability. This is not a trivial task, and entire books have been written on the subject.

If you're looking to know the difference between a generic security vulnerability and a backdoor, the difference is the intent of the programmer who put it there. You have to find evidence and use intuition to identify if it was purposeful or not. Usually this is not a yes/no answer.

How do I prevent them ?

You basically can't. You just have to expect software to be broken and have a plan to (a) keep things up to date, and (b) deal with it should there be a breach. It's not about if, it's about when.

Is the analogy good to compare them to have root access (in a Linux way) ?

Not exactly. A backdoor is anything that provides a lesser-authorised user to gain access to something they shouldn't. The backdoor might allow full access to an unauthenticated user, or it might allow some limited access to an unauthenticated user, or it might allow an authenticated low-privilege user to gain access to something at a higher privilege level.

Any more relevent informations about them.

There isn't much, really. Backdoors are just intentional faults put into code to give someone access outside of the normal security model.

  • How sly can they be? underhanded.xcott.com – Jeff Ferland Jun 10 '15 at 20:32
  • Although you can't prevent back doors, you can minimise the impact by applying least privilege and containerisation. – paj28 Jun 11 '15 at 7:46
  • You would not build a castle without one, or more (for redundancy). The trick is keeping them a secret. – mckenzm Feb 18 '16 at 6:37
12

Backdoors are part of the software itself. They are placed in the source code (or hardware) from the start. It allows the original coder some sort of access through their software or hardware. With that in mind:

  1. In what kind of software/webapplication/OS can I found them?

Due to the nature of backdoors there is no kind of software that specifically has backdoors. They can be in any piece of software or hardware on any platform.

  1. How can I recognize one?

If you suspect that a piece of hardware or software has a backdoor you'll need to analyze it. Reverse engineer the binary to find the anomaly. This can be time consuming. A lot of the techniques talked about in this question and answer apply to analyzing a piece of software.

  1. How do I prevent them?

Backdoors are deliberately inserted into computer systems by the originator. There is no prevention. If you find a backdoor it might be possible to patch it yourself. However, with the increased amount of code signed binaries this might be prove to become more difficult.

  1. Is the analogy good to compare them to have root access (in a Linux way)?

While backdoors can give root access it's not really an analogy. A better analogy would be asking a locksmith to install locks in your home, and while he's there he installs a special lock that while it opens with the key he gave you it also opens with a key he has.

  1. Any more relevent informations about them.

The important thing to remember about backdoors is that they are deliberate. They aren't bugs in the code. The developer/designer placed a vulnerability within the system on purpose. Some backdoors can be easy to spot. For example, you buy a router and you notice that there is an extra admin account that you didn't create. Others might require specific exploitation of a software vulnerability to leverage it. They come in all shapes and sizes (just like other vulnerabilities).

An Example of a Backdoor in an Open Source Project
Web Backdoor Example

  • Backdoors are not always a part of a software. They can be a separate entity too. For eg: Netcat can be used as a backdoor too. – ρss Jun 10 '15 at 11:46
  • Thanks. Could you give me an example of how a backdoor is coded (in any language language-like you want) ? – Kruncho Jun 10 '15 at 11:47
  • 3
    @pss With respect to backdoors there is always a portion of code that was deliberately inserted into a system. If you use another piece of software to take advantage of it, that piece of software isn't the backdoor. It's just used to access the backdoor. – RoraΖ Jun 10 '15 at 11:55
  • @Kruncho Take a look at An Example of a Backdoor in an Open Source Project – RoraΖ Jun 10 '15 at 11:56
  • @Kruncho Also take a look at this link for a web app example. – RoraΖ Jun 10 '15 at 12:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.