Mãos digitando em um laptop em um espaço de trabalho pouco iluminado e concentrado.

A equipe de pesquisa Swimlane disponibiliza o código aberto do py-ews.

2 Minutos de leitura

 

O phishing afeta todas as organizações, e as equipes de operações de segurança (SecOps) precisam agir rapidamente para remediar e prevenir ameaças desconhecidas em sua infraestrutura de e-mail. Para ajudar a combater essas ameaças, a equipe de pesquisa da Swimlane disponibilizou um software de código aberto. py-ews Permitir que as equipes de segurança e TI interajam com os Serviços Web do Microsoft Exchange (EWS) usando Python.

Por que py-ews?

As organizações continuam a lutar contra emails de phishing maliciosos em seus ambientes de email, mas as equipes de segurança e TI têm visibilidade limitada do conteúdo das caixas de entrada de seus usuários. Py-ews Foi desenvolvido para devolver o controle às suas equipes de segurança e TI, para que elas possam remediar as ameaças mais rapidamente.

O Microsoft Exchange e o Microsoft Office 365 locais podem ser acessados programaticamente usando o PowerShell ou programas baseados em C#, o que é ótimo se você estiver trabalhando exclusivamente em sistemas operacionais Windows. Além disso, se você estiver em um sistema macOS ou baseado em *nix e utilizando o PowerShell Core, poderá criar uma sessão remota para se conectar ao seu ambiente Exchange.

Todas essas são ótimas opções, mas py-ews É multiplataforma e funciona com Python 2 e 3 para interagir diretamente com os Serviços Web do Exchange, tanto para o Exchange local (2010 a 2019) quanto para o Office 365. Não há intermediários nem código compilado para lidar, o que significa que o py-ews é mais rápido.

Ao utilizar o SOAP XML do Exchange Web Services, interagimos diretamente com o Exchange eDiscovery e outros endpoints de serviço do EWS. No momento da redação deste artigo, o py-ews oferece suporte aos seguintes endpoints:

  • Obter caixas de correio pesquisáveisIdentifique automaticamente todas as caixas de correio em seu ambiente para as quais você tem direitos de acesso para pesquisar.
  • Pesquisar caixas de correioAo usar o da Microsoft Sintaxe de consulta avançada Você pode pesquisar em uma única caixa de correio ou em todas as caixas de correio do seu ambiente.
  • Excluir itemVocê pode usar as opções Excluir permanentemente (HardDelete), Excluir temporariamente (SoftDelete) ou Mover para Itens Excluídos (MoveToDeletedItems) para um item de e-mail.
  • Descoberta automáticaO recurso Autodiscover permite que você acesse um único ponto de extremidade ao se comunicar com o EWS.
  • ResolverNomesConverter o endereço de e-mail de um usuário em um objeto de usuário detalhado para recuperar suas propriedades.
  • GetInboxRules: Determine as regras da caixa de entrada de uma única caixa de correio.

Para usar os endpoints de eDiscovery, você precisa ter Gestão de Descobertas direitos dentro Intercâmbio. O Py-ews também suporta a capacidade de se passar por um usuário/caixa de correio, mas você precisa ter representação direitos dentro da Bolsa.

Cenário

Muitas equipes de segurança, como a sua, precisam responder a e-mails maliciosos em seus ambientes. Usando o py-ews, você pode obter uma lista de caixas de correio em seu ambiente Exchange, pesquisá-las e excluir quaisquer e-mails maliciosos identificados.

Aqui está um exemplo de como fazer isso com py-ews:

from pyews import UserConfiguration from pyews import GetSearchableMailboxes from pyews import SearchMailboxes from pyews import DeleteItem userconfig = UserConfiguration( '[email protected]', 'Password1234' ) # obter caixas de correio pesquisáveis com base nas permissões da sua conta referenceid_list = [] for mailbox in GetSearchableMailboxes(userconfig).response: referenceid_list.append(mailbox['ReferenceId']) # vamos pesquisar todos os itens de referenceid_list messages_found = [] for search in SearchMailboxes('subject:account', userconfig, referenceid_list).response: messages_found.append(search['MessageId']) # se quiséssemos excluir uma mensagem específica, chamaríamos a classe DeleteItem # assim, mas também podemos passar a lista completa messages_found resposta_mensagem_excluída = DeleteItem(mensagens_encontradas[2], userconfig).response

Py-ews está disponível em pypi A partir de hoje, pode ser instalado executando o comando `pip install pyews`.

Continue lendo sobre py-ews.

Logotipo do SecOps Hub

Continue a conversa

O SecOps Hub é uma comunidade de profissionais de segurança reunidos para discutir estratégias de SecOps, melhores práticas de resposta a incidentes e maneiras de simplificar o SecOps com orquestração, automação e resposta de segurança (SOAR). Continue esta conversa e participe de discussões como esta hoje mesmo!

Inscreva-se agora

Solicitar uma demonstração ao vivo