Autor |
Beitrag |
Matthieu
      
Beiträge: 41
Win XP, Win Vista
Turbo Delphi
|
Verfasst: So 26.04.09 12:54
Liebes Forum,
Erst einmal möchte ich mich wieder zurück melden, nachdem sich bei mir mittlerweile 2 Geburtstags-Nachrichten angesammelt hatten
Ich arbeite momentan an einem externen Updater, welchen ich hoffentlich in den nächsten Tagen vollenden werde.
Den Vorgänger habe ich bereits in verschiedenen eigenen Programmen eingesetzt. Nun habe ich mich daran gesetzt, ihn noch ein wenig zu erweitern. Mein Ziel: Klein (>1MB) und einfach zu bedienen.
Das besondere daran: Ich sehe häufig dass Leute nach einer guten Update-Möglichkeit für eigene Programme suchen, daher möchte ich meinen Updater zur Verfügung stellen um euch Arbeit zu ersparen.
Doch bis hierhin ist mein Projekt noch nichts sehr besonderes. Nun besitze ich aber seit gut einem Jahr einen eigenes NAS, welchen ich primär als Webserver nutze. Daher biete ich zusätzlich den Speicherplatz auf meinem NAS.
 Also: Updater und Speicherplatz aus einer Hand!
Einzige Bedingungen:
- Es sollte nicht unbedingt ein 100MB-Programm sein und
- Ich unterstütze nur Freeware/Open-Source!
Wer Interesse hat, sollte sich bitte bei mir melden:
matthieu-ds@hotmail.de
Oder einfach hier posten. Auch an euren Meinungen bin ich natürlich immer interessiert.
Einige meiner bisherigen Arbeiten: matthieu-ds.dyndns.org
MfG Matthieu
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 26.04.09 14:14
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
delphi10
      
Beiträge: 447
Erhaltene Danke: 2
W2K, XP, Vista64, Win7 64
RAD-Studio 2010
|
Verfasst: So 26.04.09 17:39
Für ein einfachst UpDate brauch ich kein Programm. Ich zitiere mal mein Posting aus www.delphi-forum.de/viewtopic.php?t=89307 Seite 2
1. Download der neuen Version vom Server
2. In der laufenden Version:
Delphi-Quelltext 1: 2:
| 1:Application.Terminate; 2:ShellExecute(Application.Handle, 'open',PChar(Neue Version), nil, nil,SW_Normal); |
Alte Version wird sauber beendet und kann gelöscht werden, neu Version startet.
Funktioniert tadellos, Batch-Dateien oder andere Klimmzüge sind nicht erforderlich. Aber wie gesagt, alle Dinge die z. Bsp. BenBE fordert, sind damit nicht erfasst, könnte man drumherum schreiben - aber ohne Update-Programm. Vielleicht als Komponente in allen eigenen Programmen implantieren.
cu delphi10
_________________ Salus populi suprema lex esto
|
|
Matthieu 
      
Beiträge: 41
Win XP, Win Vista
Turbo Delphi
|
Verfasst: So 26.04.09 19:54
Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen.
Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler.
Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln.
Verschlüsselt geht. Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen.
Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht.
Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 26.04.09 20:05
Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.)
Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten.
Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt. 
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 26.04.09 22:26
Matthieu hat folgendes geschrieben : | Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Matthieu hat folgendes geschrieben : | Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben
Matthieu hat folgendes geschrieben : | Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Matthieu hat folgendes geschrieben : | Verschlüsselt geht. |
Löblich
Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte
Matthieu hat folgendes geschrieben : | Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser
Matthieu hat folgendes geschrieben : | Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Matthieu hat folgendes geschrieben : | Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar
jaenicke hat folgendes geschrieben : | Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen
jaenicke hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache
jaenicke hat folgendes geschrieben : | Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt.  |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Matthieu 
      
Beiträge: 41
Win XP, Win Vista
Turbo Delphi
|
Verfasst: Mo 27.04.09 21:22
BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Bin ich erst einmal beruhigt^^
Matthieu hat folgendes geschrieben : | Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben
Passiert jedem mal...
Matthieu hat folgendes geschrieben : | Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Ich seh mir das mal an und schau bei Bedarf mal nach einer Lösung.
Matthieu hat folgendes geschrieben : | Verschlüsselt geht. |
Löblich
Was würdet ihr diesbezüglich empfehlen?
Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte
Diesbezüglich muss ich mal sehen was man da machen kann O.O
Matthieu hat folgendes geschrieben : | Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser
Genau genommen ist es FTP via SSL/TLS.
Matthieu hat folgendes geschrieben : | Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Bei Wikipedia habe ich da dies gefunden: "Delta-Kodierung, Differenzspeicherung, eine Möglichkeit der Datenkompression"
. Gibts dazu auch irgendwo Informationen wie das zu realisieren ist?
Matthieu hat folgendes geschrieben : | Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar
jaenicke hat folgendes geschrieben : | Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen
"updater.exe" wird von Vista erkannt und erzwingt automatisch Admin-Rechte (soweit ich weiß und es gesehen habe).
jaenicke hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache
Vertraue da mal auf Linux, meinen NAS-Anbieter und meine Erfahrung...
jaenicke hat folgendes geschrieben : | Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt.  |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
Daher die Checksummen!
|
MfG Matthieu
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 27.04.09 23:44
Es wäre wesentlich effizienter zitierbar gewesen, wenn Du die Zitat aufspalten-Funktion des Beitragseditors genutzt hättest ... Dafür hab ich Dir mir nämlich von Christian mal einbauen lassen  Aber gut
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Eine externe Datei ist meist besser und einfache zu handhaben. Die Dateien wollte ich zunächst in einen temporären Ordner kopieren und erst am Ende bei Erfolg (inkl. Prüfung mit Checksumme) die älteren ersetzen. |
Spricht ja nix dagegen. Macht u.a. auch Microsoft mit seinen MSI-Files so.
Bin ich erst einmal beruhigt^^ |
|
Wobei das bei MSI- und MSP-Files CodeSigning, d.h. kryptografische Fingerabdrücke sind, keine einfachen Hashes. Einfache Hashes werden da IIRC nur für die Datei-Archive ansich verwendet, also innerhalb des bereits gesichteren Bereiches.
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Mein Ziel war natürlich weniger als 1MB (<). Entschuldige meinen Schreibfehler. |
Fand's nur lustig, widersprüchliche Angaben zu haben
Passiert jedem mal...
Matthieu hat folgendes geschrieben : | Worauf du genau mit "CodeSigning" hinaus willst, weiß ich jetzt nicht. Werde mal danach googeln. |
CodeSigning heißt, dass die erstellte Anwendung eine digitale Signatur trägt, mit der ich die Integrität kryptografisch vom OS prüfen lassen kann. Sprich in der Anwendung steht nicht nur normal ne Versionsinfo, sondern auch ein Fingerabdruck, und der Herausgeber der EXE. Sowas ähnliches wird bei Java-Applets eingesetzt, um denen mehr Rechte geben zu können. Nähere Details dürfte dir die Wiki dazu geben.
Ich seh mir das mal an und schau bei Bedarf mal nach einer Lösung. |
|
Schau da auf jeden Fall auch mal bei CAcert vorbei, die haben entsprechende Zertifikate im Angebot (entsprechendes Vertrauenslevel in der Community vorausgesetzt).
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Verschlüsselt geht. |
Löblich
Was würdet ihr diesbezüglich empfehlen? |
|
SSL von CAcert, mit RSA ab 8192 Bit oder ECC (Eclyptic Curve Cryptography) ab 1024 Bit.  Mit SHA256 oder SHA512 für Fingerprints. Zur Not geht auch SHA1 (MD5 keinesfalls  )
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. |
Naja ... Nicht nur dein Update-Client sollte veränderte Updates erkennen können, sondern auch der Server, da man sonst nen netten DDoS mit Update-Clients fahren könnte
Diesbezüglich muss ich mal sehen was man da machen kann O.O |
|
Dein Server sollte MINDESTENS mit Tripwire, SElinux, Suhosin und den anderen einschlägigen Extensions ausgerüstet sein. Auch Chkrootkit schadet nicht
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. |
Also mir gefällt SCP da viel besser
Genau genommen ist es FTP via SSL/TLS.
|
|
Hab ich auf meinem Server nur noch, weil ich den Usern auf meinem Server keinen Shellzugang geben will  Verschlüsslung ist für Logins aber Pflicht bei mir
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Updates im Sinne von einzelnen Zeilen Code wären eventuell eine Idee für spätere Versionen, da so etwas momentan noch etwas ausführlich aussieht. |
Nope, meine mit Patches dort Änderungen, dass nicht die gesamte EXE neu übertragen wird, sondern nur ein Delta zwischen den beiden EXE-Versionen. Macht der FF z.B.
Bei Wikipedia habe ich da dies gefunden: "Delta-Kodierung, Differenzspeicherung, eine Möglichkeit der Datenkompression"
. Gibts dazu auch irgendwo Informationen wie das zu realisieren ist? |
|
Gibt da ne Reihe von Algorithmen, die man nutzen kann, um sowas zu erzeugen ... Müsst aber nachgucken, wie die gleich hießen. Ggf. hat da aber auch jemand hier im Forum gleich ne Idee.
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Ich bin mir auch im klaren darüber, dass viele eigenen Speicher besitzen. Ich würde aber halt auch dem Rest eine Möglichkeit geben.
MfG Matthieu |
Schon klar
jaenicke hat folgendes geschrieben : | Beachtest du eigentlich auch die nötigen Adminrechte? (Ich habe mir das Programm nicht angeschaut.) |
Habe nichts von Vista-konform gelesen
"updater.exe" wird von Vista erkannt und erzwingt automatisch Admin-Rechte (soweit ich weiß und es gesehen habe).
jaenicke hat folgendes geschrieben : | Matthieu hat folgendes geschrieben : | Auch dein "Schutz gegen Veränderungen" müsstest du eventuell noch einmal erklären. Schreibzugriffe auf die Dateien erfolgen ausschließlich via verschlüsseltem FTP. Also von dort sollte es nicht gehen. | Man kann aber einen Zugriff auf eine Datei mittels eines Virus oder Man-in-the-middle-Angriff z.B. umleiten. |
Soweit brauch man das nicht mal treiben. Es reicht schon, wenn durch einen Einbruch auf dem Server die vorhandenen Updates manipuliert werden ... Hab in der Hinsicht schon mehrfach aufräumen dürfen (bei anderen). 80 GB System Volume Information und 50MBit\s Outbound-Traffic sprechen da ne recht eindeutige Sprache
Vertraue da mal auf Linux, meinen NAS-Anbieter und meine Erfahrung... |
|
Ich verzichte jetzt mal auf die Heise-Links zu Local Root-Exploits, Privilegde Escalations und den Hinweis auf Secunia  Wobei ... PHP ist da auch immer ganz beliebt
Matthieu hat folgendes geschrieben : | BenBE hat folgendes geschrieben : | jaenicke hat folgendes geschrieben : | Ob das sinnvoll ist, einen Schutz dagegen einzubauen bei dir lasse ich einmal dahingestellt.  |
Naja, wichtig ist ja eigentlich eher, dass der Server regelmäßig prüft, ob alle Updates, die er ggf. rausgeben würde auch noch intakt sind und nicht verändern würde. Spart im Endeffekt ja auch eigenen Traffic. Weil wenn ein Client ein Update eh nicht anbieten würde, brauch man es auch nicht erst anbieten.
Daher die Checksummen!
|
|
Prüfsummen alleine bringen nichts, wenn sie auch der Angreifer neu berechnen kann. Hier muss eine kryptographische Sicherung her 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 28.04.09 09:50
Moin!
So langsam wird´s unübersichtlich  könntet ihr euch bitte auf die notwendigen (=letzten Aussagen) beim Zitieren beschränken?  Danke.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
|