O que vou explicar aqui pode ser o óbvio ululante para muitos de meus leitores, mas às vezes eu preciso fazer esses posts para dar suporte a explicações mais elaboradas que serão dadas adiante.
Esqueça o firewall do Windows XP. É melhor do que nada, mas não é o suficiente. Esqueça também o firewall embutido em seu modem ADSL. Ele falha no mesmo quesito em que o firewall do XP.
O problema é que nenhum dos dois te protege de uma ameaça que se instalou em seu PC, pois, para simplificar a vida do usuário, o firewall (o do XP e o do modem) considera que qualquer conexão iniciada pelo seu PC é confiável, pois todas são benignas por default. Você é protegido das tentativas de conexão que se iniciam fora do seu computador, que são hostis por default. Essa configuração é lógica e baseada em simples estatística.
Você talvez já tenha se deparado com a pergunta do firewall do XP, sobre se você quer autorizar a aplicação "tal".

Essa pergunta apenas ocorre com aplicações que se instalam como "servidores", como o e-mule e outros programas de P2P. Um programa que tenha o papel exclusivo de "cliente" não chama a atenção do firewall do XP.
E ser "cliente" é tudo o que um malware qualquer precisa ser. É absolutamente desnecessário instalar um "servidor" em sua máquina para roubar suas senhas, por exemplo. Em outras palavras, um programa que rouba suas senhas só vai ser detectado pelo firewall do Windows XP ou barrado pelo firewall do seu modem se seu criador for um programador muito ruim.
Nota: O firewall do Windows Vista supostamente faz o serviço completo.
É importante que ao ler a palavra "servidor" você não tenha a compreensão errada. Essa palavra sempre lembra aplicações complexas, porque é geralmente associada a elas. Mas quando se trata de comunicação em rede, "servidor" é qualquer software que pode receber conexões que ele não iniciou. "cliente" é o software que inicia uma conexão. Muitos softwares, como as aplicações P2P, operam como clientes
e servidores ao mesmo tempo, mas muitos só precisam ter uma das duas funções, como um software de FTP qualquer é apenas cliente (é sempre você que inicia uma conexão com o servidor FTP e nunca o contrário).
Um malware tanto pode ser cliente, como servidor. Depende do que seu criador tinha em mente. Se tudo o que o malware quer é roubar suas senhas bancárias, ele só precisa ser cliente (e nunca vai ser notado pelo firewall do XP). Mas se o programador quer assumir o controle do seu PC ou usá-lo como proxy para repassar SPAM, ele precisa ser um servidor. E será detectado pelo firewall do XP
se (e é um "se" bem grande) o criador do malware não for esperto o suficiente para desligar silenciosamente o firewall do Windows XP ou até adicionar uma exceção para si. O que é perfeitamente possível se o usuário estiver logado como administrador na hora da invasão.
Mas quantos usuários domésticos de Windows usam o SO como Usuário Limitado? 5%?
A vantagem que um software completo de firewall como o
ZoneAlarm (ZA) proporciona é impedir que
qualquer processo que não esteja explicitamente autorizado possa acessar a internet como cliente ou agir como servidor. O ZA, por exemplo, avisa todas as vezes que um novo processo tenta abrir uma conexão e pergunta ao usuário o que fazer. As opções são quatro:
- Autorizar só desta vez (vai perguntar de novo na próxima);
- Bloquear só desta vez (vai perguntar de novo na próxima);
- Autorizar definitivamente;
- Bloquear definitivamente;
O problema para a maioria dos usuários é: tomar essa decisão não é tão simples quanto parece.
Um Power User Windows pode discernir, quando o firewall faz a pergunta, se o processo deveria mesmo estar querendo acessar a Intenet. E ainda assim com um certo grau de incerteza. Para complicar, alguns softwares firewall não dão informação suficiente, como é o caso do próprio ZA.
Já um usuário "comum" não vai saber que resposta dar ao firewall e tanto pode bloquear o que deveria permitir quanto permitir o que deveria bloquear. O firewall instalado na máquina de um usuário comum precisa ser configurado por um Power User, que vai dar permissão a todos os programas que esse usuário vai usar (jogos, IMs, browsers, etc) e depois bloquear todo o resto. Preferencialmente configurando para bloqueio automático com nenhuma pergunta sendo feita ao usuário. Mas aí nenhum software instalado pelo usuário posteriormente vai conseguir conversar com o mundo exterior.
Supondo que você tenha o conhecimento necessário para dar as respostas adequadas, um software firewall "decente" se torna tão indispensável quanto um anti-virus. Para quem não sabe dar as respostas mas precisa mais de segurança do que da conveniência de poder instalar qualquer software sozinho, também.