Orion-Sicherheit

Schloss.

“Sicherheit durch Dunkelheit ist überhaupt nicht viel Sicherheit.”

Beliebte Paraphierung des amerikanischen Schlossers Alfred Charles Hobbs 1851, der während einer Londoner Ausstellung in diesem Jahr leicht die Crystal Palace Schlösser auswählte. Wir sind uns voll und ganz einig, weshalb unsere Blueprints für unsere Oracle Cloud Infrastructure-(OCI-)Automatisierungs-Engine verfügbar auf GitHub.

Sicherheit der Orion-Infrastruktur

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

 

FIPS 140-3-konform mit MFA-Dreifachverschlüsselung für Reverse-Port-Weiterleitungsservices (HTTPS/SSH/IPsec). Gürtel, Hosenträger und Steigbügel!


 

RBAC Modell, gepfeffert mit Atrus OTP/TOTP-Herausforderungen

Der gesamte Anmeldezugriff für den Infrastrukturaccount erfordert die Bereitstellung von Zugangsdaten für die Multifaktor-Authentifizierung, einschließlich OCI-Accounts. Es gibt keine Hintertüren zu dieser Richtlinie.

Für den SSH-Zugriff aller Mitarbeiter auf Unternehmensrechner ist eine YubiKey PKI-Integration mit privaten ECDSA-SHA-2-NISTP-256-Autorisierungsschlüsseln erforderlich, die in PKCS11-Slots auf dem Yubikey gespeichert sind, oder eine direkte Smartcard-Integration mit ED25519-sk Pkeys.

Keine festen Passwörter auf Festplatten gespeichert. Diese limits kopflose Automatisierung von sudo / RBAC Nutzung, aus gutem Grund. Allerdings haben wir Werkzeug die Mühe zu beseitigen, auf Aufforderungen verschiedener Art zu reagieren.

Sandboxed-Ausführung für Builds und CGI-Skripte

Wir stellen “Shared-Nichts” Zonen-Builds, Standard ist null Netzwerkverfügbarkeit. Dies bedeutet, dass ein Kunden-Build nur auf seine eigenen Assets zugreifen oder diese ändern kann, nicht auf die anderen Kunden oder auf andere Systempfade in der Zone selbst (neben /tmp). Darüber hinaus haben nur Geschäfts- und Unternehmenskunden während ihrer Builds Internetzugriff, da sie ihre eigenen eindeutigen Solaris-Zonen verwenden, die genau auf ihre Build-Anforderungen zugeschnitten werden können.

Ditto für CGI-Skripte, die vollständig im Hinblick auf den Schreibzugriff auf andere als /tmp.

Ende-Ende-Verschlüsselung

Zero Trust-Aspekte

Die Grundvoraussetzung von Zero Trust-Architektur Es ist zu vermeiden, Ihre Netzwerksicherheit um die Physiologie der Muschel zu gestalten: hart auf der Außenseite, aber weich und locker, wenn Sie in sind. Wir spenden’t tun das; jeder bedeutende privilegierte Netzwerkport innerhalb der verschiedenen Point of Presence (POP) LANs ist nur der Bare-Metal-Maschine ausgesetzt’s-Loopback-Geräteschnittstelle lo0, und ist nur im Kontext einer (umgekehrten) übermittelten SSH-Verbindung zu dieser sinnvoll.

Wir verwenden TCP-Proxys, keine HTTP-Proxys und keine MSA-Backends. Der einzige Host, der Ihren unverschlüsselten TLS-Webverkehr sieht, ist der Host, der ihn entschlüsselt. Dieselben Regeln gelten für Subversion-Traffic — Nur direkter, End-to-End-TLS-verschlüsselter Datenverkehr zum Service-Endpunkt sieht Ihre unverschlüsselten Daten auf der Leitung.

Viel Glück mit den MSA-Ebenen und Ebenen der privaten Datenexposition mit anderen Anbietern. Der Feind von “Nichtfunktionales Engineering” Komplexität ist. Es ist viel einfacher, aussagekräftige Sicherheitsversprechen zu geben, wenn Ihr Produkt ein föderierter Monolith anstelle eines massiven MSA-Minenfeldes ist, was ein weiteres konträres Unterscheidungsmerkmal zwischen Orion und seinem Wettbewerbsgebiet ist.

Diese Infrastruktur ist voll automatisiert, sobald eine Region online gestellt wird, aber’Alles, was wir öffentlich über die Architektur teilen können (Ausgleich der hobbsischen Transparenz mit dem militärischen Mantra) “Lose Lippen spülen Schiffe” mehr Kunst als Wissenschaft). Sicher sein — über das Brechen des Antispoofings hinaus lo0 Schutz innerhalb Solaris 11’s (BSD) Paketfilter selbst, es gibt keine sinnvollen Mittel, um Zugriff auf diese Dienste zu erhalten, auch nicht für Kundenkonten.

Selbst wenn der Master-OCI-Kontrollaccount kompromittiert ist, bleibt die Vertraulichkeit und Integrität aller Kundenassets unverletzlich. Alles, was ein Black-Hat tun kann, ist ein Chaos mit der Kundenwebsite Verfügbarkeit zu machen. Insbesondere können sie nicht auf die Subversion-Servicedatensätze zugreifen. Wir können die gesamte OCI-Infrastruktur von Grund auf in 48-72 Stunden nach dem schlechten Apfel rekonstruieren’OCI-Zugriff wurde beendet.


Logging, Überwachung und Auditing

Wir empfehlen Enterprise-Kunden, ein Splunk-Konto zu erstellen, und wir werden Ihrem Konto nahezu Echtzeit-Weblogs von jedem globalen POP aus bereitstellen, den Sie benötigen. Fehlerprotokolle für das serverseitige CGI-Skripting werden auch Splunk zur Verfügung gestellt.

Wir überwachen die Serviceverfügbarkeit von allen unseren OCI-POPs weltweit und lösen HA (Availability-Domain) oder regionale Failover-Ereignisse aus, wenn ein Serverausfall länger als 30 Sekunden dauert.

ACL-Auditing kann durch einfaches Erstellen einer Website durchgeführt werden’s Subversion HEAD mit Apache Licensed Orion SSG Skript und Prüfung des resultierenden Builds www/.acl Datei in Ihrem Kassenausgangsverzeichnis, jederzeit wünschen. Normalerweise dauert der Build-Prozess auf moderner Hardware weniger als 10-15 Sekunden.

Subversion Server-seitige Commit-Hooks sind auch an Ihre Aufsichtsprobleme anpassbar. Von einem einfachen Commit-Mailer bis hin zum sicheren Zugriff auf unseren svnpubsub-Daemon gibt es eine beliebige Anzahl von benutzerdefinierten Konfigurationen.


Orion-Anwendungssicherheit

Öffentliche SSR ist ein Geruch.

ACL-Verwaltung

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

 

Orion’Das Sicherheitsmodell wird zentral von den Einstellungen verwaltet, die in @path::acl als verstopft in lib/path.pm. Offshoot-Serverkonfigurationsdateien werden bei jeder erstellten Änderung dynamisch generiert.

Wenn Sie das Sicherheitsmodell des POSIX-Dateisystems verstehen, sind Sie mit Orion zu Hause’s mod_dav_svn Autorisierungsmodell und der Apache HTTPd Webserver’s .htaccess-Kontrollen, die automatisch von Ihrer Website generiert werden’s lib/acl.yml YAML-Konfiguration.

OpenIDC SSO-Sicherheit

Alle OpenID-Sessioncookies sind HttpOnly und “Sicher” gekennzeichnet, sodass Javascript-Session-Stealing-Versuche vom Orion Online Editor effektiv neutralisiert werden.

Alle Cookie-Zugangsdaten werden zusätzlich AES-256 verschlüsselt unter einem HMAC SHA-1 Hash.

Bcrypt für Subversion-Kennwörter

Anpassbare Anzahl von Runden (derzeit standardmäßig 5).

Beschädigter Datenschutz

Alle unsere Perl-Laufzeiten haben obligatorische Taint-Prüfungen mit der -T-Flagge aktiviert; ein leistungsstarker, einzigartiger Perl-Schutz vor Remote Shell Exploits.

Wiki-Probleme

Wiki-Sicherheit umfasst mehrere Faktoren:

  1. UI-/API-Sicherheit

  2. Middleware-/Backend-Sicherheit

  3. Schutz vor Vorlagendurchlauf

  4. ACL-Kompatibilität für Suchmaschine

Wir befassen uns mit diesen Themen, wie sie sich unten auf Orion beziehen.

Online-Editor

Der Online-Editor unterstützt eine JSON-UI, indem Sie einfach Ihren User-Agent festlegen’s Akzeptieren Sie die Kopfzeile, um die Anwendung/json MIME-Typ, sodass die Sicherheitskontrollen sowohl für die UI als auch für die API identisch sind.

Außerhalb des direkten Subversion-Zugriffs ist keine administrative UI/API vorhanden.

Subversion-ACLs steuern den serverseitigen Lesezugriff auf Arbeitskopien

Jede über die Benutzeroberfläche verfügbare Arbeitskopierressource wird mit Ihren Subversion-ACLs verglichen, bevor sie dem Benutzer präsentiert wird. Auf diese Weise stellen wir sicher, dass der Lesezugriff auf nicht autorisierte Ressourcen für die Assets unter Versionskontrolle (auch alles genannt) verhindert wird.

Commit-Zugriff wird direkt mit Subversion-ACLs gesteuert

Nichts kann ohne einen entsprechenden autorisierten Subversion Commit über das Netzwerk erstellt und anschließend angezeigt werden. Das Hauptproblem hier ist die Kontrolle darüber, welche Informationen einem Wiki-Seitenautor zur Verfügung stehen.’S festgeschriebene und erstellte Bearbeitungen.

Wenn Sie die Vorverarbeitung von Vorlagen auf den Markdown-Quellseiten zulassen, müssen Sie wissen, wie Vorlagenargumente den Inhalt anderer Dateien im Baum als Variablen für die Quelle der bearbeiteten Seite verfügbar machen.

Oft kann die bearbeitete Seite, wenn sie dazu konfiguriert ist, ihre eigenen Abhängigkeitsdateien in den Kopfzeilen der Seite deklarieren, was zu denken ist, wenn Sie Feature-Sets gegen Sicherheitseinstellungen in Ihrem Wiki abwägen.’s Informationsarchitektur.

Während wir Ihnen Unterstützung und Unterstützung anbieten können, um Ihren Bedürfnissen gerecht zu werden,’Es liegt wirklich an Ihnen, zu entscheiden, wie Sie die Skalen für Ihr Unternehmen ausgleichen.’Unternehmens-Wiki.

Siehe folgenden Abschnitt auf Abhängigkeits-/ACL-Injection-Steuerelemente für weitere Details und Checkout dieses Live-Beispiel, wie einfach ACL’s kann zentral konfiguriert werden in 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:
    "@svnadmin": rw
    "*":

Inhaltsautoren können Seitenbeschränkungen auf der Seite konfigurieren’s Kopfzeilen:

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

Geschützte Ressourcen können von nicht autorisiertem Personal nicht in eine Verzweigung kopiert werden, auch wenn keine zusätzlichen ACL-Steuerelemente bei der Erstellung und Änderung von Verzweigungen vorhanden sind. Das heißt, das System unterstützt Filialexperimente ohne zusätzliche Kontrollen Ihrerseits, um sicherzustellen, dass geschützte Vermögenswerte in jeder Filiale geschützt bleiben.’natürlichen Lebenszyklus.

System-ACLs erstellen?

Das Build-System ist allsehend und allwissend, aber wir können sicherstellen, dass Ihre gebauten, geschützten Assets nur für die Teams sichtbar sind, die Sie in den Subversion-ACLs verwalten und kontrollieren.

Das Build-System zeigt die Liste der Dateinamen an, die bei einem Commit über die Browser-IDE erstellt wurden. Diese Liste basiert jedoch nur auf einem Benutzer.’s Lesezugriff auf die vom Benutzer abhängigen Ressourcen’s Hinzufügen, Aktualisieren oder Löschen von Inhaltsaktionen im Commit.

Durchlaufkontrollen für Vorlage

Siehe sanitize_relative_path:

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

Dieser Code erzwingt die folgenden Regeln in diesem Abschnitt.

Tags einschließen und erweitern

Alle Zieldateien befinden sich in einem Unterordner der /Vorlagen/ Ordner und muss als absolute Pfade referenziert werden, die in diesem Ordner verwurzelt sind.

SSI-Tag

Alle Zieldateien befinden sich in einem Unterordner der /Inhalt/ Ordner und muss als absolute Pfade referenziert werden, die in diesem Ordner verwurzelt sind.

Wenn der Zielpfad nicht konfiguriert ist in @path::Muster mit einer übereinstimmenden Einstellung, mit der der betreffende Zielpfad entweder archiviert oder kategorisiert werden kann, Ssi Vorgang nicht erfolgreich.

Das liegt daran, Ssi Unterstützung ist eine Voraussetzung für diese Featuresets, um Ihre Site zu erhalten’s taget permalinks.

Abhängigkeits-/ACL-Injection-Steuerelemente

Kontrolliert von lib/path.pm Importe.

Bibliothek/{Pfad, Anzeigen}.pm Subversion-ACLs

Es’klug, den Schreibzugriff auf diese Ressourcen zu kontrollieren, indem sie auf Personen beschränkt werden, die sowohl in der Codebase als auch autorisiert sind, Sicherheitskontrollen für den gesamten Satz von Assets unter Versionskontrolle (auch alles genannt) zu implementieren.

Es ist auch eine gute Idee, die @svnadmin Gruppe unter denen mit Lese- und Schreibzugriff, aber es’Es ist nicht unbedingt notwendig, auch wenn Sie von uns verlangen, dass wir Ihre Subversion-ACLs manuell zurücksetzen.

Dynamisch generierte Regeln über @Pfad::acl

Das Build-System nimmt Ihre lib/path.pm Importe von seed_file_deps() und seed_file_acl() oder beides und übertragen diese Auswahl bei der internen Verarbeitung von Subversion Commit-Änderungen, die zu einem inkrementellen Build führen.

Tracking der kontrollierten Inhaltsmigration

Wenn Sie den Benutzern die vollständige Versionskontrollhistorie zur Verfügung stellen, müssen Sie darauf achten, dass die Autorisierungskontrollen am ursprünglichen Standort des kontrollierten Materials beibehalten werden.

Andernfalls könnte das Material versehentlich einem historischen Forscher ohne die erforderlichen Autorisierungen ausgesetzt werden.

Das Orion CMS’Die Verfolgungslogik zum Verschieben/Löschen verarbeitet diese nahtlos.

Benutzerdefinierte Steuerelemente für die Verwendung von seed_file_deps() und seed_file_acl() in lib/path.pm

Neben dem Import dieser Symbole auf lib/path.pm, gibt es auch eine Wahl, wie und auf welche Dateien Sie sie anwenden möchten, während einer walk_content_tree ()-Codeblockausführung. Schließlich ist es’s nicht nur eine Konfigurationsdatei, sondern eine Codebasis, mit allen Turing-Funktionen Perl wir’Sie kennen und schätzen es!

Built Website .htaccss-Dateien und Subversion-Autorisierungsdateien werden mit @Pfad::acl sofort nach Commit

Automatischer ACL-Schutz für ephemere Zweig-Builds. Keine zusätzliche Konfiguration erforderlich.

Integrierte Steuerelemente für PCRE-Suchmaschine

Gleiche Situation wie die allgemeine Benutzeroberfläche: sie prüft den Subversion-Server über die Benutzeroberfläche.

Auf der Live-Website wird die Suchmaschine dasselbe tun, wenn Sie Markdown-Suchen (Quellbaum) aktivieren. Andernfalls führt es httpd-Unteranfragen auf Ihrer Live-Site aus, um zu testen, ob der Benutzer autorisiert ist, auf diese Live-Datei zuzugreifen (vorausgesetzt, Sie haben Ihre Suchmaschine passwortgeschützt, damit sie mit Benutzerdaten arbeiten kann).

Inhaltssicherheits-Policys

Google und/oder LinkedIn.

Daten müssen von unseren Servern geliefert werden.

Die Inhalte müssen von unseren Servern geliefert werden.

Javascript Code muss von unseren Servern ausgeliefert werden.

CSS muss von unseren Servern geliefert werden.

Aktuell PDF’Nur s.

Quellübergreifende Ressourcenfreigabe

Abhängigkeiten von Drittanbietern

Bemerkenswert kurze und bewährte Abhängigkeiten, deren Hauptbestandteile auf der Orion-Technologie Seite.

Software Bill of Materials (SBOM) auf Anfrage verfügbar

Kontakt für weitere Details.


Index