Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: Sorge um Sicherheit aufgrund von Fake-Konten  (Gelesen 2353 mal)

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 3.149
  • Geschlecht: Männlich
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #45 am: 27. Oktober 2019, 01:18:10 »
Also ich meinte, wer das Registrierungsformular ohne gültiges SFToken sendet, sollte sowieso beim nächsten senden des Formulars ein richtig gelöstes Captcha mitsenden müssen.

Hier ein Codevorschlag dazu.

In create_account.php ab Zeile 252 folgenden Code

Code: PHP  [Auswählen]
  if (in_array('create_account', $use_captcha)) {
    if (!isset($_SESSION['vvcode'])
        || !isset($_POST['vvcode'])
        || $_SESSION['vvcode'] == ''
        || $_POST['vvcode'] == ''
        || strtoupper($_POST['vvcode']) != $_SESSION['vvcode']
        )
    {
      $messageStack->add('create_account', strip_tags(ERROR_VVCODE, '<b><strong>'));
      $error = true;
    }
    unset($_SESSION['vvcode']);
  }
 
  if (check_secure_form($_POST) === false) {
    $messageStack->add('create_account', ENTRY_TOKEN_ERROR);
    $error = true;
  }

mit diesem Code ersetzen,

Code: PHP  [Auswählen]
  if (in_array('create_account', $use_captcha) || isset($_POST['vvcode'])) {
    if (!isset($_SESSION['vvcode'])
        || !isset($_POST['vvcode'])
        || $_SESSION['vvcode'] == ''
        || $_POST['vvcode'] == ''
        || strtoupper($_POST['vvcode']) != $_SESSION['vvcode']
        )
    {
      if (!in_array('create_account', $use_captcha)) $use_captcha[] = 'create_account';
      $messageStack->add('create_account', strip_tags(ERROR_VVCODE, '<b><strong>'));
      $error = true;
    }
    unset($_SESSION['vvcode']);
  }
 
  if (check_secure_form($_POST) === false) {
    if (!in_array('create_account', $use_captcha)) $use_captcha[] = 'create_account';
    $messageStack->add('create_account', ENTRY_TOKEN_ERROR);
    $error = true;
  }

Gruss
Hanspeter

Offline FräuleinGarn

  • Fördermitglied
  • *****
  • Beiträge: 3.258
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #46 am: 27. Oktober 2019, 01:21:05 »
@p3e
Ich hab dir gerade ein access_log geschickt, wo 3 Fake accounts erstellt wurden in einer 2.0.4.2 Shopversion. Allerdings ist in dieser das admin token System im Backend ausgeschalten. Ich hoffe das hat nichts mit dem normalen Token System für Aufrufe von außen zu tun. Ansonsten würde ich das nochmal einschalten und die Zeit runtersetzen um zu gucken wer durchkommt. Mit 5s kam erstmal keiner mehr durch.

Gruß Timm

Offline p3e

  • Experte
  • *****
  • Beiträge: 2.090
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #47 am: 27. Oktober 2019, 14:25:01 »
Hallo Timm, Danke für die Datei. Das Admin Token System hat nichts mit dem Tokensystem das Hanspeter erwähnt hat zu tun. Das ist noch ein zusätzlicher Schutz, den der Bot aber bei Dir umgeht, da er zuerst das Formular (und damit auch das Token) abruft.
Ich habe Dir eben geantwortet.
Das schöne vorneweg: Es wurden 16 Bot-Registrierungsversuche über 5 verschiedene IPs geblockt. In der Zeit, als das Zeitlimit noch auf 2 sec stand, sind die drei von Dir erwähnten Bots ganz knapp durchgekommen.

Wir sollten das weiter beobachten. Solange die Bots nicht ihrerseits eine Verzögerung einbauen, kommen wir damit vielleicht erst einmal hin.

Offline p3e

  • Experte
  • *****
  • Beiträge: 2.090
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #48 am: 29. Oktober 2019, 22:13:58 »
Ich habe jetzt einmal Feedback von dem Betreiber des Shops in Version v2.0.0.0 rev 9678. Ich vermute dass ist der Thread-Ersteller? Ich finde es sinnvoller, wenn man hier antwortet statt eine Mail zu schicken. Er ist direkt auf 10 sec gegangen und hat seitdem Ruhe. Er will sich nun täglich je eine Sekunde runter hangeln um zu schauen ab wann die Zeitsperre versagt. Ich würde aber nach der bisherigen Erfahrung nicht unter 5 Sekunden gehen.

Kann sonst noch jemand Feedback geben? Timm vielleicht?

Offline FräuleinGarn

  • Fördermitglied
  • *****
  • Beiträge: 3.258
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #49 am: 29. Oktober 2019, 22:23:46 »
Hallo p3e

Ich hab dir gerade eine Mail geschickt mit log. Das hat ewig gedauert weil ich auswärts bin und hier nur Telekom über Hybrid kommt und das Volumen schon aufgebraucht ist. Haste kein dsl u musst am Ende des Monats noch mit eingeschränktem lte leben, obwohl der Vertrag doppelt so teuer ist, weil das volumen aufgebraucht ist.

Heute kamen bei 5s erstmals wieder 2 Fake Accounts durch.

Gruß Timm

Offline p3e

  • Experte
  • *****
  • Beiträge: 2.090
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #50 am: 29. Oktober 2019, 22:41:04 »
Hallo Timm, Danke, die Mail ist angekommen, ich schaue mir das morgen an. Viele Grüße!

Offline p3e

  • Experte
  • *****
  • Beiträge: 2.090
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #51 am: 30. Oktober 2019, 14:59:53 »
So, ich habe mir Deine Logs angeschaut. Die Beiden Fake-Accounts haben eine Wartezeit von 7 und von 21 Sekunden genutzt und sind damit durch den 5 Sekundenfilter gerutscht.

Insgesamt hat der 5 Sekundenfilter 47 x das Anlegen eines Accounts verhindert.

Da ich gesehen habe, dass ein Bot immer mehrere Versuche startet, könnte man Ihn direkt nach dem Ersten Versuch blockieren. Ich möchte das aber lieber erst zur Diskussion stellen. Vielleicht hat da jemand eine Bessere Idee?

Offline p3e

  • Experte
  • *****
  • Beiträge: 2.090
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #52 am: 30. Oktober 2019, 15:24:07 »
Bitte mal testen. Mit dem neuen Script sollten Bots nur noch einen Versuch haben.

Einfach die Datei /includes/extra/application_top/application_top_end/p3e_register_time_check.php
mit folgendem Inhalt erstellen (oder ersetzten):

Code: PHP  [Auswählen]
<?php

// p3e Zeitstempel und http(s)-Schutz Create Account 2019-10-30
// diese Datei sollte im Verzeichnis shop\includes\extra\application_top\application_top_end stehen
// CHK_TIME_MIN entspricht der Zeit in Sekunden, die der Kunde zum Ausfüllen mindestens benötigen soll
// (default=5) - falls Bots durchkommen schrittweise erhöhen
defined('CHK_TIME_MIN') || define('CHK_TIME_MIN', 5);

if (basename($_SERVER["SCRIPT_NAME"], '.php') == 'create_account' || basename($_SERVER["SCRIPT_NAME"], '.php') == 'create_guest_account') {
        if(!isset($_POST['action']) || (isset($_POST['action']) && $_POST['action'] != 'process')) {
                        $_SESSION['timechk'] = time();   // Zeitstempel
                }
                if(isset($_POST['action']) && ($_POST['action'] == 'process')) {
                        if (isset($_SESSION['timechk'])) {
                                if ($_SESSION['timechk'] == 'bot') {
                                                                        xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                                                                }
                                                                if (time() - $_SESSION['timechk'] < CHK_TIME_MIN) {
                                        // stinkt nach Bot - ab auf die Startseite
                                        $_SESSION['timechk'] = 'bot'; // als Bot gebrandmarkt
                                        xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                                }
                                if(isset($_POST['firstname']) && (preg_match("/http/",$_POST['firstname'] . $_POST['lastname']))) {    
                                        $_SESSION['timechk'] = 'bot'; // als Bot gebrandmarkt
                                                                                xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                                }
                        } else {
                                $_SESSION['timechk'] = 'bot'; // als Bot gebrandmarkt
                                                                xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                        }
                }
}

Als Minimum-Zeit die der Kunde zum Ausfüllen benötigen soll sind fünf Sekunden vorgegeben. Bei Bedarf ist sie zu erhöhen. Zum Testen kann man in einem Testshop auch 120 Sekunden eingeben und dann schauen, ob danach Registrierungen noch möglich sind. Ich konnte das leider nicht testen und bin auch noch bis zum 5.11. unterwegs und nur mobil erreichbar.

Offline FräuleinGarn

  • Fördermitglied
  • *****
  • Beiträge: 3.258
    • Teile Beitrag
Re: Sorge um Sicherheit aufgrund von Fake-Konten
« Antwort #53 am: 08. November 2019, 12:11:20 »
Ich nutze die Version aus Beitrag #16 und hatte seit dem 2 Fakeaccounts, die mit 5s noch durchgekommen sind.

Ich werde bei dieser Lösung erstmal bleiben, bis sich neuer Handlungsbedarf ergibt und wenn mal einer durchkommt, dann lösch ich den halt.

Mit der neuen Lösung hätte ich Schiss, dass ich dadurch jemandem verbiete auf die create_account zu gehen, der eigentlich dürfte, weil aus welchem Grund auch immer der erste Versuch zu schnell war.

Im Moment ist es so, dass wenn weniger als 5s vergehen bis man auf der create_account rechts unten auf weiter klickt, dass man auf die Startseite kommt und nicht das rote Feld mit der Angabe, was alles nicht ausgefüllt wurde. Erneuter Aufruf der create_account ist aber möglich. Mit der neuen Version würde man aber sofort als Bot markiert werden und die create_account nicht mehr aufrufen können. Was wenn da jemand aus versehen auf weiter geklickt hat und eigentlich ein Kunde wäre? Den hat man dann verloren.

Vielleicht könnte man denjenigen statt auf die Startseite dann auf eine extra angelegte Seite mit einer Erklärung schicken, warum er nicht mehr die create_account aufrufen kann. Dann müsste man aber dort ein Handlungsmuster aufzeigen, wie er sich erneut anmelden kann. Cookies im Browser löschen?

Bei der Gelegenheit hab ich alle Fakeaccount Kundenkonten noch gelöscht. Sollte jeder machen.

Zitat von p3e aus einer privaten Mail:
Zitat
Ich glaube nicht, dass es nun grundsätzlich vorbei ist mit dem Versuch Fake-Accounts anzulegen. Diese Accounts dienen in der Regel der Bevorratung von Accounts die dann zum Einsatz kommen, wenn eine Sicherheitslücke für das Shopsystem (oder CMS) gefunden wurde. Ist eine Angriffmöglichkeit bekannt, wird die massiv direkt über diverse Accounts automatisiert durchgeführt. Das geht dann so schnell, dass man manuell die einzelnen Accounts nicht mehr löschen kann und weil die Accounts bereits bestehen, kann man auch nicht einfach vorübergehend die create_account löschen. Traumziel ist die MySQL-Injektion um zB aus einem normalen Account einen Admin zu machen um darüber an die Kundendaten zu gelangen, Zahlungen umzuleiten und als Königsdisziplin Schadcode einzubinden (über den reinen Admin sicher nicht so einfach).

Dass die Fake Accounts ein Nebenprodukt ohne Funktion sind schließe ich aus, da immerhin bestehende Mailadressen genutzt werden.

Gruß Timm


Teile per facebook Teile per linkedin Teile per twitter