PI Services

Le blog des collaborateurs de PI Services

Azure - Utiliser la localisation GPS avec l'accès conditionnel Azure

L'accès conditionnel d'Azure ou Conditional Access (CA) est un service Azure qui permet d'autoriser les connexions vers des applications ou services Azure selon des conditions tels que la plage IP publique d'accès, le type de device ou le niveau de risque de l'utilisateur. Avec la popularisation des VPN, il est difficile de réellement restreindre les connexions depuis un pays donné. Une fonctionnalité récente sortie en 2021 permet dorénavant de demander les coordonnés GPS d'un utilisateur lorsqu'une CA est configurée.

 

Prérequis pour utiliser la localisation GPS avec l'accès conditionnel Azure

  • Chaque utilisateur qui utilise un accès conditionnel doit avoir une licence Azure AD Premium P1
  • Le compte qui configure l'accès conditionnel doit avoir un de ces rôles : Security Administrator, Conditional Access Administrator ou Global Administrator
  • Les utilisateurs doivent avoir l'application Microsoft Authenticator installée et configurée avec leur compte Azure AD

Créer un emplacement nommé basé sur la localisation GPS

Un emplacement nommé ou name location est un groupement d'IP ou de pays qui sera consommé par une CA pour appliquer une restriction d'accès.

1. Se connecter au tenant Azure AD via le lien portal.azure.com avec le compte qui a les privilèges requis pour configurer une CA

2. Cliquer sur Azure AD > Security > Named locations > + Countries location

3. Dans la blade (fenêtre Azure) qui s'est ouverte :

  • Dans le champs Name choisir un nom à donner à cette named location
  • Dans le deuxième champs dont la valeur par défaut est Determine location by IP address (IPv4 only) choisir Determine location by GPS coordinates

4. Il est possible de cocher l'option Include unknown countries/regions, cela permet d'inclure les plages IP qui n'appartiennent à aucun pays et les IPv6 qui ne sont pas incluses par défaut.

5. Dans cet exemple, on souhaite configurer la named location en France, scroller jusqu'à trouver France et cocher la checkbox associée puis cliquer sur Create

 

Créer un accès conditionnel basé sur la localisation GPS

1. Se connecter au tenant Azure AD via le lien portal.azure.com avec le compte qui a les privilèges requis pour configurer une CA

2. Cliquer sur Azure AD > Security > Conditional Access > Policies > + New policy

3. Dans le champs Name entrer le nom de la CA puis cliquer successivement sur Conditions > Locations > Configure > Include > Selected locations

4. Dans la blade qui est apparue à droite, entrer le nom de la named location précédemment entrée et cocher la checkox associé puis cliquer sur Select

5. Il est ensuite possible d'utiliser les différentes options pour choisir les éléments qui doivent être bloqués, par exemple :

  • Users or workload identites permet de choisir si la CA doit s'appliquer à l'ensemble des utilisateur ou à un groupe d'utilisateur spécifique
  • Cloud apps or actions permet de choisir l'application Azure à conditionner
  • Grant permet de configurer la CA en tant qu'autorisation ou réfutation

6. Une fois les éléments de configuration de la CA choisis, il est possible de la configurer en Report-only pour ne pas qu'elle s'applique réellement, mais pour pouvoir avoir un aperçu de ses effets au travers des Sign-in logs des utilisateurs.

Module Powershell SecretStore - Exemple avec API Crowdstrike

SecretStore est un module Powershell permettant de facilement stocker et gérér des Credentials.

Dans l’exemple ci-dessous nous le mettons en place et l’utilisons pour demander, dans cet exemple, un token d’acces au cloud de l’EDR Crowdstrike.

NB : Le module SecretStore requiert l’installation du module SecretManagement

Comme tout module Powershell, si ils ne peut pas être directement téléchargé en ligne sur un repository avec la commande Install-Module, il est possible de le(s) récupérer sur Github ou encore sur Powershell Galery

(https://www.powershellgallery.com/packages/Microsoft.PowerShell.SecretStore)

(https://www.powershellgallery.com/packages/Microsoft.PowerShell.SecretManagement)

Une fois les module décompressé et stocké dans un des dossier contenant en standard des modules (ex : «C:\Program Files\WindowsPowerShell\Modules»)

NB : Si le module n’est pas stocké dans un chemin déclaré dans la variable $env:PSModulePath, son chemin complet devra être renseigné lors de l’import. Ceci peut être problématique aussi après l’import, dans le cadre de certaines commandes du module. Pour cela il est préférable qu’il soit stocké dans un chemin reconnu par la variable $env:PSModulePath

NB : Pour qu’un module soit correctement reconnu par Powershell, le nom du dossier le contenant doit être identique au nom du fichier psd1 ou psm1 :

 C:\Program Files\WindowsPowerShell\Modules \microsoft.powershell.secretstore

Dans une fenêtre powershell, exécuter Import-module en spécifiant le chemin d’accès aux fichiers indiqué ci-dessous

*****

Import-module microsoft.powershell.secretmanagement

Import-module microsoft.powershell.secretstore

*****

Par défaut le module SecretStore requiert un password pour accéder a chaque au coffre-fort de mot passe. La commande suivante permet de spécifier que l’authentification ne sera pas demandée , uniquement pour l’utilisation actuel (CurrentUser)

 

Set-SecretStoreConfiguration -Scope CurrentUser -Authentication None -Interaction None

La commande demande un password qui ne sera pas redemandé

La commande suivante permet de créer le coffre-fort (vault). Indiquer un nom explicite pour l’usage de ce coffre. (La commande requiert d’indiquer le module SecretStore)

Register-SecretVault -ModuleName microsoft.powershell.secretstore -Name MyVault

A présent que le coffre est créé, nous allons y stocker les informations requise, dans cet exemple, pour récupérer un token Crowdstrike.

Dans une variable de type hashtable ($ApiClient) On renseigne le Client Id, Le Client Secret, et le Hostname (url de l’api). On ‘range’  ($ApiClient) dans le coffre MYVault. (Set-secret)

$ApiClient = @{
    ClientId     = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    ClientSecret = ' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    Hostname     = 'https://api.eu-1.crowdstrike.com'
}

Set-Secret -Name MyApiClient -Secret $ApiClient -Vault MyVault

On peut tester a présent que le credential peut être récupéré :

Get-Secret -Name MyApiClient -Vault MyVault -AsPlainText

Et dans notre exemple, on peut maintenant récupérer notre token Crowdstrike

Get-Secret -Name MyApiClient -Vault MyVault -AsPlainText | ForEach-Object { Request-FalconToken @_ }

Notre token doit etre valable

$(Test-FalconToken).token

Les cmdlets du module PSFalcon peuvent maintenant être exécutées, par exemple :

Get-FalconHost -All -Detailed

NB : Les modules powershell SecretStore et SecretManagement peuvent même etre supprimé (Remove-Module). Le coffre crée sera toujours accessible par le compte l’ayant crée.

[Outlook] Problèmes de synchronisation de BAL partagée

Symptômes

Quand vous accédez aux dossiers d’une boîte aux lettres sur votre profil Outlook, vous pouvez rencontrer des problèmes de synchronisation aléatoires suivants :

  • Lorsque vous affichez des éléments dans la boîte aux lettres partagée, les nouveaux éléments peuvent ne pas apparaître ou des éléments semblent manquants,

  • Les éléments que vous avez supprimés apparaissent toujours,

  • Performances d’Outlook lentes ou blocages aléatoires.

Résolution

Désactiver la mise en cache de tous les dossiers partagés (Pour Outlook 2010 et versions ultérieures):

  1. Sous l’onglet Fichier, cliquez sur Paramètres du compte dans la liste Paramètres du compte.

2. Dans la boîte de dialogue Paramètres du compte, cliquez sur l’onglet Messagerie, puis double-cliquez sur votre compte Microsoft Exchange. Dans la boîte de dialogue Modifier le compte, cliquez sur Autres paramètres.

3. Dans la boîte de dialogue Microsoft Exchange, cliquez sur l’onglet Avancé puis désactivez la case à cocher Télécharger les dossiers partagés puis Cliquez deux fois sur OK.

4. Cliquez sur Suivant, sur Terminer, puis sur Fermer.

5. Redémarrez Outlook.

Outlook_Les messages envoyés depuis une boîte aux lettres partagée ne sont pas stockés dans le dossier Éléments envoyés de la boîte aux lettres partagée

Problème

Supposons que vous utilisez Microsoft Outlook 2010 ou une version ultérieure et que vous êtes autorisé à envoyer des messages électroniques en tant qu’un autre utilisateur ou pour le compte d’un autre utilisateur à partir d’une boîte aux lettres partagée. Toutefois, lorsque vous envoyez un message pour cet utilisateur, ce message n’est pas enregistré dans le dossier Éléments envoyés de la boîte aux lettres partagée. En lieu et place, il est enregistré dans le dossier Éléments envoyés de votre boîte aux lettres.

Résolution

  1. Cliquez sur Démarrer, puis sur Exécuter, tapez regedit, puis cliquez sur OK.
  2. Recherchez la sous-clé de Registre suivante, puis cliquez dessus :

HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\Preferences

 Note: Lʼespace réservé x.0 représente la version dʼOffice (16.0 = Office 2016, Office 2019, 15.0 = Office 2013).

  1. Dans le menu Edition, pointez sur Nouveau, puis cliquez sur Valeur DWORD.
  2. Tapez « DelegateSentItemsStyle », puis appuyez sur Entrée.
  3. Cliquez avec le bouton droit sur DelegateSentItemsStyle, puis cliquez sur Modifier.
  4. Dans la zone Données de la valeur, tapez 1, puis cliquez sur OK.
  5. Fermez l’Éditeur du Registre.

Note: Outlook doit être configuré en mode mis en cache pour que cette modification du clé de registre fonctionne correctement. 

Exchange Online_Lecture seule sur les BALs partagées

Contexte

Une boîte aux lettres partagée est une boîte aux lettres que plusieurs utilisateurs peuvent utiliser pour lire et envoyer des e-mails ou encore partager un calendrier commun. Une boîte aux lettres partagée est un type de boîte aux lettres utilisateur qui n'a pas son propre nom d'utilisateur et mot de passe. Par conséquent, les utilisateurs ne peuvent pas s'y connecter directement

Pour accéder à une boîte aux lettres partagée, les utilisateurs doivent d'abord disposer des autorisations Envoyer en tant que ou Accès total à la boîte aux lettres et dans ce cas, le mappage automatique connecte la boîte aux lettres partagée aux utilisateurs associés. 

Si vous souhaitez partager la boîte aux lettres en lecture seule, ou mieux avec des autorisations "Relecteur", vous devez supprimer à l'utilisateur les autorisations d'accès total, puis utiliser PowerShell pour définir les autorisations correctes et dans ce cas, le mappage automatique ne fonctionnera pas.

1. Positionnez tout d'abord l'autorisation par défaut: 

Add-MailboxPermission -Identity SharedMailbox -User 'Username' -AccessRights ReadPermission 

2. Puis, définissez les autorisations "Relecteur" pour tout dossier que vous souhaitez partager en lecture seule 

Add-MailboxFolderPermission -Identity Support:\ -User upn@domain.com -AccessRights Reviewer

Add-MailboxFolderPermission -Identity Support:\Inbox -User upn@domain.com -AccessRights Reviewer

Add-MailboxFolderPermission -Identity Support:\Outbox -User upn@domain.com -AccessRights Reviewer 

Attention : vous devez appliquer l'autorisation à chaque dossier de boîte aux lettres, Support est le nom du dossier partagé.

  • Pour supprimer l'autorisation, exécutez la commande

Remove-MailboxFolderPermission -Identity Support:\Outbox -User upn@domain.com   

 

Crowdstrike EDR - Scan de machines cibles

L’EDR Crowdstrike integre bien sur une fonction de scan de machines cibles, a la demande ou planifiés.

Aller sur le lien Endpoint security/On-demand scans

Cliquer Create a scan

Sélectionner Now ou In the future pour planifier un scan

Laisser coché l’option «Limit how long this scan runs» pour limiter la durée du scan. NB : La durée de 2 heures par défaut pourra être adapté au vu de la durée observée en moyenne dans le résultat final du/des scans.

Sélectionner une ou plusieurs et/ou des groupes de machines (la selection dans le champs affiche automatiquement les éléments)

Inscrire un ou plusieurs chemin a scanner (1 par ligne)

Inscrire éventuellement un ou plusieurs chemin a exclure

Le champ «Exclusions to test against above pattern» peut être utilisé pour tester les exclusions.

Dans l’exemple ci-dessus, on veut scanner le lecteur D:\, en excluant tout le contenu (*) de D:\App1

(la coche et la couleur du test effectué  valide le fait que la syntaxe de l’exclusion est correcte. Au contraire, par exemple  ne sera pas exclu)

Le bouton  peut être utilisé pour charger une liste d’exclusion en respectant une ligne par exclusion.

Renseigner une description explicite

Laisser par défaut la niveau de détection et de prévention a Moderate

Pour information la description des niveau de détection est la suivante :

Level

Description

Disabled

Disable all detections or preventions.

Cautious

Detect or prevent only when our machine learning system has high confidence that something is malicious.

Moderate

Detect or prevent when our machine learning system has moderate confidence that something is malicious. We recommend this setting for most use cases. This setting also detects and prevents activity that would be detected or prevented by Cautious.

Aggressive

Detect or prevent when our machine learning system has low confidence that something is malicious. This setting also detects and prevents activity that would be detected or prevented by Moderate and Cautious.

Extra Aggressive

Detect or prevent when our machine learning system has the lowest confidence that something is malicious. This setting also detects and prevents activity that would be detected or prevented by Aggressive, Moderate, and Cautious. 

 

 

Selectionner un niveau maximum de consommation CPU a utiliser (par defaut Low up to 25%)

Décocher Show notifications to end user si vous ne voulez pas que l’utilisateur connecté sur la machine reçoive une notification de Scan (le paramètre Pause duration permet d’autoriser l’utilisateur connecté à reporter le scan pour une durée donnée)

Cliquer Create Scan

 

Le scan apparait dans la liste et passez en état Completed lorsque le scan est fini.

Un clic sur le scan permet d’avoir le détail

Cliquer sur See full details pour afficher les détails complets

Dans notre exemple, la machine cible est bien dans les «Hosts without detection»

Le lien  permet d’accéder si besoin a des éléments de diagnostique/remédiation, dans le cas d’une machine ou des détections ont été remontées :

 

 

 

 

Intune : Supprimer l'icône et l'application de Teams Chat intégré à Windows 11

Pour supprimer l'icône et l'application de Teams Chat intégré à Windows 11 sur les appareils gérés par Intune, nous avons décidé de créer des packages de script dans Intune Proactive remediations, cela nous permettra d'exécuter des scripts de détection et de correction en utilisant le compte de l'utilisateur connecté, ce qui est un prérequis.

En outre, cette méthode offre la possibilité de filtrer uniquement les appareils Windows 11 dans les affectations, ce qui n'est pas disponible dans les scripts Intune.

Ci-dessous les packages de scripts de "Proactive remediations" MEM Intune que nous avons créé pour supprimer l'icône et l'application de Teams Chat (built-in) :

1. Package de script de suppression de l'icône Chat

1.1. Contenu du script de Détection

#Script detects the new Microsoft Teams consumer app Chat Icon on Windows 11.
$RegValue = Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -name "TaskbarMn" | Select TaskbarMn
if ($RegValue.TaskbarMn -eq "0") {
       Write-Host "Chat Icon not found"
       exit 0
} Else {
       Write-Host "Chat Icon found"
       Exit 1
}

1.2. Contenu du script de Remédiation

#Script removes the new Microsoft Teams consumer app Chat Icon on Windows 11.
#Icon is removed because this app can only be used with personal Microsoft accounts
try{
    Set-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -name "TaskbarMn" -value "00000000"
       Write-Host "Microsoft Teams Chat Icon successfully removed"
}
catch{
    Write-Error "Error removing Chat Icon"
}

2. Package de script de suppression de l'application MS Teams

2.1. Contenu du script de Détection

#Script detects the new Microsoft Teams consumer app on Windows 11.
if ($null -eq (Get-AppxPackage -Name MicrosoftTeams)) {
       Write-Host "Microsoft Teams client not found"
       exit 0
} Else {
       Write-Host "Microsoft Teams client found"
       Exit 1
}

2.2. Contenu du script de Remédiation

#Script removes the new Microsoft Teams consumer app on Windows 11.
#App is removed because this app can only be used with personal Microsoft accounts 
try{
    Get-AppxPackage -Name MicrosoftTeams | Remove-AppxPackage -ErrorAction stop
    Write-Host "Microsoft Teams app successfully removed"
}
catch{
    Write-Error "Error removing Microsoft Teams app"
}

Une fois créés, ces packages de scripts Proactive remediations, peuvent être déployés sur le groupe d'appareils Windows 11.