
Heute werden wir die Ergebnisse des vierten Summ3r 0f h4ck Sommertrainingsprogramms in unserem Unternehmen in der Forschungsabteilung teilen.
Die Ergebnisse der vergangenen Jahre finden Sie hier: 2016 , 2017 . Die Prüfungsabteilung in einem separaten Artikel hier und einem gemeinsamen Artikel für 2018 .
Beginnen wir also mit Zahlen, Fakten und anderen interessanten Informationen.
- 76 Bewerbungen aus ganz Russland und den Nachbarländern
- 10 ausgewählte Kandidaten
- Die Kandidaten vertraten Städte wie Saratow, Kaliningrad, Rostow am Don, Moskau, Wladiwostok, St. Petersburg und Krasnodar.
- Universitäten: SSU (benannt nach Chernyshevsky), BFU benannt nach I. Kant, Südliche Bundesuniversität, Hochschule für Wirtschaft MIEM, Fernöstliche Bundesuniversität (FEFU), Staatliche Technische Universität St. Petersburg, Technische Technische Universität Moskau, benannt nach Bauman, Polytechnische Universität St. Petersburg, Peter der Große, Kreuzzug des Innenministeriums der Russischen Föderation.
Während der Ausbildungszeit unserer Abteilung vom 15. Juli bis 15. August wurden Vorträge zu folgenden Themen gehalten:
- Einführung in die Schwachstellensuche in binären Anwendungen und im Quellcode
- Statische Sicherheitsanalyse großer Open Source-Projekte
- Wiederherstellung symbolischer Informationen während des Reverse Engineering
- Firmware-Sicherheit (Informationen zum UEFI-BIOS)
- Einführung in das Ghidra Binary Analysis Tool
- Phasing mit KLEE, libfuzz, AFL
- Einführung in Angriffe von Drittanbietern auf die Mikroarchitektur
Einer der Studenten hielt auch eine interne Vorlesung zum Thema „Überblick über den Schutz durch Codevirtualisierung am Beispiel von VMProtect“. Vielen Dank an die Jungs für interessante Fragen, stürmisches Interesse an Vorträgen. Unabhängig davon ist anzumerken, dass Studierende beider Abteilungen Vorlesungen besuchen und an Mini-CTF teilnehmen können, die in einem Artikel der Prüfungsabteilung ausführlicher gelesen werden können.
Zu den Themen dieses Jahres gab es folgende:
- Hardware-basierter Tracer für Intel-Prozessoren
- Plugin für Clang Analyzer
- Pigaios stärken
- Uefi Firmware Security Research Framework
- Zustandsbasiertes API-Fuzzing
- Seitenkanalangriffe auf Mikrocontroller
- Ein Framework zum automatischen Wiederherstellen von Funktionsnamen
- AFL Phaser für Netzwerkanwendungen anpassen
- EBPF in Ghidra dekompilieren
Es ist erwähnenswert, dass sich das Thema selbst und seine Richtung während der Arbeit an einem Thema manchmal aus dem einen oder anderen Grund weiterentwickelt und modifiziert haben. Wir können sagen, dass alle Jungs großartig sind und versucht haben, das Maximum für diese ziemlich kurze Zeit des Programms herauszuholen. Obwohl das Wichtigste ist, neues Wissen und Erfahrung (und Dating) zu erwerben.
Es ist wichtig zu verstehen, dass unser Summ3r 0f h4ck-Programm ein Trainingsprogramm ist, kein Praktikumsprogramm (obwohl es der Einfachheit halber manche Leute so nennen). Dabei machen die Jungs zusammen mit den Mentoren das Thema des Projekts, hören Vorträge, lösen verschiedene Labore, erhalten verschiedene Tipps zu verschiedenen Aspekten der Informationssicherheit und beantworten natürlich ihre Fragen.
Wie immer wenden wir uns den nicht bearbeitbaren Bewertungen unserer Studenten über ihren Monat in unserem Unternehmen zu (die sie veröffentlichen wollten).
Die Fragen für das Mini-Interview waren so
- Warum haben Sie sich für ein Praktikum bei Digital Security entschieden? Was hat Sie an der Firma gereizt?
- Hat dir das Praktikum gefallen? Was war besonders denkwürdig? Wie stimmte die Realität mit Ihren Erwartungen überein?
- Erzählen Sie uns von Ihrer Aufgabe / Ihren Aufgaben.
- Waren die Aufgaben, an denen Sie während des Praktikums gearbeitet haben, interessant? Gab es etwas, das Sie tun wollten, das aber fehlgeschlagen ist?
- Sind Sie bereit, für ein Praktikum oder eine Arbeit ins Unternehmen zurückzukehren?
Und hier sind einige der Antworten, die einige der Schüler gegeben haben
Novoseltseva Alyona

- Digital Security ist ein führendes Unternehmen in Russland im Bereich Informationssicherheit mit dem größten und freundlichsten Team von Umkehrern. Ich wollte immer im Geiste in die Umgebung von Menschen gelangen, die dir nahe stehen. Hier gibt es echte Profis, von denen man viel lernen kann. Darüber hinaus gibt es in meiner Region im Allgemeinen keine solchen Unternehmen und Gemeinden, die sich zumindest irgendwie auf das Reverse Engineering beziehen würden.
- Das Praktikum hat mir sehr gut gefallen. Das Erstaunlichste ist die Atmosphäre, in der das Unternehmen tätig ist. Besonders aufmerksame Leute werden mir zustimmen - auf den Schreibtischen der Angestellten gab es kein einziges Stück Papier außer ihrem eigenen Notizbuch mit Gedanken und Ideen. Das sagt viel aus und eine enorme Seltenheit in unserer bürokratischen Welt!
Sie erhalten die besten Arbeitsbedingungen - Ruhe, Komfort und vor allem Menschen. Das Personal und seine Forschung sind sehr inspirierend. Ich habe es wirklich gemocht, in einem Team mit Mentoren an einem Projekt zu arbeiten - wir haben Probleme Tag und Nacht gelöst, gemeinsam nach Lösungen gesucht und uns gemeinsam gefreut, wenn etwas geklappt hat. Ich habe dieses Glück schon lange nicht mehr erlebt. Sasha, Kolya - ich verneige mich vor dir. - Meine Forschungsarbeit bestand in der Entwicklung eines Systems zur Übersetzung eines eBPF-Bytecodes in pCode in Sleigh für die Möglichkeit der Demontage und Dekompilierung. Es war notwendig, eine Erweiterung für Ghidra zu entwickeln, die es ermöglichen würde, eBPF-Programme zu zerlegen und zu zerlegen. Ich musste die Spezifikationssprache für Schlittenprozessoren beherrschen, die Funktionen der eBPF-Architektur und die Interaktion von eBPF-Programmen mit dem Kernel verstehen, Erfahrungen in der Entwicklung von Erweiterungen für Ghidra und der Arbeit mit Eclipse sammeln und vieles mehr
Die Aufgabe erfolgreich abgeschlossen! Das Projekt ist öffentlich zugänglich und wird auf Github veröffentlicht. Das Ergebnis kann von jedem getestet werden, indem die Erweiterungsbaugruppe über den folgenden Link aus dem Repository heruntergeladen wird. Weitere Details finden Sie in einem separaten Artikel. - Ja, die Aufgaben waren komplex und interessant, ich mochte den Entwicklungsprozess und die Teamarbeit sehr. Ich möchte das Thema der automatischen Analyse von Programmen und der Suche nach binären Schwachstellen noch tiefer untersuchen, interessant ist die symbolische Ausführung.
- Mit großer Freude! Da die Universität noch einige Jahre nicht studiert hat, werde ich mich auf das nächste Praktikum vorbereiten! Zu arbeiten - sicherlich und wahrscheinlich schon
Link zum Projekt
Bukovsky Victor

Ich habe mich für ein Praktikum bei Digital Security entschieden, weil dieses Unternehmen der Organisator meiner bevorzugten Konferenz für Informationssicherheit war - ZeroNight.
Das Praktikum versank in der Seele. Alles lief perfekt. Dieser seltene Fall, in dem die Realität meine Erwartungen übertroffen hat. Ich erinnerte mich besonders daran, wie sie am letzten Tag des Praktikums ein Quiz über das Wissen über das Unternehmen und die psychischen Fähigkeiten abhielten :), für den Sieg, bei dem ich eine Schachtel Kekse und ein T-Shirt erhielt.
Meine Aufgabe war es, Plugins für IDA PRO 7 mit der Hex-Rays-API zu schreiben. Die Aufgabe eines von ihnen bestand darin, in einer speziellen Tabelle (Abb. 1) Funktionen anzuzeigen, die Funktionen enthielten, die nach Ermessen des Forschers unsicher waren (die Tautologie konnte nicht umgangen werden). Der Zweck eines anderen, könnte man sagen, Kern-Plug-Ins für dieses Praktikum war die Wiederherstellung von Funktionsnamen aus entfernten (-s) ausführbaren Dateien unter Verwendung unterstützender Informationen. In meinem Fall haben wir die Namen der Funktionen aus den Parametern übernommen, die an die Protokollierungsfunktionen übergeben wurden (Abb. 2).

Aufgaben waren für mich absolut nicht trivial, was nur das Interesse an ihrer Umsetzung weckte. Ironischerweise war ich einer der wenigen glücklichen Menschen, die die Ehre hatten, mit drei Kuratoren zusammenzuarbeiten. Am Anfang war es Artem, der mich in dieses Thema einführte, Bitbucket für die Speicherung des Projekts, eines Boards in Trello, mit anfänglichen Aufgaben und Zielen vorbereitete und auch erklärte, wie man mit der Markdown-Markup-Sprache arbeitet. Dann wurde Dmitry Evdokimov mein Kurator, der sich in der jüngeren Vergangenheit bereits mit der Wiederherstellung von Funktionsnamen befasst hatte, mich zu den notwendigen Gedanken führte und das Problem tiefer offenbarte. Nun, Boris Ryutin, die Person, die mich interviewt hat und dank der ich bei diesem Praktikum gelandet bin, wurde mein Kurator. Mit ihm erhielt ich bereits genaue Aufgaben, um das gewünschte Ergebnis zu erzielen. Alles verlief sehr schnell und alles, was wir geplant hatten, wurde umgesetzt, wofür wir uns noch einmal bedanken.
Ich bin mir über das Praktikum nicht sicher, da es mir zu wenige Monate in dieser Firma erschien. Ich möchte so lange wie möglich darin bleiben, also bin ich bereit, zur Arbeit zurückzukehren.
Link zum Projekt: https://github.com/o0Starley0o/HexRaysPlugins
Wollte anonym bleiben
- ZeroNights / waren Freunde
- Natürlich hat es mir sehr gut gefallen. Erwartungen waren berechtigt und noch mehr.
Das erste, was es zu beachten gilt, ist das Thema, mit dem ich mich befasst habe. Ich hatte vor, etwas zu sehen, was ich zu Hause nicht tun konnte (würde), und tatsächlich entsprach das Thema perfekt diesem Thema.
Obwohl ich nicht sagen kann, dass ich ihr viel Zeit gewidmet habe, bin ich mit dem Ergebnis und dem dabei gewonnenen Wissen vollkommen zufrieden (tatsächlich - etwas mehr als eine Woche und das Hauptergebnis wurde erzielt =).
Ich bin froh, dass bei jeder Frage eine Frage zum Thema sofort vom Mentor beantwortet werden kann (und die Antwort lautet "Möchten Sie mehr versuchen / lernen?").
Die zweite Gruppe besteht aus vielen interessanten Personen, nicht nur von Mitarbeitern, sondern auch von Praktikanten, anhand derer wir die Zukunft der Informationssicherheit beurteilen können.
Third-Pentester haben eine sehr coole Auswahl an Computern mit anfälligen Einstellungen / Diensten getroffen (von xss-Aufgaben mit Bots über die Eskalation von Berechtigungen bis hin zur sequentiellen Erfassung eines Domänenadministrators).
Jeder durfte spielen und es hat noch 2 Wochen Spaß gemacht. Diejenigen, die ihr nicht genug Liebe gaben, haben sich sehr verrechnet.
Viertens - Vorlesungen, es war schön, Wissenslücken zu schließen oder etwas Neues für sich zu entdecken.
Fast alle umgekehrten Vorlesungen waren sehr ernst, die Pentester verteilten Essen und hatten interaktive Aufgaben. - Die Aufgabe, die Ausführungsspur im SMM-Modus (Ring-2) zu entfernen. Sie können die Ablaufverfolgung nicht im weniger privilegierten Modus aktivieren. Sie benötigen SMM-Code, um sie zu aktivieren. Natürlich weiß er nicht, wie das geht.
Sie erstellten einen Patch, warfen ihn in SMM (dafür musste das UEFI aktualisiert werden) und konnten mit den vorhandenen Tools (WinIPT) aufzeichnen, wie der Code in SMM ausgeführt wird. - Jetzt gibt es so viele Technologien, dass es unmöglich ist, einfach alles hintereinander auszuprobieren. Sie brauchen immer einen Anreiz oder eine Aufgabe, die Sie dazu bringt, sich etwas Neues anzuschauen.
Dann erscheint ein natürlicher Wunsch: „Kann ich diese Technologie für meine Aufgaben verwenden? Kann sie damit einfacher / effizienter sein?“.
Daher bin ich mit meinem Thema zufrieden.
Trotzdem hat es sich gelohnt, das Projekt zumindest auf einen primitiven Fuzzer zu bringen. Dies ist eines der Dinge, die ich ohne einen externen Reiz nicht versuchen kann. - kein Kommentar
Chabarow Oleg
- Meiner Meinung nach gibt es in Russland nur wenige Unternehmen, die Reverse Engineering für ihre beruflichen Aktivitäten einsetzen, und diejenigen, die es verwenden, um Schwachstellen zu finden, und nicht für die Virenanalyse, noch weniger sind digitale Sicherheit und positive Technologien.
- Das Praktikum hat dazu beigetragen, die Richtlinien für den Weg zu bestimmen, an den Sie gehen möchten, wenn Sie ein Reseller sein möchten, und nicht als abstrakter "Spezialist für Informationssicherheit". Ich erinnerte mich an relativ einfache Vorlesungen über die Pentest- und Headloading-Vorlesungen der Umkehrer.
- Meine Aufgabe war es, das Pigaios Reverse Engineering Tool zu verfeinern. Ziel ist es, Open-Source-Bibliotheksfunktionen im Vergleich in einer statisch kompilierten Binärdatei zu finden. Ich habe mich jedoch nicht mit dem Vergleichsmechanismus selbst befasst, sondern mit der Verfeinerung des Teils der Funktionalität, der Definitionen von Strukturen, Typen, Assoziationen usw. aus den Quellen extrahiert hat. Infolgedessen habe ich den Parser dieser Elemente fertiggestellt und Unterstützung für Projekte hinzugefügt, die mit make erstellt wurden. Ich habe beschlossen, diese Verbesserungen nicht in Pigaios zu integrieren, sondern ein separates Tool zu erstellen, da es einfacher ist, es separat zu zerlegen, als in den Pigaios-Code zu graben.
- Ich kann nicht sagen, dass mir die Aufgabe gefallen hat, aber sie hat dazu beigetragen, das Verständnis von C-Code zu verbessern. Dank dieser Aufgabe habe ich gelernt, dass Sie C-Code analysieren können, ohne die Theorie des Compiler-Engineerings zu verstehen, sondern nur libclang verwenden. Daher ist es unwahrscheinlich, dass ich mein Instrument modifiziere. Wenn jemand will, habe ich versucht, sauber zu schreiben und überall Kommentare hinterlassen.
Dank der Vorlesungen der Umkehrer wurde mir klar, was ich tun wollte, nämlich dynamische binäre Analyse (Fuzzing, Instrumentierung). - Ich werde mich freuen, wenn es mir in Zukunft gelingt, einen Job bei Digital Security zu bekommen, da es viele Fachleute auf ihrem Gebiet gibt.
Link zum Projekt: https://github.com/Barkhat26/decl-exporter
Zabelina Margarita
- Ich hatte zuvor ein Praktikum in einem anderen Unternehmen als Mitarbeiter des Informationssicherheitsdienstes absolviert. Dort musste ich mich mehr mit Web-Sicherheitsproblemen befassen. Aber im CTF-Team habe ich immer umgekehrte Aufgaben gelöst, oft aus Interesse, das ich über binäre Angriffe gelesen habe. Es wurde für mich interessant zu sehen, wie Umkehrer funktionieren, wie ich mit solchen Arbeiten umgehen werde. Außerdem war es interessant, die DSEC von innen zu sehen.
- Das Praktikum ist gut. Am meisten hat mir die Vorlesung gefallen. Weil Fast die ganze Zeit sind Sie mit dem Projekt beschäftigt, die Gelegenheit, abgelenkt zu werden und kleine Aufgaben zu lösen, was Ihren Kopf sehr erfrischt. Außerdem habe ich viele neue Dinge gelernt und irgendwo altes Wissen gefestigt.
Erwartungen / Realität stimmten ziemlich überein. - Ich habe mich mit Checker-Implementierungen für Clang Static Analyzer befasst. Die Aufgabe sind nicht Rocketsaines, sondern die Leistungen, die ich für meine Diplomarbeit bewerben kann. Zuerst musste ich mich mit dem Tool vertraut machen, sehen, was die Bibliothek des Clags kann, und lernen, wie man einfache Testprüfer sammelt. Es wurde ferner beschlossen, die Implementierung des Prüfers für den Ganzzahlüberlaufdetektor aufzunehmen. Die Idee eines solchen Checkers wurde in der Liste der potenziellen Clang Checker angegeben. Ich fand das Ding nützlich und nahm es. Ich habe einen Ansatz mit AST-Analyse und Cast-Verifikation gewählt. Eine solche Lösung bestimmt jedoch nur mögliche Überläufe. Zur genauen Überprüfung können Sie Verschmutzungsanalysen und SMT-Löser verwenden. Es gibt keine vorgefertigten Werkzeuge für die Arbeit mit Taint in der Bibliothek, es gab Entwicklungen von anderen Forschern, die ich als Grundlage genommen habe. Leider habe ich es nicht geschafft, meine Aufgabe in einem Monat zu erledigen, aber ich werde das Projekt im Rahmen der Arbeit abschließen.
- Die bloße Idee, dass Sie erkennen, was später in der realen Arbeit anwendbar und nützlich sein wird, weckt bereits das Interesse an dem Projekt. Ich möchte den Taint Checker neu schreiben, damit er später nicht nur in meinem Projekt verwendet werden kann.
- Das DSEC-Team ist exzellent, alle Experten sind cool. Ich würde zur Arbeit kommen. Aber ich würde nicht gerne wieder ein Praktikum machen, Mentoring war meiner Meinung nach enttäuschend. Da wir nur einen Monat zur richtigen Zeit hatten, erhielt ich kein Feedback vom Mentor. Und ich habe viel Zeit mit selbstfahrendem Graben verbracht, obwohl ich eine Antwort von einem erfahrenen Mentor bekommen konnte. Wenn es kein Mentoring gibt, warum brauche ich dann ein Praktikum, kann ich mein eigenes Projekt zu Hause schneiden.
Link zum Projekt: https://github.com/dR3m/IntOverflow-CSA-plugin
Sankin Nikita
- Die digitale Sicherheit wurde durch Projektthemen und Feedback von Teilnehmern aus früheren Praktika sowie durch zahlreiche Artikel über Habré von Mitarbeitern angezogen. Im Allgemeinen habe ich durch einen Beitrag bei Habré auch etwas über das Praktikum erfahren. Es bestand auch der Wunsch, die Situation zu ändern, nachdem ich ein Praktikum in einer anderen Stadt absolviert und Projekte ausprobiert hatte, die ich in meinem Hauptjob nicht mache.
- Das Praktikum verlief nicht wie erwartet, hauptsächlich aufgrund einer erfolglosen Wohnungsmiete, die mich daran hinderte, mich auf das Projekt zu konzentrieren und alles pünktlich zu erledigen. Außerdem war es zunächst peinlich, dass es bei der Aufgabe mehr um das Schreiben von Code als um Forschung ging, aber hier handelt es sich wahrscheinlich um eine Nichtübereinstimmung von Erwartungen und anderen persönlichen Faktoren
- Wir mussten das UEFI-Framework für Schwachstellentests für Firmware implementieren, das auf der vorhandenen Chipsec-Lösung basiert. Das Problem war, dass es schwierig war, Chipsec-Code zu pflegen, so dass Sie alles in Python 3.x schön umschreiben und möglicherweise einige neue Funktionen hinzufügen mussten.
- Bei dieser Aufgabe schien es mir weniger interessant, Code zu schreiben, als vielmehr die Technologien zu studieren, mit denen ich arbeiten musste. Ich wollte das Projekt bis zur HAL-Phase (Hardware Abstraction Layer) abschließen und den Betrieb von Hardwaregeräten und deren Schnittstellen genauer untersuchen. Leider haben die in Absatz 2 genannten Gründe dies verhindert, aber ich plane, das Projekt nach dem Praktikum fortzusetzen.
- Ich bin bereit, zum Praktikum zurückzukehren, um entweder das aktuelle Projekt abzuschließen und zu zeigen, oder wenn eine interessante Idee auftaucht. Ich werde das Unternehmen definitiv als eines der ersten in St. Petersburg betrachten, aber im Moment brauche ich es nicht.
Komarov Nikita
- Ich verfolge Digital Security seit einiger Zeit. Es begann von dem Moment an, als ich zum ersten Mal von Zeronights hörte. Ich dachte, dass dies nur ein wirklich cooles Unternehmen kann. Nicht sofort, bemerkte aber, dass Praktika abgehalten wurden, aber zunächst konnte ich nicht gehen. Im selben Jahr sah ich versehentlich, dass auf dem Werbeplakat genau in der Mitte mein unbekannter Freund war, der dort angekommen war, und dachte, es sei ein großartiges Zeichen, endlich ein Praktikum zu besuchen.
- Es stellte sich als sehr interessant heraus und vor allem war die Zeit ständig voller Dinge. Ich erinnere mich natürlich an die Berichte und den Service mit den Waveboxen. Tatsächlich hatte ich nicht erwartet, dass es so viele Dinge geben würde, jeden Abend gab es neben dem Hauptprojekt noch etwas zu tun, was die Atmosphäre gut verwässerte und eine Vielzahl von Aufgaben gab.
- Im Rahmen des Praktikums war es meine Aufgabe, das uefi-Sicherheitstest-Framework zu schreiben. , , .
- , , , , , . , , , .
- . .

- . ,
- . . . "".
- . , .
- , .
- , , , :)
- , , ( ), , .
Summ3r 0f h4ck 2020 !
PS .