The_Absolute said:
I am not a computer hacker, and have absolutely no idea how to do so. I was wondering just how mathematically mind-boggling that computer hacking is. Don't you have to make extremely complex and fast mental calculations and type in thousands of odd numbers at some kind of prompt? Do you have to be a mathematical genius to understand the basic principles of hacking? Such as someone who has the intelligence and mental quickness almost instantly square-root extremely large-digit numbers (mentally) dozens of times per minute? Does it also take a vast knowledge of electronic engineering to perform? I don't know much about hacking, and have no interest in doing it to anyone. I just know that I get "there has been a recent attack on your computer" icon popup in the bottom right-hand corner of my desktop every half-hour or so. I don't know who is doing it, or why. I do not have any online enemies (that I know of) and I know that it is a "malicious toolkit" that comes from an "FTP".
Every time my computer gets hacked, it costs about $200 minimum to take it to the PC repair shop and get it fixed.
The people that develop the tools from their C/C++ dev-kit are the ones that are able to effectively get into your PC almost any of the time.
The other ones (the ones that Greg mentioned) are just using everyday tools to get into your account.
Having had programming experience I can tell you a few things about how programs work and how you can avoid more nasty surprises.
Basically (in a very big nutshell) this is how the internet works:
You have an address on a very large network. On your address you have a list of ports. Through these ports you can basically talk to other computers via what is known as a protocol. Typically the protocols in use are TCP/IP and UDP (the major ones you will use). I won't discuss things like ATM or some of the other ones because I don't think they will apply to your case.
Essentially what happens is pretty simple. At some level in the protocol (the set of rules in which the information is sent/received and processed from other computers and yourself), there will be varying levels of accepting and rejecting data based on the hardware (ie your network card and modem), the operating system (ie windows) and the application you are using (ie ftp, email, computer game etc).
Based on the configuration of these three things, you effectively control what can happen.
Now the hardware is usually standardized and you get options to do certain things in what is called your driver. If you use something like linux then you can probably modify things but we won't get into this. Basically in most cases you don't want to modify what happens in this level. You might set up things like port-forwarding or something in your router settings for particular programs and some fancy firewall rules (i'll go into this later) but apart from that you should use your operating system to set the restrictions.
Now the operating system manages all packets incoming and outgoing on your computer. It will add them to a protocols stack and the application that is receiving them on a particular port will basically be sent the information and it decides what to do with it.
Here you have a few options:
1. Get a firewall and basically block anything that you don't trust or don't know about.
This happens at the Operating System level. What happens is that a firewall program creates a hook into the OS and basically allows you to accept or deny ANY packet that comes in or goes out.
This is what you most likely want to do. What will happen is that the firewall will start out by asking you what to block and what to accept. You will block what you don't know and accept what you do know.
Now what this means for you is that you will have some coarse level control on your computer. It means that if someone is trying to send you a packet to hack into your computer (possibly something through services host) then you can see that a packet is coming from a specified address and is trying to get directed to that service. You can simply deny it and they won't get access. Simple.
Well the problem with that is that some windows services actually need packets and others don't. In this case you block certain address ranges. For the most part problem solved.
The other part is left to the application. Basically the rule of thumb is Murphy's law here: if it can happen it probably has and will happen again. If an application has the potential to launch "user" code on your account then basically don't trust it.
If something is trying to install itself on your computer don't let it. Most firewalls will also hook the ShellExecute and other executable running addresses so use this feature. If something shoddy looking comes up that you don't know about the answer is simple: don't run it because its probably suss.
Depending on the application you will get to know the capabilities of the protocol by reading the help menu and finding out what the application can and can't do. The more minimal the application the better because it means you can understand and better trust what's going on. If you have a simple FTP client for example, it can probably send files, get files, do some minimal messaging and not much else. It's simple and it's more likely that you can trust any communication using that program than using something more complicated like the windows services host.
2. Create your own applications and be sure that no-one can use backdoors
This is what groups of people work on and it takes a long time to become experienced in this so I think i'll let this one slide ;)
3. Use more secure operating systems/programs
Some operating systems expose more decision making capabilities to the user which means that you as a user can set things to happen or rather not happen. Like 2 this will demand
more experience. It's usually what system admins do for large coorporations: they use
very customizable environments and configure every last thing they can so that only what
they know will get through. Beware though as this is not an easy thing and sometimes the
most complicated configurations can let something slip through.
The above is usually the typical cat and mouse between hackers and sysop's.
Typically you will want to use number 1. A good firewall program that I have used is Kerio Personal Firewall. The one from Norton is good as well. You should definitely google for firewalls and evaluate a lot of them for what they do and don't do.
I hope that you can make sense of this and at least use it as a stepping stone to better secure your PC instead of paying some guy 100 bucks each time to do it for you :)
Matthew