# Homologation - acceptance tests - capacité à réaliser les fonctions attendues en sécurité - fiabilité (intégrité, disponibilité) - confidentialité - cas de figures différents : nouveau système / système existant, COTS / dev spécifique - Qui homologue ? [Guide autorité homologation](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/171026_guide_autorit%c3%a9_homologation_v2.pdf) - Quelles décisions ? homologation, APE (=> label "Beta") # Systèmes existants - retex Incidents exploitation - volumétries et revues de comptes - MCO / MCS : dernières opérations de maintenance, de restauration, parité prod/preprod - dérives et abus d'utilisation - alignements par rapport aux états de l'art, nouvelles menaces [Guide réhomologation](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/190506_guide-re-homologation_v2.pdf) # Composants sur étagère - inventaire des composants - revue des préconisations éditeur (dimensionnement, sécurité) - abonnement aux fils de diffusion sécurité : qui assure le suivi ? # Développements spécifiques - respect des standards / état de l'art - tests de charge réalistes - audits d'intrusion ? # Synoptique d'architecture - A3 = 2 * A4 - Hexagone - focus sur les interfaces - Faces supérieures : interfaces UI et M2M - Côtés : approvisionnements et observabilité - Faces inférieures : stockages et API de traitement - Dedans ou dehors - tout ce qui est à l'intérieur de l'hexagone relève d'une seule organisation - un SAN dédié à l'application est dedans ; un SAN mutualisé est dehors - inventaire des composants et des adresses (URL, email) # YAGNI "You Aren't Gotta Need It" - principe Xtrem Programming, repris (mais souvent oublié) dans Agile - privilégier des composants intégrés, à des briques supplémentaires PostGis ou FTS vs ElasticSearch, JSON in PG vs MongoDB, Redis, etc. - avez-vous besoin de multi-machines, surcouches WebUI, micro-services, SPA ? # UI - http est un protocole "dangereux" parce qu'il est nativement stateless. - Exposition / Authentification / Habilitation - Injections # Exposition (DNS TTL 15min, multihoming, haproxy) - régulation des flux - "attaque DoS", intentionnelle ou pas (retex SIGNALE) - whitelist / greylists (rate-limiting) / blacklist - Internet << Internautes français << IP de confiance - greylisting : plus efficace qu'un WAF non-bloquant pour de multples attaques (du DoS => la blind injection) - par IP, par challenge (CAPTCHA) - capacités de réaction - piloter les flux TTL DNS, multihoming - rajouter un filtre face à une faille 0-day # Authentification (mTLS) - reverse-proxy >> bouchon applicatif - certificat >> 2fa >> login:pwd # Habilitation (fonctions RBAC centralisées) - factorisation des roles, des habilitations - Test : ajouter une règle comme les accès Admin sont restreints de 9h à 17h du lundi au vendredi # Injections (https + headers + csp + security.txt) - http - https : protection de l'authenticité autant de la confidentialité - Cookie flags : HttpOnly, Secure - X-Frame-Options : réponse à une menace ponctuelle (clickjacking) très symptomatique du niveau de sécurisation - Content-Security-Policy : sourcer le javascript (css/fonts), à défaut de l'autohéberger ; pas de règle unsafe-* - security.txt : pour joindre les équipes SSI [Standard entêtes HTTP](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/200603_standard-HTTP-headers_v5.0.pdf) - injections aval - SQL : requêtes paramètrées - commandes : fonctions désinfectantes (sanitizer) - HTML : gabarits (templates) et échappements (escaping) # M2M (robots.txt | API manager) - robots.txt pour les "gentils" - API manager (request accounting, normalisation swagger / OpenAPI) - Signature des requêtes > jeton Oauth # Ressources et approvisionnements (deploiements reproductibles, vendoring) - fenêtre de maintenance - déploiements reproductibles et progressifs (preprod/prod, 10/100/1000) - source of truth: pre (Puppet ou Ansible), post (etckeeper, oxidized) - vendoring (dépôts tampons) - packages OS - conteneurs App - librairies développement - SBOM (software build of materials) # Administration interactive (bastion) - ssh : auth préalable par clé publique/privée, gestion de session - carte RGS** : clé privée dans carte à puce et lien avec identité civile - bastion : log entrées/sorties, dérogations explicites sur utilisation clés de secours, horaires inhabituels, etc - TOFU serveur # Tâches récurrentes (sentinelles) - fichier trop vieux (certificat, rapport de sauvegarde) - détection processus mort par ping/webhook # Observabilité : métriques - page de maintenance - /health [URI monitoring](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/180503_standard-URI-diagnostic-signalement_v2.1.pdf) - /metrics (OS : consommation ressources disques, mémoire... mais aussi applicative) - http : décomptes codes retours par classes 1xx / 2xx / 3xx / 4xx / 5xx, temps de réponse # Observabilité : logs - locaux (retention, logrotate) vs puits de logs - apache log (ou autre std ad hoc), - structured log (logfmt, json), retex forensic - metriques dérivées des logs # Stockages données - FS filesystem - dépôts de fichiers sans droit +x (php et langages interprétés) - antivirus dans la chaine, bac-à-sable ? - SQL : séparation des droits (system vs db), migrations (versioning des schémas) - S3 : panier public, anti-enumaration d'objets (id aléatoires) # Sauvegardes (3-2-1) - se protèger de fausses manips, de pannes matérielles, de rançonnages - corruption de données à court et long terme (rétention jours, semaines, mois) - 3 copies, 2 systèmes indépendant, 1 copie distante - chiffrement des sauvegardes - restaurabilité : hash d'intégrité, fichier sentinelle, montage distant [Sauvegardes 3-2-1](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/171026_politiques-sauvegardes_v3.1.pdf) # API - proxy web : whitelist, blacklist ou néant - LDAPS : TLS, pas de bind anonyme, stockage hash password [Gestion mmdp](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/180503_authentification-mdp_v4.0.pdf) - SMTPS : sousmission sécurisée des courriels et cachet DKIM [Relai SMTP](https://hfds-bercy.alize.finances.rie.gouv.fr/files/live/sites/hfds-bercy/files/r%c3%a9pertoires/S%c3%a9curit%c3%a9%20des%20syst%c3%a8mes%20d'information/documents/Textes%20de%20r%c3%a9f%c3%a9rences/200603_standard-relais-SMTP_v3.0.pdf) # Tests ! - transactions complètes : automates "e2e" (PSIN) - saturation volumes > 50% - age fichiers certificats - https://censys.io/ (nmap) - https://observatory.mozilla.org/ (Firefox DevTools) - https://cisofy.com/lynis/ - https://ssi.economie.gouv.fr/courriel - EICAR file # composition en couches - les machines du SI - l'hyperviseur et son système de management - les machines physiques (contrôle d'accès aux salles, IPMI) # Homologations en commançant par les nouvelles plateformes périphèriques 2022 - Bastion SSH et Noisette - Gitlab - B3 - WSO2 - Ansible & Rundeck - Zone Protégée et hébergement sec - Eco SQL ? 2023 - VMware et OpenStack (mTLS pour vSphere Web CLient et Horizon 😀) - labnum.fr et ingress proxy (multihoming, haproxy)