Sicherheit von Webanwendungen.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherheit von Webanwendungen.

    Ich hatte gestern wieder ein lange Diskussion mit einem Unternehmer über die Sicherheit von Webanwendungen geführt.

    Es geht darum er sollte seine Kundendaten in einer Online-CRM-Plattform die auf der Basis von PHP und Mysql aufgebaut ist speichern.

    Das will er aber nicht machen wegen Cracker und der Gefahr, dass seine Kundendaten im Netz landen.

    Lieber keinen mobilen Zugriff dafür die Daten im LAN gesichert.

    Jetzt möcht ich keine Diskussion über Standard Sicherheisprobleme wie SQL Injektion oder Sessions führen. Das wurde hier im Archiv ausreichend erledigt. Ich möchte versuchen solche Möglichkeit gleich von vorne herein aus zu schließen.

    VPN und die DB in einem Rechner in dem VPN installieren ok

    ABER was wäre mit dieser Variante:

    Angenommen ich kann den Kunden auf 3 - 4 IP Adressen beschränken und ich lege für jede IP Adresse ein Unterverzeichnis an.

    Beipiel:

    myhomepage/80.49.384.63
    myhomepage/80.33.874.75
    myhomepage/80.12.244.88
    myhomepage/80.88.334.21

    Und frage dann in den ersten Zeilen ab:

    $DER_REFERER == $_SERVER['REMOTE_ADDR']
    {
    programm ausführen
    }


    Dann ist er doch zu 100% save oder kann man IP Adressen die via
    $_SERVER['REMOTE_ADDR'] abgerufen wird irgendwie gefälscht werden?


    thx für kurzen Input

  • #2
    1. von welcher gefahr sprichst du genau?
    2. was ist dein ziel?
    3. was ist deine frage?
    4. was willst du auf irgendwelche ips beschränken?
    5. was hat das mit dem referer zu tun?
    6. wer ist "save" und was ist "save"?

    7. nein, REMOTE_ADDR kann man m.w. nicht fälschen, da es die information ist, die httpd darüber bereitstellt, wer gleich die antwort (http response) bekommt.

    Kommentar


    • #3
      http://www.php-resource.de/forum/sho...threadid=71587

      Kommentar


      • #4
        1. von welcher gefahr sprichst du genau?
        Von der Gefahr die ich noch nicht kenne, denn die Gefahren die ich kenne, gegen die habe ich bereits was unternommen.

        2. was ist dein ziel?
        Den Kunden die größte Angst zu nehmen und seine CRM ins Netz zu verlegen.

        3. was ist deine frage?
        1.) Die war in erster Linie IP Spoofing aber das hat sich mittlerweile geklärt. Leider http://www.securityfocus.com/infocus/1674

        Danke onemorenerd König ist wer die Suchfunktion richtig füttern kann. Ich hab 10 Minuten gesucht und nichts gefunden

        2.) Wie kann ich dem Kunden die Angst nehmen? Wie kann ich es so sicher machen, als ob er es auf seinem Linux Laptop im Localhost rumträgt.

        4. was willst du auf irgendwelche ips beschränken?
        Die Clients die auf den Server zugreifen dürfen.

        5. was hat das mit dem referer zu tun?
        Weil ich für jede IP Adresse ein Unterverzeichnis anlegen möchte um nicht die IP Adressen, die dürfen, aus einer DB oder TXT Datei abrufen zu müssen.

        6. wer ist "save" und was ist "save"?
        Ich möchte jetzt nicht pilosophieren nichs ist 100% sicher.

        ABER wie kann ich es so sicher wie möglich und trotzdem übers Net abrufbar machen.

        Kommentar


        • #5
          habe immer noch nicht verstanden, was die ip beschränkung und der referer für eine bedeutung haben sollen.

          biete dem kunden ssl an.

          bis dahin: sehr schwierig, solange du selbst nicht weißt, wogegen du dich absichern möchtest (bzw. es nicht erklären kannst).

          p.s. onemorenerd: danke für den artikel, das habe ich nicht gewusst!

          Kommentar


          • #6
            habe immer noch nicht verstanden, was die ip beschränkung und der referer für eine bedeutung haben sollen.
            egal belassen wir es bei der ip beschränkung woher ich die IP Adressen nehme stellen wir mal bei Seite.

            biete dem kunden ssl an.
            Hab ich schon aber SSL hindert einen Cracker nicht daran Die Domain auf der die CRM liegt an zu greifen.... SSL sichert ja nur den Traffic vom Server zum Client ab.


            bis dahin: sehr schwierig, solange du selbst nicht weißt, wogegen du dich absichern möchtest (bzw. es nicht erklären kannst)
            Gut vielleicht kann ich es nicht erklären, aber ich weiß auch nicht was den Crackern als nächstes einfällt um die CRM an zu greifen.

            Noch mal: Gegen die Sicherheitsprobleme die bereits bekannt sind habe ich mich AFAIK so gut wie möglich abgesichert. ABER ich möchte mich gegen die Dinge absichern die denen noch einfallen werden bzw ihnen es so schwer wei möglich machen.

            Optimal wäre wenn ich zum Kunden sagen hätte können... NUR der mit der IP Adresse kann auf die Datei zugreifen und der Server selbst natürlich... is aber leider nicht... weil wir gelernt haben haben, dass man die IP highjacken kann.

            Aber wahrscheinlich suche ich nach dem Heiligen Gral der Server Sicherheit für PHP Mysql Anwendungen die es nicht gibt.

            Interessant wäre zu wissen was http://www.salesforce.com/
            http://www.oracle.com/crmondemand/index.html so alles machen.......

            Cheers

            Kommentar


            • #7
              es wird nicht erwartet, dass du genau weißt, wie die gefahren aussehen, aber es ist dringend notwendig, dass du dir klar machst, was genau du absichern willst. natürlich ist ssl kein zaubermittel, aber es kann gerade den traffic soweit absichern, dass man bereits annehmen kann, dass es wohl nur kaum möglich wird, an _der_ stelle etwas anzurichten.

              aber es gibt auch andere fragen, wie z.b. die authentifizierung, die form der eigentlichen daten, der umfang, in dem der datenzugriff erfolgt u.v.m.

              wenn der kunde eine statische (oder zumindest rechtzeitig bekannte) ip hat, kannst du natürlich auch die einschränkung darauf einführen (die aber nichts mit deinem php-script zu tun hat, dafür gibt es webserver mittel), so kannst du schon mal sehr viele gefahren bis auf ip spoofing ausschließen.

              Kommentar


              • #8
                Schon mal dran gedacht, dass es mehr als HTTP auf Port 80 und HTTPS auf 443 gibt?
                Alles PHP-geskripte nützt nichts, wenn der Server auf anderem Wege kompromittiert werden kann.

                Und sag jetzt bloß nicht, der wäre sicher. Das sind Server in öffentlichen Netzen nämlich nie bzw. nur bis der nächste Exploit gefunden wird.

                Da man einen Server also nicht 100%ig absichern kann, außer jedglichen Zugriff zu beschränken, kann man ihn wirklich gleich im LAN stehen lassen. Anders sind die 100% nicht machbar.

                Kommentar


                • #9
                  Erst mal danke, dass sich ein Master mit mir abgiebt an so einem schönen Samstag Nachmittag


                  was genau du absichern willst.
                  1.) Ok ich möchte den Server absichern, aber das ist nicht Thema dieses Forums dafür gibts Linux Geeks...

                  - Distri wahl...
                  - Updates...
                  - DDOS
                  - Virtual Host
                  - php.ini
                  - Session Variable....
                  - Safe Mode...
                  - Register Globals...
                  - MaxExeciution Time...

                  usw....


                  2.) Ich möchte die Mysql DB absichern.

                  - Eigener Server nur für die DB

                  - IP Adresse in die Hosttabelle so eintragen, dass nur der Host auf dem die PHP Dateien liegen auf den Server zugreifen darf.

                  - SSL zwischen PHP Server und MYSQL Server verwenden.

                  Auch nicht Thema dieses Forums - oder vielleicht schon...


                  3.) PHP Sicherheit...

                  Alles aus http://www.php.net/manual/en/security.php

                  Ich suche aber irgend etwas was über dem allen stehen würde, was mich ruhiger schlafen lässt und den Kunden zufriedener stellt.

                  So was wie das angesprochende Thema mit der IP Adresse wenn es funkioniert hätte.

                  Kommentar


                  • #10
                    @onemorenerd


                    Und sag jetzt bloß nicht, der wäre sicher. Das sind Server in öffentlichen Netzen nämlich nie bzw. nur bis der nächste Exploit gefunden wird.
                    Ne würd ich nie behaupten... aber Serversicherheit ist hier vielleicht fehl am Platz.

                    Mir ist schon bewusst, dass der Server AUCH eine Schwachstelle ist.....
                    Hat ja der UCSB CTF Contest wieder gezeigt wie "schwach" Server auch sein können. Mich hat das total verblüfft das das überhaupt möglich ist.

                    http://www.cs.ucsb.edu/~vigna/CTF/

                    Auch Dir (Ihnen) ein Danke für die Diskussionsteilnahme....

                    Kommentar


                    • #11
                      Original geschrieben von teutatis
                      egal belassen wir es bei der ip beschränkung
                      Und für diese Prüfung PHP nehmen?
                      Noch dazu mit irgendwelchen, aus absolut nicht ersichtlichen Gründen nach den IPs benannten Verzeichnissen?


                      Allow/Deny existieren. (Beim Apachen, bei anderen Webservern sicher vergleichbares.)
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        tcpwrap_check
                        zusätzlich?

                        Kommentar


                        • #13
                          thx wahsaga für deinen Beitrag

                          Und für diese Prüfung PHP nehmen?
                          Noch dazu mit irgendwelchen, aus absolut nicht ersichtlichen Gründen nach den IPs benannten Verzeichnissen?
                          Die Frage für mich stellt sich nicht warum, sondern warum nicht... Was kostet mich das an Performance?

                          eben

                          Vielleicht wird es mal einen Weg (Crack) geben um mod_access zu umgehen dann hab ich die Prüfung immer noch in PHP.

                          Sollten wir nicht alles was in unserer Macht steht unterehmen?

                          Danke onemorenerd für den Tipp mit tcpwrap_check....

                          Kommentar


                          • #14
                            Original geschrieben von teutatis
                            thx wahsaga für deinen Beitrag



                            Die Frage für mich stellt sich nicht warum, sondern warum nicht... Was kostet mich das an Performance?

                            eben

                            Vielleicht wird es mal einen Weg (Crack) geben um mod_access zu umgehen dann hab ich die Prüfung immer noch in PHP.

                            Sollten wir nicht alles was in unserer Macht steht unterehmen?

                            Danke onemorenerd für den Tipp mit tcpwrap_check....
                            Und wenn es einen Weg gibt, deine Püfung zu umgehen, wirst du es erst dann bemerken, wenn es schon zu spät ist, sprich jemand eingebrochen ist.

                            Apache-Sicherheitslücken werden von mehreren tausend Benutzern kommuniziert und einer Armee von Entwicklern schneller gestopft, als du den Namen des Exploits aussprechen kannst

                            Neuimplementierung bestehender SIcherheitsfeatures halte ich perönlich für riskant, wenn man sich nur darauf verlässt. Eine Kombination wäre hier wohl nicht verkehrt. In diesem Fall wohl aber eher uninteressant
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #15
                              Mir ist noch gar nicht klar, was du dir von nach IP-Adressen benannten Verzeichnissen versprichst.

                              Wozu sollen die dienlich sein?
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X