linux:rewinged
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:rewinged [2026/09/12 08:46] – root | linux:rewinged [2026/09/18 17:40] (Version actuelle) – [13.2 Règles personnalisées] root | ||
|---|---|---|---|
| Ligne 130: | Ligne 130: | ||
| Restart=on-failure | Restart=on-failure | ||
| RestartSec=5 | RestartSec=5 | ||
| + | |||
| + | # Journalisation vers fichier, pour collecte Wazuh en JSON natif | ||
| + | StandardOutput=append:/ | ||
| + | StandardError=append:/ | ||
| # Durcissement | # Durcissement | ||
| Ligne 141: | Ligne 145: | ||
| MemoryDenyWriteExecute=true | MemoryDenyWriteExecute=true | ||
| ReadOnlyPaths=/ | ReadOnlyPaths=/ | ||
| - | ReadWritePaths=/ | + | ReadWritePaths=/ |
| [Install] | [Install] | ||
| Ligne 148: | Ligne 152: | ||
| <code bash> | <code bash> | ||
| + | mkdir -p / | ||
| + | chown rewinged: | ||
| + | |||
| systemctl daemon-reload | systemctl daemon-reload | ||
| systemctl enable --now rewinged | systemctl enable --now rewinged | ||
| systemctl status rewinged | systemctl status rewinged | ||
| </ | </ | ||
| + | |||
| + | Rotation du journal : | ||
| + | |||
| + | <file - / | ||
| + | / | ||
| + | daily | ||
| + | rotate 30 | ||
| + | compress | ||
| + | missingok | ||
| + | notifempty | ||
| + | copytruncate | ||
| + | su rewinged rewinged | ||
| + | } | ||
| + | </ | ||
| ===== 4. Pare-feu de la VM ===== | ===== 4. Pare-feu de la VM ===== | ||
| Ligne 290: | Ligne 311: | ||
| if [ " | if [ " | ||
| - | logger -t winget-sync " | + | |
| + | if ! git verify-commit HEAD >/ | ||
| + | logger -t winget-sync -p auth.crit \ | ||
| + | " | ||
| + | git reset --hard " | ||
| + | exit 1 | ||
| + | fi | ||
| + | | ||
| fi | fi | ||
| exit 0 | exit 0 | ||
| </ | </ | ||
| + | |||
| + | Le bloc '' | ||
| + | clé publique du signataire est présente dans le trousseau du compte | ||
| + | '' | ||
| + | est ce qui rend la détection Wazuh exploitable (13.3). | ||
| <code bash> | <code bash> | ||
| Ligne 686: | Ligne 719: | ||
| ===== 13. Surveillance Wazuh ===== | ===== 13. Surveillance Wazuh ===== | ||
| - | ==== 13.1 FIM ==== | + | Trois sources distinctes : l' |
| + | rewinged, et l' | ||
| - | <file xml ossec.conf> | + | ==== 13.1 Configuration de l' |
| - | <syscheck> | + | |
| - | < | + | <file xml / |
| - | / | + | <ossec_config> |
| - | | + | |
| - | < | + | |
| - | / | + | < |
| - | | + | < |
| - | < | + | < |
| - | / | + | |
| - | </ | + | <!-- Manifests : decident de ce que le parc installe --> |
| - | </ | + | |
| + | tags=" | ||
| + | |||
| + | <!-- Installeurs : les binaires servis aux postes --> | ||
| + | | ||
| + | tags=" | ||
| + | |||
| + | <!-- Binaire rewinged et script de synchronisation --> | ||
| + | | ||
| + | tags=" | ||
| + | |||
| + | <!-- Unites systemd du service --> | ||
| + | < | ||
| + | | ||
| + | |||
| + | <!-- Bruit git interne --> | ||
| + | <ignore type=" | ||
| + | | ||
| + | |||
| + | <!-- Journal applicatif rewinged, deja en JSON --> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <!-- Etat des services, toutes les 5 minutes --> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| </ | </ | ||
| - | ==== 13.2 Réduction du bruit ==== | + | Le journal de '' |
| + | collecté par la configuration Wazuh par défaut. | ||
| - | La FIM se déclenche à chaque | + | ==== 13.2 Règles personnalisées ==== |
| - | légitime | + | |
| + | <file xml / | ||
| + | <group name=" | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | <field name=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | <field name=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | <field name=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | <field name=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | <field name=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <rule id=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | Les identifiants 100600–100631 sont donnés à titre indicatif. Les adapter à | ||
| + | la numérotation des règles personnalisées déjà en place. | ||
| + | </ | ||
| + | |||
| + | ==== 13.3 Traiter le bruit FIM ==== | ||
| + | |||
| + | La FIM se déclenche à chaque | ||
| + | nativement « alerter sauf si précédé de tel événement », il faut donc déplacer | ||
| + | le contrôle plutôt que tenter de corréler. | ||
| + | |||
| + | **Approche retenue** : la signature GPG des commits est le contrôle réel. | ||
| + | |||
| + | - Les commits | ||
| + | dans le trousseau du compte | ||
| + | - '' | ||
| + | d' | ||
| + | - La FIM sur '' | ||
| + | elle n' | ||
| + | - L' | ||
| + | |||
| + | Une modification de manifest effectuée directement sur le serveur ne passe pas | ||
| + | par un commit, donc ne déclenche pas 100611 — mais elle sera écrasée au | ||
| + | prochain '' | ||
| + | |||
| + | Les installeurs et les binaires, eux, ne changent pas hors publication : leurs | ||
| + | règles restent à niveau élevé. | ||
| + | |||
| + | ==== 13.4 Mise en place de la signature ==== | ||
| + | |||
| + | Côté poste de publication : | ||
| + | |||
| + | <code bash> | ||
| + | git config --global user.signingkey < | ||
| + | git config --global commit.gpgsign true | ||
| + | gpg --export --armor < | ||
| + | </ | ||
| + | |||
| + | Côté serveur rewinged : | ||
| + | |||
| + | <code bash> | ||
| + | sudo -u rewinged gpg --import mis-publication.pub | ||
| + | sudo -u rewinged gpg --edit-key < | ||
| + | sudo -u rewinged git -C /srv/winget verify-commit HEAD | ||
| + | </ | ||
| - | * signer les commits en GPG et vérifier | + | Idéalement |
| - | avant application — un fichier modifié sans commit signé devient alors une | + | l' |
| - | alerte non ambiguë | + | |
| - | * à défaut, corréler | + | |
| - | ==== 13.3 Alertes complémentaires | + | ==== 13.5 Ce qui reste non couvert |
| - | * arrêt du service | + | * **Publication légitime mais erronée** — un mauvais |
| - | * échecs répétés | + | ou un SHA256 incorrect signé |
| - | | + | Le garde-fou est la revue de la PR, pas la détection. |
| - | * volumétrie anormale de téléchargements sur ''/ | + | * **Compromission du poste de publication** |
| - | * saturation | + | utilisable par un attaquant, la chaîne entière est valide de son point de |
| + | | ||
| + | * **Saturation | ||
| + | | ||
| ===== 14. Points ouverts ===== | ===== 14. Points ouverts ===== | ||
linux/rewinged.1789202818.txt.gz · Dernière modification : de root
