Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Sorge um Sicherheit aufgrund von Fake-Konten

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    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

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    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

    p3e

    • Experte
    • Beiträge: 2.396
    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.

    p3e

    • Experte
    • Beiträge: 2.396
    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?

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    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

    p3e

    • Experte
    • Beiträge: 2.396
    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!

    p3e

    • Experte
    • Beiträge: 2.396
    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?

    p3e

    • Experte
    • Beiträge: 2.396
    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.

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    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

    corci

    • Neu im Forum
    • Beiträge: 27
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #54 am: 06. Dezember 2019, 11:32:40
    Hallo p3e, ich benutze noch den alten version  v1.06 rev 4642 SP4

    Daher finde ich keine "extra" verzeichnis unter "/includes/"

    Wie könnte ich es dennoch implementieren?

    Danke für Deiner Mühe

    Gruss

    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.

    corci

    • Neu im Forum
    • Beiträge: 27
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #55 am: 08. Dezember 2019, 19:00:15
    Andere Lösungen für den v1.06 rev 4642 SP4 wären auch super :)

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #56 am: 08. Dezember 2019, 19:32:53
    Eine andere Lösung wäre den Shop upzudaten. Dann kannst du das auch einbauen.

    Gruß Timm

    corci

    • Neu im Forum
    • Beiträge: 27
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #57 am: 09. Dezember 2019, 20:04:47
    Eine schnelle Lösung ohne update wäre super :) Update ist immer mit mehr Zeitaufwand verbunden.

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #58 am: 10. Dezember 2019, 01:06:53
    Hier die Update sichere Lösung für alle

    <IfModule mod_geoip.c>
       GeoIPEnable On
          SetEnvIf GEOIP_COUNTRY_CODE (CN|**) BlockCountry
          Deny from env=BlockCountry
    </IfModule>

    ** beliebig erweiterbar..

        IN = Indien
        UA = Ukraine
        FR = Frankreich
        RO = Romänien
        VN = Vietnam
        CA = Kanada
        IT = Italien
        NL = Niederlande

    Für die herumschreienden "Das ist auf laut §XY nicht erlaubt Freaks" sei gesagt.. ist mir egal ;)

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    Re: Sorge um Sicherheit aufgrund von Fake-Konten
    Antwort #59 am: 10. Dezember 2019, 07:41:50
    1) Dir ist aber klar, dass das bei Seiten die auf einem Webhosting liegen nicht funktionieren wird? Das funktioniert nur auf eigenem Server wenn mod_geoip.c installiert ist.

    2) Kommen die Fake Account Ersteller nicht nur aus China, sondern auch aus Ländern der EU und die will man wohl kaum generell ausschließen.

    Gruß Timm
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    3 Antworten
    2420 Aufrufe
    30. Januar 2015, 20:05:48 von Matt
    6 Antworten
    5941 Aufrufe
    06. Juni 2010, 17:21:43 von Tomcraft
    5 Antworten
    3808 Aufrufe
    01. Dezember 2015, 18:50:25 von Onlineshopper
    6 Antworten
    4201 Aufrufe
    08. Oktober 2009, 01:30:42 von vsell
               
    anything