Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

Ferrocene: Rust-Compiler wird Open Source

06. Oktober 2023 um 07:57

Das Unternehmen Ferrous Systems will in Kürze Ferrocene, seinen Rust-Compiler für sicherheitskritische Anwendungen und Cybersicherheit, als Open-Source-Projekt veröffentlichen. Die Lizenzen Apache-2.0 oder MIT sollen zum Einsatz kommen.

Ferrocene bildet den Rust-Compiler “rustc” ab, Ferrous Systems hat diesen aber qualitätsgeprüft und qualifiziert für den Einsatz in Automobil- und Industrieumgebungen (derzeit gemäß ISO 26262 und IEC 61508). Der Compiler ist dem Rust-Projekt als Downstream angeschlossen, um Tests und Qualität auf bestimmten Plattformen weiter zu verbessern, teilt das Unternehmen mit. In den kommenden Wochen sollen weitere Informationen zu den Komponenten und Änderungen in Ferrocene veröffentlicht werden. Man habe zwei Jahre am Compiler gearbeitet und sei nun bereit, ihn verfügbar zu machen – aber auch vollständig quelloffen, teilt Ferrous Systems mit.

Weiter heißt es, dass man für Ferrocene auch kostenpflichtige vorgefertigte Binärdateien anbieten werde, die seien validiert und mit langfristigem Support von Rust-Experten flankiert. Die Kosten würden insbesondere den langfristigen Support abdecken, der über das hinausgehe, was das Rust-Projekt garantiere. Da in der nun aktuellen Version 23.06.0 noch proprietäre Anteile von einer früheren Partnerschaft steckten, werde man den freien Ferrocene Compiler in Version 23.06.1 in den kommenden Monaten veröffentlichen, sobald die proprietären Teile entfernt worden seien.

Der Beitrag Ferrocene: Rust-Compiler wird Open Source erschien zuerst auf Linux-Magazin.

GCC: Forscher finden Sicherheitslücke bei Exploit-Training

15. September 2023 um 08:11

Mit Stack Canarys sollen eigentlich Buffer-Overflows erkannt werden. Durch Zufall entdeckte ein Team von Meta, dass das nicht immer der Fall ist.

Der Chip-Designer ARM und das Team der GNU Compiler Collection (GCC) haben eine Sicherheitslücke (CVE-2023-4039) im gleichnamigen C-Compiler der Softwaresuite behoben. Der zugrunde liegende Fehler findet sich im Stack Smashing Protector von GCC für ARM64, der mit Hilfe eines sogenannten Canarys das Ausnutzen eines Stack Buffer Overflows verhindern soll und wurde offenbar durch Zufall entdeckt.

Das berichten Tom Hebb von Metas Sicherheitsgruppe Red Team X sowie die auf den ARM-Befehlssatz spezialisierte Sicherheitsexpertin Maria Markstedter alias Azeria. Aufgefallen war die Sicherheitslücke demnach in einer Demo-Anwendung bei einem Exploit-Training, das Markstedter anbietet. Dabei werden unter anderem verschiedene Techniken zum Ausnutzen von Sicherheitslücken auf ARM-Plattformen besprochen.

Die betroffene GCC-Funktion setzt einen sogenannten Canary in die Datenstrukur im Speicher. Bei einem Buffer Overflow wird der Canary überschrieben, was wiederum erkannt werden kann, um den Programmablauf zu unterbrechen. Ein Angriff, der solch einen Overflow ausnutzt, um den Programmablauf zu kapern, kann so verhindert werden. Der Name der Technik ist dabei als Analog zum Canary in a coal mine gewählt.

Für Datentypen mit dynamischer Speichergröße wie etwa Variable-Length-Array (VLA) oder Objekte, die per Alloca-Aufruf erstellt werden, funktionierte der Schutz über den Canary bisher aber nicht wie vorgesehen und konnte umgangen werden. Davon betroffen ist aber nur die ARM64-Plattform und keine der anderen unterstützen CPU-Architekturen. Hebb führt dies in der Beschreibung der Lücke auf eine Eigenart dieser Implementierung zurück. Ähnliche Lücken fanden sich bereits in der GCC-Umsetzung für ARM32 sowie im Clang-Compiler für ARM64.

Der Beitrag GCC: Forscher finden Sicherheitslücke bei Exploit-Training erschien zuerst auf Linux-Magazin.

C-Compiler SectorC: Kompletter C-Compiler im Boot-Sektor

31. Mai 2023 um 07:25

Gerade einmal 512 Byte umfasst der C-Compiler SectorC und passt damit komplett in den Boot-Sektor eines x86-Systems. Er unterstützt zwar nicht den kompletten C-Befehlssatz, aber dennoch erstaunlich viele Funktionen.

Darunter fallen laut Beschreibung globale Variablen, Funktionen, if- und while-Statements, zahlreiche Operatoren, das Dereferenzieren von Zeigern sowie Kommentare. Dem Compiler liegen drei Beispiel-Programme bei, die seine Leistungsfähigkeit demonstrieren.

Die vollständige zugrundeliegende Grammatik findet sich auf der GitHub-Seite, wo sich auch der Quellcode des Compilers findet. SectorC selbst ist in Assembler geschrieben, der sich mit Nasm übersetzen lässt. Ein Blog-Beitrag gibt zudem Einsicht in die Motivation und Entwicklung.

Der Beitrag C-Compiler SectorC: Kompletter C-Compiler im Boot-Sektor erschien zuerst auf Linux-Magazin.

GCC 13.1: Neues Major-Release

27. April 2023 um 10:54

Mit Version 13.1 der GNU Compiler Suite GCC haben die Entwickler eine neue Hauptversion veröffentlicht. Diese neue Version integriert unter anderem ein Frontend für die Sprache Modula-2.

Das Modula-2-Frontend war bislang nur separat erhältlich. GCC 13.1 legt außerdem auch den Grundstein für ein Frontend für Rust, das dann in einer kommenden Version verfügbar sein soll.

Den Programmiersprachen C und C++ haben sich die Entwickler verstärkt angenommen. Es seien in das C-Frontend Unterstützung für mehrere C23-Funktionen eingeflossen und gleiches gilt auch für das C++-Frontend und dort eingeflossene C++23-Funktionen.

Verbessert zeigt sich die bislang noch experimentelle Unterstützung der C++-Standardbibliothek für C++20 und C++23, heißt es in der Ankündigung.  Für die C-Sprachfamilie lasse sich nun -fstrict-flex-arrays[=level] verwenden, um das Verhalten für die verschiedenen Legacy-Formen der Angabe von flexiblen Array-Mitgliedern zu steuern.

Den statische Analyzer der GCC sei mit 20 neuen Diagnosearten ebenfalls stark verbessert worden heißt es weiter. Zudem seien nun neue CPU-Funktionen in der ARM-, x86-Familie, RISC-V und LoongArch unterstützt. Dadurch beherrsche etwa RISC-V die Vektor-Intrinsik wie sie in der Spezifikation 0.11 festgelegt.

Der Beitrag GCC 13.1: Neues Major-Release erschien zuerst auf Linux-Magazin.

Python-Compiler verspricht 10- bis 100-fache Leistung

21. März 2023 um 08:47

Eine native Kompilierung von Python soll eine Programmgeschwindigkeit wie bei C und C++ ermöglichen.

Die Programmiersprache Python gilt zwar als vergleichsweise einfach zu erlernen und wird auch deshalb viel verwendet, die Nutzung des Interpreters in der Standardimplementierung hat aber Nachteile bei der Geschwindigkeit. Mit dem Codon-Projekt versucht ein Team des MIT (Massachusetts Institute of Technology) einen nativen Compiler für Python zu erstellen, um die Sprache deutlich zu beschleunigen.

In der Ankündigung des MIT sagt der Hauptautor von Codon zu der Umsetzung: “Der Benutzer schreibt einfach Python, so wie er es gewohnt ist, ohne sich um Datentypen oder Leistung kümmern zu müssen, was wir automatisch erledigen – und das Ergebnis ist, dass sein Code 10 bis 100 Mal schneller läuft als normales Python. Codon wird bereits kommerziell in Bereichen wie quantitative Finanzen, Bioinformatik und Deep Learning eingesetzt.”

Der neue Python-Compiler Codon basiere auf der LLVM-Compiler-Infrastruktur, biete natives Multithreading und die Geschwindigkeit damit erzeugter Programme reiche gar an C oder C++ heran, schreiben die Beteiligten auf Github. Das Multithreading und die Nebenläufigkeit werden in der Standardimplementierung von Python derzeit effektiv vom sogenannten Global Interpreter Lock (GIL) verhindert, der aber entfernt werden soll.

In einem Vortrag beschreibt das Team Codon als “einen domänenerweiterbaren Compiler und DSL-Framework (Domain Specific Language) für leistungsstarke DSLs mit der Syntax und Semantik von Python.” Neu sei dabei vor allem eine Intermediate Representation die Optimierungen und Analysen erleichtere.

Zwar unterstützte Codon fast die gesamte Python-Syntax, ein kompletter Ersatz für die Standardimplementierung sei das Projekt aber nicht, heißt es. So werden einige Python-Module noch nicht unterstützt und die Nutzung einiger dynamischer Funktionen von Python ist schlicht nicht erlaubt, so dass bestehende Programme teils zur Nutzung mit Codon angepasst werden müssen.

Der Beitrag Python-Compiler verspricht 10- bis 100-fache Leistung erschien zuerst auf Linux-Magazin.

LLVM 15 mit experimentellem DirectX-Support

07. September 2022 um 09:34

Mit LLVM können nun auch GPU-Shader für DirectX kompiliert werden. Außerdem unterstützt die Werkzeugsammlung das neue ARMv9.

Die Compiler-Werkzeugsammlung LLVM ist in Version erschienen, wie das Projekt über sein Forum mitteilt. Neu hinzugekommen ist ein Backend für die Grafikschnittstelle DirectX aus Windows, das Microsoft zu dem Open-Source-Projekt hinzufügte. Noch ist die Unterstützung für das sogenannte DirectX-Target jedoch experimentell und wird nicht standardmäßig mit den Binärdateien verteilt, die das LLVM-Projekt selbst erstellt.

Vor mehr als fünf Jahren stellte Microsoft seinen Compiler für die Shader-Sprache HLSL als Open Source zur Verfügung. HLSL sowie der zugehörige Compiler sind Teil der 3D-Grafikbibliothek DirectX. Das freie Analogon in OpenGL heißt GLSL. Mit Hilfe dieser Shader-Sprachen können 3D-Effekte programmiert werden. Zuvor nutzte Microsoft als Shader-Compiler die Eigenentwicklung Fxc. Der neue Shader-Compiler basiert auf LLVM und das neue Backend unterstützt die der DXIL (DirectX Intermediate Language), die wiederum auf der LLVM IR basiert. Die Arbeiten daran hatte Microsoft im Frühjahr dieses Jahres bekannt gegeben.

Neu hinzugekommen ist außerdem die Unterstützung für die neuen ARM-Architektur-Versionen ARMv9-A, ARMv9.1-A und ARMv9.2-A. Diese Architektur hatte der britische Chip-Designer ARM bereits im Frühjahr 2021 vorgestellt (g+) und erweitert damit die ARMv8-Architektur. Neu hinzugekommen sind dabei mehrere Beschleunigereinheiten und die Architektur soll vom Microcontroller- über den Smartphone- bis hin zum Server-CPU-Kern skalieren. Mit LLVM 15 unterstützt wird zudem die Cortex-M85-CPU, die noch auf ARMv8.1 basiert. Änderungen gibt es außerdem an den Backends für RISC-V und x86.

Für das Compiler-Frontend für C-artige Sprachen, Clang, hat das Team mit LLVM 15 außerdem Techniken umgesetzt, die die Sicherheit damit kompilierter Programme erhöhen soll. So gibt es nun die Möglichkeit, auf x86-Chips bestimmte Register zunächst mit Null zu überschreiben, bevor Werte von einer Funktion zurückgegeben werden. Das soll ROP-Angriffe erschweren. Zudem kann das Layout von Strukturen in C nun zufällig erzeugt werden. Damit soll das Erlangen von Informationen aus den Strukturen durch Angreifer erschwert werden.

Der Beitrag LLVM 15 mit experimentellem DirectX-Support erschien zuerst auf Linux-Magazin.

GCC 12.1: Major Release mit neuen Features

09. Mai 2022 um 07:27

Mit Version 12.1 der GNU Compiler Collection (GCC) bringen die Entwickler ein neues Major Release heraus. Die Neuerungen und Änderungen sind umfangreich.

In den Release Notes heißt es, dass mehrere C++23-Funktionen implementiert wurden. Zudem wurde die Unterstützung für OpenMP 5.0 erweitert: Der “close map modifier” und die “affinity clause” werden nun unterstützt, teilen die Entwickler mit.

GCC unterstütze jetzt den ShadowCallStack Sanitizer, der mit der Kommandozeilenoption “-fsanitize=shadow-call-stack” aktiviert werden kann, heißt es in der Ankündigung weiter. Der Sanitizer funktionier derzeit nur auf AArch64-Zielen und erfordere eine Umgebung, in der der gesamte Code mit -ffixed-r18 kompiliert worden sei, teilen die Entwickler mit. Der primäre Einsatzzweck sei der Linux-Kernel.

Mit Version 12.1 kann das Projekt ein Jubiläum feiern. Nachdem Richard Stallman am 22. März die erste öffentliche Version 0.9 freigegeben hat, erschien Version 1.0 am 23. Mai 1987 vor 35 Jahren.

Der Beitrag GCC 12.1: Major Release mit neuen Features erschien zuerst auf Linux-Magazin.

❌
❌