In 80 Tagen um das Abzeichen: auf der anderen Seite OFFZONE

Hallo Habr! Das letzte Mal haben wir über das Abzeichen der internationalen Cybersicherheitskonferenz OFFZONE 2019 gesprochen und darüber, womit es verbunden ist. Heute werden wir Geschichten hinter den Kulissen erzählen: wie sie zu ihrer Entstehung kamen und was es uns gekostet hat, eine Reihe von 2000 Geräten zu erfinden und herzustellen. Zeitleiste von Ereignissen, Fallstricken bei Entwicklung, Beschaffung, Installation und anderen Freuden aus der Welt der Elektronik unter dem Schnitt. Lass uns gehen!



Jede praktische Cybersicherheitskonferenz verfügt über interaktive Abzeichen. In unserem Fall sollte das Abzeichen zumindest als Brieftasche für die interne Währung der Veranstaltung dienen - OFFCOIN.

Letztes Jahr hat eine Java-Karte diese Aufgabe bewältigt, an der wir einige Aufgaben, ein Panzerspiel und einen Sokoban vermasselt haben. Dieselbe Karte schien die logische Entwicklung des Abzeichens von 2019 zu sein, nur jetzt mit NFC: Hier gibt es Kontinuität, Evolution und ein Meer von Ideen für Aufgaben. Und für sie gibt es alle Erfolge - dies ist wichtig, wenn Sie in der ersten Schicht nach Schwachstellen suchen und in der zweiten eine Konferenz organisieren.

Wir bereiteten uns langsam auf die Produktion vor, als die Nachricht aus dem Hardware-Analyselabor kam: Kollegen werden auf der OFFZONE ihren Überblick über Angriffe auf eingebettete Systeme präsentieren . Arbeits-Chats füllten die Fotos der vorbereiteten Boards, Seitenkanaltypen wurden in den Korridoren besprochen, das Hardware-Thema hat unsere Ökonomen nicht einmal erfasst. Und wir haben erkannt, dass wir für OFFZONE 2019 unser eigenes Gerät einreichen müssen.

Wir hatten also 80 Tage vor der Konferenz das Ziel 2.000 Geräte und 2 Elektronikentwickler. So sah dieses Epos mit den Augen eines der Entwickler aus.

80 Tage


Als erstes haben wir mit Kollegen ein Brainstorming durchgeführt und Ausweiskonzepte erstellt. Zu den Ideen gehörten eine einzelne Karte mit einem Interpreter einiger grundlegender Funktionen an Bord, eine Visitenkarte mit Ausweis und E-Ink-Display, etwas aus der Welt der IoT-Geräte auf Basis von ESP32 oder einem ähnlichen Modul sowie ein Basis-Motherboard, das im Voraus für zusätzliche Geräte mit zusätzlichen Modulen vorbereitet wurde.

79–65 Tage


Wir gehen, trinken Kaffee, verdauen Gedanken. Wiegen Sie die Vor- und Nachteile ab. Wir lesen Hochtöner und sehen, was andere tun .

64-60 Tage


Wir hatten eine weitere Brainstorming-Sitzung.

Die Einzahler-Idee wurde zurückgeworfen. Es stellte sich aufgrund der Fülle an Komponenten und Installationen als zu teuer heraus: Es würde allein mehr als 30 Tasten geben. Und um niemanden mit einem solchen Gerät zu überraschen - das Supercon-Abzeichen und ähnliche Handwerke werden sofort in Erinnerung behalten.

Eine Visitenkarte mit einem E-Ink-Display wurde ebenfalls abgelehnt: Sie konnten keine interessante Anwendung dafür finden und entschieden, wie potenzielle Aufgaben an einem Ausweis angebracht werden sollten. Und das ESP32 sah irgendwie frivol aus - wir hätten gedacht, wir wären neue Arduinisten! (Obwohl ich zum Arduino-Thema zurückkehren werde.) Es gab die Idee eines Motherboards mit der Fähigkeit, es mit Modulen zur Lösung von Aufgaben zu unterbesetzen.

Ein paar Tage haben die Idee aufpoliert. Aus diesem Grund haben wir uns für die Form einer 3,5-Zoll-Diskette entschieden und uns für die Hauptfunktionalität und die Body-Kits entschieden. Als letzteres haben wir den DIP-Schalter mit 8 Schaltern, einem OLED-Display, einem IR-Empfänger, einem 13,56-MHz-RFID-Transceiver und einem separaten 433-MHz-Empfänger und -Sender verwendet. Der STM32F1-Mikrocontroller wurde wie auf dem beliebten Blue Pill- Board mit der Verwaltung dieses bunten Zoos beauftragt.

Gleichzeitig kam die Idee auf, eine Craft.Zone-Plattform auf OFFZONE zu schaffen, auf der jeder die Kolophonium riechen und sein Abzeichen persönlich mit elektronischen Bauteilen ausstatten kann. Die Lötzone - das ist ein weiterer Ritterzug! Erstens ist dies für eine Branchenkonferenz interessant und ungewöhnlich, zweitens wird es sogar Anfänger begeistern, und drittens werden wir auf diese Weise die Installation der letzten Charge von Geräten beschleunigen. Alle Parteien gewinnen!

Infolgedessen haben wir in den ersten Wochen das Konzept, die Grundfunktionalität und die Komponentenbasis des zukünftigen Geräts genehmigt. Dann beginnt der Spaß.

59-50 Tage


Wir haben es geschafft, eine Schaltung zu erstellen, die erste Version der Ausweisplatine zu verdünnen, herzustellen und manuell zu montieren. Zu diesem Zeitpunkt erwies sich die Wahl einer Stromquelle als am schmerzhaftesten.

Offensichtlich muss das Abzeichen ein eigenständiges Gerät sein. Als Garantie für diese Autonomie wurden eine Lithium-Polymer-Batterie mit 0,5 A * h und das entsprechende Ladesteuerungssystem auf einer einfachen Steuerung wie TP4096 angefordert. Aber haben Sie versucht, ein paar tausend Batterien in Moskau ohne Vorbestellung und sogar von einem vertrauenswürdigen Hersteller zu kaufen? Wir haben es versucht - es ist uns nicht gelungen. Wir haben es nicht gewagt, aus China zu bestellen: Die Batterie ist zu verantwortungsbewusst und brandgefährlich, und unsere Gäste mussten sie um den Hals tragen. Damals kehrten wir zu den guten alten Batterien zurück. Geschätzter Verbrauch, führte eine Reihe einfacher Experimente durch und entschied sich für eine Konfiguration von vier AAA-Batterien. Sie gaben 16 bis 20 Betriebsstunden des Geräts, abhängig von der Aktivität der Verwendung.

Sie zerbrechen sich den Kopf, wenn sie Firmware schreiben. Unter anderen Umständen würden wir Software mit Eclipse (arm-none-eabi-gcc), Keil, IAR und anderen menschlichen und nicht sehr IDEs schreiben. Unser Team von freiwilligen Entwicklungshelfern bestand jedoch größtenteils aus Forensik und Pentestern. Es war unvernünftig zu hoffen, dass sie in ihrer Freizeit das Schreiben von Firmware für eingebettete Systeme schnell beherrschen würden.

Ich habe versprochen, dass ohne die Arduins nicht geht? Ich habe nicht gelogen! Um den Softwareentwicklungsprozess zu vereinfachen, haben wir die Arduino IDE verwendet. Glücklicherweise gibt es ein gutes Projekt STM32Duino , das den Arduino-Bootloader für unseren Zielstein STM32F1 sofort implementiert und von der Arduino-IDE unterstützt wird. In letzterem gibt es einen großen Teil der Bibliotheken, die wir benötigen, um mit Modulen und anderen Freuden in Bezug auf die Programmierung auf hoher Ebene zu arbeiten. Natürlich ist mit Bibliotheken nicht alles so reibungslos, aber Sie können leben. Um die meisten von ihnen an STM32 anzupassen, reicht es aus, plattformabhängige Funktionen neu zu schreiben - und das ist alles. Das Bearbeiten eines Bibliothekscodes ist jedoch fast wie das Einfügen von Anführungszeichen!

Eine interessante Tatsache. Um die Badge-Funktionalität zu implementieren, haben wir die folgenden Bibliotheken verwendet:

  • Adafruit_SSD1306 für OLED-Anzeige,
  • MFRC522 für RFID,
  • RCSwitch für 433 MHz Funk,
  • IRMP-Master für Infrarotsender.


Und jetzt ist die erste Version des Boards fertig. Es kam grün heraus, ohne die notwendigen Fräslöcher und funktionierte praktisch nicht.

Eine interessante Tatsache. Die Prototypen des Boards wurden bei Resonite im Rahmen des Sonderprogramms „Wir brauchen das gestern wirklich“ bestellt, die Komponenten wurden in Einzelhandelsgeschäften in Moskau gekauft und die Installation wurde selbst durchgeführt.

Die meisten Probleme der ersten Version hätten vermieden werden können, wenn wir zuvor den Hauptteil der Schaltung auf einem Steckbrett zusammengebaut hätten. Wir würden sicherlich feststellen, dass Empfänger und Sender unterschiedliche Werte der Eingangsspannung benötigen: 5 V für den Empfänger und 3-12 V für den Sender (in der Testversion wurden beide Module mit 3 V versorgt). Würde nicht vorbei gehen und USB schlafen. Ein sorgfältiges Lesen der Schaltpläne der Blue Pill-Karten half zu verstehen, dass USB nicht funktionieren würde, bis die USB_P-Leitung von einem 1,5–10 kΩ-Widerstand an eine 5-V-Stromversorgung gezogen wurde.

Eine interessante Tatsache. Beim Versuch, USB wiederzubeleben und ein Oszilloskop in eine Platine zu stecken, stellte ich überrascht fest: Obwohl die Spannung 5 V beträgt, werden die Datenleitungen D + und D- selbst auf 3,3 V hochgezogen.

Aufgrund der engen Fristen mussten wir Kompromisse eingehen und nach dem Prinzip „Siebenmal messen“, aber „Test-korrekt korrigieren“ arbeiten. Es ist jedoch nur für stressresistente Enthusiasten geeignet - wir empfehlen, es nicht zu Hause zu wiederholen.

Tipp. Vernachlässigen Sie nicht das Layout und lesen Sie die Datenblätter sorgfältig durch!

49–40 Tage


Wir haben Probleme behoben und eine Reihe von Abzeichen v2.0 erstellt. Es ist immer noch grün, aber es funktioniert fast. Das bedeutet eine Hand!



Wenn Sie sich das Fotoabzeichen ansehen, sehen Sie zwei Barcode-Kurven auf der Vorderseite (ja, wir wissen um die Existenz von QR-Codes, aber wir haben uns für einen Warmrohr-Barcode entschieden). Dies war ein erfolgloser Versuch, einen Link zu der Site auf dem Ausweis mit Informationen zur Konferenz und den Betriebsanweisungen zu platzieren. Der Barcode kam nicht in die endgültige Version: Wir konnten nicht entscheiden, wie wir ihn so positionieren sollten, dass er auf der Tafel präzise aussah. In einer kleineren Version wurde es nicht von der Anwendung auf dem Handy gelesen, aber in der aktuellen Größe sah es zu monströs aus.

Eine interessante Tatsache. Der richtige Barcode auf dem Foto funktioniert und enthält ein Osterei. Interessenten können versuchen, es zu zählen.

In der zweiten Version des Badges haben wir den USB repariert, die Verbindung der Module angepasst und die Zonen zum Fräsen korrekt erstellt. Außerdem wurden die zusätzlichen Komponenten und die meisten Debugging-Jumper entfernt - aber nicht alle.

Eine interessante Tatsache. Ich musste 0-Ohm-Jumper für das Display belassen, da I2C-OLED-Displays mit einer Diagonale von 0,96 Zoll zwei Pinbelegungen haben, die sich in der Position der Strom- und Erdungskontakte unterscheiden. Wir konnten nicht im Voraus sagen, welche Version dieser Anzeige zu uns kommen würde, und wir mussten beide Optionen vorhersehen.


Achten Sie auf die Position der Strom- und Erdungskontakte.

Gleichzeitig haben wir begonnen, den Großteil der Komponenten zu kaufen. Das Abzeichen erforderte nur die beliebten STM32F1, WS2812B und andere Konsumgüter - wir hatten nicht mit deren Mangel gerechnet und hatten es daher nicht eilig. Es stellte sich jedoch heraus, dass alles über den Maßstab entscheidet. Der Kauf von 10 Controllern auf Lager in Moskau ist einfach, 100 sind auch keine Frage. Aber mit 1000 oder mehr Schwierigkeiten beginnen. Wir konnten keinen einzigen Verkäufer in der Hauptstadt finden, der 2000 MK STM32F1 für eine angemessene Zeit und angemessenes Geld liefern würde. Musste bei Ekaterinburg bestellen!

Die gleichen Schwierigkeiten traten beim Kauf von 8.000 WS2812B-LEDs auf. Letzterer flog aus einem europäischen Lagerhaus zu uns und verweilte beim Zoll, was gut für unsere Nerven war.

Das einzige, was ein wenig Blut bekam, waren passive SMD-Komponenten wie Widerstände und Kondensatoren der Größe 0603. Diese befanden sich in großen Mengen in Moskauer Lagern.

Eine interessante Tatsache. Zusätzliche Module wurden für 200 Stück jedes Typs bestellt. Sie kamen aus China - es gab keine nähere Menge.

Mit Blick auf die Zukunft werde ich sagen, dass alle Komponenten in 3-4 Wochen erhalten wurden. Aber das ist Glück, wir gehen kein Risiko mehr ein.

Tipp. Wenn Sie Komponenten für 100, 500 oder mehr Geräte kaufen müssen, verschieben Sie die Aufgabe in der langen Box nicht. Nehmen Sie sich bei solchen Serien mindestens einen Monat Zeit, um sie zu kaufen, insbesondere wenn es sich um Mikroschaltungen handelt.

39-30 Tage


Party v3.0. Das Abzeichen ist bereits schwarz und voll funktionsfähig! Es gibt nur eine scharlachrote Nuance. Irgendwie ist ein Fehler in der Position der Strom- und Datenkontakte auf dem 433-MHz-Sender aus der ersten Version des Ausweises aufgetreten.

Aufgrund dieses Fehlers wurde unser Kollege, der eine Aufgabe im Radio schrieb, fast grau. Bei seinem Arduino-Modell funktionierte das Getriebe 30 Meter lang sicher, aber auf dem Abzeichen - na ja, wenn auch nur einen halben Meter vom Brett entfernt. Ein paar Tage, bis sie einen Fehler in der Verkabelung fanden, wurde ein Kollege gequält und verstand nicht, was geschah. Fedor, vergib uns! Obwohl es ein Rätsel ist, warum hat das Gerät mit gemischten Stiften überhaupt funktioniert ?!

Also haben wir einen Fehler gefunden, zwei Spuren auf der Platine behoben. Der Einfachheit halber haben wir den miniUSB-Anschluss auf microUSB geändert, uns gekreuzt und die endgültige Version 3.1 für 2000 Stück bestellt.

29-15 Tage


Wir sorgen uns um die Lieferung von Komponenten aus aller Welt. Unterwegs erledigen die Jungs ihre Aufgaben.

Eine interessante Tatsache. Während der Entwicklung des Flappy Quote-Spiels gelang es einem der Kollegen, den Bot für das Passieren in etwa einer halben Stunde zu ernähren.



14 Tage


Boards kamen, Komponenten kamen, wir geben in der Installation! Wir haben mit dem „M-Board“ gearbeitet, das alle 2000 Geräte in einer Woche montiert hat.

Tipp. Wenn Sie über 100 oder mehr Geräte verfügen, vergessen Sie die manuelle Installation und bereiten Sie sich auf die automatische Montagelinie vor. Beachten Sie dies beim Entwerfen einer Leiterplatte. (Wenden Sie sich an den von Ihnen ausgewählten Hersteller - er kann Ihnen viel sagen. Auf der Resonita-Website finden Sie allgemeine Empfehlungen.)

Tipp. Der Leiterplattenhersteller kann häufig die Vorbereitung der Leiterplatte für die automatische Installation übernehmen. In unserem Fall gruppierte das Werk mehrere Platten zu einem Rohling, erstellte die erforderlichen technischen Felder und wendete Referenzpunkte auf die Platten an und ließ alle technischen Unterlagen, die zur Vorbereitung der Montagelinie erforderlich waren, in der dritten Organisation.



10 Tage


Wir nehmen Test 12 Boards aus der Installation, überprüfen, ausatmen: alles funktioniert wie es sollte.



9–5 Tage


Wir beenden die Aufgaben aktiv und bereiten uns auf die endgültige Überwindung des gesunden Menschenverstandes vor. Immerhin müssen wir alle 2000 Geräte manuell flashen. Um die Kampfmission zu vereinfachen, haben sie ein Python-Skript mit der Konsolenversion des STM32 ST-LINK-Dienstprogramms geschrieben und zwei Dutzend billige ST-Link v2 vorbereitet.



Tipp. Die Bretter konnten in der letzten Phase der Montage im Werk und ohne die heldenhaften Bemühungen des BI.ZONE-Personals geflasht werden. Wir haben diese Gelegenheit nicht genutzt, nur weil die endgültige Version der Software am Ende der Montage noch nicht fertig war.

96 Stunden vor der Konferenz


Wir nehmen die Platinen aus der Installation, schalten die Handys aus, schließen uns im Büro ein und füllen abends alle 2000 Geräte aus.

Eine interessante Tatsache. Von den 2000 Geräten zeigten nur 2 Lebenszeichen. Der Prozentsatz der Ausschuss am Ausgang der Installation beträgt 0,1.



Wir haben Freude im Gesicht, aber die Gedanken sind weit weg. Was wird das Abzeichen nächstes Jahr sein? Werden wir die Idee mit E-Ink beweisen oder uns etwas völlig Neues einfallen lassen? Kehren wir zum Konzept der Plastikkarten zurück, oder lassen wir uns von den Olympischen Spielen in Tokio inspirieren und lassen uns Origami-Abzeichen aus Papier abwaschen? Wenn Sie neue Ideen haben, kommentieren Sie bitte: Es ist möglich, dass etwas aus dem vorgeschlagenen ein Jahr später von Cybersicherheitsexperten aus der ganzen Welt aufgehängt wird!

Anstelle einer Schlussfolgerung


OFFZONE 2019 fand vor einem Monat statt, aber uns werden immer noch die Fragen gestellt: "Kann ich irgendwie ein Abzeichen bekommen?". Ja du kannst! 100 Abzeichen gehen an diejenigen, die als erste an info@offzone.moscow schreiben. Wir versenden nach Russland und in die GUS. Die Veranstaltung dauert zwei Wochen ab dem Datum der Veröffentlichung des Artikels und endet genau am 2. August um 13:37 Uhr Moskauer Zeit.

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


All Articles