Este é o comando spamoracle que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
spamoracle - uma ferramenta de classificação de spam
SINOPSE
spamoracle [-config conf] [-f banco de dados] marca [ caixa de correio ... ]
spamoracle [-config conf] [-f banco de dados] adicionar [-v] -Spam caixa de spam ... -Boa caixa de presente ...
spamoracle [-config conf] [-f banco de dados] teste [- min prov] [-máximo prov] [ caixa de correio ... ]
spamoracle [-config conf] [-f banco de dados] estado [ caixa de correio ... ]
spamoracle [-config conf] [-f banco de dados] Lista regexp ...
spamoracle [-config conf] [-f banco de dados] backup > arquivo de backup
spamoracle [-config conf] [-f banco de dados] restaurar < arquivo de backup
spamoracle [-config conf] [-f banco de dados] palavras [ caixa de correio ... ]
DESCRIÇÃO
SpamOracle é uma ferramenta para ajudar a detectar e filtrar "spam" (e-mails comerciais não solicitados
correspondência). Procede-se por análise estatística das palavras que aparecem no e-mail,
comparando as frequências de palavras com aquelas encontradas em um corpus fornecido pelo usuário de conhecidos
spam e e-mail legítimo conhecido. O algoritmo de classificação é baseado em Bayes '
fórmula, e é descrito no artigo de Paul Graham, A plano for Spam,
http://www.paulgraham.com/spam.html.
Este programa foi desenvolvido para funcionar em conjunto com procmail(1). O resultado do
a análise é produzida como um cabeçalho de mensagem adicional Spam X: seguido sim, não or desconhecido,
além de detalhes adicionais. Uma regra procmail pode então testar isso Spam X: cabeçalho e entrega
o e-mail para a caixa de correio apropriada.
Além disso, SpamOracle também analisa anexos MIME, extraindo informações relevantes
como tipo MIME, codificação de caracteres e nome de arquivo anexado, e resumindo-os em um
adicional Anexos X: cabeçalho. Isso permite que o procmail rejeite facilmente e-mails
contendo anexos suspeitos, por exemplo, executáveis do Windows que geralmente indicam um vírus.
REQUISITOS E LIMITAÇÕES
Para usar o SpamOracle, seu e-mail deve ser entregue em uma máquina Unix na qual você tenha um shell
conta. Esta máquina deve ter procmail(1) (ver http://www.procmail.org/) instalado.
investimentos ~ / .forward arquivo deve ser configurado para executar todos os e-mails recebidos através procmail(1). Se
seu servidor de e-mail suporta os protocolos POP ou IMAP, você também pode usar buscar correio(1) para
busque seu e-mail do servidor e entregue em sua máquina local.
Para fornecer o corpus de mensagens com as quais o SpamOracle "aprende", um arquivo de cerca de 1000
de seus e-mails é necessário. O arquivo deve ser manual ou semi-automaticamente dividido em
spams conhecidos e mensagens boas conhecidas. Mensagens mal classificadas no corpus (por exemplo, spams
armazenado por engano entre as boas mensagens) diminuirá a eficiência do
classificação. O arquivo deve estar no formato de caixa de correio Unix ou em "uma mensagem por arquivo"
formato (a la MH). Outros formatos, como Emacs 'Babyl, não são suportados.
A noção de "palavra" usada pelo SpamOracle é voltada para os idiomas da Europa Ocidental,
ou seja, os conjuntos de caracteres ISO Latin-1 e Latin-9. Suporte preliminar para codificação JIS
Japonês pode ser selecionado em tempo de compilação. SpamOracle não funcionará bem se você receber
muitos e-mails legítimos escritos em outros conjuntos de caracteres, como conjuntos em chinês ou coreano.
INICIALIZAÇÃO
Para construir o banco de dados de frequências de palavras do corpus, faça:
rm ~ / .spamoracle.db
spamoracle adicionar -v -Boa bons e-mails -Spam e-mails de spam
Por padrão, o banco de dados é armazenado no arquivo .spamoracle.db em seu diretório inicial.
Isso pode ser substituído com o -f opção: spamoracle -f minha base de dados adicionar ... A -v opção
imprime informações de progresso durante o processamento do corpus.
Isso pressupõe que as mensagens boas e não spam do corpus estão armazenadas no arquivo
bons e-mails, e as mensagens de spam conhecidas no arquivo e-mails de spam. Você também pode buscar corpus
mensagens de vários arquivos e / ou processá-los por meio de várias invocações do SpamOracle:
spamoracle adicionar -Boa mensagens de boas-vindas1 ... mensagens de boas N
spamoracle adicionar -Spam e-mails de spam1 ... e-mails de spamP
TESTE A DATABASE
Para verificar se o banco de dados foi construído corretamente e familiarizar-se com o
análise estatística realizada pelo SpamOracle, invoque o modo de "teste" nas caixas de correio que
você acabou de usar para construir o corpus:
spamoracle teste bons e-mails | mais
spamoracle teste e-mails de spam | mais
Para cada mensagem nas caixas de correio fornecidas, você verá um resumo como este:
Desde: BBO <midhack@ureach.com>
Assunto: Verifique Este
Ponto: 1.00 -- 15
detalhes: refid: 98 $$$$: 98 surf: 98 asp: 95 clique: 93 cabo: 92
instantaneamente: 90 https: 88 internet: 87 www: 86 U4: 85 não é: 14 mês: 81
com: 75 surf: 75
anexos: cset = "GB2312" type = "aplicativo / fluxo de octeto"
name = "Guangwen4.zip"
arquivo: caixa de entrada / 314
As primeiras duas linhas são apenas Desde: e Assunto: campos da mensagem original.
A Ponto: linha resume o resultado da análise. O primeiro número (entre 0.0 e
1.0) é a probabilidade de que a mensagem seja realmente spam --- ou, equivalentemente, o grau
de semelhança da mensagem com as mensagens de spam do corpus. O segundo número (um
número inteiro entre 0 e 15) é o número de palavras "interessantes" encontradas na mensagem.
Palavras "interessantes" são aquelas que ocorrem pelo menos 5 vezes no corpus. No exemplo,
temos 15 palavras interessantes (o máximo) e uma pontuação de 1.00, indicando um spam com
alta certeza.
A detalhes: linha fornece uma explicação da pontuação. Ele lista os 15 mais interessantes
palavras encontradas na mensagem, ou seja, as 15 palavras interessantes cuja probabilidade de
denotar um spam está mais longe do neutro 0.5. Cada palavra é dada com seu
pontuação individual, escrita como uma porcentagem (entre 01 e 99) ao invés de uma probabilidade
para economizar espaço. Aqui, vemos uma série de palavras muito "spammish", como $ $ $ $ or
clique, com probabilidade de 0.98 e 0.93 respectivamente, e algumas palavras "inocentes", como
não é (probabilidade 0.14). o U4 palavra com probabilidade de 0.85 é na verdade uma pseudopalavra
representando uma palavra de 4 letras em maiúsculas - algo de que os spammers gostam.
A anexos: linha resume algumas informações sobre anexos MIME para esta mensagem.
Aqui, temos um anexo do tipo aplicação / fluxo de octeto, nome do arquivo Guangwen4.zip,
e conjunto de caracteres GB2312 (uma codificação para chinês).
A arquivo: linha mostra o arquivo que está sendo testado.
Normalmente, ao correr spamoracle teste bons e-mails, a maioria das mensagens deve sair com baixa
pontuação (0.2 ou menos), e durante a execução spamoracle teste e-mails de spam, a maioria das mensagens deve vir
com uma pontuação alta (0.8 ou mais). Se não, seu corpus não é muito bom, ou não está bem
classificados em spam e não spam. Para ver rapidamente os outliers, você pode reduzir o
intervalo de pontuações para o qual os resumos de mensagens são exibidos, conforme a seguir:
spamoracle teste - min 0.2 bons e-mails | mais
# Shows só Bom estado, com sinais de uso mails com Ponto >= 0.2
spamoracle teste -máximo 0.8 e-mails de spam | mais
# Shows só Spam mails com Ponto <= 0.8
Agora, para um teste mais desafiador, pegue uma caixa de correio que contenha e-mails não filtrados, ou seja, um
mistura de spam e e-mails legítimos e execute-o através do SpamOracle:
spamoracle teste minha caixa de correio | menos
Maravilhe-se com o quão bem o oráculo reconhece spam dos demais! Se o resultado não for esse
maravilhoso para você, tenha em mente que certos spams são curtos demais para serem reconhecidos (não
suficientes palavras significativas). Além disso, talvez seu corpus seja muito pequeno ou não esteja bem
categorizado ...
MARCAÇÃO E FILTRAGEM ENTRADA E-MAIL
Uma vez que o banco de dados é construído, você está pronto para enviar e-mails recebidos por meio do SpamOracle. o
comando spamoracle marca lê um e-mail a partir da entrada padrão e o copia para o padrão
saída, com dois cabeçalhos inseridos: Spam X: e Anexos X:. O Spam X: cabeçalho tem um
os seguintes formatos:
Spam X: sim; Ponto; detalhes
or
Spam X: não; Ponto; detalhes
or
Spam X: desconhecido; Ponto; detalhes
A Ponto e detalhes são como descritos para spamoracle teste.
A sim/não/desconhecido tag sintetiza os resultados da análise: sim significa que a pontuação
é> = 0.8 e foram encontradas pelo menos 5 palavras interessantes; não significa que a pontuação é <= 0.2
e pelo menos 5 palavras interessantes foram encontradas; desconhecido é retornado caso contrário. o desconhecido
caso geralmente ocorre para mensagens muito curtas, onde palavras interessantes não foram suficientes
encontrado.
A Anexos X: cabeçalho contém as mesmas informações que o anexos: saída de
spamoracle teste, ou seja, um resumo dos anexos da mensagem.
Para processar automaticamente o seu e-mail recebido através do SpamOracle e agir de acordo com os resultados
da análise, basta inserir as seguintes "receitas" no arquivo ~ / .procmailrc:
: 0fw
| / usr / local / bin / spamoracle marca
:0
* ^ X-Spam: sim;
caixa de spam
O que esses comandos enigmáticos significam é:
- Execute todos os e-mails por meio do spamoracle marca comando. (Se o spamoracle não foi instalado em
/ usr / local / bin, ajuste o caminho conforme necessário.) Isso adiciona dois cabeçalhos à mensagem: X-
Spam: e Anexos X:, descrevendo os resultados da análise de spam e o anexo
análise.
- Se tivermos um Spam X: sim cabeçalho, entrega a mensagem ao arquivo caixa de spam em vez de
sua caixa de correio normal. Provavelmente, você vai ler caixa de spam de vez em quando, mas com menos frequência
do que sua caixa de correio normal. Usuários ousados podem colocar / dev / null em vez de caixa de spam para apenas
jogue fora a mensagem, mas por favor não faça isso antes de usar o SpamOracle por um tempo
e estão felizes com os resultados. Taxa de falsos positivos do SpamOracle (ou seja, e-mails legítimos
classificado como spam) é baixo (0.1%), mas não é nulo. Então, é melhor salvar os presumíveis spams
em algum lugar e analise-os rapidamente de vez em quando.
Se você gostaria de desfrutar de um pouco de filtragem baseada em anexo, aqui estão algumas regras do procmail
por isso:
:0
* ^ X-Attachments:. * Name = ". * \. (Pif | scr | exe | bat | com)"
caixa de spam
:0
* ^ X-Anexos:. * Type = "audio / (x-wav | x-midi)
caixa de spam
:0
* ^ (Tipo de conteúdo:. * | Anexos X:. * Cset = "| ^ Assunto:. * = \?) (Ks_c | gb2312 | iso-2 | euc- | big5 | windows-1251)
caixa de spam
A primeira regra trata como spam todo e-mail que contém um executável do Windows como anexo.
Esses e-mails são normalmente enviados por vírus. A segunda regra faz o mesmo com os anexos
do tipo x-wav ou x-midi. Eu normalmente nunca recebo músicas por e-mail, porém algumas
Os vírus de e-mail parecem gostar desses tipos de anexo. A terceira regra trata como spam todos os
correio que usa codificações de caracteres correspondentes a coreano, chinês, japonês e
Cirílico.
ATUALIZANDO A DATABASE
A qualquer momento, você pode adicionar mais spams conhecidos ou mensagens legítimas conhecidas ao banco de dados
usando o spamoracle adicionar comando.
Por exemplo, se você encontrar uma mensagem de spam que não foi classificada como tal, execute-a
spamoracle adicionar -Spam, para que SpamOracle possa aprender com seu erro. (Sem adicionais
argumentos, este comando irá ler uma única mensagem da entrada padrão e gravá-la como
spam.) Abaixo vira-lata(1) por exemplo, apenas destaque a mensagem de spam e digite
| spamoracle adicionar -Spam
Da mesma forma, se você encontrar uma mensagem legítima ao verificar sua caixa de spam, execute-a
spamoracle adicionar -Boa.
Outra opção é coletar mais spams conhecidos ou mais mensagens boas conhecidas na caixa de correio
arquivos, e de vez em quando spamoracle adicionar -Boa novos_bons_mails or spamoracle adicionar -Spam
novos_spam_mails.
CONSULTA A DATABASE
Para sua edificação e entretenimento, o conteúdo do banco de dados pode ser consultado por
expressões regulares. o spamoracle Lista regexp comando lista todas as palavras no banco de dados
que jogada regexp (uma expressão regular de estilo Emacs), junto com seu número de
ocorrências em emails de spam e em emails íntegros. Por exemplo:
spamoracle Lista '. *' # mostrar todos os palavras -- big Lista!
spamoracle Lista 'sexo.*'
spamoracle Lista 'linux. *'
DATABASE BACKUPS
O banco de dados usado pelo SpamOracle é armazenado em um formato binário compacto que não é humano
legível. Além disso, este formato está sujeito a alterações em versões posteriores do SpamOracle. Para
facilitar backups e upgrades, o conteúdo do banco de dados também pode ser manipulado em um
portátil, formato de texto.
A spamoracle backup comando despeja o conteúdo do banco de dados para a saída padrão, em um
formato textual portátil.
A spamoracle restaurar comando lê tal despejo da entrada padrão e reconstrói o
banco de dados com esses dados.
O procedimento recomendado para atualizar para uma versão mais recente do SpamOracle é:
# Antes da atualizar:
spamoracle backup > arquivo de backup
# Atualizar SpamOracleName
# Restaurar da banco de dados
spamoracle restaurar < arquivo de backup
CONFIGURANDO FILTRAGEM PARÂMETROS
Muitos dos parâmetros que governam a classificação da mensagem podem ser configurados por meio de um
arquivo de configuração. Por padrão, a configuração é lida do arquivo .spamoracle.conf
no diretório inicial do usuário. Um arquivo de configuração diferente pode ser especificado no
linha de comando usando o -config opção: spamoracle -config meuarquivoconfig ...
A lista de parâmetros configuráveis e o formato do arquivo de configuração são descritos
in spamoracle.conf(5).
Todos os parâmetros têm padrões razoáveis, mas você pode tentar melhorar a qualidade do
classificação adicional ajustando-os. Para determinar o impacto de suas mudanças, use
quer o teste or estado comandos para spamoracle. O spamoracle estado comando imprime um
resumo de linha de quantas mensagens de spam, não spam e desconhecidas foram encontradas nas caixas de correio
dados como argumentos.
ANÁLISE DETALHES
A noção de "palavra" do SpamOracle é qualquer sequência de 3 a 12 dos seguintes caracteres: letras,
aspas simples e travessões (-). Se o suporte para idiomas europeus diferentes do inglês foi compilado
em, os caracteres de palavras também incluem as letras acentuadas relevantes para os idiomas em
pergunta. Todas as palavras são mapeadas para minúsculas e as letras acentuadas são mapeadas para o
letras não acentuadas correspondentes.
Uma sequência de 3 a 12 dos seguintes caracteres também constitui uma palavra: dígitos, pontos,
vírgulas e sinais de dólar, euro e porcentagem.
Além disso, uma sequência de três ou mais letras maiúsculas gera uma pseudopalavra Un onde n
é a duração da corrida. Da mesma forma, uma execução de três ou mais caracteres não ASCII (código> =
128) gera uma pseudo-palavra Wn onde n é a duração da corrida.
Por exemplo, o seguinte texto:
VERÃO in Inglês is escrito "ete" in Francês
é processado nas seguintes palavras, assumindo que o suporte francês foi selecionado na compilação-
Tempo:
U5 verão inglês escrito ete francês W3
e se o suporte francês não foi selecionado:
U5 verão inglês escrito francês W3
Para ver as palavras extraídas de uma mensagem, emita o spamoracle palavras comando.
Ele lê uma única mensagem da entrada padrão ou todas as mensagens da caixa de correio
arquivos dados como argumentos, decompõe as mensagens em palavras e imprime as palavras.
RANDOM NOTAS
O arquivo de banco de dados pode ser compactado com gzip(1) para economizar espaço em disco, às custas de
mais devagar spamoracle operações. Se o arquivo de banco de dados especificado com o -f opção tem o
extensão .gz, spamoracle irá descompactá-lo automaticamente na inicialização e compactá-lo novamente
após as atualizações.
Se o seu e-mail for armazenado no formato MH, você pode encontrar erros de "linha de comando muito longa" enquanto
tentando processar muitos arquivos pequenos com o spamoracle adicionar comando, por exemplo, ao fazer
spamoracle adicionar -Boa arquivos / * / * -Spam Spam/*
Em vez disso, faça algo como:
find arquivo -Tipo f -impressão | xargs spamoracle adicionar -Boa
find Spam -Tipo f -impressão | xargs spamoracle adicionar -Spam
Use spamoracle online usando serviços onworks.net