Conseils de visibilité : qui a accès à la boîte mail ?

La plupart des organisations comptant plus de 10 ou 20 employés qui utilisent Exchange Server dans leurs locaux ou Office 365 dans le Cloud, ont des boîtes mail qui sont partagées à un certain niveau. Ces scénarios pourraient comporter les éléments suivants :

  • Un cadre ou un gestionnaire qui s’occupe généralement de ses propres tâches, mais qui permet à un adjoint administratif ou exécutif, d’accéder par délégation, à ses contacts, calendriers ou courriels afin qu’il ou elle puisse avoir accès aux éléments dans la boîte de réception du gestionnaire.
  • Une boîte mail partagée pour un service tel que « Service à la clientèle » ou « Comptabilité » pour lequel tous les employés de ce service partagent l’accès à la boîte mail pour recevoir le courrier entrant, y répondre au nom du service (sans utiliser leurs propres comptes) et gérer leurs événements électroniques.

Il pourrait y avoir certaines situations dans lesquelles vous auriez rapidement besoin d’une liste de boîtes mail qui permettent à des personnes autres que les propriétaires de la boîte mail d’accéder aux données qui s’y trouvent. Une pratique exemplaire consisterait à vérifier ce type d’accès de façon uniforme, que ce soit trimestriellement, semestriellement, ou même mensuellement, pour les installations très sensibles. Une autre pratique exemplaire serait de l’enregistrer chaque fois que ce type d’autorisation est accordé par votre propre service de sécurité ; cependant, dans le monde réel, cette méthode manuelle de suivi avant l’autorisation n’enregistrera pas les utilisateurs qui délèguent l’accès par un simple clic droit sur leur agenda dans Outlook, et choisissent de partager le calendrier avec un collègue. C’est plus difficile à saisir de façon automatisée.

Utilisation du script PowerShell

Abordons d’abord le scénario le plus simple. Pour savoir quelles boîtes mail sont partagées avec d’autres utilisateurs, vous pouvez utiliser la puissance de PowerShell pour récupérer ces boîtes mail partagées afin de savoir avec quoi vous travaillez.

Get-Mailbox –RecipientTypeDetails ‘SharedMailbox’ | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Format-Table Identity, User –AutoSize

Cette commande fournira un tableau simple montrant l’identité et les utilisateurs ayant accès aux boîtes mail partagées. C’est un bon point de départ.

Pour savoir plus avant qui a accès aux données dans une boîte aux lettres, vous devrez commencer à interagir avec Exchange Web Services, qui a une API qui peut fournir beaucoup plus d’informations que les modules PowerShell pour Exchange actuellement. Heureusement, Glen Scales, un professionnel clairement avéré de Microsoft Exchange Server, a publié sur son blog un exemple de script que nous pouvons utiliser pour savoir quels utilisateurs ont accès à des dossiers spécifiques dans la boîte aux lettres d’un utilisateur. Glen suggère sur son blog que ce rapport, qui se présente sous la forme d’un HTML décent, peut être envoyé par mail aux utilisateurs pour un rapide coup d’œil et une vérification, quelque chose du genre « Oui, je connais ces gens et je sais qu’ils ont une raison valable d’avoir accès à ma boîte aux lettres ».

$rptCollection = @()
$delegates = $service.getdelegates($MailboxName,$true)
foreach($Delegate in $delegates.DelegateUserResponses){
    $rptObj = "" | select EmailAddress,Inbox,Calendar,Contacts,Tasks,Notes,Journal,MeetingMessages,ViewPrivateItems
    $rptObj.EmailAddress = $Delegate.DelegateUser.UserId.PrimarySmtpAddress
    $rptObj.Inbox = $Delegate.DelegateUser.Permissions.InboxFolderPermissionLevel
    $rptObj.Calendar = $Delegate.DelegateUser.Permissions.CalendarFolderPermissionLevel  
    $rptObj.Contacts = $Delegate.DelegateUser.Permissions.ContactsFolderPermissionLevel  
    $rptObj.Tasks = $Delegate.DelegateUser.Permissions.TasksFolderPermissionLevel  
    $rptObj.Notes = $Delegate.DelegateUser.Permissions.NotesFolderPermissionLevel  
    $rptObj.Journal = $Delegate.DelegateUser.Permissions.JournalFolderPermissionLevel           $rptObj.ViewPrivateItems = $Delegate.DelegateUser.ViewPrivateItems  
    $rptObj.MeetingMessages = $Delegate.DelegateUser.ReceiveCopiesOfMeetingMessages  
    $rptCollection += $rptObj  
}
$tableStyle = @"
<style>
BODY{background-color:white;}
TABLE{border-width: 1px;
  border-style: solid;
  border-color: black;
  border-collapse: collapse;
}
TH{border-width: 1px;
  padding: 10px;
  border-style: solid;
  border-color: black;
  background-color:#66CCCC
}
TD{border-width: 1px;
  padding: 2px;
  border-style: solid;
  border-color: black;
  background-color:white
}
</style>
"@
$rptCollection | ConvertTo-HTML -head $tableStyle | Out-File c:\delgateReport.html

Utiliser un outil professionnel

Au lieu d’utiliser les scripts PowerShell, vous pouvez mettre en œuvre un outil professionnel. Dans la capture d’écran suivante (dans ce cas, il s’agit de Netwrix Auditor for Exchange), nous voyons une modification apportée aux autorisations et à la délégation des boîtes mail :

Avec cet outil, vous pouvez voir qui a accédé à quelle boîte mail, quand, et à partir de quel poste de travail l’accès a été obtenu, et quels éléments l’utilisateur a vu, édité, ou supprimé.

Cela permet également de démontrer aux auditeurs que vous prenez les mesures adéquates pour protéger vos boîtes mail du réseau contre les accès non autorisés.