Der Grund für das Labor

Möglicherweise haben Sie mit einiger Unterbrechung bemerkt, dass Sie das große Gesicht von ZARDOZ sind, wenn Sie versuchen, darauf zuzugreifen. Der Grund ist, dass ich spiele (in meiner Freizeit, wie wenn ich schreibe), um mir eine WAF zu schreiben, die ich aus der Erfahrung lernen kann. Der Grund ist nicht professionell im eigentlichen Sinne: Erstens bin ich kein Full-Stack-Programmierer, also verkaufe ich keinen Code.

Zweitens interessiert es mich, etwas zu schaffen, das vereinfacht. Ansonsten hätte ich Snort + Pulledpork einfach direkt nach der Kündigung von https installiert, was keine WAF ist, aber einige nette Regeln hat. Oder ModSecurity oder eine ähnliche Software, die als WAF fungiert.

Die Wahrheit ist, dass ich daran interessiert bin zu verstehen, wie viel Software in der Größe reduziert werden kann. Und das aus einem Grund.

Sicherlich können wir das raffinierteste Waf der Welt installieren, es kaufen, das ich von Juniper kenne, und auch die Möglichkeit abdecken, in der eine Regierung unsere Weihnachts-IoT-Lichter angreift. Böse Regierungen, die Weihnachten hassen oder Rentier-DDOS machen wollen.

Das Problem ist jedoch ein anderes. Dass das Zeug das Licht nicht anmacht und man kein Monster haben kann, das zu Hause zweieinhalb Kilowattstunden verbraucht. Und sogar im Laden. Und nicht vor deinem IoT.

Aber es ist nicht nur die IoT-Welt (die endlich startet, auch wenn die Software-Komponente scheiße ist), die die Dringlichkeit zeigt, die Software zu vereinfachen. Das Problem ist, dass die Ära der gigantischen Rechenzentren bald endet.

Das erste Problem ist die Energie: Google und Facebook können sagen, was sie wollen, aber ihre Rechenzentren verbrauchen AUCH. Nicht zu viel für die heutige Welt, aber zu viel für die kommende Welt. Ich weiß, dass Facebook Greta & Co Lynch macht und die Verschwörung zum Klimawandel anstachelt, und ich weiß, dass Google die schlimmsten Dinge auf Youtube toleriert:

Aber am Ende sehen wir bereits die Rechnung kommen, und in ein paar Jahren wird dies passieren:

Ich beziehe mich auf den Moment, in dem die wirtschaftlichen Kosten der Sache im Leben des Bürgers sichtbar werden.

Natürlich werden Sie mir sagen, dass wir in 5 Jahren alle auf erneuerbare, recycelte biologische Energie mit kreisförmigen Elektronen setzen werden, aber in der Zwischenzeit besteht das Problem darin, dass diese Umwandlung einige Folgen haben wird. Kurz gesagt, Rechenzentren verbrauchen zu viel und es macht wenig Sinn, fast zwei Kilowattstunden aufzuwenden, um 1 GBi für die Welt zu bewegen.

Wenn die Architekten von AWS massiv ARM64-basierte Rechenzentren implementieren, liegt dies schließlich nicht daran, dass die Server die Leistung immer noch erhöhen.

Das Problem auf dem IT-Markt besteht also früher oder später nicht mehr darin, Kafka zu kennen (um ein Beispiel zu nennen), sondern NATS zuzulassen.

"Genug sein" bedeutet natürlich, einige der wertvollen Modewörter von Kafka zu verlieren, die coole Programmierer so gut gebrauchen, weil sie nicht wissen, wie man sie programmiert , um fantastische Dinge zu tun und Probleme zu lösen, die niemand hat , wie der unentbehrliche Zunder für Hunde .

Im Gegenteil, der nächste Trend ist die Vereinfachung. Aus mehreren Gründen:

  1. Es ist immer dringender, die Angriffsfläche der Systeme zu reduzieren. Die einfachste Möglichkeit, immer strengere Sicherheitsanforderungen zu erfüllen, besteht darin, den Umfang des Projekts zu verringern.
  2. Der Energieverbrauch in der IoT-Welt wird immer wichtiger. Immer öfter wird Programmierern gesagt, "dieses Zeug muss auf einem WIFI-Dildo laufen" und nicht "auf einem Server".
  3. Im Allgemeinen gibt es viele Rechenzentren, die satanisch viel Energie verbrauchen, um zu funktionieren, und doppelt so viel, nur um sich abzukühlen, wird es nicht lange dauern. Und es gibt kein Moore-Gesetz zur Energieeffizienz, obwohl viele Mühe haben, es zu schaffen.

Jetzt habe ich gesagt, dass "genug sein" die nächste Kunst für Programmierer und Systemingenieure sein wird. Und eine WAF für Ihre IoT-Steckdosen ist sicherlich keine 6U Juniper-Box. Es muss laufen, wenn alles gut geht, auf Ihrem Heimrouter, wenn nicht auf etwas wie einer Himbeere.

Mit begrenztem Speicher und allem.

Nehmen wir nun das Thema Bayesianer als Beispiel. Es gibt viele Bibliotheken, angefangen von den echten wissenschaftlichen, die Ihnen eine große Auswahl an Bayesianern mit allen Arten von Optimierungen bieten, bis hin zu einfachen Bibliotheken, die auf github zu finden sind. Das Problem der Zukunft für diejenigen, die nicht in der Lage sein werden, Energie für "fette" Prozessoren auszugeben, wird es sein, dass einfache Dinge ausreichen.

Zum Beispiel habe ich vor ein paar Tagen eine Version von ZARDOZ getestet, die Klassen als Bayesianer verwendete, aber anstatt die Wahrscheinlichkeiten zu berechnen, berechnete sie die Entropie der Eingabeanforderung im Vergleich zu den Klassen, die als Wörterbuch betrachtet werden. Es ist offensichtlich eine unvollständige Lösung, aber genauso effektiv war es vergleichbar mit einigen einfachen Bayesianern, die es gibt.

Schließlich gibt es verschiedene Möglichkeiten, die Informationsentropie zu berechnen, je nachdem, ob sie spezifisch ist, total, absolut und so weiter. Das Problem, genug Dinge zu bekommen, ist, dass wir die kostengünstigste Version rechnerisch anpassen müssen.

Diese Übung besteht darin, eine Lösung zu finden, die möglicherweise nicht allgemein ist, die nicht den endgültigen Rahmen darstellt, der alles tut, die nicht akademisch korrekte Lösung darstellt und nicht die erstaunlichen Modewortspezifikationen bietet, die für den modernen Programmierer erforderlich sind , aber das muss mit wenig, bescheidener Hardware und speziell in einigen verschiedenen Anwendungsfällen funktionieren.

Das Problem besteht darin, keine bestimmte Technologie oder Sprache zu verwenden: Das Problem ist ein Problem der Denkweise.

Wenn Sie ein Systemarchitekt sind und Programmierer fragen, wie viele Hardwareressourcen für Hello World benötigt werden, können dies heute ohne einen Servercluster mit weniger als 256 GB RAM, 4 CPUs und einer TB Festplatte nicht drehen. Denn nur für den Kafka-Cluster, der dazu dient, Hello World an einen Kafka-Cluster zu senden, der es dann in eine elastische Suche wie Sink umwandelt, die es dann bei Hadoop ausführt, allesamt in einem Kubernetes-Cluster installiert, und zwar mit hoher Zuverlässigkeit Wenn '), schreiben Sie "Hello World" auf die Konsole, von der Sie träumen. Auch weil wir ein mittlerweile unverzichtbares API-Gateway und die CI / CD-Kette aus dem Konto entfernt haben, ganz zu schweigen von dem gesamten Teil von DevOps.

(In Wirklichkeit haben sie einfach keine Ahnung, was sie sagen, und multiplizieren einfach die Leistung ihres Laptops mit fünfzig. Aus Sicherheitsgründen multiplizieren sich ihre PM mit zwei, die nicht schlecht aussehen möchten. Aus Angst vor Schnitten Ihr Vorgesetzter wird vorschlagen, sich wohl zu fühlen, damit sie, auch wenn sie nicht alles bekommen, dasselbe tun. Und ungeheure Hardware-Anfragen kommen auf den Schreibtisch. Wenn Sie es nicht glauben, fragen Sie sie, wie sie diese Zahlen berechnet haben, aber behalten Sie sie Popcorn zur Hand. ).

Der Punkt ist, und das ist, dass ich ein bisschen trainiere, um vereinfachte Ansätze zu verwenden.

Also ja, ich werde versuchen, eine WAF in ein paar Zeilen zu schreiben, und so ja, manchmal werden Sie das Zardoz-Gesicht finden.

Und wenn Sie in der Branche arbeiten, empfehle ich Ihnen, sich auf das Gleiche vorzubereiten, da das Fett in vielen Branchen landen wird, kleine und kleine leistungsstarke Geräte den größten Teil des Budgets ausmachen, das leistungsstarke Backend zu einem Luxus wird, der nicht immer verfügbar ist, und Sie werden daher die Aufforderung finden, "alles mit wenig Hardware zum Laufen zu bringen, wobei die Tatsache, dass die Anzahl der Anwendungsfälle begrenzt ist, die einzige Strategie ist".

Und deshalb müssen Sie sich daran gewöhnen, "die Hardware ausreichend zu machen".

Im Laufe der Zeit verloren gegangene Fähigkeiten: Denken Sie daran, dass nur in den letzten 80 Jahren eine Batterie mit ausreichender Spannung und eine LED ausreichen würden, um eine LED zu zünden. Heute brauchen Sie eine Himbeere 4, deren Leistung wir "Mainframe" genannt hätten, und ein Arduino, das in unserer Zeit eine Steuerung für die industrielle Automatisierung war und dennoch eine große.

Und da der Großteil der Software auf Produkten wie "WLAN-Lampen" ausgeführt werden kann, empfehle ich, dass Sie lernen, wie Sie nur einen kleinen Code erstellen, auch wenn dieser nicht perfekt ist, und damit spielen, um zu verstehen, was am besten zum jeweiligen Anwendungsfall passt.

Denn in Zukunft können Sie Snort + Pulledpork nicht mehr mit einer Glühbirne betreiben, aber Sie werden gefragt, ob es ziemlich sicher gegen Eindringen ist.

Alles hier.

Quelle: https://keinpfusch.net/la-ragione-del-lab/