Wie der Virenschutz in Mail.Ru Cloud erschien



    Hallo allerseits, mein Name ist Yuri Lazarev, ich bin der Systemadministrator von Mail.Ru Cloud . Vor kurzem haben wir eine automatische Virenprüfung aller in das Repository hochgeladenen Dateien implementiert. Alle Inhalte werden jetzt von Kaspersky Anti-Virus geprüft, dessen Produkte bereits in Mail.Ru Mail zum Virenschutz verwendet werden. Darüber hinaus wurden in die Cloud hochgeladene Dateien seit ihrem Start im letzten Jahr gescannt. Die Implementierung eines solchen Tests in einem hoch ausgelasteten Dienst bei gleichbleibend hoher Geschwindigkeit ist eine ziemlich schwierige Aufgabe.

    Als Analogie können wir den Bau eines einstöckigen Hauses und eines Wolkenkratzers vergleichen. Einstöckiges Haus kann auch von einer Person ohne tiefes Wissen und große Erfahrung gebaut werden, und diese Konstruktion wird zumindest stehen und dienen. Bei einem Wolkenkratzer ist alles viel komplizierter: Die Konstruktion eines solchen Gebäudes muss unter Berücksichtigung der Tragfähigkeit des Bodens, der Windlasten und vieler anderer Faktoren sorgfältig berechnet werden. Und der Antivirenscan im Cloud-Dienst ist ganz anders organisiert als auf Heimcomputern oder sogar in Unternehmensnetzwerken.

    Wenn Sie mehr über die Architektur der Cloud erfahren möchten, lesen Sie den vorherigen Artikelauf Habré. Auf diese Weise erfahren Sie, wie das Speichern und Hochladen der Datei in die Cloud erfolgt. Und hier beschreiben wir, wie wir es schaffen, in unserem hoch ausgelasteten System nach Petabytes an Daten auf Viren zu suchen, ohne die Qualität des Dienstes oder die Geschwindigkeit des Herunterladens und Überprüfens von Dateien zu verlieren.

    Neue Dateien

    In der Cloud gibt es eine Deduplizierung, dh, eine Datei mit einem bestimmten Inhalt ist nur in einer Instanz vorhanden (tatsächlich in zwei, da es eine Sicherungskopie gibt). Wenn 200 Personen dieselbe Datei hochladen, befinden sich 200 identische Dateien nicht im Speicher. Alle diese Benutzer erhalten einfach Kopien einer Datei. Warum? Erstens können wir so den Speicherplatz effizienter nutzen und den Benutzern mehr freien Speicherplatz für Informationen bieten. Darüber hinaus sparen wir Strom für die Prüfung von Dateien. Die Deduplizierung ermöglicht es uns derzeit, die Speicherauslastung um etwa 15% zu reduzieren.

    Das Scannen wird mehrmals ausgeführt: Sobald die Datei in die Cloud gelangt und später, unter Verwendung aktualisierter Antiviren-Datenbanken. Schließlich besteht immer die Möglichkeit, dass eine Datei mit einem neuen Virus infiziert wurde, der dem Antivirus zum Zeitpunkt des Downloads noch nicht bekannt war. Daher werden laufend Überprüfungen durchgeführt. Wenn die Datei infiziert ist, kann sie vom Dienst weder heruntergeladen noch verlinkt werden.

    Wir scannen Dateien auf separaten Servern, die ausschließlich für diese Aufgabe vorgesehen sind. Außerdem haben wir ein Hilfsprogramm geschrieben, mit dem Sie Dateien mit der Kaspersky-API scannen können. Tatsache ist, dass Sie die Box-Version des Antivirenprogramms nicht einfach auf einen Server stellen und ihn auffordern können, alle Dateien zu überprüfen. In diesem Fall wird es möglich sein, ein solches Phänomen wie eine hohe Leistung vollständig zu vergessen. Ein Antivirus-Produkt ist kein speziell für die Verwendung in Cloud-Systemen entwickeltes Tool, sondern muss integriert werden. Und der Antivirus-Scan-Prozess selbst in stark ausgelasteten Systemen muss streng verwaltet werden. Das oben erwähnte Dienstprogramm übernahm diese Rolle. Es bestimmt nicht nur die Reihenfolge der Prüfung von Dateien, sondern optimiert auch die Auslastung. Einfach zu beschreiben: Es ist nicht erforderlich, die gesamte Datei aus dem Repository herunterzuladen und zur Überprüfung einzureichen. Das Dienstprogramm nimmt den Anfang der Datei und lädt ein bestimmtes Stück aus dem Repository herunter. Als nächstes analysiert Kaspersky den Typ dieser Datei. In der Regel ist es nicht sinnvoll, den gesamten Inhalt der Datei zu überprüfen. Je nach Dateityp bestimmt das Antivirus-SDK die Scanstrategie. Als nächstes kommt die Anfrage an unser Hilfsprogramm, sie sagen, gib mir dieses Stück, und die notwendigen Informationen werden aus dem Repository heruntergeladen. Wenn das SDK feststellt, dass die Datei überprüft wurde, erhält es eine Markierung über den eigentlichen Scan, den Zeitpunkt der Ausführung und die Version der Antiviren-Datenbank. Durch die Verwendung des Verwaltungsdienstprogramms wird die Scan-Zeit erheblich verkürzt, das Netzwerk und die Laufwerke selbst werden entlastet. Es macht keinen Sinn, den gesamten Inhalt der Datei zu überprüfen. Je nach Dateityp bestimmt das Antivirus-SDK die Scanstrategie. Als nächstes kommt die Anfrage an unser Hilfsprogramm, sie sagen, gib mir dieses Stück, und die notwendigen Informationen werden aus dem Repository heruntergeladen. Wenn das SDK feststellt, dass die Datei überprüft wurde, erhält es eine Markierung über den eigentlichen Scan, den Zeitpunkt der Ausführung und die Version der Antiviren-Datenbank. Durch die Verwendung des Verwaltungsdienstprogramms wird die Scan-Zeit erheblich verkürzt, das Netzwerk und die Laufwerke selbst werden entlastet. Es macht keinen Sinn, den gesamten Inhalt der Datei zu überprüfen. Je nach Dateityp bestimmt das Antivirus-SDK die Scanstrategie. Als nächstes kommt die Anfrage an unser Hilfsprogramm, sie sagen, gib mir dieses Stück, und die notwendigen Informationen werden aus dem Repository heruntergeladen. Wenn das SDK feststellt, dass die Datei überprüft wurde, erhält es eine Markierung über den eigentlichen Scan, den Zeitpunkt der Ausführung und die Version der Antiviren-Datenbank. Durch die Verwendung des Verwaltungsdienstprogramms wird die Scan-Zeit erheblich verkürzt, das Netzwerk und die Laufwerke selbst werden entlastet. Es zeigt die Uhrzeit und die Version der Antiviren-Datenbank an. Durch die Verwendung des Verwaltungsdienstprogramms wird die Scan-Zeit erheblich verkürzt, das Netzwerk und die Laufwerke selbst werden entlastet. Es zeigt die Uhrzeit und die Version der Antiviren-Datenbank an. Durch die Verwendung des Verwaltungsdienstprogramms wird die Scan-Zeit erheblich verkürzt, das Netzwerk und die Laufwerke selbst werden entlastet.

    Derzeit haben wir mehr als 20.000 Festplatten mit Dateien von Cloud-Benutzern. Und die Überprüfung ist noch nicht abgeschlossen. Eine Vielzahl von Daten wird gespeichert, einschließlich großer Videodateien. Sie aus dem Speicher zu ziehen und sie über das Netzwerk zu befördern, wäre eine äußerst suboptimale Verschwendung von Ressourcen. Dank des oben beschriebenen Mechanismus ist es uns jedoch gelungen, einen Antiviren-Scan von mehreren zehn Servern durchzuführen. Mittlerweile werden pro Tag ca. 8 Millionen Dateien geprüft, ca. 50 Terabyte. Dies ist weit von der Spitzenleistung des Systems entfernt, außerdem haben wir die Möglichkeiten für eine weitere Skalierung gelegt.

    Warteschlange prüfen

    Auf diese Weise reduzieren wir die Speicherkosten und die Belastung durch die Verwendung von Deduplizierung und erhöhen mit dem Verwaltungsdienstprogramm die Geschwindigkeit der Virenprüfung erheblich. Dies würde jedoch nicht ausreichen, um eine so große Datenmenge schnell zu verarbeiten. Aus diesem Grund haben wir ein anderes Tool verwendet - die Verifizierungswarteschlange. Es ist nicht nur eine Liste von Dateien, zu denen Daten von unten hinzugefügt werden, sondern ein separater Dienst. Die Warteschlange selbst befindet sich auf einem separaten Server und wird vom Tarantool- DBMS gesteuert. Dies ist eine Eigenentwicklung der Mitarbeiter der Mail.Ru Group und zeichnet sich unter anderem durch eine sehr hohe Leistung aus. Dies ist der ausschlaggebende Faktor bei der Auswahl eines DBMS und nicht dessen Ursprung. Zunächst werden neue Dateien in die Cloud hochgeladen. Der Service Loader legt sie dort ab. Dateien mit der längsten Zeit seit dem letzten Scan werden ebenfalls zur Warteschlange hinzugefügt. Für den zweiten Dienst, der die Überprüfungswarteschlange auffüllt, ist die maximale Anzahl der hinzugefügten alten Dateien begrenzt, damit die Überprüfung neuer Dateien nicht verlangsamt wird. Jeder Server führt gleichzeitig mehrere dieser Verarbeitungsdienste aus. Jetzt versuchen wir, Dateien unterschiedlichen Typs und unterschiedlicher Größe in verschiedene Warteschlangen zu verteilen, um die Scan-Zeit für die meisten heruntergeladenen Dateien weiter zu verkürzen.



    Alte Dateien

    Aufgrund der Tatsache, dass die automatische Überprüfung einige Zeit nach dem Start der Mail.Ru Cloud implementiert wurde, wurden etwa 14 Petabyte an Daten gesammelt, die überprüft werden mussten. Außerdem lagen sie natürlich nicht auf derselben Maschine, sondern waren auf mehrere Rechenzentren verteilt. Die Situation wurde durch die Tatsache erschwert, dass alle diese Server aktiv sind, was bedeutet, dass es unmöglich war, sie mit Aufgaben zum Überprüfen von Dateien zu laden. Wenn der Server, auf dem die Dateien gespeichert sind, mit einigen analytischen Aufgaben beschäftigt ist, die die Hardwareressourcen des Speichers belasten, wird möglicherweise die Geschwindigkeit aller Vorgänge erheblich verringert, einschließlich der Übertragung von Dateien über das Netzwerk. In diesem Fall würde sich die Servicequalität verschlechtern.

    Es wäre auch unpraktisch, ein solches Datenvolumen schrittweise zu überprüfen, da dies zu lange dauern würde. Aus diesem Grund wurde beschlossen, so bald wie möglich zusätzliche Ressourcen für die Durchführung des Audits einzusetzen. Zu diesem Zweck wurde ein temporärer Cluster von 60 Servern zusammengestellt. Sie überprüften alle zuvor heruntergeladenen Daten in etwa drei Wochen.

    Wir haben auch berechnet, welche blockierte Malware am häufigsten vorkommt:



    Schlussfolgerungen und Zukunftspläne

    Dank der integrierten Verwendung des Verwaltungsdienstprogramms, der Scan-Warteschlange und des Tarantool-DBMS konnten wir eine hochleistungsfähige Virenprüfung nahezu in Echtzeit mit relativ geringen Ressourcen durchführen.
    Der Trend geht dahin, dass im Laufe der Zeit immer mehr Benutzerinformationen in den Clouds gespeichert werden. Daher wird die Virenprüfung nicht nur für Benutzergeräte, sondern auch für Onlinedienste, in denen ihre Daten gespeichert werden, zu einem integralen Bestandteil.

    Den Verifizierungsmechanismus in unserer Cloud werden wir weiterhin erheblich verbessern. Beispielsweise ist die Einführung des spezifischen Gewichts geplant. Dank dieses Parameters werden die von Benutzern am häufigsten angeforderten Dateien überprüft. Große Dateien werden in einer separaten Warteschlange zugewiesen, da ihre Überprüfung viel Ressourcen und Zeit in Anspruch nimmt. Das Organisieren solcher Warteschlangen für verschiedene Dateien ist eine interessante Aufgabe, die wir in einem der folgenden Beiträge behandeln werden.

    Jetzt auch beliebt: