GreenSQL

MySQL, PostgreSQL, SQLite


Posts: 351
Was haltet Ihr von GreenSQL (Datenbank-Firewall) hat schon jemand Erfahrungen damit - wie wirkt es sich auf die Performance und Load aus?
http://www.heise.de/security/meldung/Freie-Datenbank-Firewall-schuetzt-PostgreSQL-und-MySQL-875681.html

Post 2009-12-07 14:15
Roger Wilco Administrator
Administrator

Posts: 6003
Ich erlaube mir mal einen Beitrag aus einem anderen Forum zu zitieren:

Roger Wilco wrote:
JaEgErmEistEr wrote:
bringt es das oder wird man nur eher mehr eingeschränkt?

Ja und ja.

Bringt was wofür? Du musst schon sagen, in welchem Kontext du GreenSQL konkret einsetzen willst.

Auf einem Einzelsystem, auf dem nur lokale Anwendungen Zugriff auf die Datenbank haben und diese Anwendungen unter deiner Kontrolle stehen, bringt GreenSQL herzlich wenig - außer einem nicht zu unterschätzenden Performanzverlust.

Auf einem exponierten System mit vielen Benutzern, das die Datenbank nach außen hin anbietet, kann GreenSQL (oder generell ein Application-Level-Filter) durchaus einen Sicherheitsgewinn bringen. Man sollte sich aber nicht der Illusion hingeben, dass GreenSQL alle Angriffe erkennt und verhindert.

Post 2009-12-07 14:22

Posts: 351
Also GreenSQL und MySQL auf dem selben Host führt dann wohl eher zu Performanzverlust?

Post 2009-12-07 14:52

Posts: 351
Danke - war bisher mit einer guten PHP config und modsecurity immer gut gefahren, aber interessant find ichs schon - vieleicht auf "einem" System mit entsprechenden Hardware Resourcen ...
Gruss

Post 2009-12-07 16:58
daemotron User avatar
Administrator
Administrator

Posts: 2736

Ich würde das differenzierter betrachten wollen. GreenSQL ist ein Application Layer Filter und kann als solcher auf unerwünschte SQL-Befehle "wegfangen". Das wird immer dann interessant, wenn z. B. auf einem System mit vielen virtuellen Webhostings eines dieser Hostings anfällig für SQL Injection ist, oder gar ganz geknackt wurde und ein Angreifer von dort versucht, auf die Datenbanken anderer User zuzugreifen.

Prinzipiell wäre GreenSQL dann überflüssig, wenn gewährleistet ist, dass
  1. von außen nur DB-gestützte Applikationen erreichbar sind, die immun gegen SQL Injection Angriffe sind
  2. ausschließlich lange, schwer zu erratende Kennwörter für die User-Accounts verwendet werden
  3. die eigenen User so vertrauenswürdig sind, dass sie ihren (legitimen) Zugang zur Datenbank nicht für Unfug zu missbrauchen
Auf einem Massenhosting-System lassen sich die Punkte 1 und 3 meistens nicht gewährleisten, und Punkt 2 wird durch faule User ebenfalls oft genug ausgehebelt. In solchen nicht-vertrauenswürdigen Umgebungen kann der Einsatz von GreenSQL Sinn machen, um die übrigen Kunden vor Kollateralschäden zu schützen - sozusagen als Fallback. In einer vertrauenswürdigen oder anderweitig leicht kontrollierbaren Umgebung macht GreenSQL allerdings wirklich keinen Sinn.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

Post 2009-12-07 17:19

Posts: 351
jfreund wrote:
Auf einem Massenhosting-System lassen sich die Punkte 1 und 3 meistens nicht gewährleisten, und Punkt 2 wird durch faule User ebenfalls oft genug ausgehebelt. In solchen nicht-vertrauenswürdigen Umgebungen kann der Einsatz von GreenSQL Sinn machen


das wäre hier auch der Fall - interessant wäre zu wissen wie sich das mit der Performance auf "normalo" Systemen (4-6 GBRam) verhält.
Na ja und dann gibts wahrscheinlich noch Probleme mit einigen Anwendungen wegen dem Port:
mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password');

Kann man dafür eine Regel erstellen die automatisch mysql Anfragen für localhost mit Standardport auf 127.0.0.1:3305 setzt?
Last edited by fulltilt on 2009-12-07 17:26, edited 1 time in total.

Post 2009-12-07 17:28
Joe User User avatar
Administrator
Administrator

Posts: 11099
Location: Hamburg

Der Performance-Verlust sollte auch bei komplexeren Regeln weit unter mod_security liegen, also auch für "normalo" Systeme zu verkraften. Letztendlich hilft aber nur ausprobieren und hier berichten ;)
Ist ein dedizierter Server das Richtige für mich? ¤ Vorgehensweise bei gehacktem Server ¤ FreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task,
and one of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Post 2009-12-07 17:34
Joe User User avatar
Administrator
Administrator

Posts: 11099
Location: Hamburg

fulltilt wrote:
Na ja und dann gibts wahrscheinlich noch Probleme mit einigen Anwendungen wegen dem Port:
mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password');

Kann man dafür eine Regel erstellen die automatisch mysql Anfragen für localhost mit Standardport auf 127.0.0.1:3305 setzt?

Stelle den Port für den MySQLd auf 3305 und den für GreenSQL auf 3306, schon ist der Port erledigt. Eine Lösung für localhost->127.0.0.1 gibt es allerdings nicht, da der MySQL-Client für localhost grundsätzlich den UNIX-Socket statt (wie bei 127.0.0.1) TCP/IP nutzt. OK, man könnte das patchen, aber das will man sich nicht antun...
Ist ein dedizierter Server das Richtige für mich? ¤ Vorgehensweise bei gehacktem Server ¤ FreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task,
and one of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Post 2009-12-07 17:49

Posts: 351
Joe User wrote:
UNIX-Socket statt (wie bei 127.0.0.1) TCP/IP nutzt. OK, man könnte das patchen, aber das will man sich nicht antun...


und die Settings in der my.cnf localhost oder 127.0.0.1 haben die keinen Einfluss darauf?

Post 2009-12-07 18:09
Joe User User avatar
Administrator
Administrator

Posts: 11099
Location: Hamburg

fulltilt wrote:
Joe User wrote:
UNIX-Socket statt (wie bei 127.0.0.1) TCP/IP nutzt. OK, man könnte das patchen, aber das will man sich nicht antun...


und die Settings in der my.cnf localhost oder 127.0.0.1 haben die keinen Einfluss darauf?

Nein, das ist hardcoded und somit by-design.
Ist ein dedizierter Server das Richtige für mich? ¤ Vorgehensweise bei gehacktem Server ¤ FreeBSD Remote Installation

„If there’s more than one possible outcome of a job or task,
and one of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Post 2009-12-07 18:16

Posts: 351
hm - das bedeutet dann viel Stress mit den Kunden :-)

Post 2010-10-07 09:54
daemotron User avatar
Administrator
Administrator

Posts: 2736

Andererseits bieten viele Mietserver heute so starke Hardware, dass man die verschiedenen Dienste locker in virtuelle Umgebungen (sei es nun Xen, OpenVZ, Jails, Zones, ...) einsperren kann. Wenn MySQL und Webdienste auf getrennten (virtuellen) Maschinen laufen (wie das bei großen Providern eh üblich ist), dann erfolgt der Zugriff eh über TCP, so dass man GreenSQL quasi transparent dazwischen flanschen kann.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

Post 2010-10-07 09:59

Posts: 351
bei mir machts wenig sinn da alles auf einem system lokal installiert ist - wäre wohl auch eher ein performance killer.
Aber wenn mysql eh schon ausgelagert ist ...
Last edited by fulltilt on 2010-10-07 10:00, edited 2 times in total.



Return to Datenbanken

cron