Cyber-Kriminelle abwehren

So schützen Sie Ihre Web-Anwendung

04.11.2012 von Diego Wyllie
Termin- und Kostendruck sind keine Ausrede dafür, die Sicherheit von Web-Anwendungen zu vernachlässigen. Security ist zu einem entscheidenden Qualitätsmerkmal Web-basierender Software geworden.
Schützen Sie Ihre Web-Anwendungen!
Foto: Fotolia, NiDerLander

Die Meldungen über Datenschutzskandale häuften sich in den letzten Jahren. Ende 2008 musste beispielsweise die Deutsche Telekom bekannt geben, dass zwei Jahre zuvor 17 Millionen Telefonnummern und vertrauliche Kundendaten gestohlen worden waren. Eine Woche später erfuhr die Öffentlichkeit, dass durch ein Sicherheitsleck im Vertriebsportal der mobilen Sparte T-Mobile die Daten von rund 30 Millionen Handy-Kunden samt Bankverbindungen von Unbefugten mit relativ geringem Aufwand eingesehen und verändert werden konnten.

Wie hart es ein Unternehmen treffen kann, hat auch Sony schmerzlich erfahren müssen. Nachdem Cyber-Kriminelle sensible Informationen von Millionen Kunden erbeutet hatten, musste der japanische Elektronikriese seine Online-Dienste "Playstation Network" und "Qriocity" komplett abschalten. Man kann sich leicht vorstellen, dass ein solcher Angriff nicht nur einen großen Image-Verlust, sondern auch enorme Kosten verursachen kann.

Top100-2012 Security
Top100-2012 Security
In die Angaben zu den Security-Anbietern und deren Umsätze rechnet Gartner sämtliche Erlöse mit Sicherheitslösungen hinein.
Auch bei den Angaben zu den Security-Anbietern ist es interessant zu verfolgen, wie erfolgreich die Hersteller in den jeweiligen geografischen Regionen sind. Symantec allerdings ist in Emea genauso wie in Deutschland...
... und weltweit sehr deutlich die Nummer eins.
Ähnliches gilt es zusagen bei den Marktanteilen. Auch hier liegt Symantec in allen Regionen klar vorne.
Und auch hier ist auffallend, dass etwa eine Sophos in Deutschland noch Nummer zwei ist, in Emea allerdings schon auf Rang fünf abrutscht.
Weltweit findet Sophos in den Top-10 nicht mehr statt. Umgekehrt CA Technologies: Auf dem alten Kontinent nicht unter den besten zehn Anbietern platziert, rangiert das Unternehmen weltweit wenigstens auf Platz acht.

Es kann jeden treffen

Wer glaubt, im Visier von Cyber-Kriminellen ständen nur prominente Großunternehmen, der täuscht sich. Zwar schaffen es nur die spektakulärsten Vorfälle in die Schlagzeilen, doch Hacker machen bei ihren Angriffen keinen Unterschied, ob die Opferfirmen klein oder groß sind, bekannt oder unbekannt. So zeigt eine im Februar 2011 veröffentlichte Studie, die das amerikanische Sicherheitsinstitut Ponemon unter rund 640 Unternehmen vorgenommen hat, dass 73 Prozent der Befragten in den zwei Jahren zuvor erfolgreich gehackt wurden.

Das Einfallstor sind demnach Web-Applikationen und -Seiten. Viele der befragten Organisationen, so die Studie weiter, betrachten Web-Anwendungssicherheit als das kritischste Sicherheitsthema oder zumindest als ebenso kritisch wie andere Security-Aspekte. "Während IT-Spezialisten die Bedeutung sicherer Web-Anwendungen erkennen, bieten ihre Organisationen nicht die nötigen Mittel und auch nicht die nötigen Kenntnisse, um das Risiko zu begrenzen", kommentiert Larry Ponemon, Vorstand und Gründer des Instituts, die Studienergebnisse. "Mehr als die Hälfte der Interviewten glauben, nicht die Ressourcen zu haben, um Sicherheitsmängel in Web-Applikationen zu finden und zu beheben."

Viele Fehler im Vorfeld

Ähnliches bestätigt das Papier "Sicherheit von Web-Anwendungen" des Bundesamts für Sicherheit in der Informationstechnik (BSI). Richtlinien zur sicheren Programmierung seien demnach häufig nicht vorgegeben oder würden nicht beachtet. Freigabeprozesse, die vor der Produktivschaltung ein definiertes Sicherheitsniveau herstellen sollen, existierten nicht. Generell verfügbare Schutzmaßnahmen würden zugunsten maximaler Verfügbarkeit und Kostenersparnis nicht angewandt. Zudem kritisieren die Spezialisten, dass Softwareentwicklungs-Verträge und -Budgets die Sicherheit der Anwendung als Teilaspekt des Gesamtprojekts oft nicht vorsehen.

Das Fünf-Ebenen-Modell

Dabei sind Web-Anwendungen in Zeiten von Cloud Computing, Software as a Service, Mobile Computing und Social Media immer mehr Risiken und Bedrohungen ausgesetzt. Anders als es die rund 70 Prozent der von Ponemon befragten Unternehmen glauben, bietet eine herkömmliche Firewall keinen Schutz gegen Hacker-Angriffe auf Web-Applikationen. Effektive Sicherheit muss auf unterschiedlichen Ebenen erfolgen - nicht nur auf der Netzwerkschicht. Aus dem Grund empfiehlt das BSI eine Strukturierung des weiten Felds Web Application Security anhand eines Fünf-Ebenen-Modells. Dieses gruppiert über der Netzwerkschicht fünf weitere Ebenen: System, Technologie, Implementierung, Logik und Semantik.

Um möglichst sichere Web-Anwendungen zu erreichen, hat das BSI oberhalb der Netzschicht fünf weitere Ebenen definiert, auf denen Security verankert werden sollte.
Foto: BSI

Die Systemebene befasst sich demnach mit der Sicherheit der zur Realisierung der Web-Anwendung benötigten Software. Dazu gehören neben Web- und Applikations-Servern beispielsweise auch Datenbank- und Backend-Systeme. So sollte beispielsweise ein Web-Server in Bezug auf Benutzerkennung, Zugriffsrechte auf Prozesse, Verzeichnisse und Dateien, Fehlerausgaben und Protokollierung sicher konfiguriert werden. Das Gleiche gelte bei Datenbanken für gespeicherte Prozeduren, Tabellen, Tabelleninhalte etc. Generell ist auf der Systemebene der möglichst weitgehende Aufbau einer "Second-Line-of-Defense"-Strategie anzuraten, heißt es beim BSI. Dabei soll sichergestellt werden, dass nach Kompromittierung einer Anwendung die möglichen Auswirkungen auf andere Teilsysteme minimal bleiben.

Flight - Event-gesteuertes Web-Framework von Twitter
Unter Softwareentwicklern genießt Twitter einen guten Ruf, nicht zuletzt weil das Unternehmen zahlreiche Frameworks und Tools an die Community freigegeben hat.
Google Code Prettify macht Quelltexte besser lesbar
Es soll ja Programmierer geben, die mit einem einfachen Editor und unformatiertem Text arbeiten können. Die meisten Entwickler finden es aber mühsam, ohne Syntax-Hervorhebung Code zu lesen.
TideSDK - plattformunabhängige Desktop-Apps erstellen
Mit dem quelloffenen Framework "TideSDK" können Web-Entwickler ihr Know-how nutzen, um plattform-übergreifende Desktop-Anwendungen für Windows, Mac OS X und Linux zu erzeugen.
"LaunchRock" erstellt attraktive Landingpages im Nu
Der Dienst stellt ein Online-Tool bereit, mit dem man eine standardisierte Landingpage mit schlichtem Registrierungsformular erstellen kann.
App Annie liefert wertvolle App-Store-Statistiken
Wer neben Metriken über die Nutzung der eigenen Software auch an den Statistiken der App-Stores besonders interessiert ist, sollte einen Blick auf App Annie werfen.
Loggr - Monitoring und Analytics für Web-Anwendungen
Betreiber von Web-Anwendungen sind bedacht, eine möglichst hohe Performance und Verfügbarkeit sicherzustellen. Application-Performance-Management-Tools wie Loggr helfen dabei.
WPTouch macht aus Wordpress-Blogs mobile Apps
Das kostenlose Plugin "WPTouch" wandelt Wordpress-Blogs in eine mobile App um. Dabei nimmt die Seite das charakteristische Look and Feel der jeweiligen Plattform automatisch an.
The M-Project - HTML5-Framework für mobile Web-Apps
Mit "The M-Project" steht ein quelloffenes HTML5-Framework für mobile Web-Apps zur Verfügung, das in Deutschland entwickelt wird.
HockeyApp - Smartphone-Apps besser testen
HockeyApp sammelt Informationen wie Crash-Reports und Anwendungs-Logs und liefert ausführliche Testberichte.
Kirby - ein textbasierendes Content-Management-System
OpenWe hat mit "Kirby" ein Content-Management-System (CMS) entwickelt, das ganz ohne Datenbank auskommt.
Mashape - Zentraler Marktplatz für APIs
APIs, die verschiedene WebDienste miteinander integrieren können, werden mit SaaS, Cloud Computing & Co. immer wichtiger. Das Startup Mashape stellt eine zentrale Drehscheibe für Programmierschnittstellen zur Verfügung, die die Integration heterogener Cloud-Dienste vereinfachen soll - quasi eine Art App Store für APIs.
Tower - Anspruchsvolles Git-Tool für den Mac
"Tower" ist ein professioneller Git-Client für Mac OS X, der in Sachen Bedienkomfort und Funktionalität kaum Wünsche offenlässt.
Google Swiffy verwandelt Flash-Inhalte in HTML5
Wer sicherstellen will, dass sich Flash-Inhalte auch auf iOS-Plattformen betrachten lassen, sollte sich das Konverter-Tool "Swiffy" ansehen.
Cappuccino bringt Mac-Usability ins Web
Die jungen Entwickler hinter "Cappuccino" sind sehr ehrgeizig: Ein Web-Framework, bei dem man keinen HTML- beziehungsweise CSS-Code schreiben kann und sich mit dem DOM (Document Object Model) nicht auseinandersetzen muss, ist allein schon ein recht mutiger Ansatz. Dazu kommt noch eine selbst entwickelte Programmiersprache, Objective-J, die das Beste von Javascript und Objective-C vereinen soll.
Flotr2 - Interaktive Diagramme auf HTML5-Basis erstellen
Angeboten von der Softwareschmiede Humble Software bietet "Flotr2" einen einfachen Weg, dynamische und interaktive Diagramme in Web-Seiten und -Anwendungen zu integrieren.
MooTools - das objektorientierte Javascript-Framework
Wie wichtig die Rolle ist, die Javascript in der heutigen Web-Entwicklung spielt, spiegelt sich in der großen Zahl von Frameworks, Tools und Klassenbibliotheken wider, die die Arbeit mit der mächtigen Skriptsprache erleichtern und heute auf dem Markt zu finden sind.
Mobitest analysiert die Performance mobiler Websites
Mit "Mobitest" können Entwickler die Ladezeiten von mobilen Websites auf populären Smartphones und Tablets messen.
Ohne Programmierkenntnisse - Apps Marke Eigenbau
Die Entwicklung von Smartphone-Apps ist nicht gerade günstig. Wer eine tolle Idee für eine App hat, aber weder Programmierkenntnisse noch Geld für deren Umsetzung durch einen professionellen Entwickler besitzt, kann auf Tools zurückgreifen, die nach dem Baukastenprinzip arbeiten.
Mojito hilft bei der Entwicklung mobiler Web-Apps
Als erstes Entwickler-Tool im Rahmen der umfangreichen Initiative "Yahoo Cocktails" hat der Internet-Konzern Yahoo "Mojito" herausgebracht.
Socialize - Sharing-Funktionen in die eigene App integrieren
So gut wie jede Smartphone-App bietet den Nutzern die Möglichkeit, die Anwendung in den wichtigsten sozialen Netzwerken ihren Freunden und Kollegen zu empfehlen. Meistens steht dazu ein einfacher Button zur Verfügung, der den User nach Twitter, Facebook etc. weiterleitet.
RestKit - Solides Fundament für Cloud-basierende iOS-Apps
Bei der Entwicklung Web-basierender Apps fallen immer wieder die gleichen Aufgaben an. Ein typischer Use-Case sieht vor, dass vom Anwender erzeugte Daten validiert und via HTTP-Anfrage an den Server geschickt werden.
Flurry Analytics - Google Analytics für Apps
Welche Features werden am häufigsten verwendet? Wie oft wurde diese oder jene Ressource angeklickt? Welche Fehler treten in einem bestimmten Modul auf? App-Entwickler, die Antworten auf solche Fragen suchen, sind mit Flurry Analytics gut bedient.
Sproutcore - HTML5-Framework für moderne Web-Apps
Nutzer erwarten zunehmend, dass sich Applikationen im Browser genauso anfühlen wie Desktop-Anwendungen. Das ständige Warten auf Server-Daten stellt deshalb eine der größten Hürden für Web-Applikationen dar.
Jotform - Komplexe Web-Formulare einfach erstellen
Bei Jotform handelt es sich um einen Web-basierenden Wysiwyg-Formular-Wizard. Dieser ermöglicht es Web-Entwicklern wie Laien, optisch ansprechende und funktional anspruchsvolle Web-Formulare zu erstellen, und das in nur wenigen Schritten.
Bootstrap - Website-Vorlage von den Twitter-Entwicklern
Web-Entwickler erhalten mit Bootstrap eine professionelle HTML- und CSS-Vorlage, die als solides und flexibles Fundament für eigene Projekte dienen kann.
Modernizr hilft beim Einstieg in HTML5
Der neue Standard HTML5 bietet Programmierern und Designern Techniken und Funktionen, die sie sich lange gewünscht haben. Doch leider zögern noch viele, von den schönen neuen Features in eigenen Projekten Gebrauch zu machen.
Apache Wink - Einfache Rest-Services für Java
"Wink" ist ein junges Open-Source-Projekt der Apache Foundation, das Java-Entwicklern die einfache Implementierung von Web-Services im Rest-Style (Representational State Transfer) ermöglicht.
Aviary - Kostenloser Foto-Editor für Mobile- und Web-Apps
Die Softwareschmiede Aviary ist für zahlreiche innovative Online-Anwendungen im Bereich Multimedia bekannt. Die bei der Entwicklungsarbeit gesammelten Erfahrungen spiegeln sich in dem kostenlosen "Aviary"-Framework wider.
Three20 - Mächtige Open-Source-Bibliothek für iOS-Anwendungen
"Three20" ist eine quelloffene, erstklassige iOS-Bibliothek, die die Entwicklung nativer Anwendungen für iPhone und iPad vereinfachen und beschleunigen kann.
CForms - Mächtiges Formular-Plugin für Wordpress
Web-Formulare dürfen in so gut wie keinem Blog beziehungsweise keiner Website fehlen. Unter Wordpress-Nutzern sehr beliebt ist in diesem Bereich das kostenlose Tool "CForms". Damit lassen sich beliebig komplexe Formulare erstellen und auf einfache Weise in Blog-Einträge und Seiten integrieren.
Testflight vereinfacht das Testen von iOS-Apps
Entwickler, die ihre iOS-Apps von Kunden, Betatestern oder Kollegen testen lassen möchten, müssen sich einem aufwendigen Prozedere beugen.
Einfache Web-Formulare mit Google Docs
Ein großer Vorteil des Web ist die papierlose Erfassung von Formulardaten. Jeder Internet-User kennt diese Formulare (Webforms) im täglichen Umgang mit Ebay, Amazon, Facebook & Co.
Imgscalr - Bilder in Java einfach skalieren
Bei Web-Anwendungen muss man Bilder häufig skalieren, weil sie in einer Größe angezeigt werden sollen, in der sie eigentlich nicht vorliegen.
Kendo UI Mobile - HTML5-Framework für Smartphone-Apps
Vor allem im Mobile-Bereich müssen Softwarehersteller in eine elegante, intuitive und schöne Arbeitsoberfläche investieren. Hilfe verspricht hier das auf HTML5, CSS3 und Javascript basierende Mobile-Framework "Kendo UI Mobile" von dem amerikanischen Softwareunternehmen Telerik.
Applicasa - Hosting-Service für Backend-Systeme
Mit einem umfassenden Hosting-Service, der Backend-Systeme für Mobile-Anwendungen bereitstellt, versetzt "Applicasa" iOS-Entwickler in die Lage, sich voll und ganz auf ihre App zu konzentrieren.
Pencil Sketching - GUI-Skizzen in Firefox
"Pencil Sketching” eignet sich optimal dazu, schnell und unkompliziert GUI-Prototypen für Web-Anwendungen zu erstellen.
Firebug - ein Muss für Web-Entwickler
Zur Analyse und Optimierung von Web-Seiten hat sich das Firefox-Add-on "Firebug" als Standardwerkzeug für Web-Entwickler etabliert.
Mit Bugzilla Programmfehlern auf der Spur
Die Mozilla Foundation bietet mit "Bugzilla" ein nützliches Web-Tool zur zentralen Erfassung, Analyse und Verwaltung von Programmfehlern.
Xampp installiert Ihren Apache-Server
Ein Apache-Server mit Perl-, PHP- und MySQL-Unterstützung lässt sich nicht so einfach einrichten. Wer eine solche Umgebung lokal auf seinem Rechner braucht, der kann auf "Xampp" zurückgreifen, anstatt alles selber zu installieren.
Http-Anfragen bequem mit URL Decoder editieren
Mit dem "URL Decoder” können Web-Entwickler Http-Anfragen mit vielen Parametern in einer Übersichtstabelle visualisieren und schnell bearbeiten.
MediaElementPlayer - HTML5-Video für jeden Browser
Egal ob Internet Explorer, Firefox, Safari oder Chrome, ob auf dem PC, iPhone, iPad oder Android-Smartphone: Mit dem JavaScript-Framework "MediaElementPlayer" funktioniert HTML5-Video in jedem Browser und auf jedem Gerät.
Poedit hilft bei der Software-Lokalisierung
Bei der Lokalisierung von Software-Anwendungen werden oft Portable-Object-Dateien verwendet. Mit dem kostenlosen Tool "Poedit" lassen sie sich bequem bearbeiten.
Hurl - Web-APIs direkt im Browser testen
Web-Entwickler haben täglich mit Http-Anfragen zu tun, sei es bei der Implementierung eigener Server-Client-Anwendungen, bei der Arbeit mit Web-Services oder bei der Integration mit externen APIs (Application Programming Interface).

Web Application Firewalls helfen ab

Während auf der Netzwerkschicht mittlerweile bewährte Firewall-Techniken zur Verfügung stehen, gab es auf der Systemebene von Web-Anwendungen lange Zeit keinen vergleichbaren Schutz. Mittlerweile können hier Web Application Firewalls - auch Web-Shields genannt - eingesetzt werden. Diese Systeme werden sowohl als reine Softwarelösungen als auch in Kombination von Hard- und Software (Appliances) angeboten. Sie filtern den Datenstrom zwischen Client und Server und können schädliche beziehungsweise gefährliche Anfragen blockieren, bevor sie die Anwendung erreichen. Einige Produkte sind zudem in der Lage, die vom Web-Server an den Browser versandten Daten zu überwachen. Wie Bruce Sams, Geschäftsführer der Optima Business Information Technology GmbH, erklärt, können Web-Shields jedoch nicht alle Angriffsformen erkennen und dienen keinesfalls als Ersatz für die Erstellung sicherer Software. Aus dem Grund gilt: Sicherheitsprobleme sollten in der Web-Anwendung selbst gelöst werden - und zwar auf der vom BSI definierten Technologie- und Implementierungsebenen.

Security in der App verankern

Die Technologieebene betrifft die Verwendung angemessener Schutztechniken sowie deren korrekte Nutzung. Hier werden Fragen behandelt wie die Wahl des richtigen Authentifizierungsverfahrens oder einer geeigneten Softwarearchitektur. Zu evaluieren ist zudem der Einsatz von Mechanismen wie SSL-Protokolle oder Sicherheitszertifikate.

Die Implementierungsebene hängt stark mit der Technologieebene zusammen. Hier kommen die unbeabsichtigten Programmierfehler in den Blick, aber auch die nicht vorhandene oder ungenügende Prüfung von Eingabedaten - das Stichwort heißt Datenvalidierung. Ferner beinhaltet sie laut BSI ungenügende Testverfahren sowie die

Vernachlässigung der Qualitätssicherung zugunsten des Inbetriebnahmetermins oder aus Kostengründen. Häufig ausgenutzte Schwachstellen wie Cross Site Scripting (XSS) und SQL-Injection sind auf dieser Ebene angesiedelt. Diese Techniken sind nach dem letzten "Web Application Security Trends Report" aus dem vierten Quartal 2010 von Cenzic Inc., Anbieter von Sicherheitsprodukten im Bereich Cloud Computing, nach wie vor die am weitesten verbreiteten Sicherheitslücken bei kommerziellen und quelloffenen Web-Anwendungen.

Die gefährlichsten Schwachstellen

• Cross Site Scripting (XSS): XSS ermöglicht es Hackern, bösartige Skripte im Browser des Opfers auszuführen und darüber Nutzer-Sessions zu kapern, Schadcode zu injizieren und Phishing- beziehungsweise Malware-Attacken zu betreiben.

• SQL-Injection: Angreifer versuchen, über Sicherheitslücken in einer Web-Anwendung eigene Datenbankbefehle einzuschleusen. Das Ziel ist es, Daten auszuspähen und zu verändern oder die Kontrolle über den Server zu erhalten.

• Path Disclosure: Dabei handelt es sich um eine übliche Form von "Information Disclosure", bei der ungewollt ein absoluter Dateipfad und damit Teile der Verzeichnisstruktur einer Web-Anwendung enthüllt werden. Solche Informationen können Angreifern helfen, Rückschlüsse auf die verwendete Programmiersprache oder eingesetzten Teilsysteme zu ziehen, um Attacken gezielter zu gestalten.

• Cross Site Request Forgery (CSRF): Bei dieser Angriffsart übernimmt der Hacker die Kontrolle über den Browser seines Opfers, sobald sich dieser bei einer Web-Seite eingeloggt hat, und sendet in dessen Namen bösartige Anfragen an die Web-Anwendung.

• Denial-of-Service (DoS): Bei einer DoS-Attacke werden Web-Server durch Überlastung lahmgelegt. Sie erhalten binnen kurzer Zeit so viele Anfragen, dass sie mit der Bearbeitung nicht mehr hinterherkommen und zusammenbrechen.

Code-Review-Tools

Um solche Schwachstellen zu identifizieren, greifen Softwareentwickler zunehmend auf Code-Review-Tools zurück wie etwa "CodeSecure", "Fortify 360" oder "Parasoft", um nur einige Beispiele zu nennen. Diese bieten Entwicklern einen effizienten Weg, große Codemengen automatisch auf Schwachstellen zu untersuchen. Die meisten Produkte sind in Entwicklungsumgebungen integrierbar und verfügen über BugTracking-Systeme. Außerdem lassen sie sich oft mit zentralen Code-Repositories verbinden.

Hacker nutzen besonders die Schwachstellen der Implementierungsebene wie XSS.

Eine weitere effiziente Möglichkeit, Sicherheitslücken aufzuspüren, bietet sich mit den Web-Applikations-Scannern, kurz Web-Scanner, an. Solche Tools helfen Entwicklern bei der dynamischen Überprüfung von Web-Anwendungen, indem sie aufwendige manuelle Testing-Aufgaben teilweise automatisieren. Diese arbeiten in der Regel in zwei Schritten: Zunächst werden die Struktur und sämtliche Seiten innerhalb einer Anwendung erfasst. Für das so genannte "Crawlen" muss der Scanner in der Lage sein, Links zu weiteren Seiten zu folgen, auch wenn sie dynamisch erzeugt werden.

Clocking IT
Als umfassende Projekt-Management-Lösung hat sich "Clocking IT" vor allem unter Softwareentwicklern einen Namen gemacht.
HeaderDoc
Mit Hilfe von "HeaderDoc" können Entwickler Programmcode auf einheitliche und professionelle Weise dokumentieren.
UDID Tool
Mit dem kostenlosen "UDID Tool" können iOS-Entwickler die Identifikationsnummer eines iPhone, iPod Touch oder iPad einfach her-ausfinden.
Pastebin
Mit dem Online-Service "Pastebin" lassen sich beliebige Codeschnipsel auf bequeme und einfache Weise im Web speichern und mit Freunden und Kollegen über einen Link teilen.
JSON Editor
Das schlanke Datenaustauschformat JSON (Javascript Object Notation) wird als XML-Alternative unter Softwareherstellern immer beliebter. Vor allem wenn es darum geht, Daten mittels Ajax zwischen Client und Server zu übertragen, greifen immer mehr Entwickler auf JSON zurück.
Pieceable Viewer
Der Pieceable Viewer erleichtert die Entwicklung von iPhone-Apps.
Rhodes
Rhodes übersetzt Programmcode für Smartphone-Apps in die jeweilige Zielplattform.
Bitbucket
Der Code-Repository-Dienst "Bitbucket" von Atlassian unterstützt die verteilten Versionskontrollsysteme Git und Mercurial und ist in der Basisversion kostenlos erhältlich - auch für private Projekte.
Cloud9 IDE
Der Online-Dienst "Cloud9 IDE" zählt zu den wenigen Entwicklungsumgebungen, die ausschließlich für die Cloud konzipiert sind und vollständig auf dem Browser laufen. Damit können Entwickler ihre Javascript-Projekte zentral in der Cloud verwalten und auf ihren Code immer und von überall aus zugreifen.
Jo
Mit "Jo" erhalten Entwickler ein interessantes HTML5-Framework, das speziell für die Entwicklung mobiler Apps konzipiert wurde.
Maqetta
Das Entwicklungs-Tool "Maqetta" hat IBM als Antwort auf Flash und Silverlight entwickelt. Das Ziel: die Defizite von Ajax-Umgebungen gegenüber diesen pro-prietären Lösungen ausgleichen.
TextMate
"TextMate" ist ein mächtiger Editor für Mac OS X, der sich mit Funktionen wie Syntaxhervorhebung, Codefaltung, Makros und Shell-Integration in erster Linie an Programmierer richtet.
Grails
Von "Ruby on Rails” inspiriert bringt "Grails” die Flexibilität und Effizienz, die das beliebte Web-2.0-Framework populär gemacht haben, in die Welt der Java-Programmierung.
JavaScriptMVC
"JavaScriptMVC” basiert auf dem erprobten Model-View-Controller-Muster und bietet umfangreiche Unterstützung beim Dokumentieren, Debuggen und Testen von Web-Frontends.
Pixelwindow
Mit "Pixelwindow” können Pixelmaße auf dem Bildschirm ganz einfach ausgemessen werden.
Play-Framework
Mit "Play” stellt sich ein Framework für Web-Anwendungen vor, das die Vorteile von Java als Programmiersprache und Plattform mit der Flexibilität und Effizienz von "Ruby on Rails” vereinen will.
Titanium Mobile
Mit dem quelloffenen Framework "Titanium Mobile” können auch Web-Entwickler ohne Java- oder Objective-C-Kenntnisse native Anwendungen für Android und iPhone implementieren.
Django
Als Python-Gegenstück zum populären Ruby-on-Rails-Framework erfreut sich die quelloffene Web-Lösung "Django” aufgrund ihrer Einfachheit und Flexibilität zunehmender Beliebtheit.
Phonegap
Das freie Framework "Phonegap” wandelt Web-Software in native Applikationen für iOS, Android, Blackberry, WebOS, Symbian und Windows Mobile um.
Textastic
Wer mit seinem iPad Quelltextdateien bearbeiten möchte, ist mit "Textastic 1.0” gut bedient. Das Tool bietet Syntax-Highlighting für alle denkbaren Programmiersprachen.
GTmetrix
Mit "GTmetrix” können Web-Entwickler die Performance ihrer Websites online testen. Die Lösung integriert die erprobten Optimierungs-Tools "Yahoo YSlow” und "Google Page Rank”.
Apache FileUpload
Mit "FileUpload” der Apache Foundation steht Java-Entwicklern eine quelloffene Bibliothek für die unkomplizierte und flexible Implementierung von Datei-Uploads zur Verfügung.
websequencediagrams.com
Unter "websequencediagrams.com" lassen sich UML-Sequenzdiagramme im Nu erstellen und als PDF exportieren.
SQLite Expert
Die minimalistische Open-Source-Datenbank SQLite wird dank HTML5 und Smartphones wie Android und iPhone immer beliebter. Mit dem Freeware-Tool für Windows "SQLite Expert” können Entwickler solche Client-seitigen Datenbanken bequem verwalten.
Simple
Das wenig bekannte, aber mächtige Framework "Simple” erleichtert die Arbeit mit XML-Inhalten in Java-Projekten.
URL Decoder
Mit dem "URL Decoder” können Web-Entwickler Http-Anfragen mit vielen Parametern in einer Übersichtstabelle visualisieren und schnell bearbeiten.
JQuery UI
Mit Hilfe von "JQuery UI”, einem JavaScript-Framework für visuelle Effekte, Animationen und GUI-Widgets, wird es um einiges leichter, modular aufgebaute und flexible Web-Frontends zu erstellen.
MediaElementPlayer
Egal ob Internet Explorer, Firefox, Safari oder Chrome, ob auf dem PC, iPhone, iPad oder Android-Smartphone: Mit dem JavaScript-Framework "MediaElementPlayer" funktioniert HTML5-Video in jedem Browser und auf jedem Gerät.
Browserlab
Mit "Browserlab", einem kostenlosen Online-Dienst von Adobe, können Web-Entwickler schnell überprüfen, wie die verschiedenen Browser ihre Web-Seiten darstellen.
MySQL Workbench
MySQL-Anwender finden in der kostenlosen "MySQL Workbench” viele nützliche Werkzeuge, die die Arbeit mit der beliebten Open-Source-Datenbank erleichtern.
Struts
Die Apache Foundation entwickelt das Web-Framework "Struts”, das von vielen als De-facto-Standard im Bereich Java Enterprise angesehen wird.
Poedit
Bei der Lokalisierung von Software-Anwendungen werden oft Portable-Object-Dateien verwendet. Mit dem kostenlosen Tool "Poedit" lassen sie sich bequem bearbeiten.
Xampp
Ein Apache-Server mit Perl-, PHP- und MySQL-Unterstützung lässt sich nicht so einfach einrichten. Wer eine solche Umgebung lokal auf seinem Rechner braucht, der kann auf "Xampp" zurückgreifen, anstatt alles selber zu installieren.
Scriptaculous
"Scriptaculous" gehört zu den beliebtesten Javascript-Libraries für visuelle Effekte und attraktive Benutzeroberflächen mit Web-2.0-Charakter.
Cyberduck
Der kostenlose "Cyberduck" für Mac OS X bietet alles, was man von einem FTP-Client erwartet. Die vielen Extras für Entwickler und Administratoren sowie die nahtlose Integration in die Mac-Umgebung machen den Unterschied aus.
Sencha Touch
Mit dem neuen, quelloffenen HTML5-Framework "Sencha Touch" lassen sich mobile Web-Anwendungen für iPhone, iPad und Android entwickeln, die den nativen Applikationen Konkurrenz machen.
Prototype
"Prototype" erweitert Javascript um Konzepte der objektorientierten Programmierung und vereinfacht damit die Entwicklung komplexer Web-Anwendungen.
NaturalDocs
Mit "NaturalDocs" lassen sich Quelltextdateien, die in verschiedenen Programmiersprachen geschrieben sind, auf einheitliche und konsistente Weise dokumentieren.
TheGun
Editoren gibt es wie Sand am Meer. Wer jedoch mit großen Log-Files oder sonstigen unhandlichen Textdateien umzugehen hat, der wird sich über "TheGun" freuen.
CruiseControl
Das Build-Automatisierungs-Tool "CruiseControl" vereinfacht das Deployment von Softwareprojekten im Java- und .NET-Umfeld.
Launch4J
Das leichtgewichtige Open-Source-Tool "Launch4J" erlaubt es Java-Entwicklern, ihre Anwendungen in native und ausführbare Windows-Dateien umzuwandeln.
YUI Library
Mit der Bibliothek "Yahoo User Interface" (YUI) steht Web-Entwicklern ein ganzheitliches Javascript-Framework zur Verfügung, das aufeinander abgestimmte Funktionen, Komponenten und Tools bietet.
Quartz
Mit dem quelloffenen Framework "Quartz Enterprise Job Scheduler" lassen sich zeitgesteuerte Aufgaben effizient in Java-Anwendungen implementieren.
Snippely
"Snippely" ist ein kleiner Helfer, der sich auf eine einzige Aufgabe fokussiert: Code-Schnipsel und Notizen möglichst einfach zu verwalten.
JFreeChart
Mit der Open-Source-Bibliothek "JFreeChart" können Java-Entwickler interaktive und dynamische Diagramme leicht in Desktop- oder Web-Anwendungen implementieren.
Sequel Pro
"Sequel Pro" ist eine kostenlose und native Anwendung, die die Verwaltung von MySQL-Datenbanken auf dem Mac deutlich vereinfacht.
Dojo Toolkit
Wer ohne viel Programmieraufwand das Look and Feel von Desktop-Anwendungen im Web nachahmen möchte, wird beim Javascript-Framework "Dojo" fündig.
Bugzilla
Die Mozilla Foundation bietet mit "Bugzilla" ein nützliches Web-Tool zur zentralen Erfassung, Analyse und Verwaltung von Programmfehlern.
Tapestry
Mit "Tapestry" bietet die Apache Foundation ein leistungsfähiges Web-Framework für Java-Anwendungen. Es soll Entwicklern ermöglichen, möglichst viele GUI-Komponenten wiederzuverwenden.
Firebug
Zur Analyse und Optimierung von Web-Seiten hat sich das Firefox-Add-on "Firebug" als Standardwerkzeug für Web-Entwickler etabliert.
Google Web Toolkit
Mit dem "Google Web Toolkit" (GWT) steht Java-Entwicklern ein Werkzeug zur Verfügung, das die Erstellung moderner Web-2.0-Anwendungen vollständig mit Server-seitigen Technologien gestattet. Der Clou: Ein integrierter Compiler generiert automatisch Ajax-Sites aus Java-Klassen.
Adobe Spry
Mit "Spry" stellt Adobe ein kostenloses Ajax-Framework bereit, das besonders leicht zu implementieren ist.
JEdit
Mit "JEdit" steht Entwicklern ein kostenloser und plattformunabhängiger Text-Editor zur Verfügung, der Syntax-Hervorhebung für mehr als 130 Programmiersprachen bietet. Durch Plug-Ins kann der Nutzer das Tool erweitern.
Superb Batch Renamer
Mit 1-4a Rename (Superb Batch Renamer) ist dem Autor ein großer Wurf gelungen. Das Tool besticht durch klaren Aufbau, gigantischen Funktionsumfang, exzellente Performance, einen Preview-Screen und den Experten-Modus. Ein "Must-have". <br /><br /> <a href="http://www.computerwoche.de/software/office-collaboration/1911042/" target="_blank">...zum Testbericht</a>
GSpot
GSpot ist ein sehr nützliches Werkzeug für die Codec-Analyse unbekannter Media-Dateien. <br /><br /> <a href="http://www.computerwoche.de/software/office-collaboration/1911432/" target="_blank">...zum Testbericht</a>
Super
Super ist eines der leistungsstärksten Tools für Transcodierungen aller Art. Während der weit verbreitete VLC Media Player Files jeglichen Formats abspielen kann, ergänzt Super diesen noch um viele weitere sinnvolle Funktionen wie Muxen/Demuxen und Datei-Zusammenführung. Eine "Engine" wie Super, die automatisch das Eingangsformat erkennt und on the fly auf ein definiertes Zielformat konvertiert, wünscht man sich auf jedem Multimedia-Player für zu Hause. <br /><br /> <a href="http://www.computerwoche.de/software/office-collaboration/1910780/" target="_blank">...zum Testbericht</a>
CPick
CPick ist ein sehr schönes und nützliches Werkzeug für den Umgang mit Bildschirmgrafiken aller Art. Die Lupe erlaubt ein präzises Positionieren und den sofortigen Abruf der Farbinformationen. <br /><br /> <a href="http://www.computerwoche.de/software/office-collaboration/1910065/" target="_blank">...zum Testbericht</a>
XML Marker
XML Marker erlaubt die Analyse auch von großen und komplexen XML-Strukturen. <br /><br /> <a href="http://www.computerwoche.de/software/software-infrastruktur/1908141/" target="_blank">...zum Testbericht</a>
UNetbootin
Wer für bootfähige Medien umständliches CD-Brennen vermeiden will, findet in "UNetbootin" ein komfortables Werkzeug. <br /><br /> <a href="http://www.computerwoche.de/software/software-infrastruktur/1907495/" target="_blank">...zum Testbericht</a>
Xenu
Xenu arbeitet zuverlässig und schnell und ist das Schweizer Messer beim Aufspüren von Verlinkungsproblemen. <br /><br /> <a href="http://www.computerwoche.de/software/software-infrastruktur/1907252/" target="_blank">...zum Testbericht</a>
JasperReports
Gerade die Kombination aus dem komfortablen Editor iReport und JasperReports als Reporting-Engine kann sich als echte Alternative zu vielen am Markt erhältlichen kommerziellen Produkten sehen lassen. <br /><br /> <a href="http://www.computerwoche.de/software/bi-ecm/1904666/" target="_blank">...zum Testbericht</a>
IZArc
IZArc ist kostenlos und nicht so bekannt wie ezwa 7-Zip. Wer auf der Suche nach einem leistungsfähigen All-in-one-Packer ist, sollte sich IZArc anschauen. <br /><br /> <a href="http://www.computerwoche.de/software/office-collaboration/1906417/" target="_blank">...zum Testbericht</a>
Plato Free Edition
Kostenlose UML-Tools haben oft irgendeine Einschränkung. Die "Plato Free Edition" ist hier eine interessante Alternative. <br /><br /> <a href="http://www.computerwoche.de/software/soa-bpm/1900060/index.html" target="_blank">...zum Testbericht</a>
Xtext
Die Modellierung mit domänenspezifischen Sprachen reduziert ein Projekt auf das spezifische Problem und trägt damit zur besseren Kommunikation bei. Xtext ist hierfür ein einfaches, aber effizientes Tool. <br /><br /> <a href="http://www.computerwoche.de/software/software-infrastruktur/1897203/index.html" target="_blank">...zum Testbericht</a>
JMeter fühlt Web-Applications auf den Zahn
JMeter simuliert Lasttests für Anwendungen und hilft dabei, Engpässe oder Probleme frühzeitig zu erkennen.
TextUML - einfach per Text modellieren
Trotz mancher Einschränkungen bietet TextUML einen pragmatischen Ansatz, der den Umgang mit der UML sehr erleichtert.
Automatische Tests für Web-Applikationen
Das Firefox-Plug-in "Selenium" zeichnet Testabläufe auf, die modifiziert und erneut gestartet werden können.

Simulierter Angriff

Im zweiten Schritt findet die eigentliche Schwachstellensuche statt. Jede Seite, die vom Scanner während des Crawl-Vorgangs erfasst wurde, wird einzeln und wiederholt untersucht. Dazu werden alle Formularfelder und Parameter innerhalb der Seite mit bestimmten Angriffsmustern vorbelegt und anschließend an die Web-Applikation geschickt, um deren Reaktion auszuwerten. An der Antwort lässt sich dann im Detail erkennen, wie die Anwendung auf den Angriff reagiert hat.

Wie viele Male wurde Ihr Unternehmen in den letzten zwei Jahren über eine Web-Anwendung angegriffen?

Nach Einschätzung der Security-Experten des BSI ist die Validierung und Filterung von Eingabe- und Ausgabedaten das A und O einer sicheren Web-Applikation. Insofern seien Web-Entwickler gut beraten, den Datenfluss nicht nur vom Benutzer zur Anwendung und umgekehrt, sondern auch zu den verschiedenen Subsystemen und von dort in die Ausgabe zu überprüfen und in ein ganzheitliches Konzept zur Data Validation zu integrieren. Eine Input-Validierung findet statt, bevor die Eingabedaten zum Zugriff auf Subsysteme, etwa eine Datenbank, genutzt werden. Dies geschieht zur Verhinderung von Injection-Angriffen. Dabei müssen Input-Daten auf potenziell gefährliche Zeichen untersucht und diese gegebenenfalls gefiltert werden. Hier bieten sich zwei Verfahren an: Beim "Blacklisting"-Ansatz werden die Zeichenmuster definiert, die aus dem Eingabestrom herausgefiltert werden sollen, während alles andere durchgelassen wird. Beim "Whitelisting" erfolgt dies umgekehrt: Alles, was nicht ausdrücklich erlaubt ist, ist verboten. Generell ist dem BSI zufolge das Whitelisting-Verfahren vorzuziehen. Der Grund: Wenn problematische Zeichenmuster vergessen oder bei der Implementierung nicht berücksichtigt wurden, werden sie beim Whitelisting-Verfahren automatisch geblockt, im anderen Fall nicht.

Die 10 größten Security-Risiken in der Cloud
Lesen Sie, welche Security-Risiken der Einsatz einer Public oder Hybrid Cloud birgt und was Sie dagegen tun können.
Verletzung der Vertraulichkeit und Integrität der Daten:
Eine Lokalisierung der Daten ist in einer Public oder Hybrid Cloud für den Dateneigentümer nicht mehr einfach möglich. Daher ist der Schutz der Daten auf der Infrastruktur-, Plattform und Applikationsebene häufig nicht mehr mit üblichen Mitteln zu gewährleisten.
Löschung von Daten:
Daten müssen in vielen Fällen (etwa aufgrund gesetzlicher Bestimmungen) gelöscht werden. Auch hier besteht das Risiko einer nur unzureichenden oder unvollständigen Löschung auf allen Plattformen und Datenbanken der Cloud, da die Lokalisierung der Daten nur schwer möglich ist.
Ungenügende Mandantentrennung:
Bei nicht ausreichend abgesicherter Mandantentrennung besteht die Gefahr, dass Dritte unautorisiert Daten einsehen oder manipulieren können.
Verletzung der Compliance:
Da Daten in einer Public Cloud prinzipiell in allen Ländern der Welt in deren spezifischen Rechtsordnungen verarbeitet werden können, ist die Erfüllung aller gesetzlicher Anforderungen eine wesentliche Aufgabe bei der Nutzung von Public Cloud Leistungen.
Verletzung von Datenschutzgesetzen:
Es ist nicht von vornherein klar, in welchen Ländern, Rechenzentren, auf welchen Servern und mit welcher Software die Daten gespeichert und verarbeitet werden.
Insolvenz des Providers:
Die Insolvenz eines Providers bedeutet meist nicht die Insolvenz aller Rechenzentren, die der Provider verwendet hat. Rechenzentren werden zudem bei Insolvenz mit großer Wahrscheinlichkeit an andere Provider verkauft werden.
Problematik der Subunternehmer:
Ein weiteres Problem stellt die Auftragsweitergabe an Subunternehmer dar. Der Provider wird häufig Subunternehmer für gewisse Leistungen verpflichten. In einer Public Cloud bleibt auch diese Komplexität dem Benutzer häufig verborgen (und soll ja nach der Philosophie des Cloud Computing verborgen bleiben).
Beschlagnahmung von Hardware:
Eine Beschlagnahme von Hardware kann in allen Ländern erfolgen, in denen der Provider Computing-Ressourcen nutzt. Meist werden sich Daten des Auftraggebers auf beschlagnahmten Servern befinden.
Handel mit Ressourcen wird denkbar:
Denkbar ist auch, dass Provider einen Handel mit ihren Ressourcen untereinander aufbauen und damit eine "Ressourcenbörse" realisieren wie sie in obiger Abbildung angedeutet ist. Auf dieser Börse werden Ressourcen zu einem bestimmten Preis angeboten.
Erpressungsversuche:
Die Gefahr von Erpressungsversuchen steigt, da der Personenkreis mit Administrationsaufgaben für Ressourcen der Public Cloud unüberschaubar groß ist. Das eingesetzte Personal verfügt im Allgemeinen über unterschiedliches Ausbildungsniveau und Sicherheitsbewusstsein.

Session-Management

Auf der Logikebene geht es um die Art und Weise, wie die Fachprozesse in der Anwendung abgebildet sind und wie die Interaktion mit dem Benutzer gestaltet ist. Das Session-Management stellt dabei einen kritischen Punkt dar, mit dem sich Web-Entwickler intensiv befassen sollten.

Die semantische Ebene umfasst schließlich inhalts- und kommunikationsbezogene Aspekte und stellt den Vertrauenskontext für die Interaktion mit den Benutzern her. Wird in diesem Bereich kein hohes Maß an Sorgfalt aufgewendet, so erhöht sich die Gefahr, dass eine Web-Anwendung von Dritten missbraucht wird, um den Benutzer zu täuschen. Missbrauchsmöglichkeiten, die sich Fehler auf der semantischen Ebene zunutze machen, sind Social Engineering, Phishing sowie Identitätsdiebstahl. Das ist besonders gefährlich, denn neben Hackern stellen die Anwender das höchste Sicherheitsrisiko für Unternehmen dar. (ph)