Bitcoin Forum
November 15, 2024, 02:04:18 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4]  All
  Print  
Author Topic: Eine Idee, die es wert wäre zu realisieren.  (Read 3340 times)
amunet (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
November 09, 2013, 04:09:06 PM
 #61

P.S.: Bist du eine "Sie" "Er" oder "Mehrere" ? Da polarstorm beim skype Gespräch von einem "Er" redet und du von einer "Sie"

Vieleicht "Es"? SCNR  Grin

Das ist korrekt. Ich bin eine Transe, aber lass mich doch gerne mit "sie"/Frau anreden. Doch relevant ist das nicht gerade hier.
Ich bin nur eine Person, manchmal zwiespältig, also vielleicht doch mehrere? lol.


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.
Ja ein zweites inputs.io sollte nicht passieren Cheesy


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.  
(...) ist deine Schwachstelle IMMER dein Script, da offen, tracebar und unter Kommunikationszwang zur DB.
Die Dateien mit Zugangsdaten als auch die Scripte könnte man verschlüsseln und das zugehörige Passphrase auf mehrere Dateien (teilweise ebenso verschlüsselt) verteilen bzw. so dass ein Angreifer dies nicht ohne großen Aufwand heraus findet.

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.

Ja gut. Hm. Dafür bräuchte man eine etwas andere Art von Programmierer als einfach fürs Web.
Wäre allerdings schon weitaus solider als Interpreter.. wenn sich genug Mitwirkende dazu finden, würde ich das durchaus vorziehen. Zumindest für die sicherheitsrelevanten Teile.




Quote
Der Transaktionsserver ist normalerweise ein eigenständiges System. Ob da ein Webserver dranhängt, eine Middleware oder ein Applikation ist nicht relevant. Das System führt Transaktionsaufträge eigenständig aus und überprüft diese auch selbständig. Der Frontendserver hat da nichts zu melden.
(...)
Du kannst es Drehen wie du willst und Layer über Layer einsetzen um die gefühlte Sicherheit
zu verbessern aber sobald die den Trigger auslösende Schnittstelle (hier Das Web) offen ist
(Scripts) hast du mit allen nachfolgenden Sicherheitsmaßnahmen zwangsläufig verloren.
Ist doch auch klar, wenn der Auszahlauslöser im Web logischerweise bis auf deinen TAS einwirken
muss um eine Auszahlung zu veranlassen. Wenn diese Auszahllogik offen liegt, ist das System Kaputt,
egal wieviel hinten dranhängt.
Und genau darum gehts, diese Logik als offenes Script auf dem Server zu *Lagern* ist das Problem.

Ja moment.. Man kann doch von Webserver zu Server 1 eine Auszahlungsanweisung samt Bitcoin Adresse schicken usw. - Dann leitet Server 1 diese Anweisung an Server 2 weiter - hier hat es mit dem Webserver nichts mehr zu tun also steht auch in keinem Script auf dem Webserver irgendwelche Logik dazu. Und so weiter.
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1007


View Profile
November 09, 2013, 05:55:40 PM
 #62

Irgendwo sitzt in dem System (sofern es automatisiert ist) ein kleines Kästchen, das einfach nur "3 BTC an 12345abc" bekommt und das dann unterschriebt und absendet. Ob jetzt jemand das Kästchen oder die Stelle kompromittiert, die diese Anweisungen gibt, ist wohl egal. Klar kann man z.B. den Riegel manuell vorschieben (z.B. "alles über 1 BTC in 24 Stunden erstmal NICHT unterschreiben, das schau ich mir lieber erstmal selber an!"), aber solange das automatisch laufen soll, hast du einfach 0 Chance.

Irgendwie ist das Ganze hier aber ziemlich spezifisch und Off-Topic geworden. Roll Eyes

Da es zu der Idee anscheinend ja nix neues/genaueres gibt und sie erst enthüllt werden soll, wenn da auch wirklich was dazu existiert fürchte ich, dass es ab hier eh nur bergab gehen kann. Viel Erfolg an den TE, vielleicht schafft man es ja wirklich auch mit solchen vagen Umschreibungen schon mal Leute zu interessieren, die das auch machen?

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
amunet (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
November 09, 2013, 06:34:21 PM
 #63

Irgendwo sitzt in dem System (sofern es automatisiert ist) ein kleines Kästchen, das einfach nur "3 BTC an 12345abc" bekommt und das dann unterschriebt und absendet. Ob jetzt jemand das Kästchen oder die Stelle kompromittiert, die diese Anweisungen gibt, ist wohl egal. Klar kann man z.B. den Riegel manuell vorschieben (z.B. "alles über 1 BTC in 24 Stunden erstmal NICHT unterschreiben, das schau ich mir lieber erstmal selber an!"), aber solange das automatisch laufen soll, hast du einfach 0 Chance.
Diesen Angriffsvektor könnte man mit einer Authentifikation durch eine Einmal-Passwort-Liste beseitigen.

Irgendwie ist das Ganze hier aber ziemlich spezifisch und Off-Topic geworden. Roll Eyes
Ich finde die Diskussion trägt bereits zu dem Projekt bei.

Da es zu der Idee anscheinend ja nix neues/genaueres gibt und sie erst enthüllt werden soll, wenn da auch wirklich was dazu existiert fürchte ich, dass es ab hier eh nur bergab gehen kann. Viel Erfolg an den TE, vielleicht schafft man es ja wirklich auch mit solchen vagen Umschreibungen schon mal Leute zu interessieren, die das auch machen?

Ich verweise nochmal auf das Update im Anfangspost, da ich die Idee auf Englisch genauer erläuterte und dieses Dokument nach einer Einladung lesbar ist.
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1007


View Profile
November 09, 2013, 07:19:26 PM
 #64

Wer Kontrolle über den Server der "sende x BTC an Y" an den "Unterschreiber" schickt hat, der kann auch die Einmalpasswörter auslesen und ein korrektes Passwort mitsenden.

Irgendwann muss so ein Teil in deinem System existieren, wenn es automatisch ablaufen soll. Da ich mich sicher nicht auf irgendwelchen australischen Cloudservices für eine 7 kB Textdatei anmelde, wird es wohl dabei bleiben, dass mir deine Idee ein Mysterium ist.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
mezzomix
Legendary
*
Offline Offline

Activity: 2730
Merit: 1263


View Profile
November 09, 2013, 09:07:27 PM
 #65

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.  
(...) ist deine Schwachstelle IMMER dein Script, da offen, tracebar und unter Kommunikationszwang zur DB.
Die Dateien mit Zugangsdaten als auch die Scripte könnte man verschlüsseln und das zugehörige Passphrase auf mehrere Dateien (teilweise ebenso verschlüsselt) verteilen bzw. so dass ein Angreifer dies nicht ohne großen Aufwand heraus findet.

Ich meine, man sollte sich nicht so auf diese Scripte versteifen. Ihr würdest euch wundern was auf Börsensystemen und professionellen Transaktionssystemen im Backend läuft. Es gibt einen Unterschied zwischen Interface und Implementierung. Wenn ich eine Anfrage X an einen Service sende und er Antwortet mit einer Aktion Y, dann ist es für die Sicherheit aus Architektursicht unerheblich ob dahinter ein compiliertes Programm, ein Script oder ein Angestellter sitzt. Aus der Implementierungssicht könnte (!= muss) das Script von der Security her sogar die bessere Lösung sein als ein compiliertes Programm oder ein Angestellter.
TheOtherOne
Full Member
***
Offline Offline

Activity: 120
Merit: 100


View Profile
November 09, 2013, 11:03:57 PM
 #66

Abschliessend zu diesem Thema von meiner Seite:

@amunet
Nur zum Verständnis, mir geht es hier überhaupt nicht darum dir Vorzuschreiben wie du dein Projekt
Entwerfen sollst. Im Gegenteil, ich finde es gut Ideen zu haben und vor allem diese dann auch
umzusetzen. Wenn schon brauchbarer Code vorliegt verwerte diesen und starte dein Projekt.
Wenn es gut läuft, kanst du immmer noch Entscheiden, ob zusätzliche Sicherheit nötig ist.
Zumindest hast du jetzt schon ein paar Ideen was man machen könnte. Verzichte auf zu komplexe
Layer-Schichtung, da jeder Layer die Anzahl möglicher Exploits auf deinem Applikations-Stack
multipliziert. Keep it simple and fast. Wo weniger dran ist, kann auch weniger kaputt gehen ;-)

@mezzomix

Quote
Ihr würdest euch wundern was auf Börsensystemen und professionellen Transaktionssystemen im Backend läuft.

Weiss ich und du ja scheinbar auch, insofern verwundert mich deine Einstellung *die anderen machen es ja auch so*.

Quote
Aus der Implementierungssicht könnte (!= muss) das Edit: quelloffene Script von der Security her sogar die bessere Lösung sein als ein compiliertes Programm oder ein Angestellter.

Das muss DU mir nun mal Erklären, vielleicht mit folgender Analogie.
Welchen Vorteil hast es einem Einbrecher (Hacker) nachdem er die Sicherheitsvorkehrungen deines Hauses (Server)
überwunden hat, den kompletten Grundriss des Hauses und damit die Wege und Lage deiner Wertsachen (DB/Wallet)
offen auf den Küchentisch zu legen (Script), anstatt diesen in einem versteckten Safe zu Deponieren (Kompillat)?
Ganz besonders, wenn wir davon ausgehen würden, dass der Einbrecher ohne Grundriss nur das Bild deiner
freundlichen Schwiegermutter in Öl über dem Kamin mitnehmen könnte, anstatt deiner echten Wertsachen?  Grin
mezzomix
Legendary
*
Offline Offline

Activity: 2730
Merit: 1263


View Profile
November 09, 2013, 11:45:47 PM
 #67

Quote
Ihr würdest euch wundern was auf Börsensystemen und professionellen Transaktionssystemen im Backend läuft.
Weiss ich und du ja scheinbar auch, insofern verwundert mich deine Einstellung *die anderen machen es ja auch so*.

Weil die Komponenten und Sprachwahl praktisch nie ausschlaggebend für die Sicherheit des Systems ist. Es sind immer Architekturprobleme, Designprobleme und einfache Implementierungfehler. Bei letzterem ist der Fehler Nummer 1 etwas selber zu machen, was die qualitativ ordentliche Standardlösung schon lange gelöst hat. Bei jedem zweiten Problem stolpere ich über Reste des NIH (Not Invented Here) Syndrom, sei es bei Protokollen, Cryptolösungen oder Standardbibliotheken.

Quote
Aus der Implementierungssicht könnte (!= muss) das Edit: quelloffene Script von der Security her sogar die bessere Lösung sein als ein compiliertes Programm oder ein Angestellter.
Das muss DU mir nun mal Erklären, vielleicht mit folgender Analogie.
Welchen Vorteil hast es einem Einbrecher (Hacker) nachdem er die Sicherheitsvorkehrungen deines Hauses (Server)
überwunden hat, den kompletten Grundriss des Hauses und damit die Wege und Lage deiner Wertsachen (DB/Wallet)
offen auf den Küchentisch zu legen (Script), anstatt diesen in einem versteckten Safe zu Deponieren (Kompillat)?
Ganz besonders, wenn wir davon ausgehen würden, dass der Einbrecher ohne Grundriss nur das Bild deiner
freundlichen Schwiegermutter in Öl über dem Kamin mitnehmen könnte, anstatt deiner echten Wertsachen?  Grin

Security by Obscurity ist keine Sicherheit. Wenn der Einbrecher an den Sicherheitsmechanismen vorbeigekommen ist, muss man damit rechnen, dass er nimmt was er bekommt. Ein bischen Obscurity durch den Compiler ist dann kaum noch relevant. Ziel muss sein, dass ein Einbrecher nicht unbemerkt ins System kommt. Wenn erst mal ein Enbruch im System war - vor allem wenn dann auch noch unbekannt ist ob es eine Priviledge Escalation gab - ist das System sowieso kompromitiert. Dann kann bis zum SMM Handler jeder mögliche Dreck im System stecken und alle Daten sind als kontaminiert zu betrachten. Die einzige Reaktion darauf kann sein, das System zu löschen und alle Schlüssel zu ersetzen. Und zwar ohne Ausnahme ALLE!

Ein compilierte Code ändert nichts daran an der notwendigen Reaktion. Sich darauf zu verlassen, dass der Angreifer zu blöd war compilierten Code zu verstehn oder zu infiltrieren ist blauäugig.
amunet (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
November 10, 2013, 09:33:39 AM
 #68

Wer Kontrolle über den Server der "sende x BTC an Y" an den "Unterschreiber" schickt hat, der kann auch die Einmalpasswörter auslesen und ein korrektes Passwort mitsenden.
Ok, stimmt.


Irgendwann muss so ein Teil in deinem System existieren, wenn es automatisch ablaufen soll. Da ich mich sicher nicht auf irgendwelchen australischen Cloudservices für eine 7 kB Textdatei anmelde, wird es wohl dabei bleiben, dass mir deine Idee ein Mysterium ist.

Das ist nicht mein Problem, dann willst du nicht dabei sein. Redmine ist eine Web-Software fürs Projektmanagement, die mir hier jemand empfohlen hat. Hatte Probleme bei der Installation von Ruby on Rails. Da fehlte wohl was als ich die Software ausführen wollte... deswegen dieser Drittservice.
Ich melde mich fast täglich bei irgendwelchen Seiten an.
lclc
Sr. Member
****
Offline Offline

Activity: 298
Merit: 275


Bitcoin Association Switzerland


View Profile WWW
November 10, 2013, 12:23:29 PM
 #69

Ich hab jetzt nicht den ganzen Thread gelesen, aber weiss jetzt irgendjemand was die Idee ist?
Ausser das sie genial ist..

Es gibt da einen guten Thread im Bitcointalk-Forum (find ihn grad nicht) in dem steht das wenn man die Idee nicht veröffentlichen will weil man angst hat das andere sie stehlen könnten und das ganze besser machen könnten man sowieso der Falsche für die Umsetzung ist. Auch wenn du dann ein paar Monate vorsprung hättest, bringt dir nicht viel wenns die anderen professioneller machen.

amunet (OP)
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
November 10, 2013, 02:45:53 PM
 #70

Ich hab jetzt nicht den ganzen Thread gelesen, aber weiss jetzt irgendjemand was die Idee ist?
Ausser das sie genial ist..

Es gibt da einen guten Thread im Bitcointalk-Forum (find ihn grad nicht) in dem steht das wenn man die Idee nicht veröffentlichen will weil man angst hat das andere sie stehlen könnten und das ganze besser machen könnten man sowieso der Falsche für die Umsetzung ist. Auch wenn du dann ein paar Monate vorsprung hättest, bringt dir nicht viel wenns die anderen professioneller machen.

Na das ist aber wohl nicht immer so.

Quote
Update: Please register at https://www.hostedredmine.com/account/register and tell me (better as a private message) the username or your real name so I can add you to the members list of the project management. Then you can access the first document in the project which tells about the idea in some detail (about 7 kB text).
Pages: « 1 2 3 [4]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!