Connect with us

Entwicklung & Code

Nach über zwanzig Jahren: Zeit für ein neues PNG


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Die dritte Edition der Portable Network Graphics (PNG) ist jetzt offiziell veröffentlicht, wie das W3C angekündigt hat. Zentral sind drei neue Bereiche: Unterstützung für animierte Bilder, HDR-Support (High Dynamic Range) sowie Exif-Informationen. PNG ist als Web-Standard weitverbreitet, allerdings liegt das letzte Update des Standards über zwanzig Jahre zurück. Version 1.2 erschien am 11. August 1999 und wurde am 10. November 2003 die zweite Ausgabe der W3C-Empfehlung.

Der APNG-Support (Animated Portable Network Graphics) ist zwar neu, das Konzept dahinter jedoch nicht: Schon 2004 kam das Format auf, es erhielt ab 2008 deutlich mehr Schwung, als Mozilla es nativ in seinem Webbrowser Firefox unterstützte. Seit 2017 können auch Chromium-basierte Browser animierte PNGs anzeigen. Offiziell handelte es sich bislang aber nicht um einen Teil von PNG, das zu Beginn explizit nicht als GIF-Ersatz gedacht war. Dieses Erbe sollte Multiple-Image Network Graphics (MNG) antreten, das sich aber nicht durchsetzen konnte.

Hinter dem HDR-Support verbirgt sich eigentlich, dass PNG mit der dritten Edition Coding Independent Code Points (CICP) zur Farbraumidentifikation hinzufügt. Bei CICP handelt es sich um eine Spezifikation, mit der sich angeben lässt, welchen Farbraum ein Bild verwendet. Sie umfasst jedoch nicht, wie mit diesem Farbraum umzugehen ist. Der Vorteil ist, dass die Implementierung leichtgewichtig ist – in nur vier Nummern speichert CICP die relevanten Informationen ab. Technische Details hierzu finden interessierte Leser bei Chris Lilley, einer der Co-Autoren des originalen PNG-Standards und aktuell Technical Director beim W3C. CICP entstammt dem Rundfunkbereich, kommt aber abseits vom Bewegtbild mittlerweile auch bei anderen Bildformaten wie JPEG XL zum Einsatz.

Wie Chris Blume, Vorsitzender der W3C PNG Working Group, erklärt, geht der neue HDR-Support jedoch ebenfalls auf den Rundfunkbereich zurück. Die W3C Timed Text Working Group, die BBC und Comcast beziehungsweise NBCUniversal sowie MovieLabs hatten Interesse an dem Update der Spezifikation, um Untertitel und Banner anzuzeigen. Laut Blume arbeiten einige dieser Medienunternehmen bereits daran, diese Features per HDR umzusetzen. Informationen hierzu finden sich auf seiner Webseite.

Schließlich unterstützt PNG jetzt Exif-Daten. Mit dem Exchangeable Image File Format lassen sich Metainformationen wie der Ersteller oder Belichtungsinformationen bei Fotos im Bild hinterlegen. Der Standard kommt insbesondere bei der digitalen Fotografie zum Einsatz, ist aber nicht auf sie beschränkt.

Neben den genannten Unternehmen sind auch Adobe, Apple und Google an der Weiterentwicklung von PNG beteiligt. Blume gibt an, dass die Arbeiten am nächsten Update bereits im Gange sind. Während die vierte Ausgabe die Interoperabilität von HDR und SDR (Standard Dynamic Range) verbessern soll, stellt er für die fünfte Edition eine größere Änderung in Aussicht: PNG soll eine bessere Kompression erhalten. Was das für die Kompatibilität mit dem bisherigen Format bedeutet, diskutieren die Entwickler noch.

Alle Informationen zur neuen PNG-Spezifikation gibt es beim W3C.


(fo)



Source link

Entwicklung & Code

Peer Review für Google Jules: KI-Assistent schaut KI-Assistenten auf die Finger


Google hat für seinen KI-Assistenten für die Softwareentwicklung Jules einen neuen Modus eingeführt: Die sogenannte Critic-Augmented Generation übergibt alle Änderungsvorschläge zunächst an einen in Jules integrierten Kritiker, der sie gründlich überprüft. Der Kritiker führt also ein Peer Review durch und konzentriert sich dabei auf gute Codequalität.

Google hatte Jules im Rahmen der diesjährigen Google I/O im Mai vorgestellt. Der KI-Agent macht keine Codevorschläge innerhalb des Editors wie Cursor, sondern untersucht Projekte, um Bugs aufzuspüren, Tests zu erstellen oder neue Features zu integrieren.

Ein allgemeines Problem der KI-gestützten Softwareentwicklung ist, dass die Modelle typischerweise Code erstellen, der auf den ersten Blick scheinbar problemlos funktioniert. Dabei berücksichtigen sie jedoch häufig nur den typischen Programmverlauf, sodass die Anwendungen in Grenzfällen scheitern können.

Auch gehen die KI-Agenten meist von passenden, regulären Eingaben aus, sodass unerwarteter Input zu Fehlern oder im schlimmsten Fall Schwachstellen führen kann. Außerdem erstellt der KI-Assistent nicht immer den effizientesten Code für eine bestimmte Aufgabe.

Die Critic-Augmented Generation soll ebendiese Fehler oder Schwächen aufspüren. Der integrierte Kritiker korrigiert sie nicht selbst, sondern markiert sie und gibt sie Jules zum Überarbeiten zurück.

Als Beispiel nennt der Blogbeitrag mit dem Titel „Triff Jules schärfsten Kritiker und wertvollsten Verbündeten“ unter anderem Code, der zwar alle Tests besteht, aber einen subtilen Logikfehler einführt. Jules erhält den Code mit dem Kommentar „Output matches expected cases but fails on unseen inputs.“ zurück.

In der jetzigen Variante erhält der Kritiker den kompletten Output von Jules, überprüft ihn und gibt seine Kommentare zurück. Jules verbessert daraufhin seinen Code und übergibt ihn erneut zum Peer Review. Der Prozess wiederholt sich so lange, bis der Kritiker zufrieden ist. Erst dann gibt Jules die Änderungen an die User zurück.

Google will den Prozess künftig erweitern, damit Jules den Kritiker auch für Teilaufgaben befragen kann und dieser Zugang zu externen Tools wie Suchmaschinen oder zu Codeinterpretern zum Ausführen und Prüfen des Codes erhält.


(rme)



Source link

Weiterlesen

Entwicklung & Code

Erfolgreiche Jailbreak-Angriffe auf GenAI arbeiten mit schädlichen Prompts


Das Model Context Protocol (MCP) ist noch recht jung, vom November 2024, und seit einiger Zeit tauchen immer häufiger Sicherheitslücken in Verbindung damit auf – und zwar sowohl server- als auch clientseitig. Umgekehrt gibt es Tausende von MCP-Quellen im Netz, die sich mit wenigen Klicks in die eigene KI-Anwendung einbinden lassen.

Eine lange, kuratierte Liste findet sich auf GitHub. Umgekehrt hat Docker eine Liste mit Angriffspunkten und Sicherheitsproblemen gesammelt. Konkrete Beispiele sind ein Angriff über Repositories auf den MCP-Server GitHub oder eine Attacke auf die Cursor IDE via MCP. Mirko Ross, Gründer und CEO der Sicherheitsfirma asvin spricht mit heise developer über die Sicherheit des als „USB-C der KI“ bezeichneten Protokolls.

Mirko, Du beschäftigst Dich schon länger mit der Sicherheit von KI und MCP, wo liegen denn die Hauptschwachstellen Deiner Meinung nach?

MCP ist in Hinblick auf eine einfache Verknüpfung von Applikationen mit GenAI-Modellen hin entworfen worden, das Ganze in einem sich schnell entwickelnden AI-Tech-Umfeld. Die Schwachstelle liegt in der Genese des Protokolls: Das Design von MCP ist auf eine einfache und schnelle Integration ausgelegt, was zulasten der Protokoll- und Systemsicherheit geht. Zudem haben wir generell noch viel zu wenig die Cybersicherheit-Schwachstellen von GenAI-Systemen umfassend begriffen. Wir sehen in einem täglichen Rhythmus, wie Angreifer sich neue Muster und Jailbreak-Attacken ausdenken und anwenden, mit denen die angegriffenen Systeme aus den Sicherheitsschranken ausbrechen. MCP hat im Protokoll keine wirksamen Sicherheitselemente zur Abwehr solcher Angriffe.

Gibt es Risiken, die ihre Ursachen nicht im Protokoll haben, aber bei der Nutzung von MCP dennoch eine Rolle spielen?

Ja, insbesondere Angriffe in der Softwarelieferkette sind eine Gefahr. Angreifer publizieren Bibliotheken für MCP-Clients und Server, die Schadcode enthalten, in öffentlichen Code-Repositorys. Gerade unerfahrene Entwicklerinnen und Entwickler, die nach einem Einstieg in MCP und KI-Agentensystem suchen, sind hier potenzielle Opfer der Angreifer. Ist eine solche Bibliothek einmal integriert, kann der darin enthaltene Schadcode in Firmennetzwerken ausgeführt werden – beispielsweise als Einfallstor für Ransomware-Angriffe.

Mit Void Programming, also wenn GenAI Programmcode für KI-Agenten oder MCP-Services erzeugt, ergeben sich zusätzliche Sicherheitsprobleme: Bereits jetzt kopieren Angreifer populäre Softwarebibliotheken, kompromittieren sie mit Schadcode und publizieren sie unter ähnlich lautenden Namen. Ziel ist es, dass GenAI bei der Codeerzeugung nicht die Originalbibliothek referenziert, sondern die ähnlich benannte schädliche Kopie. Daher gelten auch bei Void Programming die Grundregeln: erstens jede extern eingebundene Quelle auf Vertrauenswürdigkeit prüfen und zweitens den erzeugten Code auf Schadcode scannen, bevor dieser in eine Produktivumgebung gelangt.


Schloss mit Code

Schloss mit Code

(Bild: Titima Ongkantong/Shutterstock)

Am 30. September und 1. Oktober findet die heise devSec 2025 in Regensburg statt. Auf der von iX, heise Security und dpunkt.verlag ausgerichteten Konferenz stehen in Themen wie Threat Modeling, Software Supply Chain, OAuth, ASPM, Kubernetes und der Einfluss von GenAI auf Security im Programm.

Eine erste Korrektur des Protokolls, die Authentifizierung betreffend, gab es Ende April. Hätte man das Protokoll gleich von Anfang an mehr auf Sicherheit optimieren sollen?

MCP wurde in einem aufgeheizten Markt unter hohem Zeitdruck konzipiert. Dabei spielt der Gedanke des MVP – Minimal Viable Product – eine Rolle. Also die schnelle Einführung von Grundfunktionen, die von Anwendern angenommen werden. Aus Sicht der Cybersecurity bedeutet MVP allerdings „Most vulnerability possibilities“.

Es gibt von der OWASP seit kurzem Empfehlungen für den MCP-Einsatz. Bieten sie umfassende Sicherheit für Server- und Client-Anbieter?

Wer sich an die OWASP-Empfehlungen hält, ist sich zumindest der Risiken einer MCP-Integration bewusst und kann damit die entsprechenden technischen Schutzmaßnahmen aufbauen. Einen umfassenden Schutz gibt es allerdings nicht – denn GenAI-Systeme sind leider grundlegend angreifbar und versierte Täter sind sehr kreativ im Design der Angriffe.

Wie kann sich ein Serveranbieter vor Angriffen am besten schützen?

Erstens gilt es, die Grundregeln der Softwareentwicklung zu beachten: Entwicklerinnen und Entwickler müssen alle verwendeten Bibliotheken per SBOM dokumentieren und auf Schadcode scannen. Zweitens müssen sie MCP-basierte Dienste über Authentifizierung einbinden. Dabei müssen die Identitäten der Authentifizierungen gemanagt werden. Und drittens gilt es, die MCP-Dienste in der Applikationsarchitektur von anderen IT-Diensten zu segmentieren und beispielsweise über Zero-Trust-Prinzipien abzusichern.

Inzwischen gibt es große Sammlungen an einsatzbereiten Servern, die jedermann mit ein paar Klicks einbinden kann. Welche Risiken bestehen denn für die Clients beim Anzapfen von MCP-Quellen?

Sehr erfolgreiche Jailbreak-Angriffe auf GenAI arbeiten mit schädlichen Prompts, die die Angreifer beispielsweise in Dateien verstecken. Soll beispielsweise eine GenAI eine Zusammenfassung einer Word- oder PowerPoint-Datei erstellen, wird der darin versteckte Prompt vom KI-Agenten ausgeführt. Wir müssen lernen, dass wir solche Dateien auf schädliche Prompts überprüfen, bevor wir sie der GenAI zur Bearbeitung übergeben.

Worauf sollte man achten, wenn man MCP-Quellen einbinden will?

Generell gilt: nur Quellen einbinden, die als vertrauensvoll gelten und über eine gute Reputation verfügen. Unbekannte Quellen sollte man nicht einbinden.

Mirko, vielen Dank für das Gespräch!


(who)



Source link

Weiterlesen

Entwicklung & Code

Software Testing: Developer Friendliness für bessere Software


Richard Seidl und Lars Luthmann gehen in dieser Folge des Podcasts Software Testing der Frage nach, welche Bedeutung „Developer Friendliness“ in der Softwareentwicklung hat. Sie plaudern darüber, wie ein angenehmes Arbeitsklima und geeignete Werkzeuge, wie Testschnittstellen und Testdatengeneratoren, den Alltag von Entwicklerinnen und Entwicklern erleichtern können.

Lars Luthmann teilt Einblicke aus einem Automobilprojekt, in dem innovative Ansätze wie REST-Schnittstellen und Mock-Services den Testprozess optimierten.

„Wenn man diese Maßnahmen dann umsetzt und die am Ende tatsächlich auch den Nutzen haben, den man denkt, dann spart man langfristig Zeit. Und das ist eben der eine ganz wichtige Punkt meiner Meinung nach.“ – Lars Luthmann

Bei diesem Podcast dreht sich alles um Softwarequalität: Ob Testautomatisierung, Qualität in agilen Projekten, Testdaten oder Testteams – Richard Seidl und seine Gäste schauen sich Dinge an, die mehr Qualität in die Softwareentwicklung bringen.

Die aktuelle Ausgabe ist auch auf Richard Seidls Blog verfügbar: „Developer Friendliness für bessere Software – Lars Luthmann“ und steht auf YouTube bereit.


(mdo)



Source link

Weiterlesen

Beliebt