@cccsaurora/howler-ui 2.12.0-dev.40 → 2.12.0-dev.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/elements/display/json/JSONViewer.js +6 -10
- package/components/routes/help/markdown/en/actionIntroduction.md.js +1 -0
- package/components/routes/help/markdown/en/authentication.md.js +1 -0
- package/components/routes/help/markdown/en/bundles.md.js +1 -0
- package/components/routes/help/markdown/en/client.md.js +1 -0
- package/components/routes/help/markdown/en/links.md.js +1 -0
- package/components/routes/help/markdown/en/notebook.md.js +1 -0
- package/components/routes/help/markdown/en/retention.md.js +1 -0
- package/components/routes/help/markdown/en/schema.md.js +1 -0
- package/components/routes/help/markdown/en/templates.md.js +1 -0
- package/components/routes/help/markdown/en/views.md.js +1 -0
- package/components/routes/help/markdown/fr/actionIntroduction.md.js +1 -0
- package/components/routes/help/markdown/fr/authentication.md.js +1 -0
- package/components/routes/help/markdown/fr/bundles.md.js +1 -0
- package/components/routes/help/markdown/fr/client.md.js +1 -0
- package/components/routes/help/markdown/fr/links.md.js +1 -0
- package/components/routes/help/markdown/fr/notebook.md.js +1 -0
- package/components/routes/help/markdown/fr/retention.md.js +1 -0
- package/components/routes/help/markdown/fr/schema.md.js +1 -0
- package/components/routes/help/markdown/fr/templates.md.js +1 -0
- package/components/routes/help/markdown/fr/views.md.js +1 -0
- package/package.json +5 -5
- package/components/elements/display/json/worker.d.ts +0 -1
- package/components/elements/display/json/worker.js +0 -7
- package/components/routes/help/markdown/en/actionIntroduction.md +0 -33
- package/components/routes/help/markdown/en/authentication.md +0 -261
- package/components/routes/help/markdown/en/bundles.md +0 -70
- package/components/routes/help/markdown/en/client.md +0 -213
- package/components/routes/help/markdown/en/links.md +0 -37
- package/components/routes/help/markdown/en/notebook.md +0 -157
- package/components/routes/help/markdown/en/retention.md +0 -15
- package/components/routes/help/markdown/en/schema.md +0 -21
- package/components/routes/help/markdown/en/templates.md +0 -23
- package/components/routes/help/markdown/en/views.md +0 -11
- package/components/routes/help/markdown/fr/actionIntroduction.md +0 -33
- package/components/routes/help/markdown/fr/authentication.md +0 -259
- package/components/routes/help/markdown/fr/bundles.md +0 -70
- package/components/routes/help/markdown/fr/client.md +0 -209
- package/components/routes/help/markdown/fr/links.md +0 -37
- package/components/routes/help/markdown/fr/notebook.md +0 -157
- package/components/routes/help/markdown/fr/retention.md +0 -15
- package/components/routes/help/markdown/fr/schema.md +0 -21
- package/components/routes/help/markdown/fr/templates.md +0 -23
- package/components/routes/help/markdown/fr/views.md +0 -11
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# Intégration de carnets
|
|
2
|
-
|
|
3
|
-
Howler offre la possibilité d'ajouter des carnets aux analyses afin de faciliter le triage des hits et des alertes. Il permet aux utilisateurs de créer rapidement un carnet dans un environnement Jupyter avec des informations analytiques et/ou des informations sur les hits.
|
|
4
|
-
|
|
5
|
-
Howler cherchera des variables à remplacer dans la première cellule de code d'un notebook, ce qui permettra de fournir un contexte dans les premières cellules à l'aide de markdown.
|
|
6
|
-
|
|
7
|
-
Voici un exemple de la façon dont Howler remplacera les variables dans votre carnet :
|
|
8
|
-
|
|
9
|
-
```notebook tab="Modèle"
|
|
10
|
-
{
|
|
11
|
-
"cells": [
|
|
12
|
-
{
|
|
13
|
-
"cell_type": "code",
|
|
14
|
-
"id": "fe6f810f-2459-4ad7-92ac-1e925ce892d4",
|
|
15
|
-
"outputs": [],
|
|
16
|
-
"source": [
|
|
17
|
-
"HowlerHitId = \"{{hit.howler.id}}\"\n",
|
|
18
|
-
"HowlerAnalyticId = \"{{analytic.analytic_id}}\""
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"cell_type": "code",
|
|
23
|
-
"id": "586470ef-c8e6-45b1-bd17-17ccd083eef1",
|
|
24
|
-
"outputs": [],
|
|
25
|
-
"source": [
|
|
26
|
-
"from howler_client import get_client\n\n",
|
|
27
|
-
"howler = get_client(\"$CURRENT_URL\")\n",
|
|
28
|
-
"hit = howler.hit(howlerHitId)"
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
"nbformat": 4,
|
|
33
|
-
"nbformat_minor": 5
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
```notebook tab="Traité"
|
|
38
|
-
{
|
|
39
|
-
"cells": [
|
|
40
|
-
{
|
|
41
|
-
"cell_type": "code",
|
|
42
|
-
"id": "fe6f810f-2459-4ad7-92ac-1e925ce892d4",
|
|
43
|
-
"outputs": [],
|
|
44
|
-
"source": [
|
|
45
|
-
"HowlerHitId = \"7dxHCat0Y2Sj48qyU7ZkVV\"\n",
|
|
46
|
-
"HowlerAnalyticId = \"2SXKl6Cq4rOxWLps2SFHyB\""
|
|
47
|
-
]
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"cell_type": "code",
|
|
51
|
-
"id": "586470ef-c8e6-45b1-bd17-17ccd083eef1",
|
|
52
|
-
"outputs": [],
|
|
53
|
-
"source": [
|
|
54
|
-
"from howler_client import get_client\n\n",
|
|
55
|
-
"howler = get_client(\"$CURRENT_URL\")\n",
|
|
56
|
-
"hit = howler.hit(howlerHitId)"
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"nbformat": 4,
|
|
61
|
-
"nbformat_minor": 5
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
ou avec du markdown dans la première cellule :
|
|
66
|
-
|
|
67
|
-
```notebook tab="Modèle"
|
|
68
|
-
{
|
|
69
|
-
"cells": [
|
|
70
|
-
{
|
|
71
|
-
"cell_type": "markdown",
|
|
72
|
-
"id": "e17cbaa8-9849-462f-9bd2-bf30943f76b3",
|
|
73
|
-
"source": [
|
|
74
|
-
"### Exemple de carnet"
|
|
75
|
-
]
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"cell_type": "code",
|
|
79
|
-
"id": "fe6f810f-2459-4ad7-92ac-1e925ce892d4",
|
|
80
|
-
"outputs": [],
|
|
81
|
-
"source": [
|
|
82
|
-
"HowlerHitId = \"{{hit.howler.id}}\"\n",
|
|
83
|
-
"HowlerAnalyticId = \"{{analytic.analytic_id}}\""
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"cell_type": "code",
|
|
88
|
-
"id": "586470ef-c8e6-45b1-bd17-17ccd083eef1",
|
|
89
|
-
"outputs": [],
|
|
90
|
-
"source": [
|
|
91
|
-
"from howler_client import get_client\n\n",
|
|
92
|
-
"howler = get_client(\"$CURRENT_URL\")\n",
|
|
93
|
-
"hit = howler.hit(howlerHitId)"
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
"nbformat": 4,
|
|
98
|
-
"nbformat_minor": 5
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
```notebook tab="Traité"
|
|
103
|
-
{
|
|
104
|
-
"cells": [
|
|
105
|
-
{
|
|
106
|
-
"cell_type": "markdown",
|
|
107
|
-
"id": "e17cbaa8-9849-462f-9bd2-bf30943f76b3",
|
|
108
|
-
"source": [
|
|
109
|
-
"### Exemple de carnet"
|
|
110
|
-
]
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"cell_type": "code",
|
|
114
|
-
"id": "fe6f810f-2459-4ad7-92ac-1e925ce892d4",
|
|
115
|
-
"outputs": [],
|
|
116
|
-
"source": [
|
|
117
|
-
"HowlerHitId = \"7dxHCat0Y2Sj48qyU7ZkVV\"\n",
|
|
118
|
-
"HowlerAnalyticId = \"2SXKl6Cq4rOxWLps2SFHyB\""
|
|
119
|
-
]
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"cell_type": "code",
|
|
123
|
-
"id": "586470ef-c8e6-45b1-bd17-17ccd083eef1",
|
|
124
|
-
"outputs": [],
|
|
125
|
-
"source": [
|
|
126
|
-
"from howler_client import get_client\n\n",
|
|
127
|
-
"howler = get_client(\"$CURRENT_URL\")\n",
|
|
128
|
-
"hit = howler.hit(howlerHitId)"
|
|
129
|
-
]
|
|
130
|
-
}
|
|
131
|
-
],
|
|
132
|
-
"nbformat": 4,
|
|
133
|
-
"nbformat_minor": 5
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Présentement, Howler n'essaiera de remplacer que les objets de hit et d'analytic.
|
|
138
|
-
|
|
139
|
-
# Conditions requises pour que l'intégration de carnets fonctionne
|
|
140
|
-
|
|
141
|
-
- Une configuration NBGallery fonctionnelle est nécessaire.
|
|
142
|
-
- Si l'utilisateur peut envoyer un carnet depuis NBGallery vers son environnement Jupyter, il fonctionnera aussi en utilisant le bouton open in jupyhub sur Howler.
|
|
143
|
-
- Comme pour NBGallery, l'utilisateur doit s'assurer que son environnement Jupyter est en cours d'exécution, sinon Howler ne parviendra pas à envoyer le carnet.
|
|
144
|
-
|
|
145
|
-
Howler ajoutera l'identifiant du Hit/Alert lorsqu'il enverra un carnet à Jupyter, ce qui facilitera son suivi pour l'analyse. Il est possible d'ouvrir un carnet à partir d'une page analytique. Dans ce cas, aucun identifiant de résultat ne sera ajouté au nom de fichier du carnet et Howler ne sera pas en mesure de remplacer les informations de hit dans le carnet modèle puisqu'aucun hit n'a été fourni.
|
|
146
|
-
|
|
147
|
-
# Ajout d'un carnet à une analyse
|
|
148
|
-
|
|
149
|
-
Pour ajouter un carnet à une analyse, il suffit de fournir le lien NBGallery du carnet. Le lien ressemblera à l'exemple ci-dessous. Le carnet ne doit pas être privé, sinon seul l'utilisateur qui l'a ajouté pourra l'utiliser sur Howler.
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
$NBGALLERY_URL/notebooks/5-example
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
```alert
|
|
156
|
-
Il est conseillé d'effacer toutes les sorties d'un carnet avant de l'ajouter sur NBGallery afin d'éviter la fuite de données sensibles.
|
|
157
|
-
```
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Rétention dans Howler
|
|
2
|
-
|
|
3
|
-
Afin de se conformer au règlement, Howler est configuré pour purger les alertes périmées après une période de temps spécifique. Dans cette instance, cette durée est `duration`.
|
|
4
|
-
|
|
5
|
-
Howler calcule s'il est temps de supprimer une alerte en fonction de la date `event.created` - une fois que celle-ci dépasse la date limite configurée, un travail automatisé nocturne supprimera l'alerte.
|
|
6
|
-
|
|
7
|
-
Afin de communiquer cela à l'utilisateur, voir l'exemple d'alerte ci-dessous :
|
|
8
|
-
|
|
9
|
-
`alert`
|
|
10
|
-
|
|
11
|
-
En haut à droite, le survol de l'horodatage indique le temps dont dispose l'utilisateur avant que l'alerte ne soit supprimée. Afin de se conformer au règlement, assurez-vous que `event.created` correspond à la date à laquelle les données sous-jacentes ont été collectées, ce qui permet à howler de s'assurer que les données sont purgées à temps.
|
|
12
|
-
|
|
13
|
-
```alert
|
|
14
|
-
Cela va bientôt changer - il y aura un champ dédié à définir qui remplacera cette approche.
|
|
15
|
-
```
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Schéma du hit
|
|
2
|
-
|
|
3
|
-
Un hit howler peut contenir un grand nombre de champs uniques, chacun avec une définition particulière, afin de rendre les hits mutuellement intelligibles d'une analyse à l'autre. Vous trouverez ci-dessous un tableau contenant tous les champs de résultats donnés, ainsi que leur type et une brève description de leur utilisation. Alors que la grande majorité des champs sont basés sur le schéma commun Elastic (voir [ici](https://www.elastic.co/guide/en/ecs/8.5/index.html) pour la documentation), il existe également des champs personnalisés pour Howler, et aussi des champs supplémentaires configurés par divers plugins Howler.
|
|
4
|
-
|
|
5
|
-
## Champs Howler - Bonnes pratiques
|
|
6
|
-
|
|
7
|
-
Afin d'assurer une certaine cohérence entre les différents analytiques, il existe un certain nombre de champs dont le style est recommandé (mais pas obligatoire). Il s'agit notamment des champs suivants:
|
|
8
|
-
|
|
9
|
-
- `howler.analytic` : Indique l'analyse globale qui a généré le résultat. Par exemple, si le nom de votre analyse est Bad Guy Finder, vous pouvez définir ce champ à Bad Guy Finder. Exemples d'utilisation :
|
|
10
|
-
|
|
11
|
-
- Bad Guy Finder (correct)
|
|
12
|
-
- BadGuyFinder (acceptable, mais les espaces sont préférables)
|
|
13
|
-
- bad.guy.finder (incorrect, ne pas utiliser de points)
|
|
14
|
-
- bad_guy_finder (incorrect, n'utilisez pas de caractères de soulignement)
|
|
15
|
-
- en général, vous pouvez utiliser [cette regex](https://regexr.com/7ikco) pour valider le nom analytique que vous proposez
|
|
16
|
-
|
|
17
|
-
- `howler.detection` : Indique l'algorithme spécifique ou la partie de l'analyse qui a généré le hit. Par exemple, si votre analyse a trois façons de détecter les hits qui devraient être examinés (Voyage impossible, Informations de connexion incorrectes, Détection d'attaque XSS), alors la façon dont le hit que vous créez a été détecté devrait être définie. Exemples d'utilisation :
|
|
18
|
-
- Impossible Travel (correct)
|
|
19
|
-
- ImpossibleTravel (acceptable, mais les espaces sont préférables)
|
|
20
|
-
- impossible.travel (incorrect, ne pas utiliser de points)
|
|
21
|
-
- impossible_travel (incorrect, ne pas utiliser de caractères de soulignement)
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Modèles de Howler
|
|
2
|
-
|
|
3
|
-
Howler est, fondamentalement, une application qui permet aux analystes de trier les hits et les alertes. Afin de s'assurer que les analystes puissent le faire aussi efficacement que possible, nous voulons avoir la possibilité de présenter les données pertinentes pour une alerte donnée aux analystes d'une manière facile et compréhensible.
|
|
4
|
-
|
|
5
|
-
À cette fin, Howler permet aux analystes et aux ingénieurs de détection de créer des **modèles**, qui permettent à diverses analyses et à leurs détections de présenter des champs et des données pertinents pour le triage des alertes générées par cette analyse/détection. Par exemple, considérons deux alertes différentes, générées par deux détections différentes :
|
|
6
|
-
|
|
7
|
-
```json
|
|
8
|
-
$ALERT_1
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
```json
|
|
12
|
-
$ALERT_2
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Notez que si les deux cartes partagent des champs similaires, elles diffèrent également. Nous voulons que chacune de ces cartes d'alerte présente des données différentes - pour cela, nous pouvons utiliser des modèles. Cela nous permet d'afficher les deux occurrences dans la même liste, mais avec des champs différents :
|
|
16
|
-
|
|
17
|
-
===SPLIT===
|
|
18
|
-
|
|
19
|
-
Comme nous pouvons le voir, en spécifiant un modèle pour chacune des détections, des données différentes seront présentées à l'analyste.Pour ce faire, vous pouvez utiliser le créateur de modèles [ici]($CURRENT_URL/templates/view?type=personal).
|
|
20
|
-
|
|
21
|
-
```alert
|
|
22
|
-
Notez que vous devez avoir ingéré des hits pour la paire analyse/détection donnée pour qu'elle apparaisse en tant qu'option dans l'interface utilisateur de création de modèle !
|
|
23
|
-
```
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Vues
|
|
2
|
-
|
|
3
|
-
Les vues sont une fonctionnalité de Howler qui permet aux utilisateurs de créer des requêtes personnalisées par défaut à travers lesquelles ils peuvent organiser et trier les hits. Dans ce document, nous décrirons comment créer et interagir avec des vues.
|
|
4
|
-
|
|
5
|
-
## Utilisation d'une vue
|
|
6
|
-
|
|
7
|
-
Vous pouvez utiliser les vues en accédant au gestionnaire de vues sous [Manage > Views](/views). En cliquant sur une vue, vous l'ouvrirez dans la page de recherche. Vous pouvez également utiliser l'icône `recherche` pour ouvrir la vue dans la page de recherche. Vous pouvez également modifier les vues qui vous appartiennent et les marquer comme favorites. Cela les affichera dans le menu déroulant `t(route.views.saved)` dans la barre latérale. En haut à droite, vous pouvez également choisir votre `t(route.views.manager.default)`, qui sera sélectionné par défaut lors de l'ouverture de la page d'alertes.
|
|
8
|
-
|
|
9
|
-
## Créer des vues
|
|
10
|
-
|
|
11
|
-
Pour créer une vue, vous pouvez utiliser la page de création de vue, située [ici](/views/create). Cette page vous permet de modifier votre vue, de spécifier un `t(hit.search.sort.fields)` et un `t(hit.search.span)`, et de sauvegarder la vue avec un nom particulier. Vous pouvez marquer une vue comme globale ou personnelle, en fonction des personnes que vous souhaitez voir et utiliser.
|