Pages:
Author

Topic: Eine Idee, die es wert wäre zu realisieren. - page 2. (Read 3340 times)

full member
Activity: 120
Merit: 100
November 09, 2013, 08:48:14 AM
#50

Die Frage ist nicht ob man was von der Stange nehmen kann, sondern sollte.
Desweiteren habe ich ursprünglich die Nutzung von Interpreter in Frage gestellt
und alle von dir aufgezeigten *Härtungsversuche* sind sowieso selbstverständlich.

Zu deiner Frage:
Ein Service, der u.U Werte in Mio. Höhe vorhält, sollte so konstruiert sein, daß
selbst ein unauthorisierter Shell Zugriff keinerlei Coin-Entwendung ermöglicht
sondern maximal eine Störung verursachen kann.
Interpreter können das Aufgrund des direkt sichbaren Scriptquellen nicht leisten.

Simples Beispiel (PHP/MySQL):
Sobald Shell Zugang existiert (muss noch nicht mal root sein), reichen ein paar
Greps aus, alle DB Connectoren aus den Confs oder direkt aus den Sourcen auszulesen.
Suchen muss man auch nicht lange, ist ja alles *Standard*, da weiss man was man hat.
Dieses Problem haben grundsätzliche alle Interpreter, sei es PHP/Python/Perl oder
eben auch Node. Gerne wird bei MySQL auch der TCP Stack auf Localhost gebindet um
die Kiste nach aussen Unsichtbar zu machen. Mit einer offenen Shell hat sich das
dann auch noch erledigt, Attacken können von der Shell aus Lokal ausgeführt werden,
wobei wahrscheinlich noch nicht mal nötig, da die Zugänge schon ausgelesen sind.
Zur Not werden die Scripte einfach *um nötige Funktionen erweitert*.
Dazu kommt noch, dass die gesamte Cluster Topologie ebenso per Source-Tracking
zu erfassen ist. Deine Scripte müssen ja mit dem Cluster kommunizieren, demnach
liegen zwangsläufig auch die Cluster-Adressen im Script bzw. in den Conf Files.
Kondensiert heisst das, sobald du Interpreter einsetzt kann ein Angreifer nach
Shell Zugang deine GESAMTE Ablauflogik, Connectoren-Zugänge und Cluster-Adressen
auslesen. Selbst wenn du zusätzliche Layer schaltest, ist deine Schwachstelle
IMMER dein Script, da offen, tracebar und unter Kommunikationszwang zur DB.

Um das zu verhindern lohnt es sich Old-School Kompilierte CGI's einzusetzen.
Beispiel (C/NoSQL-Lib oder pure libmysql, falls SQL Syntax sein muss):
Als DB-Backend kommt eine Low-Level NoSQL-Lib in Frage, idealerweise ohne TCP Stack
(Min. Latenz), falls TCP zwingend erforderlich ist kommt eine C-Lib in Frage, die Request
aus den ebenfalls kompilierten CGI's abarbeitet. ALLE Zugangsdaten und Cluster-Adressen
sind in der Lib statisch einkompiliert. DB-Verschlüsselung erfolgt durch die Lib NICHT
File- Bzw. OS Basiert, sondern per DATENSATZ. Passt sehr gut zu dem Dokumentenorientierten
Ansatz der DB. Was findet ein Angreifer mit Shell-Zugriff jetzt vor?
Simpel gesagt 3 Dateien. Eine DAT (DB) eine LIB (DB-Cluster-Connector) und eine EXE (CGI).
Selbst mit den derzeit besten Decompilern ist da wenig - innerhab des Zeitfensters -
zu machen. Der Angreifer kann weder auf die DB Zugreifen bzw. Auslesen, noch brauchbare
Rückschlüsse auf die Ablauflogik oder Cluster-Topologie ableiten um weitere Schwachstellen
oder gar das Cold-Wallet im Cluster zu Identifizieren.

Die höhere Startup-Latenz der kompilierten CGI's wird durch den direkten DB-Zugang
egalisiert. Der dabei eingekaufte Sicherheitsvorteil erhöht den Aufwand das System
zu Hacken enorm. Natürlich kann ein Angreifer gefrustet z.B. die DB Löschen aber
der Backup/Reinkarnationserver ersetzt die aus dem Sharding Umgehend (s. Minix/Microkernel)
Diesen Aufwand würde ich mir nicht für einen PopelShop machen aber für Finanzorientierte
Server bei denen es evtl. um Millionen geht mit Sicherheit und das mindestens.
newbie
Activity: 42
Merit: 0
November 09, 2013, 08:43:34 AM
#49
Ein Server im Wohnzimmer? Sicher? Sogar sehr! Ausfallsicher/hochverfügbar? Das wohl schon weit weniger...
Was ist denn daran sicher, wenn der, bei dem der Server steht zu jeder Zeit dran kann und aus praktischen Gründen wohl auch das Root-Passwort kennt. Selbst ohne das Passwort zu kennen könnte er darauf zugreifen.

Es reicht ja schon ein RaspberryPi um Auszahlungen (das ist das einzige, das wirklich ein Hotwallet und damit private keys braucht) zu ermöglichen.
Man sollte aber auch Einzahlungen ermöglichen Smiley

Ich würde sogar behaupten, dass man für Auszahlungen usw. nicht mal eine Standleitung braucht, sondern auch 32 MBit/s down bzw. ein paar Mbit up genügen würden. Dann dauern Auszahlungsphasen eben ein wenig länger. Das wäre aber nicht so dass man wie beim Webserver viele User zur gleichen Zeit bedienen können müsste.

Ansonsten aber denke ich spricht gar nichts dagegen dass man einen Transaktionsserver online hat. Vielleicht bei nem anderen Provider als der eigentliche Service. Wer mit Zugang zum Server sollte denn wissen, dass es sich um einen Bitcoins-Transaktionsserver für Dienst X handelt, usw!? Hier sehe ich bei "Server im Wohnzimmer" doch ein höheres Sicherheitsrisiko.
legendary
Activity: 2618
Merit: 1007
November 09, 2013, 08:15:52 AM
#48
Ein Server im Wohnzimmer? Sicher? Sogar sehr! Ausfallsicher/hochverfügbar? Das wohl schon weit weniger...

Es reicht ja schon ein RaspberryPi um Auszahlungen (das ist das einzige, das wirklich ein Hotwallet und damit private keys braucht) zu ermöglichen.
newbie
Activity: 42
Merit: 0
November 09, 2013, 07:02:36 AM
#47
Wenn wir über Finaztransaktionsserver reden ...

dann ist noch die Frage, ob das Projekt genug Geld einbringt um eine (mehrere? Verfügbarkeitsanforderungen?) Standleitung zu finanzieren. Dann wäre es eine Option, den Transaktionsserver lokal zu halten. Damit wäre der einzige Zugang ins Netz die Transaktionsschnittstelle zu dem(den) dedizierten Prozessserver(n). Damit lässt sich eine sehr gute Absicherung realisieren. Da das Protokoll sehr effizient gehalten werden kann, hält sich die benötigte Übertragungsleistung abhängig von der Anzahl der Transaktionen/s in Grenzen. Je nach Verfügbarkeit müsste man sich allerdings über Redundanz Gedanken machen. Das hängt aber alles stark vom Projekt selber ab - hier gibt es keine allgemeingültige Architektur für das System mehr.

Ähm.. und wo sollte dieser Transaktionsserver dann stehen? Bei mir? Und dann noch Kühlung und Belüftung bzw. insgesamt klimatisiert und Stromausfallsicherheit, etc. - klingt nicht besonders praktikabel.
Wenn der Transaktionsserver bei irgendwem - also z.b. bei mir - zuhause steht, ist das noch unsicherer als in einem RZ.
legendary
Activity: 2702
Merit: 1261
November 09, 2013, 06:11:41 AM
#46
Wenn wir über Finaztransaktionsserver reden ...

dann ist noch die Frage, ob das Projekt genug Geld einbringt um eine (mehrere? Verfügbarkeitsanforderungen?) Standleitung zu finanzieren. Dann wäre es eine Option, den Transaktionsserver lokal zu halten. Damit wäre der einzige Zugang ins Netz die Transaktionsschnittstelle zu dem(den) dedizierten Prozessserver(n). Damit lässt sich eine sehr gute Absicherung realisieren. Da das Protokoll sehr effizient gehalten werden kann, hält sich die benötigte Übertragungsleistung abhängig von der Anzahl der Transaktionen/s in Grenzen. Je nach Verfügbarkeit müsste man sich allerdings über Redundanz Gedanken machen. Das hängt aber alles stark vom Projekt selber ab - hier gibt es keine allgemeingültige Architektur für das System mehr.

@TheOtherOne: Mich interessiert immer noch, warum man keine DB von der Stange und keine Standardbibliotheken im Backend nehmen kann und warum ganz allgemeingültig (lokaler?) root Zugriff das ganze Konzept vaporisieren soll.
newbie
Activity: 42
Merit: 0
November 09, 2013, 05:53:43 AM
#45
Bei Auslieferung nicht. Ein paar Minuten später schon. Allen anderen gehört der Server sofort wieder abgenommen - das hat die erste Aktion bei einem neuen Dedicated Server zu sein. Und gleich dazu gehören alle Services bis auf den Zugang erst mal dicht bis sie korrekt konfiguriert sind.

Darüber braucht man aber nicht mehr diskutieren das ist die Basiskonfiguration eine dedizierten Webserver. Wenn wir über Finaztransaktionsserver reden dann setze ich die grundlegenden Sache einfach als selbstverständlich voraus.

Ja, das hätte ich auch so gemacht, bin allerdings kein Experte auf diesem Gebiet.
legendary
Activity: 2702
Merit: 1261
November 09, 2013, 04:35:13 AM
#44
Das ist selbstverständlich. root hat bei einem Standardserver nie Remote Zugang und der Benutzer ist bei Remote Zugang in der Password DB gesperrt. Darüber braucht man nicht mal bei einem stinknormalen Webserver reden.
Ja wir reden aber schon von Root-Server(n) und da ist das nicht per Default so, ist ja schließlich ein Root-Server.
Nur mit einem Webserver kommt man bei diesem Projekt nicht so weit.

Bei Auslieferung nicht. Ein paar Minuten später schon. Allen anderen gehört der Server sofort wieder abgenommen - das hat die erste Aktion bei einem neuen Dedicated Server zu sein. Und gleich dazu gehören alle Services bis auf den Zugang erst mal dicht bis sie korrekt konfiguriert sind.

Darüber braucht man aber nicht mehr diskutieren das ist die Basiskonfiguration eine dedizierten Webserver. Wenn wir über Finaztransaktionsserver reden dann setze ich die grundlegenden Sache einfach als selbstverständlich voraus.
newbie
Activity: 42
Merit: 0
November 08, 2013, 04:30:07 PM
#43
Man könnte darüber nachdenken den SSH-Port grundsätzlich per Firewall dicht zu machen wenn man kein SSH braucht. Das müsste über ein geeignetes Webinterface passieren, dessen URL absolut niemand kennen oder erraten kann außer ich bzw. der Betreiber, sonst würde dies ja wieder ein höheres Risiko bedeuten.

Dann kann man den Port auch gleich offen lassen. Allerdings sollte Public Key Auth oder OTP ausreichend sein.

OTP klingt sehr gut. Scheint wie eine TAN-Liste zu funktionieren.

Das ist selbstverständlich. root hat bei einem Standardserver nie Remote Zugang und der Benutzer ist bei Remote Zugang in der Password DB gesperrt. Darüber braucht man nicht mal bei einem stinknormalen Webserver reden.

Ja wir reden aber schon von Root-Server(n) und da ist das nicht per Default so, ist ja schließlich ein Root-Server.
Nur mit einem Webserver kommt man bei diesem Projekt nicht so weit.
legendary
Activity: 2702
Merit: 1261
November 08, 2013, 03:34:10 PM
#42
Man könnte darüber nachdenken den SSH-Port grundsätzlich per Firewall dicht zu machen wenn man kein SSH braucht. Das müsste über ein geeignetes Webinterface passieren, dessen URL absolut niemand kennen oder erraten kann außer ich bzw. der Betreiber, sonst würde dies ja wieder ein höheres Risiko bedeuten.

Dann kann man den Port auch gleich offen lassen. Allerdings sollte Public Key Auth oder OTP ausreichend sein.

TheOtherOne sprach aber davon, dass sich jemand SSH root-Zugang verschaffen könnte und damit sämtliche Sicherheitsvorrichtungen kompromittieren würde. Doch hier muss ich noch anfügen, dass es unabhängig vom Port sinnvoll wäre, den user root für ssh-login grundsätzlich zu sperren und vielleicht mit sudo arbeiten.

Das ist selbstverständlich. root hat bei einem Standardserver nie Remote Zugang und der Benutzer ist bei Remote Zugang in der Password DB gesperrt. Darüber braucht man nicht mal bei einem stinknormalen Webserver reden.
newbie
Activity: 42
Merit: 0
November 08, 2013, 02:57:16 PM
#41
Weil sich das ganze Gebilde in einer Nanosekunde Vaporisiert
sobald Root Zugriff existiert.

Das musst Du mir jetzt erklären.


Man könnte darüber nachdenken den SSH-Port grundsätzlich per Firewall dicht zu machen wenn man kein SSH braucht. Das müsste über ein geeignetes Webinterface passieren, dessen URL absolut niemand kennen oder erraten kann außer ich bzw. der Betreiber, sonst würde dies ja wieder ein höheres Risiko bedeuten.

Das würde verhindern, dass irgendwer im Normalbetrieb auf die Shell kommt bzw. dies überhaupt versuchen kann.

Sich auf darauf verlassen, dass niemand den Port findet ist Scheinsicherheit.

Nein, ich rede nicht von einem versteckten Port. Der SSH-Port würde nur für Einspielungen von Änderungen (scp) und Adminstrationsaufgaben geöffnet werden und wäre ansonsten geschlossen, d.h. überhaupt nicht erreichbar.


Ich habe ehrlich gesagt lieber einen SSH am Port, als einen Webserver. Kennst Du einen Fall bei dem ein Server mit SSH Zugang, Public Key Auth und ordentlich generiertem Key gehackt worden ist? Dann gibt es natürlich noch ein paar Möglichkeiten vor und nach dem Login.

TheOtherOne sprach aber davon, dass sich jemand SSH root-Zugang verschaffen könnte und damit sämtliche Sicherheitsvorrichtungen kompromittieren würde. Doch hier muss ich noch anfügen, dass es unabhängig vom Port sinnvoll wäre, den user root für ssh-login grundsätzlich zu sperren und vielleicht mit sudo arbeiten.
legendary
Activity: 2702
Merit: 1261
November 08, 2013, 02:10:07 PM
#40
Weil sich das ganze Gebilde in einer Nanosekunde Vaporisiert
sobald Root Zugriff existiert.

Das musst Du mir jetzt erklären.


Man könnte darüber nachdenken den SSH-Port grundsätzlich per Firewall dicht zu machen wenn man kein SSH braucht. Das müsste über ein geeignetes Webinterface passieren, dessen URL absolut niemand kennen oder erraten kann außer ich bzw. der Betreiber, sonst würde dies ja wieder ein höheres Risiko bedeuten.

Das würde verhindern, dass irgendwer im Normalbetrieb auf die Shell kommt bzw. dies überhaupt versuchen kann.

Sich auf darauf verlassen, dass niemand den Port findet ist Scheinsicherheit. Ich habe ehrlich gesagt lieber einen SSH am Port, als einen Webserver. Kennst Du einen Fall bei dem ein Server mit SSH Zugang, Public Key Auth und ordentlich generiertem Key gehackt worden ist? Dann gibt es natürlich noch ein paar Möglichkeiten vor und nach dem Login. Mit einem Transaktionsserver vor Ort braucht man sich darüber gar keine Gedanken machen - dann gibt es erst gar keinen Remote Zugang.

Trotzdem muss der Rechner natürlich administrierbar sein hat also zumindest lokale root Rechte für den Admin (natürlich nicht für den Service). Ich Frage mich also immer noch, was TheOtherOne damit sagen wollte. Vor allem laufen Transaktionsserver mit entsprechender Absicherung und die hängen am Internet ohne dass sie gehackt werden. Bei ein paar Diensten wäre ein Einbruch tatsächlich fatal. Entsprechend gut sind sie gesichert.
newbie
Activity: 42
Merit: 0
November 08, 2013, 01:42:23 PM
#39
Weil sich das ganze Gebilde in einer Nanosekunde Vaporisiert
sobald Root Zugriff existiert.

Das musst Du mir jetzt erklären.


Man könnte darüber nachdenken den SSH-Port grundsätzlich per Firewall dicht zu machen wenn man kein SSH braucht. Das müsste über ein geeignetes Webinterface passieren, dessen URL absolut niemand kennen oder erraten kann außer ich bzw. der Betreiber, sonst würde dies ja wieder ein höheres Risiko bedeuten.

Das würde verhindern, dass irgendwer im Normalbetrieb auf die Shell kommt bzw. dies überhaupt versuchen kann.
newbie
Activity: 42
Merit: 0
November 08, 2013, 01:29:11 PM
#38
Ihr solltet den Threadersteller mit ein bisschen Respekt behandeln, da gehe ich mit Polarstorm konform.
Schließlich hätte er auch einfach im Brigitteforum oder im Lawblog nach Mitstreitern suchen können - aber nein, er hat euch auserwählt. Anstatt sich dankbar zu zeigen, hackt ihr nur auf ihm rum; das gehört sich nicht.

LOL. Thx. Ich habe aber Zweifel, dass ich im Brigitteforum Leute gefunden hätte die a) derartige skills haben und b) was von Bitcoins wissen/verstehen

Sie hacken auf mir herum weil ich halt nicht genannt habe was die Idee ist. Das ist schon irgendwie blöd. Ist ähnlich wie wenn man Wochen vorher weiß dass man was supertolles zu Weihnachten geschenkt bekommt aber man weiß nicht was es ist. Unerträglich Cheesy


Deswegen: wo kann man denn eine closed group erstellen zu der man Leute einladen kann? Von Facebook habe ich mich gerade "gelöscht", nachdem man mich mundtot gemacht hat wie einen unmündigen Bürger. Ich durfte nichts mehr posten! Unverschämt. Gut, dass ich wieder aus dem Mainstream heraus bin.

Vielleicht gibt es solche closed groups in Diaspora? Ka.. melde mich gerade an..
legendary
Activity: 2702
Merit: 1261
November 08, 2013, 01:23:01 PM
#37
Weil sich das ganze Gebilde in einer Nanosekunde Vaporisiert
sobald Root Zugriff existiert.

Das musst Du mir jetzt erklären.
newbie
Activity: 42
Merit: 0
November 08, 2013, 12:26:08 PM
#36
Quote
Ja, wirklich. Wenn man das alles selbst programmieren will wird man ja nie fertig.

Ich verstehe das aber genau das ist das Problem.
Also ich würde Never-Ever einen Wallet/Transaktionsbasierten Dienst so hinstellen.

Edit: Aber ich will hier keinen Techno-Thread lostreten. Nur zu... Wink

Ich schrieb, dass Sicherheitsexperten benötigt werden bzw. zu begrüßen wären.
Deswegen ist eine Technologie-Diskussion durchaus angebracht. Wenn sich was eigenes realisieren und absichern lässt, wieso denn nicht?
Andererseits stecken in den vorhandenen Lösungen halt schon unzählige Stunden an Manpower und die haben sich zu Sicherheit auch viele Gedanken gemacht..
full member
Activity: 120
Merit: 100
November 08, 2013, 11:13:18 AM
#35
Weil sich das ganze Gebilde in einer Nanosekunde Vaporisiert
sobald Root Zugriff existiert.
legendary
Activity: 2702
Merit: 1261
November 08, 2013, 10:57:42 AM
#34
Quote
Weil die Standardkomponenten inzwischen mehr oder weniger ausgereift sind und diese bei entsprechender Absicherung zusätzlich hinter eigenen Schnittstellen betrieben werden die diese zusätzlich vom Netz trennen.

Unsinn, Standardkomponenten widerspricht in sich schon Sicherheit
und Interpreter-Code lässt sich grundsätzlich nicht wirkungsvoll
*Obfuscaten*, keine Chance.

Warum ist die Sicherheit einer DB, welche vordefinierte Anfragen bearbeitet ausschlaggebend für die Sicherheit des Gesammtsystem?

Warum sollte Obfuscation für serverseitigen Code der den Server nicht verlässt wichtig sein?

Wir reden hier über ein abgestuftes Sicherheitskonzept. Da hängt weder die DB am Netz, noch der JS Code. Wenn es um das Transaktionssystem geht, hängt noch nicht mal ein Standarddienst am Netz.
full member
Activity: 120
Merit: 100
November 08, 2013, 10:55:19 AM
#33
Quote
Ja, wirklich. Wenn man das alles selbst programmieren will wird man ja nie fertig.

Ich verstehe das aber genau das ist das Problem.
Also ich würde Never-Ever einen Wallet/Transaktionsbasierten Dienst so hinstellen.

Edit: Aber ich will hier keinen Techno-Thread lostreten. Nur zu... Wink
full member
Activity: 120
Merit: 100
November 08, 2013, 10:52:07 AM
#32
Quote
Weil die Standardkomponenten inzwischen mehr oder weniger ausgereift sind und diese bei entsprechender Absicherung zusätzlich hinter eigenen Schnittstellen betrieben werden die diese zusätzlich vom Netz trennen.

Unsinn, Standardkomponenten widerspricht in sich schon Sicherheit
und Interpreter-Code lässt sich grundsätzlich nicht wirkungsvoll
*Obfuscaten*, keine Chance.
newbie
Activity: 42
Merit: 0
November 08, 2013, 10:51:10 AM
#31
Ich kann einfach nicht verstehen, warum bei
so vielen wichtigen Diensten immer noch Interpreter und Datenbanken
von der Stange genutzt werden.

Weil die Standardkomponenten inzwischen mehr oder weniger ausgereift sind und diese bei entsprechender Absicherung zusätzlich hinter eigenen Schnittstellen betrieben werden die diese zusätzlich vom Netz trennen.


Ja, wirklich. Wenn man das alles selbst programmieren will wird man ja nie fertig.

Es muss nicht ausgerechnet MySQL sein..
Pages:
Jump to: