Cómo advertir a los usuarios sobre correo electrónico de suplantación de identidad de correo electrónico

Los correos electrónicos de phishing son una amenaza constante para su entorno de TI. Además de todas las medidas de seguridad que puedes tomar, es realmente importante la concientización de tus usuarios. Puede ayudarlos advirtiéndoles sobre posibles correos electrónicos de phishing.

He escrito antes sobre cómo puede agregar una advertencia a los correos electrónicos de phishing en función de palabras sospechosas en el asunto o el contenido. Pero otra táctica común de los atacantes es usar la suplantación de identidad.


agregar advertencia al correo electrónico con el mismo nombre para mostrar

Pretenden enviar el correo electrónico como alguien dentro de su organización, utilizando un nombre para mostrar que coincide con uno de los nombres de sus usuarios.

Puede ayudar a sus usuarios a detectar este tipo de correos electrónicos de phishing agregando una advertencia a los correos electrónicos externos que tengan un nombre de visualización coincidente.

Índice

Creación de una regla de transporte para agregar una advertencia cuando existe un nombre para mostrar Internamente con PowerShell

Para agregar una advertencia a los correos electrónicos, necesitaremos crear una regla de transporte en Exchange Online. También necesitamos una lista con todos los nombres para mostrar de nuestra organización. Ambos se pueden hacer con PowerShell.

Para el mensaje de advertencia, vamos a utilizar el mismo diseño que hemos usado para la advertencia de correo electrónico de phishing. Si quieres saber más al respecto, o cómo cambiar el look, no dejes de leer este artículo.

Como siempre, primero explicaré cómo se construye el guión y al final del artículo puedes encontrar el guión completo.

Obtenga todos los nombres para mostrar con Exchange Online

El primer paso es obtener todos los nombres para mostrar de su organización. Para mantener el script simple, usaremos Exchange Online para esto. Deberá elegir si desea agregar también los nombres de los buzones de correo electrónico compartidos.

Asegúrese de estar conectado a Exchange Online. Si desea todos los buzones (incluidos los compartidos), elimine -RecipientTypeDetails usermailbox del comando de abajo.

# Get all existing users
$displayNames = (Get-EXOMailbox -ResultSize unlimited  -RecipientTypeDetails usermailbox).displayname

Obtener regla de transporte existente

Los usuarios van y vienen en su organización, por lo que debemos poder actualizar la lista con nombres para mostrar. Entonces establecemos el nombre de nuestra regla de transporte y luego verificamos si la regla ya existe más adelante.

# Set the transport rule name
$transportRuleName = "Impersonation warning"

# Get existing transport rule
$existingTransportRule =  Get-TransportRule | Where-Object {$_.Name -eq $transportRuleName}

Crear el cartel de advertencia

También necesitamos definir el banner de advertencia que vamos a agregar a los correos electrónicos:

$HTMLDisclaimer="<table border=0 cellspacing=0 cellpadding=0 align="left" width="100%">
	<tr>
		<td style="background:#ffb900;padding:5pt 2pt 5pt 2pt"></td>
		<td width="100%" cellpadding="7px 6px 7px 15px" style="background:#fff8e5;padding:5pt 4pt 5pt 12pt;word-wrap:break-word">
			<div style="color:#222222;">
				<span style="color:#222; font-weight:bold;">Warning:</span>
				This email was sent from outside the company and it has the same display name as someone inside our organisation. This is probably a phishing mail. Do not click on links or open attachments
				unless you are certain that this email is safe.
			</div>
		</td>
	</tr>
</table>
<br/>"

Crear la regla de transporte con PowerShell

Con todos los componentes en su lugar, podemos agregar la regla de transporte con PowerShell. La regla se aplicará a todos los correos electrónicos enviados desde fuera de la organización, donde el campo De coincida con uno de los nombres para mostrar.

	Write-Host "Creating Transport Rule" -ForegroundColor Cyan

	# Create new Transport Rule
	New-TransportRule -Name $transportRuleName `
										-FromScope NotInOrganization `
										-SentToScope InOrganization `
										-HeaderMatchesMessageHeader From `
										-HeaderMatchesPatterns $displayNames `
										-ApplyHtmlDisclaimerLocation Prepend `
										-ApplyHtmlDisclaimerText $HTMLDisclaimer `
										-ApplyHtmlDisclaimerFallbackAction Wrap

	Write-Host "Transport rule created" -ForegroundColor Green

el guion completo

Poner todo junto da como resultado el siguiente script. También puedes descargarlo desde mi repositorio de Github.

# Connect to Exchange Online
Write-Host "Connect to Exchange Online" -ForegroundColor Cyan
Connect-ExchangeOnline

$HTMLDisclaimer="<table border=0 cellspacing=0 cellpadding=0 align="left" width="100%">
	<tr>
		<td style="background:#ffb900;padding:5pt 2pt 5pt 2pt"></td>
		<td width="100%" cellpadding="7px 6px 7px 15px" style="background:#fff8e5;padding:5pt 4pt 5pt 12pt;word-wrap:break-word">
			<div style="color:#222222;">
				<span style="color:#222; font-weight:bold;">Warning:</span>
				This email was sent from outside the company and it has the same display name as someone inside our organisation. This is probably a phishing mail. Do not click on links or open attachments
				unless you are certain that this email is safe.
			</div>
		</td>
	</tr>
</table>
<br/>"

# Get all existing users
$displayNames = (Get-EXOMailbox -ResultSize unlimited  -RecipientTypeDetails usermailbox).displayname

# Set the transport rule name
$transportRuleName = "Impersonation warning"

# Get existing transport rule
$existingTransportRule =  Get-TransportRule | Where-Object {$_.Name -eq $transportRuleName}

if ($existingTransportRule) 
{
	Write-Host "Update Transport Rule" -ForegroundColor Cyan

	# Update existing Transport Rule
	Set-TransportRule -Identity $transportRuleName `
										-FromScope NotInOrganization `
										-SentToScope InOrganization `
										-HeaderMatchesMessageHeader From `
										-HeaderMatchesPatterns $displayNames `
										-ApplyHtmlDisclaimerLocation Prepend `
										-ApplyHtmlDisclaimerText $HTMLDisclaimer `
										-ApplyHtmlDisclaimerFallbackAction Wrap

	Write-Host "Transport rule updated" -ForegroundColor Green
}
else 
{
	Write-Host "Creating Transport Rule" -ForegroundColor Cyan

	# Create new Transport Rule
	New-TransportRule -Name $transportRuleName `
										-FromScope NotInOrganization `
										-SentToScope InOrganization `
										-HeaderMatchesMessageHeader From `
										-HeaderMatchesPatterns $displayNames `
										-ApplyHtmlDisclaimerLocation Prepend `
										-ApplyHtmlDisclaimerText $HTMLDisclaimer `
										-ApplyHtmlDisclaimerFallbackAction Wrap

	Write-Host "Transport rule created" -ForegroundColor Green
}

# Close Exchange Online Connection
$close = Read-Host Close Exchange Online connection? [Y] Yes [N] No 

if ($close -match "[yY]") {
  Disconnect-ExchangeOnline -Confirm:$false | Out-Null
}

Regla de transporte en Exchange Online

Puede encontrar la regla de transporte en Exchange Online después de haber ejecutado el script:

  1. Abre el Centro de administración de Exchange
  2. Expandir flujo de correo y seleccione Normas
  3. Abra la regla Advertencia de suplantación para ver los detalles

crear una regla de transporte en línea de intercambio con PowerShell

Terminando

Si también está agregando los nombres de los buzones compartidos a la lista, entonces probablemente desee filtrar nombres como "información" de la lista, porque la información es bastante común 😉

El tamaño de una regla de transporte es limitado, por lo que si tiene un arrendatario grande, con más de 250 usuarios, es posible que deba crear varias reglas de transporte.

Si tiene alguna pregunta, simplemente deje un comentario a continuación.

Artículos de interés

Subir

Si continuas utilizando este sitio aceptas el uso de cookies. Más información