NoSQL, Whitelisting, MapReduce

Was wirklich wichtig wird

04.10.2010
Von Ruwen Schwerin

Plätze 10 und 9: Whitelisting und Cross-Platform-Development

Platz 10: Whitelisting

Die täglich erscheinenden neuen Malware-Signaturen sind nicht mehr überschaubar. Im Jahr 2008 nahm Symantec mehr neue Antivirus-Signaturen auf als in den 17 Jahren zuvor, die das Unternehmen bereits besteht. Es gibt nicht nur immer mehr Viren, Würmer und Trojaner – diese treten auch in immer flexibleren Variationen auf, die dadurch nicht entdeckt werden können oder der Entdeckung durch eine Selbstverschlüsselung entgehen.

Letztendlich kann die einzige Antwort auf die zunehmende Verbreitung und Raffinesse der Malware nur das sogenannte Whitelist-Verfahren sein, durch das nur ausführbare Dateien akzeptiert werden, die auf einem System schon bekannt sind.

Der Prozess des Whitelisting beginnt bei einem sauberen, von Malware freien Image für den Desktop oder den Server. Danach läuft eine Whitelist-Software, um Dateien mit einem oder mehreren (kryptographischen) Hashwerten eindeutig zu identifizieren. Später können Monitoring-Agenten auf dieser Grundlage auf dem verwalteten Systemen das Vorhandensein von ausführbaren Dateien, die nicht auf der erstellten Hashliste stehen, melden und das Ausführen verhindern. Die meisten Unternehmen verteilen sowieso Standard-System-Images im gesamten Unternehmen, was Whitelisting zu einer äußerst effizienten Methode macht.

Whitelist-Software kann oft auch mit einem breiteren Spektrum von Dateien umgehen, nicht nur mit ausführbaren Dateien - einschließlich Makro-Modulen und Scripts. Sie kann sogar jede beliebige Text- oder Konfigurationsdatei mit einem Schreibschutz belegen. Das kann sehr nützlich sein, um nicht autorisierte Änderungen zu verhindern. Viele Malware-Programme machen sich zum Beispiel an der DNS-Hosts-Datei zu schaffen.

Selbstverständlich erfordert das Whitelisting aber auch ein Umdenken in den Unternehmen. Heute hat der einzelne Nutzer teilweise noch viel Kontrolle darüber, was auf dem eigenen Desktop- oder Laptop läuft. Wegen der unnachgibigen Verbreitung neuer und intelligenterer Malware – verstärkt ist sogar die organisierten Kriminalität in die Malware-Angriffe involviert - könnte Whitelisting die einzige Hoffnung sein, die Schlacht um die Unternehmenssicherheit nicht zu verlieren.

Platz 9: Cross-Platform-Development für den mobilen Bereich

Der Boom des iPhones eröffnete den Programmierern viele neue Möglichkeiten – die Entwicklung eines Programms, das Körpergeräusche simuliert, dürfte nur eine Randerscheinung sein. Hier spielt Objective-C, eine Sprache, die zunächst mit Steve Jobs NeXT -Computer im Jahr 1988 eingeführt wurde, eine Rolle.

Wenn Sie ein Java-Programmierer sind, können Sie durch das Lernen von Objective-C die Speicherzuordnungen selbst anpasst. Wenn Sie einen JavaScript-Enthusiast sind, müssen Sie erst das Konzept eines Compilers verstehen. Es gibt keine andere Wahl, wenn Sie Code, der von Millionen von iPhone-Besitzer heruntergeladen werden kann, selbst schreiben wollen.

Die Tage, als das iPhone noch das einzige wirklich attraktive Spielzeug seiner Art war, sind zu Ende. Android und BlackBerry-Geräte nutzen Java, unter Nokias Symbian-Betriebssystem funktionieren vielen Programmiersprachen, darunter mehrere Versionen von C und C + +. Zahlreiche Entwickler beobachten diese Entwicklung und sehen eine gemeinsame Strömung: Alle Handys kommen mit Web-Browsern, die ihrerseits HTML, JavaScript und CSS beherrschen. Palms neuer Pre zielt sogar darauf ab, dass Anwendungen gleich für den Browser geschrieben werden.

Warum also nicht mit etwas Einfachen anfangen, das in den Programmiersprachen geschrieben wird, die jeder Web-Entwickler beherrscht? Einer textbasierten Präsentation kann man zum Beispiel ein spezielles Markup hinzufügen, dass das iPhone die Website so installieren lässt, als ob sie eine normale Anwendung wäre. Dieser Code funktioniert dann auch auf anderen WebKit-fähigen Browsern wie dem in Android; auch ist es ist nicht schwer, entsprechende Anwendungen auch auf dem BlackBerry lauffähig zu machen.

Einige Entwickler-Kits gehen über die Möglichkeiten, die ein Browser bietet hinaus, um besseren Zugang zu den tieferen Teilen der Programmierschnittstelle zu ermöglichen. Mit Appcelerator's Titanium Architektur, Nitobi's PhoneGap und LiquidGear fork von PhoneGap können Anwendungen direkt für die wichtigsten Plattformen entwickelt werden, diese beruhen aber auf einer Embedded-Version des Browsers. Die meisten Funktionen sind in JavaScript realisiert und laufen somit direkt im Browser. Der Programmcode hat Zugriff auf Sensoren und GPS, und das obwohl es JavaScript ist.

Andere portieren gängige Sprachen wie Ruby. Das Rhomobile-Tool bettet zum Beispiel einen kompletten Ruby-Interpreter und Web-Server in die Anwendung ein, sodass man alles in Ruby schreiben kann. Die Leute von Apple verlangten hier, dass die Eval-Funktion entfernt werden musste, um den vollständigen Test der Anwendungen zu ermöglichen. Aber abgesehen davon ist es wie die Erstellung einer Website in Ruby. Der Code läuft auf allen großen Plattformen.

Alle diese Ansätze sind überraschend gut - wenn man nicht auf der Suche nach superschneller Leistung und Perfektion ist. Spielentwickler können den Beschleunigungssensor mit diesen Anwendungen verwenden, aber nur für einfache, zweidimensionale Spiele, die keinen Zugang zu den tiefsten Schichten der Video-Hardware benötigen. Schriften und Layouts sind manchmal ein bisschen anders von Plattform zu Plattform, das kann lästig sein. Aber wenn Ihre Anforderungen sich in Grenzen halten und Sie mit Web-Entwicklungs-Sprachen vertraut sind, sind diese Ansätze sehr viel einfacher als das Erlernen von Objective-C.

Für die Unternehmen ist durch die Cross-Plattform-Anwendungen ein wesentliches Hemmnis für die Entwicklung und Bereitstellung mobiler Anwendungen im eigenen Haus überwunden. Es ist schwierig durchzusetzen, dass alle Mitarbeiter das gleiche Smartphone benutzen - doch selbst wenn man das tut, führt die Programmierung von Anwendungen nur für eine bestimmte Plattform irgendwann zu Unflexibilität. Cross-Plattform-Anwendungen kann man einmal schreiben - ohne sich mit Grundlagen und Macken einer bestimmten Plattform auseinandersetzen zu müssen – und sie dann auf vielen Geräten ausführen. Der weitverbreitete Einsatz von mobilen Unternehmensanwendungen könnte so endlich Realität werden.