<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>benjamin erhart &#187; Apache</title>
	<atom:link href="http://benjaminerhart.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjaminerhart.com</link>
	<description>web &#38; mobile dev / it sec</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:41:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CouchDB &#8211; Abschied von der relationalen Datenbank</title>
		<link>http://benjaminerhart.com/2009/09/couchdb-abschied-von-der-relationalen-datenbank/</link>
		<comments>http://benjaminerhart.com/2009/09/couchdb-abschied-von-der-relationalen-datenbank/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 15:02:30 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[dokumentbasiert]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[MapReduce]]></category>
		<category><![CDATA[Webapplikationen]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=83</guid>
		<description><![CDATA[

Als ich neulich die Chaosradio Folge zur CouchDB angehört habe, war es plötzlich völlig klar: All die Jahre sind einem klassische relationale Datenbanken wie MySQL, DB/2 oder Oracle beim Webapplikationsdesign eigentlich immer im Weg gestanden.

CouchDB geht völlig neue Wege: Sie speichert semistrukturierte Dokumente als JSON (JavaScript Object Notation) Datenstrukturen, nutzt HTTP als Zugriffsprotokoll und ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://couchdb.apache.org/"><img class="alignright" title="CouchDB" src="/wp-content/uploads/2009/09/CouchDB.png" alt="CouchDB Logo" width="407" height="111" /></a></p>
<p>Als ich neulich die <a href="http://chaosradio.ccc.de/cre125.html">Chaosradio Folge zur CouchDB</a> angehört habe, war es plötzlich völlig klar: All die Jahre sind einem klassische relationale Datenbanken wie <a href="http://de.wikipedia.org/wiki/Mysql">MySQL</a>, <a href="http://de.wikipedia.org/wiki/IBM_DB2">DB/2</a> oder <a href="http://de.wikipedia.org/wiki/Oracle_(Datenbanksystem)">Oracle</a> beim Webapplikationsdesign eigentlich immer im Weg gestanden.<span id="more-83"></span></p>
<p>CouchDB geht völlig neue Wege: Sie speichert semistrukturierte <em>Dokumente</em> als <a href="http://www.json.org/">JSON</a> (JavaScript Object Notation) Datenstrukturen, nutzt HTTP als Zugriffsprotokoll und JavaScript zur Definition von Views (a.k.a. Indizes).</p>
<p>CouchDB ist komplett in <a href="http://de.wikipedia.org/wiki/Erlang_(Programmiersprache)">Erlang</a> geschrieben, einer funktionale Programmiersprache die in den 80ern bei Ericsson ursprünglich zur Steuerung von Telefonnetzen entwickelt wurde und dementsprechend starke Fokusierung auf Parallelität und Ausfallsicherheit hat.</p>
<p>Erlang wird selten verwendet, fällt jedoch in der Internetwelt immer wieder einmal postiv auf, wie z.B. beim <a href="http://www.ejabberd.im/">ejabberd</a>, einem freien Jabber Server für *NIX Systeme, bei dem ich aus eigener Erfahrung nur sagen kann: installieren und nie wieder dran denken müssen!</p>
<p>CouchDB ist innerhalb weniger Monate in den erlauchten Kreis der Apache Projekte aufgenommen worden, steht dementsprechend unter <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache 2.0 Lizenz</a> (einer BSD-artigen, d.h. egal wo man sie verwendet, es wird sicher kein Lizenzproblem geben) und hat dort ihre Webheimat: <a href="http://couchdb.apache.org/">couchdb.apache.org</a></p>
<p>Was CouchDB darüber hinaus interessant macht: Es unterstützt Replikation über im Internet verstreute Datenbanken auf ganz einfache Art durch die Verwendung von <a href="http://de.wikipedia.org/wiki/Universally_Unique_Identifier">UUIDs</a>. Darüber hinaus liefert es eine vollständige Implementation der <a href="http://de.wikipedia.org/wiki/MapReduce">Map/Reduce</a> Idee.</p>
<p>CouchDB liegt momentan in der Version 0.9.1 vor. Es gibt ein distributionsabhängiges Binary zum herunterladen unter <a href="http://couchdb.apache.org/downloads.html">http://couchdb.apache.org/downloads.html</a> aber auch <a href="http://packages.debian.org/lenny/couchdb">Debian Packages für Lenny</a> und Ubuntu <a href="http://packages.ubuntu.com/jaunty/couchdb"><span lang="en" xml:lang="en">9.04 (</span></a><span lang="en" xml:lang="en"><a href="http://packages.ubuntu.com/jaunty/couchdb">Jaunty Jackalope)</a> </span>und einen <a href="http://www.macports.org/ports.php?by=name&amp;substr=couchdb">MacPort Port</a>. Wobei Debian/Ubuntu Packages noch auf Version 0.8.0 der CouchDB setzen.</p>
<p>Es gibt bereits Perl Module dafür (<a href="http://search.cpan.org/search/?query=CouchDB&amp;mode=all">CPAN</a>). Wenn man mit dem <a href="http://www.catalystframework.org/">Catalyst MVC Framework</a> arbeiten will, sind die wichtigsten wohl <a href="http://search.cpan.org/~rberjon/CouchDB-Client-0.04/lib/CouchDB/Client.pm">CouchDB::Client</a> und <a href="http://search.cpan.org/~rberjon/Catalyst-Model-CouchDB-0.01/lib/Catalyst/Model/CouchDB.pm">Catalyst::Model::CouchDB</a>.</p>
<p>Ich habe bereits ein wenig damit herumgespielt und bin schwer begeistert. Was mir noch abgeht, ist ein Authentication Store: Catalyst::Authentication::Store::CouchDB &#8211; ich bastle gerade daran herum, jedoch ist das noch etwas problembehaftet. Robin Berjon (der Entwickler von CouchDB::Client) kommt scheinbar mit dem <a href="http://rt.cpan.org/Public/Bug/Display.html?id=48407">Tempo der CouchDB Entwickler nicht nach&#8230;</a> Das API der CouchDB ändert sich an manchen Stellen doch noch des öfteren.</p>
<p>Mal sehen &#8211; vielleicht wird das mein erster Beitrag zum CPAN.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2009/09/couchdb-abschied-von-der-relationalen-datenbank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slowloris &#8211; neuer DoS Angriff auf Webserver</title>
		<link>http://benjaminerhart.com/2009/07/slowloris-neuer-dos-angriff-auf-webserver/</link>
		<comments>http://benjaminerhart.com/2009/07/slowloris-neuer-dos-angriff-auf-webserver/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 07:24:20 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[DoS]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[it-security]]></category>
		<category><![CDATA[it-sicherheit]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[slowloris]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=75</guid>
		<description><![CDATA[Die Abkürzung DoS bedeutet "Denial of Service" - es handelt sich also um eine Attacke, die darauf abzielt, ein Ziel unerreichbar zu machen für echte Benutzer.

Robert Hansen hat ein neues Verfahren entwickelt, DoS Attacken auf Webserver (z.B. Apache) durchzuführen und dieses "Slowloris" genannt. Er beschreibt es ausführlich auf seiner Homepage http://ha.ckers.org/slowloris/

Dabei wird nicht ein ...]]></description>
			<content:encoded><![CDATA[<p>Die Abkürzung DoS bedeutet &#8220;Denial of Service&#8221; &#8211; es handelt sich also um eine Attacke, die darauf abzielt, ein Ziel unerreichbar zu machen für echte Benutzer.</p>
<p>Robert Hansen hat ein neues Verfahren entwickelt, DoS Attacken auf Webserver (z.B. <a href="http://de.wikipedia.org/wiki/Apache_HTTP_Server">Apache</a>) durchzuführen und dieses &#8220;Slowloris&#8221; genannt. Er beschreibt es ausführlich auf seiner Homepage <a href="http://ha.ckers.org/slowloris/">http://ha.ckers.org/slowloris/</a></p>
<p><img title="Weiterlesen..." src="http://netznomaden.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />Dabei wird nicht ein übliches <a href="http://de.wikipedia.org/wiki/Flooding_(Informatik)">Flooding</a>, also eine Überhäufung des Webservers mit Anfragen, durchgeführt, sondern im Gegenteil ein recht langsamer Angriff, der  durch ein absichtliches Verlangsamen und Hinauszögern korrekter gültiger Anfragen dafür sorgt, daß er nach und nach sämtliche Requestlimits des Webservers belegt.<span id="more-75"></span></p>
<p>Das Gefährliche dabei ist, daß diese Art von Angriff kaum bemerkbar ist &#8211; in den Logdateien des Webservers tauchen keine merkwürdigen Einträge auf, denn die werden ja erst geschrieben, wenn die Anfrage fertig bearbeitet ist, bzw. fehlerhaft abbricht. Beides passiert hier aber nicht, es sind ja gültige Anfragen. Seeeehr langsaaaame.</p>
<p>Die Resourcen des Servers werden auch nicht übermäßig beansprucht, so daß in Monitoring Tools wie <a href="http://de.wikipedia.org/wiki/Munin_(Software)">Munin</a> und <a href="http://de.wikipedia.org/wiki/Cacti">Cacti</a> kaum Auffälligkeiten zu beobachten sind. Der Server muß im Gegenteil immer weniger tun, er wartet ja darauf, daß die Requests endlich einmal korrekt zu Ende gebracht werden.</p>
<p>Prozessorientierte Webserver wie Apache, dhttpd, GoAhead WebServer und Squid sind übrigens anfälliger: Sie erzeugen pro Request einen Prozess auf dem Server und limitieren die Anzahl derselben, um einen anderen Angriff zu verhindern: Daß der Webserver durch zu viele Requests die Resourcen der Hardware (v.a. RAM Speicher und Prozessorzeit) aufbraucht.</p>
<p>Außerdem scheint es einen Seiteneffekt zu geben: Bei Webapplikationen taucht zusätzlich das Problem auf, daß die Datenbank, die dort im Normalfall verwendet wird, noch weniger gleichzeitige Verbindungen akzeptiert, als der Webserver. Diese gibt also zuerst auf. Damit wird der Angriff noch effektiver, erzeugt dann allerdings schneller Fehlermeldungen, die denselben leichter identifizierbar machen.</p>
<p>Die gute Nachricht ist außerdem: Der Angriff wird durch geeignete Auswahl von <a href="http://de.wikipedia.org/wiki/Proxy_(Rechnernetz)#Reverse_Proxy">Reverse Proxies</a>, <a href="http://de.wikipedia.org/wiki/Load_Balancing">Load Balancern</a> u.ä. Strukturen verhindert, da diese Systeme eben meist nicht prozessorientert arbeiten &#8211; das ist allerdings nichts, was man normalerweise in kleinen Umgebungen vorfindet. Es dürfte also eine Menge gute Ziele da draußen geben!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2009/07/slowloris-neuer-dos-angriff-auf-webserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

