BarsUP.AM: Wie wir ein Tool zum Schutz von Informationen von Webanwendungen entwickelt haben

Bild

BarsUp.Access Manager (BarsUp.AM) - unser Softwarepaket zum Schutz vertraulicher Informationen. Beim Entwurf und der Entwicklung dieses Systems gemäß den Anforderungen der Regulierungsdokumente der FSTEC von Russland stießen wir auf Schwierigkeiten bei der Verwaltung des Zugriffs auf Webanwendungen mithilfe zertifizierter Informationsschutz-Tools.

Der Beschluss des FSTEC von Russland Nr. 17 besagt, dass es eine Auswahl von Informationsschutzinstrumenten geben sollte, die für die Einhaltung der Anforderungen an die Informationssicherheit zertifiziert sind, unter Berücksichtigung ihrer Kosten, der Kompatibilität mit Informationstechnologie und technischer Mittel. Wir haben uns angesehen, was zu diesem Zeitpunkt auf dem Markt war, und verstanden: Die Kosten für Lösungen, die mit unseren Informationssystemen kompatibel sind, überstiegen häufig die Kosten der Systeme selbst, oder sie waren nicht kompatibel.

In diesem Fall meldet die Regulierungsbehörde, dass mangels geeigneter Mittel zum Informationsschutz deren Entwicklung (Überarbeitung) und Zertifizierung gemäß den Rechtsvorschriften der Russischen Föderation oder die Anpassung von Entwurfsentscheidungen organisiert sind . Wir haben uns entschlossen, in FSTEC of Russia Software zu entwickeln und zu zertifizieren, die die Funktionen Benutzeridentifikation und -authentifizierung, Zugriffskontrolle und Registrierung von Sicherheitsereignissen für die Möglichkeit ihrer Verwendung implementiert:

  • In automatisierten Systemen bis einschließlich Sicherheitsklasse 1G gemäß den Anforderungen des Leitfadens „Automatisierte Systeme. Schutz vor unbefugtem Zugriff auf Informationen. Klassifizierung automatisierter Systeme und Anforderungen an den Informationsschutz “(State Technical Commission of Russia, 1992);
  • 11 2013 . № 17 « , , » 11 2014 . « »;
  • 1 18 2013 . № 21 « ».

Das Produkt heißt BarsUP.Access Manager oder BarsUP.AM . Ich werde Probleme im Zusammenhang mit der Erlangung einer Entscheidung von der FSTEC und dem Abschluss von Vereinbarungen mit einem Prüflabor und einer Zertifizierungsstelle über die Grenzen dieses Materials hinaus beseitigen und beschreiben, wie wir Software zum Schutz von Webanwendungen entwickelt haben.

Start


Wir haben ein Team gebildet, das aus einem Projektmanager, einem Informationssicherheitsingenieur, einem Analysten, einem Softwarearchitekten und zwei führenden Entwicklern besteht. Während der Implementierung des Projekts haben wir die folgenden Arbeitsphasen identifiziert:

Bild

In der Analysephase haben wir Anforderungen aus den Regulierungsdokumenten gesammelt, die als Sicherheitstool für das Web implementiert werden können, und dann gemeinsam mit den Entwicklern die Möglichkeit ihrer Implementierung in Bezug auf aufgewendete Ressourcen und Zeit erarbeitet. Bei der Erörterung der Anforderungen haben wir den Wortlaut der Rechtsakte in eine für Analysten und Entwickler verständliche Sprache übersetzt und eine Roadmap erstellt: Was sollte zuerst implementiert werden, was optional ist. Parallel und nach der Produktentwicklung haben wir eine Dokumentation zur Zertifizierung verfasst.

Am Ausgang haben wir ein Produkt erhalten, das die folgenden Aufgaben löst:

  • (SSO) ;
  • ;
  • ;
  • ;
  • ;
  • .
  • , ;
  • ;
  • () , TOTP ;
  • ;
  • ;
  • () ;
  • ;
  • ;
  • horizontale Skalierbarkeit des Systems durch Clustering.

Die Software unterstützt zwei Standards für die Implementierung von Single Sign-On:

  • Security Assertion Markup Language (SAML);
  • OpenID Connect 1.0.

SAML Single Sign-On-Implementierung


Gemäß den Bestimmungen des SAML-Standards fungiert die Software als Identity Provider (IdP). IP-Subsysteme fungieren als Service Provider (SPs).

Das allgemeine Verfahren für die Arbeit mit Single Sign-On über SAML wird im Folgenden vorgestellt:

Bild

  1. Der Benutzer versucht, den Webzugriff auf die Anwendung (SP) zu implementieren.
  2. Die Anwendung prüft, ob ein Sicherheitskontext vorhanden ist, generiert in Abwesenheit eine AuthnRequest-Nachricht und leitet den Browser des Benutzers an den Autorisierungsserver BarsUP.AM (IdP) weiter.
  3. Der Benutzer stellt eine Verbindung zum Autorisierungsserver her und gibt seine Anmeldeinformationen ein.
  4. , ;
  5. Response;
  6. , Response. Response .

Der Nachrichtenaustausch zwischen den Parteien erfolgt in Form von SAML- Aussagen (Assertions) . SAML-Ansprüche werden mithilfe des sicheren HTTPS-Protokolls übertragen.

Zwischen dem IdP-Identitätsanbieter und den SP-Dienstanbietern wird eine Vertrauensbeziehung hergestellt. Übertragene SAML-Nachrichten, einschließlich AuthRequest und AuthResponse, werden mit digitalen SP- bzw. IdP-Zertifikaten signiert.

Eine AuthRequest-Nachricht wird mit dem privaten Schlüssel der Anwendung signiert und mithilfe von HTTP-Umleitungs-, HTTP-POST- oder HTTP-Artefaktnachrichten an den Autorisierungsserver übermittelt. Eine AuthRequest-Nachricht enthält insbesondere die folgenden Informationen:

  • Anwendungs-URL
  • URL des IdP-Identitätsanbieters (BarsUP.AM Authorization Server);
  • ID und Zeitpunkt der Anforderungserstellung.

Die AuthnResponse-Antwortnachricht wird mit dem privaten Schlüssel des Autorisierungsservers signiert. Eine AuthnResponse-Nachricht enthält insbesondere die folgenden Informationen:

  • AuthRequest-Anforderungskennung, der diese Antwort entspricht;
  • Antwort-Handler-URL
  • den Zeitraum, in dem die Antwort als gültig angesehen wird;
  • Datum und Uhrzeit der Benutzerauthentifizierung
  • Benutzersitzungskennung;
  • Benutzerattribute und ihre Werte.

Implementieren von Single Sign-On basierend auf OpenID Connect


OpenID Connect ist eine Erweiterung zur Benutzeridentifizierung und -authentifizierung über das OAuth 2.0-Protokoll.

Bei der Implementierung von Single Sign-On mithilfe der OpenID Connect-Technologie fungiert BarsUP.AM als OpenID-Anbieter (OpenID Provider, OP). Informationssysteme (d. H. Gezielte Webanwendungen, auf die der Benutzer zugreift) fungieren als vertrauende Partei (Relying Party, RP), die das OP verwendet, um den Benutzer zu authentifizieren.

Die Implementierung von Single Sign-On über OpenID Connect wird in der folgenden Abbildung beschrieben:

Bild

  1. Ein Benutzer versucht, auf eine Webanwendung (SP) zuzugreifen.
  2. Die Anwendung generiert eine Autorisierungscode-Anforderung (OAuth2.0-Protokoll) und leitet den Browser des Benutzers an den Autorisierungsserver BarsUP.AM (OP) weiter.
  3. Der Benutzer gibt seine Anmeldeinformationen in OP ein.
  4. OP ;
  5. , OP RP . , Authorization Response, ;
  6. RP OP, (Token Request). TLS;
  7. , OP RP (ID Token, Access Token);
  8. RP .

BarsUP.AM web-


Um Angriffe zu vermeiden, die darauf abzielen, das OP oder RP zu fälschen, müssen sie sich gegenseitig authentifizieren.

BarsUP.AM unterstützt die in der Spezifikation für OpenID Connect definierten Authentifizierungsmethoden. Das Funktionsprinzip von OpenID Connect und OAuth 2.0 basiert auf der Verwendung von Identifikationstoken (ID-Token) und Autorisierung (Zugriffstoken).

Ich werde die Implementierung der grundlegenden Sicherheitsfunktionen in Software geben:

  • Benutzeridentifikation und -authentifizierung;
  • Zugangskontrolle;
  • Protokollierung von Sicherheitsereignissen.

Benutzerauthentifizierung und Authentifizierung


Die Identifizierung und Authentifizierung wird in BarsUP.AM basierend auf Benutzername und Passwort implementiert. Der Benutzer gibt seine Anmeldeinformationen auf der Webseite für die BarsUP.AM-Authentifizierung ein. In diesem Fall werden die Anmeldeinformationen in sicherer Form über das HTTPS-Protokoll übertragen. Der Zugriff auf die Zielanwendung ist nur zulässig, wenn die Authentifizierung erfolgreich ist. Somit werden Benutzeridentifikation und -authentifizierung mit Fernzugriff auf IP realisiert.

Bei der Eingabe des Passworts wird das Passwort nicht im Webformular angezeigt und das Special ersetzt. Figuren. Aus diesem Grund wird bei der Eingabe von Authentifizierungsinformationen ein Feedback-Schutz implementiert.

Die BarsUP.AM-Kennwortrichtlinie sieht die folgenden Einstellungen vor:

  • Hashing-Algorithmus;
  • Benutzername im Passwort verbieten;
  • Mindestanzahl von Ziffern in einem Passwort;
  • minimale Passwortlänge;
  • Mindestanzahl von Kleinbuchstaben;
  • Mindestanzahl von Großbuchstaben;
  • Mindestanzahl von Sonderzeichen;
  • Länge des Passwortverlaufs;
  • erzwungene Passwortänderung nach einer bestimmten Zeit;
  • Die Mindestanzahl von Zeichen, die im neuen Passwort geändert wurden.

BarsUP.AM unterstützt auch die Benutzerauthentifizierung mit mehreren Faktoren (zwei Faktoren).

Zugangskontrolle


BarsUP.AM implementiert die automatische Unterstützung der Benutzerkontenverwaltung und die automatische Sperrung von Benutzerkonten.

Der Administrator kann nach eigenem Ermessen Benutzerkonten erstellen, ändern, löschen, blockieren und entsperren. Benutzerkonten werden vom Administrator über die Webkonsole des BarsUP.AM-Verwaltungsservers erstellt. Beim Erstellen eines Kontos werden Name, E-Mail-Adresse, Gültigkeitsdauer des Kontos und gegebenenfalls andere Benutzerattribute angegeben. Das Passwort wird vom Benutzer bei der ersten Anmeldung gemäß der Passwortrichtlinie geändert. Benutzerkonten können mit bestimmten Gruppenattributen und Berechtigungen gruppiert werden.

Die folgenden Sperrmechanismen für Benutzerkonten sind:

  • Administratorblockierung;
  • Sperren am Ende des festgelegten Zeitraums für die Nutzung des Kontos;
  • Sperren nach einem bestimmten Zeitraum der Nichtbenutzung des Kontos;
  • Blockieren bei Überschreitung erfolgloser Anmeldeversuche;
  • Blockieren, wenn die Anzahl der parallelen Sitzungen überschritten wird.

Das Konto wird vom Administrator oder nach Ablauf des Sperrzeitlimits entsperrt (z. B. wenn es aufgrund einer Überschreitung der Anzahl fehlgeschlagener Anmeldeversuche gesperrt wird).

BarsUP.AM implementiert die Zugriffskontrolle von Subjekten bei Eingabe der IP. Jedem Benutzer oder jeder Benutzergruppe in BarsUP.AM können Rollen und Rechte zugewiesen werden. Rechte können für ein bestimmtes System oder für die gesamte Domäne gelten, die mehrere Systeme (Anwendungen) enthält. Informationen zu Rolle und Rechten werden vom Administrator festgelegt und in Form von Zugriffsattributen festgelegt.

Protokollierung von Sicherheitsereignissen


BarsUP.AM implementiert das Sammeln, Aufzeichnen und Speichern von Informationen zu Sicherheitsereignissen während des Remote-Webzugriffs auf IP. Insbesondere werden Ereignisse im Zusammenhang mit dem Ändern von Benutzerkennwörtern, dem Einrichten und Löschen von Benutzerkonten, dem Ändern von Zugriffssteuerungsregeln und Benutzerberechtigungen aufgezeichnet.

Sicherheitsereignisse werden im Ereignisprotokoll protokolliert. Für jedes Ereignis werden Datum und Uhrzeit, die Art des Ereignisses, das betroffene System, der dem Ereignis zugeordnete Benutzer und die IP-Adresse des Knotens aufgezeichnet. Der Protokollierungsserver wird zum Speichern von Ereignisprotokollen verwendet.

Ereignisse sind in Kategorien unterteilt, einschließlich Sicherheitsereignisse und Systemereignisse. Die Rechte zum Anzeigen des Ereignisprotokolls werden dem Administrator gewährt.

Die Zusammensetzung der aufzuzeichnenden Sicherheitsereignisse kann angepasst werden. Die Definition der aufzuzeichnenden Sicherheitsereignisse und ihrer Speicherzeiten wird in den Organisations- und Verwaltungsdokumenten zum Informationsschutz aufgezeichnet

Gesamt


Das Projekt dauerte 6 Monate, ohne die Testzeit und die Arbeit der Zertifizierungsstelle. Wenn wir jetzt Projekte implementieren, um den Schutz von Informationen in Informationssystemen zu gewährleisten, haben wir keine Kopfschmerzen mehr, wie Webanwendungen geschützt werden sollen.

Source: https://habr.com/ru/post/undefined/


All Articles