
Boîte à outils d'enrichissement de domaines $ pip install richkit
Richkit est un paquet python3 qui fournit des outils prenant un nom de domaine en entrée et retournant des informations supplémentaires sur ce domaine. Il peut s'agir d'une analyse du domaine lui-même, d'une consultation depuis des bases de données, d'une récupération depuis d'autres services, ou d'une combinaison de ces approches.
Le but de Richkit est de fournir une bibliothèque réutilisable de fonctions d'analyse, de consultation et de récupération liées aux noms de domaine, partagées au sein du groupe de recherche en sécurité réseau de l'Université d'Aalborg, et également disponibles publiquement pour réutilisation et modification.
La documentation est disponible à l'adresse https://richkit.readthedocs.io/en/latest/.
Python >= 3.5Pour installer richkit, tapez simplement dans le terminal pip install richkit
Les codes suivants peuvent être utilisés pour récupérer le TLD et la catégorie de l'URL, respectivement.
Récupération du domaine de premier niveau effectif d'une URL donnée :
>>> from richkit.analyse import tld
>>> urls = ["www.aau.dk","www.github.com","www.google.com"]
>>>
>>> for url in urls:
... print(tld(url))
dk
com
com
Récupération de la catégorie d'une URL donnée :
>>> from richkit.retrieve.symantec import fetch_from_internet
>>> from richkit.retrieve.symantec import LocalCategoryDB
>>>
>>> urls = ["www.aau.dk","www.github.com","www.google.com"]
>>>
>>> local_db = LocalCategoryDB()
>>> for url in urls:
... url_category=local_db.get_category(url)
... if url_category=='':
... url_category=fetch_from_internet(url)
... print(url_category)
Education
Technology/Internet
Search Engines/Portals
Richkit définit un ensemble de fonctions classées dans les modules suivants :
richkit.analyse : Ce module fournit des fonctions qui peuvent être appliquées à un nom de domaine. À l'instar de richkit.lookup, et contrairement à richkit.retrieve, cela se fait sans divulguer le nom de domaine à des tiers et sans compromettre la confidentialité.
richkit.lookup : Ce module permet de consulter des noms de domaine dans des ressources locales, c'est-à-dire que le nom de domaine ne peut pas être envoyé à des tiers. Le module peut récupérer des ressources, comme des listes ou des bases de données, mais cela doit se faire de manière à préserver la confidentialité du nom de domaine. Contrast avec richkit.retrieve.
richkit.retrieve : Ce module permet de récupérer des données sur des noms de domaine de toute nature. Il ne comporte pas le "contrat de confidentialité" de richkit.lookup.
Afin d'éviter les problèmes liés à l'environnement, nous fournissons le fichier Dockerfile.test qui construit une image Docker pour exécuter les tests de Richkit.
MAXMIND_LICENCE_KEY dans .github/local-test/run-test.sh à la ligne 3. Cela est nécessaire pour réussir les cas de test du module lookup.Commandes pour tester dans un environnement Docker :
docker build -t richkit-test -f Dockerfile.test . : Construit l'image nécessaire pour exécuter les cas de test
docker run -e MAXMIND_LICENSE_KEY="<licence-key> " richkit-test : Exécute le fichier run-test.sh dans l'image Docker.
Les contributions sont les bienvenues.
Nous utilisons la stratégie de branchement gitflow
, donc si vous prévoyez de pousser une branche vers ce dépôt, veuillez la suivre. Notez que nous testons les noms de branches avec
.githooks/check-branch-name.py. Le hook git pre-commit peut être utilisé
pour vérifier cela automatiquement lors d'un commit. Un exemple directement utilisable comme suit est disponible sur linux, et peut être activé comme
ceci (en supposant python>=3.6 et bash) :
ln -s $(pwd)/.githooks/pre-commit.linux.sample $(pwd)/.git/hooks/pre-commit