Sécurité d'Orion

cadenas.

“La sécurité par l’obscurité n’est pas du tout une sécurité.”

Paraphrase populaire de serrurier américain Alfred Charles Hobbs En 1851, il choisit facilement les serrures du Crystal Palace lors d’une exposition londonienne cette année-là. Nous sommes tout à fait d’accord. C’est pourquoi nos plans pour notre moteur d’automatisation Oracle Cloud Infrastructure (OCI) sont disponible sur GitHub.

Sécurité de l’infrastructure Orion

flowchart TB classDef borderless stroke-width:0px classDef darkBlue fill:#00008B, color:#fff classDef brightBlue fill:#6082B6, color:#fff classDef gray fill:#62524F, color:#fff classDef gray2 fill:#4F625B, color:#fff subgraph vcs[ ] A1[[Fort Lauderdale, FL]] B1[Air-Gapped Version Control Server] end class vcs,A1 gray subgraph vpn-us-east[ ] A2[[Reston, VA]] B2[OCI Edge Servers] end class vpn-us-east,A2 darkBlue subgraph vpn-us-west[ ] A3[[Phoenix, AZ]] B3[OCI Edge Servers] end class vpn-us-west,A3 darkBlue subgraph vpn-de-central[ ] A4[[Frankfurt, Germany]] B4[OCI Edge Servers] end class vpn-de-central,A4 darkBlue subgraph vpn-bz-west[ ] A5[[São Paolo, Brazil]] B5[OCI Edge Servers] end class vpn-bz-west,A5 darkBlue subgraph vpn-au-west[ ] A6[[Sydney, Australia]] B6[OCI Edge Servers] end class vpn-au-west,A6 darkBlue subgraph vpn-ap-west[ ] A7[[Hyderabad, India]] B7[OCI Edge Servers] end class vpn-ap-west,A7 darkBlue subgraph vpn-ap-east[ ] A8[[Seoul, South Korea]] B8[OCI Edge Servers] end class vpn-ap-east,A8 darkBlue class A1,A2,A3,A4,A5,A6,A7,A8 borderless vcs==vpn==>A2==ssh/vpn==>B2 vcs==vpn==>A3==ssh/vpn==>B3 vcs==vpn==>A4==ssh/vpn==>B4 vcs==vpn==>A5==ssh/vpn==>B5 vcs==vpn==>A6==ssh/vpn==>B6 vcs==vpn==>A7==ssh/vpn==>B7 vcs==vpn==>A8==ssh/vpn==>B8

 

Fonctionnalité FIPS 140-2 avec triple chiffrement MFA pour les services de transfert vers port inverse (HTTPS/SSH/IPsec). Ceinture, bretelles et étriers !


 

Sans mot de passe RBAC modèle, poivré avec orthèse otp-sha1 défis sudo

Aucun mot de passe fixe stocké sur les serveurs. Cette limite l’automatisation sans tête de l’utilisation de sudo / RBAC, pour une bonne raison. Cependant, nous avons outils pour éliminer le travail consistant à répondre à des invites de divers types.

Exécution en bac à sable pour les builds et les scripts CGI

Nous déployons “partage-rien” builds de zone, avec une disponibilité réseau nulle par défaut. Cela signifie que les seules choses auxquelles un build client peut accéder ou modifier sont ses propres actifs, pas ceux d’un autre client, ou tout autre chemin système sur la zone elle-même (en plus de /tmp). En outre, seuls les clients professionnels et professionnels disposent d’un accès Internet pendant leurs builds, car ils utilisent leurs propres zones unique Solaris qui peuvent être adaptées exactement à leurs exigences de build.

Ditto pour les scripts CGI, qui sont entièrement verrouillés en termes d’accès en écriture à tout autre chose que /tmp.

Chiffrement de bout en bout

Aspects de confiance zéro

La prémisse de base de architecture sans confiance est d’éviter de concevoir votre sécurité réseau autour de la physiologie de la palourde : dur à l’extérieur, mais doux et lâche une fois que vous êtes dans. Donc nous ne’Tous les ports réseau privilégiés significatifs à l’intérieur des différents réseaux locaux de point de présence (POP) ne sont exposés qu’à la machine à métaux nus.’interface de périphérique loopback s lo0, et n’a de sens que dans le contexte d’une connexion SSH (inverse) transmise au port **.

Nous utilisons des proxies TCP, pas des proxies HTTP, et aucun back-end MSA, donc le seul hôte qui voit votre trafic Web TLS non chiffré est l’hôte qui le déchiffre. Les mêmes règles s’appliquent au trafic Subversion — seul le trafic crypté TLS direct et de bout en bout vers l’ adresse de service voit vos données non cryptées sur le réseau.

Bonne chance avec les couches MSA et couches d’exposition de données privées avec d’autres fournisseurs. L’ennemi de “ingénierie non fonctionnelle” est la complexité. Il est beaucoup plus facile de fournir des promesses de sécurité significatives lorsque votre produit est un monolithe fédéré au lieu d’un énorme champ de mines MSA, ce qui est un autre différenciateur contradictoire entre Orion et son domaine de concurrents.

Cette infra est entièrement automatisée une fois qu’une région est mise en ligne, mais que’Tout ce que nous pouvons partager publiquement sur l’architecture (équilibrer la transparence Hobbsian avec le mantra militaire) “bateaux d’évier de lèvres lâches” plus d’art que de science). Soyez assuré — au-delà de briser l’antispoofing lo0 protection au sein d’ Solaris 11’s (BSD) filtre de paquets lui-même, il n’y a pas de moyen significatif d’accéder à ces services, même pour les comptes clients.

Même si le compte de contrôle OCI maître est compromis, la confidentialité et l’ intégrité de tous les actifs client restent inchangées. Tout ce qu’un black-hat peut faire est de perturber la disponibilité du site Web du client. En particulier, ils ne peuvent pas accéder aux enregistrements de données du service Subversion. Nous pouvons reconstruire toute l’infrastructure OCI à partir de zéro en 48 à 72 heures une fois la mauvaise pomme’l’accès à OCI a été interrompu.


Journalisation, surveillance et audit

Nous encourageons les entreprises clientes à créer un compte Splunk, et nous livrerons des weblogs en temps quasi réel à votre compte à partir de tous les POP mondiaux dont vous avez besoin. Les journaux d’erreurs de vos scripts CGI côté serveur sont également mis à la disposition de Splunk.

Nous surveillons la disponibilité du service à partir de tous nos POP OCI à l’échelle mondiale et déclenchons des événements de basculement de haute disponibilité (domaine de disponibilité) ou régionaux si une panne de serveur dure plus de 30 secondes.

L’audit d’ACL peut être effectué simplement en créant un site Web’s Subversion HEAD utilisant l’Apache sous licence Orion SSG le script et l’examen du paramétrage résultant dans la www/.acl fichier dans votre répertoire de paiement, à tout moment. Normalement, le processus de construction prendra moins de 10 à 15 secondes sur le matériel moderne.

Les crochets de validation côté serveur Subversion sont également personnalisables en fonction de vos problèmes de supervision. D’un simple logiciel de messagerie de validation à un accès sécurisé à notre démon svnpubsub, il existe un certain nombre de configurations personnalisées disponibles.


Sécurité applicative Orion

La SSR publique est une odeur.

Gestion des listes de contrôle d’accès

digraph { "@path::acl" -> "authz-svn.conf" [label="svn"]; "@path::acl" -> "/**/.htaccess" [label="httpd"]; };

 

Orion’s le modèle de sécurité est géré de manière centralisée par les paramètres contenus dans @path : :acl comme contraint dans lib/path.pm. Les fichiers de configuration du serveur de déconnexion sont générés dynamiquement à chaque modification créée.

OpenIDC Sécurité SSO

Les cookies de session sont marqués HttpOnly et Secure, de sorte que les tentatives de vol de session Javascript sont effectivement neutralisées par l’éditeur en ligne Orion.

Bcrypt pour les mots de passe Subversion

Nombre d’arrondi réglable (actuellement, la valeur par défaut est 5).

Protection des données endommagées

Toutes nos exécutions Perl ont des contrôles de tache obligatoires activés avec le drapeau -T ; une protection puissante et unique contre les exploits de shell à distance.

Problèmes wiki

La sécurité du wiki implique plusieurs facteurs :

  1. Sécurité IU/API

  2. Sécurité middleware/back-end

  3. Protections de traversée de modèle

  4. Compatibilité ACL du moteur de recherche

Nous explorons ces questions en relation avec Orion ci-dessous.

Editeur en ligne

L’éditeur en ligne prend en charge une interface utilisateur JSON en définissant simplement votre user-agent’s Acceptez l’en-tête pour préférer application/json Type MIME, les contrôles de sécurité sont donc les mêmes pour l’interface utilisateur et l’API.

Aucune interface utilisateur/API d’administration n’est disponible en dehors de l’accès Subversion direct.

Les ACL Subversion régissent l’accès en lecture aux copies de travail côté serveur

Chaque ressource de copie de travail disponible via l’interface utilisateur fait l’objet d’une vérification croisée par rapport à vos ACL Subversion avant de les présenter à l’utilisateur. De cette façon, nous veillons à ce que l’accès en lecture aux ressources non autorisées soit empêché pour les ressources sous contrôle de version (aka tout).

L’accès de validation est directement contrôlé par les ACL Subversion

Rien ne peut être construit et affiché par la suite sur le réseau sans une validation Subversion autorisée correspondante. Le principal problème ici est de contrôler quelles informations sont disponibles pour un auteur de page wiki.’éditions validées et créées.

Si vous autorisez le prétraitement de modèle dans les pages source de démarque, vous devez savoir comment les arguments de modèle rendent le contenu des autres fichiers de l’arborescence disponible en tant que variables pour la source de la page modifiée.

Souvent, si elle est configurée pour le faire, la page modifiée peut déclarer ses propres fichiers de dépendance dans les en-têtes de la page, ce qui est quelque chose à penser lorsque vous pesez les jeux de fonctionnalités contre les contrôles de sécurité dans votre Wiki’s Architecture d’information.

Alors que nous pouvons offrir des conseils et un soutien pour répondre à vos besoins, il’c’est à vous de décider comment équilibrer les échelles pour votre organisation’wiki d’entreprise.

Voir la section ci-dessous sur Contrôles d’injection de dépendance/ACL pour plus de détails, et consultez cet exemple en direct de la facilité d’ACL’s peut être configuré de manière centralisée dans lib/acl.yml:

- path: content
  rules:
    "@staff": rw
    "@svnadmin": rw
    "*": r

- path: content/orion
  rules:
    "@marketing": rw
    "@staff": rw
    "@svnadmin": rw
    "*": r

- path: lib
  rules:
    "@svnadmin": rw
    "@devops": rw

- path: lib/acl.yaml
  rules:
    "@svnadmin": rw
    "@security": rw

- path: templates
  rules:
    "@svnadmin": rw
    "@frontend": rw

- path: cgi-bin/search.pl
  rules:
    "*":

Les auteurs de contenu peuvent configurer les restrictions de page dans la page’s en-têtes:

Title: Orion Security
Dependencies: *.md.en api/index.md.en
ACL: @staff=rw, *=r
Keywords: security,infosec,appsec,ipsec,devsecops,it,acl,svnauthz

Par ailleurs, les ressources protégées ne peuvent pas être copiées dans une branche par du personnel non autorisé, même sans placer de contrôles ACL supplémentaires lors de la création et de la modification de la branche. En d’autres termes, le système prendra en charge l’expérimentation des succursales sans aucun contrôle supplémentaire de votre part pour garantir que les actifs protégés restent protégés dans chaque succursale.’cycle de vie naturel.

Créer des listes de contrôle d’accès système ?

Le système de construction est all-seeing et all-knowing, mais nous pouvons nous assurer que vos actifs construits et protégés ne sont visibles que par les équipes que vous gérez et contrôlez dans les ACL Subversion.

Le système de compilation affiche la liste des noms de fichier qu’il a créés via l’IDE du navigateur lors d’une validation, mais cette liste est uniquement basée sur un utilisateur’accès en lecture aux ressources dépendantes de l’utilisateur’ajouter, mettre à jour ou supprimer des actions de contenu dans la validation.

Contrôles de traversée de modèle

Voir sanitize_relative_path:

sub sanitize_relative_path {
  for (@_) {
    s#^[\\/]+##g;
    s/^\w+://g; #Windows GRR
    s#([\\/])+#$1#g;
    s#/\./#/#g;
    1 while s#[\\/][^\\/]+[\\/]\.\.[\\/]#/#;
    s#^(?:\.\.?[\\/])+##;
  }
}

Ce code applique les règles qui suivent ci-dessous dans cette section.

inclure et étendre les balises

Tous les fichiers cible se trouvent dans un sous-dossier de /modèles/ et doit être référencé en tant que chemins absolus ancrés dans ce dossier.

balise ssi

Tous les fichiers cible se trouvent dans un sous-dossier de /contenu/ et doit être référencé en tant que chemins absolus ancrés dans ce dossier.

Si le chemin cible n’est pas configuré dans @path : :modèles avec un paramètre de correspondance qui permet au chemin cible en question d’être archivé ou catégorisé, ssi l’opération échouera.

C’est parce que ssi le support est un prérequis pour ces ensembles de fonctionnalités, afin de préserver votre site’s taget permalinks.

Contrôles d’injection de dépendance/ACL

Contrôlé par lib/path.pm importations.

lib./{chemin,vue}.pm Liste de contrôle d’accès Subversion

Ce’s sage de contrôler l’accès en écriture à ces ressources, en les limitant aux personnes à la fois compétentes dans la base de code et autorisées à mettre en œuvre des contrôles de sécurité pour l’ensemble des actifs sous contrôle de version (aka tout).

C’est aussi une bonne idée d’inclure le @svnadmin groupe parmi ceux qui disposent d’un accès en lecture-écriture, mais’n’est pas strictement nécessaire même si vous avez besoin de nous pour réinitialiser manuellement vos ACL Subversion.

Règles générées dynamiquement via @chemin : :acl

Le système de paramétrage prend note de votre lib/path.pm les importations de seed_file_deps() et seed_file_acl(), ou des deux, et le report de ce choix dans son traitement interne des modifications de validation Subversion qui donnent lieu à une construction incrémentielle.

Contrôles personnalisés sur l’utilisation de seed_file_deps() et de seed_file_acl() dans lib/path.pm

Au-delà de l’importation de ces symboles lib/path.pm, vous pouvez également choisir comment et à quels fichiers vous souhaitez les appliquer lors de l’exécution d’un bloc de code walk_content_tree (). Après tout, il’s pas seulement un fichier de configuration, mais une base de code, avec toutes les fonctionnalités complètes de Turing Perl nous’Venez découvrir et apprécier !

Site Web construit et ACL Subversion’s synchronisé avec @path : :acl instantanément lors de la validation

Protection automatique pour les constructions de branches éphémères. Aucune configuration supplémentaire requise.

Contrôles intégrés du moteur de recherche PCRE

Même situation que l’interface utilisateur à usage général : elle effectue des vérifications croisées sur le serveur Subversion à partir de l’interface utilisateur.

Sur le site en direct, le moteur de recherche fera exactement la même chose lorsque vous activerez les recherches Markdown (arborescence source). Sinon, il exécutera des sous-demandes httpd sur votre site live pour vérifier si l’utilisateur est autorisé à accéder à ce fichier live (en supposant que vous ayez protégé votre moteur de recherche par mot de passe afin qu’il dispose de données utilisateur pour fonctionner).

Stratégies de sécurité du contenu

Google et/ou LinkedIn.

Les données doivent être fournies à partir de nos serveurs.

Le contenu doit être livré à partir de nos serveurs.

Javascript Code doit être livré à partir de nos serveurs.

CSS doit être livré à partir de nos serveurs.

Actuellement PDF’s uniquement.

Partage de ressources d’origine croisée

Dépendances tierces

Dépendances remarquablement brèves et éprouvées, dont les principales composantes sont Technologie Orion page.

Nomenclature logicielle (SBOM) disponible sur demande

Nous contacter pour plus de détails.


Index