| Body | Google Code Search ist ein großartiges Feature von Google, welches Programmierern die Möglichkeit gibt, öffentlich zugänglichen Code zu durchforsten. Allerdings ist die Idee für so eine Suche nicht neu, viele Entwickler nutzen schon lange Seiten wie koders oder krugle.
Auf Google Code Search kann man seine Suche auf Programmiersprache, Dateitypen, Dateinamen, Lizenz oder Paket beschränken und ausserdem eine erweiterte Suche mit Hilfe von Regulären Ausdrücken durchführen. Es sind die Extra-Regex, mit denen Google Code Search den anderen einen Schritt voraus ist!
Wie funktioniert es?
Die Code-Suche arbeitet wie jede andere Suchmaschine auch. Wie die normale Google-Suche, basiert GCS auf Crawler oder auch Spiders genannt. Diese Art von Suchmaschinen benutzen Programme, welche Seiten besuchen, deren Informationen lesen und anschliessend den Links auf der Seite zu anderen, neuen Seiten folgen. Diese ganzen Informationen werden in einer zentralen Datenbank indiziert. Von nun an werden die Crawler diese neuen Seiten regelmäßig nach Updates, wie zum Beispiel neu dazugekommenen Seiten, checken.
GCS sucht Sourcecode innerhalb von Archiven (.tar.gz, .tar.bz2, .tar and .zip) und in den beiden Versionskontrollsystemen CVS und SVN, welche wiederum im gesamten indizierten Bereich des Internets gesucht werden können.
Sicherheitsbedenken?
Obwohl das Tool für Entwickler natürlich sehr nützlich ist, warnen Sicherheitsexperten davor, da man dadurch sehr viel leichter Exploits und Vulnerabilities für bestimmte Software finden kann.
Man kann nicht nur nach bekannten Sicherheitslücken suchen, sondern auch nach Kommentaren innerhalb der Quelltexte, die Angreifern oft nützliche Hinweise offenbaren.
Code-Analyse-Artikel:
Static Code Analysis Using Google Code Search auf The Arbor Networks Security Blog
Using Google Code Search to Find Security Bugs auf O'Reilly OnLamp.com
Hilfe für OpenSource?
Es mag vielleicht eine gewisse Gefahr von GCS ausgehen, aber es hilft auch der OpenSource-Community. Ein Argument für die Sicherheit von OpenSource ist jenes, das viel mehr Leute Einblick in den Quelltext haben und Fehlermeldungen und Fixes/Patches einschicken können. Damit mag Google Code Search beweisen, dass es für die Community mehr nützlich ist als eine Bedrohung darzustellen.
Übersicht
Google Code Search kann durchaus auch für schlechte Zwecke missbraucht werden, aber auch um Software-Sicherheit zu prüfen und eventuell benötigte Patches zu implementieren. Das könnte eine große Hilfe für die OpenSource-Community sein, da es Entwicklern die Möglichkeit bietet schnell zu reagieren. Entwickler sollten darauf bedacht sein ihre Quelltexte aufmerksam auf Sicherheitslücken zu prüfen, bevor sie diese der Öffentlichkeit zugänglich machen. Das trifft ebenfalls auf Kommentare zu, man sollte bekannte Sicherheitsprobleme nicht preisgeben! Benutzer von OSS (Open Source Software), sollten diese ebenfalls regelmäßig auf neue Patches und Upgrades checken, da diese oft kritische Lücken schliessen.
Die möglichen Sicherheitsprobleme mal vernachlässigt, ist GCS wirklich ein großartiges Tool für Entwickler! Sicher hatte jeder Programmierer mal Zeiten, in denen gewisse Software, wenn überhaupt, nur schlecht dokumentiert oder einfach nur nicht verständlich genug war. Code Search hilft einem nützliche Beispiele in Quelltexten von echten Programmen zu finden - dies kann für einige unter uns extrem hilfreich sein, um neue Konzepte oder Funktionen zu verstehen.
Für Entwickler die Bedenken haben, das ihr Code von GCS oder anderen Suchmaschinen erfasst werden könnte: Keine Sorge! Man kann seine Seite (oder speziell nur seine Quelltexte) davor bewahren, von Crawlern erfasst zu werden, mit Hilfe einer robots.txt. Wie das funktioniert findet ihr auf robotstxt.org heraus. Wenn euer Code auf einer Seite liegt, von der ihr die robots.txt nicht ändern könnt, dann erstellt im Root- bzw. Wurzelverzeichnis eures Quelltextes einfach eine neue robots.txt. Das funktioniert übrigens auch in Archiven und in Paketquellen/Repositories.
Geschrieben von icklenewt. Eingereicht am 31. Oktober 2006.
Übersetzt von kasi am 16. Januar 2008.
This article was originally published by CyberArmy.net in the CyberArmy Library. |
|