Frage:
Was hindert einen Entwickler daran, auf Kreditkartendaten und andere geheime Daten eines Unternehmens zuzugreifen?
Ayesh K
2014-10-30 23:47:21 UTC
view on stackexchange narkive permalink

Zunächst einmal tut es mir leid, wenn dies schon oft diskutiert wurde. Ich habe viele Beiträge über PCI-Konformität gelesen, aber es gibt einige kleine Dinge, bei denen ich mir nicht ganz sicher bin.

Angenommen, es gibt Mr. GoodGuy, einen ehrlichen Softwareentwickler. Er entwickelt die Hauptsoftwarearchitektur, und das Unternehmen vertraut ihm und bietet den Zugriff, den er zumutbar benötigt. Diese Software speichert Kreditkartennummern für die Verwaltung wiederkehrender Zahlungen, und die Software verwendet ein Kreditkarten-Gateway, um den Verlängerungsbetrag zu belasten.

Mr. GoodGuy könnte einen Code schreiben, der die Karte für einen Benutzer entschlüsselt, unabhängig von der Sicherheitsstufe der Software (Verschlüsselungsschlüssel an einem gesicherten Serverstandort, Schlüssel pro Benutzer oder irgendetwas), der Software selbst kann die Kartendaten irgendwie entschlüsseln. Das heißt, obwohl der Entwickler ehrlich ist, kann er auf Kartendaten zugreifen.

  • Welche möglichen Lösungen haben andere Unternehmen implementiert, die verhindern, dass jemand mit der Software auf Kartendetails zugreift?

Hier geht es nicht wirklich um Kartendetails . Es kann sich um Online-Dateispeicherdienste, medizinische Daten oder ähnliches handeln. Wie kann ein Entwickler sicherstellen, dass er nicht wie gewünscht auf die Daten zugreifen kann, aber es der Software ermöglichen, auf sie zuzugreifen (ohne Benutzerbeteiligung)?

PS: Ich bin Mr. GoodGuy hier und ich habe nicht die Absicht, etwas Schlechtes zu tun. Ich frage mich, wie andere Unternehmen damit umgehen. Vertrauen sie den Entwicklern? Auch wenn er zurücktritt, kann er die Schlüsseldatei mitnehmen. Das Löschen aller gespeicherten Karten ist auch hier keine Option, da dadurch viele vorhandene Verkäufe abgeworfen werden können.

Warum nimmt er an, dass er Zugriff auf die Schlüsseldatei / das Hauptkennwort / etc. Hat?
Weil die Software die verschlüsselte Zeichenfolge irgendwie wieder entschlüsseln muss, um die Verlängerungsgebühr zu erheben. Es ist nur der Code, sodass er ihn einfach ausführen kann, wann immer er möchte (nehmen wir an, dass Codeprüfer dies wegen dieser Frage verpasst haben und der Code zum Leben bereitgestellt wurde).
Ich verstehe immer noch nicht, warum Sie ihm Zugriff auf den Schlüssel gewähren würden. Übrigens, das ist eine Antwort. Lassen Sie einen Entwickler nicht auf den Schlüssel zugreifen. Je.
Ich weiß, dass die Verschlüsselungsschlüssel von allen ferngehalten werden müssen. Der Entwickler hat jedoch den Vorteil, dass er Code schreiben kann, der in einer Live-Umgebung ausgeführt wird, und der Code selbst ihm die Kartendaten liefert. Mit der Versionskontrolle und dergleichen ist es möglich, ihn zurückzuverfolgen, aber es würde eine Katastrophe geben, wenn andere es bemerken.
Ehre. Alle technologischen Kontrollen, die mein Unternehmen geladen hat, wären für mich ein Strohhalm, wenn ich die Kundendaten stehlen möchte, aber ich werde es nicht tun.
Ich habe das Bedürfnis, Sie zu warnen, dass Sie, wenn dies * keine * hypothetische Frage ist und Sie planen, Kreditkartendaten selbst zu speichern, in eine massive Welt voller Verletzungen geraten. PCI DSS ist ein * Albtraum *, selbst für gut ausgestattete, gut vorbereitete Expertenteams. Ich empfehle dringend, es nicht zu versuchen und stattdessen eine Drittanbieterlösung zu verwenden, bei der die Kartendetails nicht über Ihre Systeme übertragen werden.
Wenn der Entwickler diese Daten stiehlt und darauf reagiert, werden die Behörden Ermittlungen einleiten. Die Behörden werden den Entwickler sofort verdächtigen. Es wird für den Entwickler schwierig sein, das Verbrechen zu verbergen, wenn er aktiv untersucht wird, und der bloße Verdacht kann seiner Karriere schaden. Der Nutzen des Diebstahls von Daten ist daher zu gering, um das Risiko zu rechtfertigen (und das Einkommen zu verlieren, wenn man dafür bezahlt, dass man seine Arbeit ehrlich erledigt).
Eine kurze Antwort lautet: Wenn sich in Ihrem Unternehmen nicht mehrere separate Personen für die Entwicklung, Überprüfung jeder Entwicklung, Produktion und Prüfung leisten können, sagt PCI DSS, dass Ihr Unternehmen keine Kreditkartendaten speichern darf. Ein Unternehmen mit einem einzelnen Entwickler kann sich nicht für die Speicherung von CC-Daten qualifizieren, unabhängig davon, was sie sonst tun. Sie können diese nur auslagern.
Ich würde mit der alten Geschichte gehen: `Schlösser sind nur an Türen, um ehrliche Menschen ehrlich zu halten. Ein Prozent der Menschen wird immer ehrlich sein und niemals stehlen. Weitere 1% sind immer unehrlich und versuchen immer, Ihr Schloss zu öffnen und Ihren Fernseher zu stehlen. Schlösser tragen nicht viel dazu bei, Sie vor den hartgesottenen Dieben zu schützen, die in Ihr Haus gelangen können, wenn sie es wirklich wollen. Der Zweck von Schlössern, sagte der Schlosser, ist es, Sie vor den 98% der meist ehrlichen Menschen zu schützen, die versucht sein könnten, Ihre Tür zu probieren, wenn sie kein Schloss hätte. "
Sieben antworten:
gowenfawr
2014-10-31 00:00:44 UTC
view on stackexchange narkive permalink

PCI DSS Die Abschnitte 6, 7 und 8 befassen sich alle mit dieser Frage.

Zum Beispiel Teil von 6.3.2, der eine Codeüberprüfung erfordert:

Codeänderungen werden von anderen Personen als dem Autor des Ursprungscodes sowie von Personen überprüft, die sich mit Codeüberprüfungstechniken und sicheren Codierungspraktiken auskennen.

6.4 mit Änderungskontrolle:

Eine Aufgabentrennung zwischen Personal, das der Entwicklungs- / Testumgebung zugewiesen ist, und Personal, das der Produktionsumgebung zugewiesen ist.

7.1 Kontrolle des Zugriffs ... in vielen Umgebungen der Entwickler, der Code schreibt Greift niemals auf die Betriebssysteme, auf denen es mit Live-Daten verwendet wird:

Beschränken Sie den Zugriff auf Systemkomponenten und Karteninhaberdaten nur auf diejenigen Personen, deren Job einen solchen Zugriff erfordert.

Und ein Hauch von 8.7, um die Personen mit Zugriff einzuschränken:

Überprüfen Sie die Einstellungen für die Datenbank- und Anwendungskonfiguration, um sicherzustellen, dass alle Benutzer a Der Zugriff auf, die Benutzerabfragen und die Benutzeraktionen für die Datenbank (z. B. Verschieben, Kopieren, Löschen) erfolgen nur über programmatische Methoden (z. B. über gespeicherte Prozeduren).

Nun, das Kann ein vertrauenswürdiger Insider perfekt verteidigt werden? Nein, wegen der Definition von "vertrauenswürdig". Dies gilt an allen Orten (wie vielen Spionen wurde "vertraut"? John Anthony Walker fällt ein). Es gibt jedoch bewährte Methoden, um sich gegen eine solche Bedrohung zu verteidigen und sie zu mindern, und das PCI-DSS formalisiert eine Reihe von Anforderungen Diese Praktiken (für Kreditkarten ... andere Geheimnisse sind für sich allein!)

(Und @ Stephen-Touset weist darauf hin, dass 3.5.2 Folgendes erfordert:

Geheimnis speichern und private Schlüssel, mit denen Karteninhaberdaten jederzeit in einer (oder mehreren) der folgenden Formen verschlüsselt / entschlüsselt werden:

Eine dieser Möglichkeiten ist:

Innerhalb eines sicheren kryptografischen Geräts (z. B. eines Host-Sicherheitsmoduls) (HSM) oder PTS-zugelassenes Point-of-Interaction-Gerät)

Dies hat den Vorteil, dass das eigentliche Schlüsselmaterial von alltäglichen Benutzern und Administratoren ferngehalten wird.) P. >

Vergessen Sie nicht die Hardware-Sicherheitsmodule, die sicherstellen sollen, dass selbst bei physischem Zugriff auf die Hardware niemand die geheimen Schlüssel lernen kann.
Danke für die Antwort. In meinem Fall bin ich der Entwickler hier und habe mich gefragt, ob ich etwas tun kann, um mich auszusperren (mein Laptop wird gestohlen oder jemand stiehlt meine privaten Schlüssel). Es gibt ein Startup, dass wir ein kleines Team sind, daher werden Produktionsserver auch von mir verwaltet. Nochmals vielen Dank für Ihre Details Antwort.
Es ist sehr schwierig, eine Operation im Handumdrehen durchzuführen, da der Hauptbestandteil die Trennung ist - Aufgabentrennung, Trennung des Zugangs, Trennung der Aufsicht. Und ein Startup hat nicht die Leichen, die für die Trennung übrig bleiben. Wenn Sie sich als andere Personen ausgeben, die sich als Sie ausgeben, sollten Sie eine verbesserte Authentifizierung in Betracht ziehen - 2-Faktor mit zeitbasierten Token. Es ist beispielsweise unwahrscheinlich, dass sie Ihren Laptop, Ihren Anhänger / Ihr Telefon und Ihre PIN stehlen.
Ich habe gesehen, dass so etwas in Projekten, die letztendlich erfolgreich waren, genau null Mal folgte. Es ist jedenfalls schwierig, da die meisten Sicherheitsstandards widersprüchlich sind, entweder nicht mit aktuellen Praktiken oder anderen Standards kompatibel sind oder sich selbst widersprechen (dies gilt natürlich für fast alle nicht trivialen Standards, nicht nur für Sicherheitsstandards).
@AyeshK - Abhängig von den Beträgen und den Kosten für die Implementierung / für die Einhaltung / bei Verstößen haben Sie möglicherweise mehr Glück, wenn Sie einen der vorhandenen Zahlungsabwickler (wie PayPal oder Amazon) verwenden. Sie verwalten all diese Dinge für Sie gegen eine Gebühr. Der Umgang mit solchen Dingen ist nicht trivial und die Menschen werden vorsichtiger (angesichts der Anzahl der auftretenden Verstöße).
Wenn Sie also versuchen, zwischen den Zeilen zu lesen, ist es für ein Einzelunternehmen tatsächlich unmöglich, PCI-DSS-konform zu sein?
@PeriataBreatta, nein, aber für ein Unternehmen, das seine eigene Software für Kartenverarbeitungszwecke entwickelt, könnte dies der Fall sein. Das ist eine sehr kleine Minderheit der DSS-Unternehmen! Denken Sie daran, dass das PCI-DSS vom kleinsten Händler zum größten Zahlungsabwickler skaliert. Vielleicht möchten Sie sehen, wie die verschiedenen SAQs die Auswirkungen auf unterschiedlich organisierte Unternehmen optimieren.
@PeriataBreatta-Einzelunternehmen sind mit PCI-DSS kompatibel, indem sie Kreditkartendaten fernhalten und sicherstellen, dass die Speicherung von CC-Daten von anderen Unternehmen durchgeführt wird, die dazu in der Lage sind. Beispielsweise leiten Sie den Benutzer zu einem Zahlungsgateway um und erhalten vom Gateway ein Token, das die Transaktion bestätigt und Ihnen möglicherweise wiederkehrende Zahlungen ermöglicht - alles ohne jemals eine einzige CC-Nummer zu sehen.
Xander
2014-10-31 00:20:03 UTC
view on stackexchange narkive permalink

In nicht unerheblichem Maße handelt es sich hierbei (wie Sie bereits erwähnt haben) um ein Vertrauensproblem, nicht um ein technisches. Wir versuchen, so weit wie möglich vorsichtig zu sein und vertrauenswürdige Leute einzustellen, die ihre Positionen nicht missbrauchen.

Es gibt jedoch eine Reihe von Kontrollen, die implementiert werden können, um entweder den nicht autorisierten Zugriff einzuschränken und / oder um zu überprüfen, ob das Vertrauen in Einzelpersonen gut platziert ist und tatsächlich nicht missbraucht wird.

Hier sind einige dieser Steuerelemente:

  • Geheimnisse sollten geheim gehalten werden. Schlüssel sollten nicht eingebaut werden Software. Sie sollten von denjenigen generiert und verwaltet werden, die eine Anwendungsinstanz verwalten und / oder verwenden, nicht vom Entwickler der Anwendung. Dies bedeutet, dass sich die in einer Entwicklungsumgebung verwendeten Schlüssel von denen in der QS-Umgebung unterscheiden und sich mit Sicherheit von denen unterscheiden, die in prod verwendet werden, und es gibt selten einen Grund für einen Entwickler, auf eine Produktionsumgebung zuzugreifen, geschweige denn Zugriff auf die Schlüssel dort.
  • Aufgabentrennung. Dies wird ab dem Ende des letzten Punktes fortgesetzt. Entwickler entwickeln Anwendungen, Netzwerktechniker verwalten den Netzwerkverkehr und Geräte, Serveringenieure verwalten Server, Datenbankadministratoren überwachen die Daten usw. In den meisten Fällen wäre es für einen Entwickler unangemessen, Zugriff auf Produktionsserver und Datenbanken zu haben, in denen echte, sensible Daten wie Kreditkarteninformationen gespeichert sind. Überprüfung der Arbeit. In diesem Fall handelt es sich hauptsächlich um eine Codeüberprüfung. Auch hier gibt es in den meisten Fällen keinen Grund, warum ein Entwickler in der Lage sein sollte, Code, der wer weiß was macht, in die Produktion zu übertragen, ohne dass sich jemand anderes damit befasst. Dies ist zwar ausdrücklich darauf ausgelegt, unbeabsichtigte Fehler zu erkennen und Best Practices und Konventionen einzuhalten, sollte jedoch den hilfreichen Nebeneffekt haben, sicherzustellen, dass die meisten absichtlich böswilligen Ergänzungen bemerkt und rote Fahnen gehisst werden.

    Es gibt unzählige andere Steuerelemente, die möglicherweise aufgelistet werden könnten, aber dies sind einige der Hauptkategorien, in die die meisten fallen.

    Alles Gute zum Geburtstag Xander! Wie ist es, Moderator-Tools zu haben?
    Danke für deine Antwort. Trotz aller Verschlüsselung scheint es auch für die Menschen Vertrauen zu geben. In Gesellschaft mit genügend Arbeitskräften wäre dies definitiv möglich. In einem kleinen Unternehmen mit 2-3 Gruppen halte ich es für die beste Wahl, sich gegenseitig zu vertrauen. Nochmals vielen Dank für die Antwort. Ich habe die frühere als "die Antwort" markiert, aber das ist genauso gut und hilfreich für mich.
    Die meisten Unternehmen haben nicht einmal genug Mitarbeiter, um jeder der von Ihnen angegebenen Rollen einen anderen Mitarbeiter zuzuweisen, der "in den meisten Fällen" getrennt gehalten werden sollte. Sie scheinen anzunehmen, dass es sich hier um Unternehmen handelt, aber die meisten Unternehmen sind keine Unternehmen. Beschränkung auf die USA: Da für viele Volkszählungsdaten leicht viele Volkszählungsdaten zu finden sind, haben drei Viertel der Unternehmen überhaupt keine Mitarbeiter (sie werden von Selbständigen geführt), und über die Hälfte der übrigen Unternehmen hat weniger als 5. Die Die Idee, dass Entwickler keinen Zugriff auf die Produktion haben sollten, funktioniert nicht wirklich, wenn niemand anderes diese Rolle übernehmen kann.
    @paj28 Danke! Ähnlich mit einigen zusätzlichen interessanten Daten.
    @MarkAmery Um pedantisch zu sein, entwickeln die meisten Unternehmen (und insbesondere die kleinen) überhaupt keine eigenen Anwendungen. Es ist, wenn Sie in größere Organisationen wechseln, in denen dies vorherrscht. Ja, die Zahlen sind umstritten und die Richtigkeit des Begriffs "am meisten" ist relativ, aber die Aufgabentrennung ist immer eine relevante Klasse von Kontrollen und sollte immer berücksichtigt werden, um festzustellen, ob und wo dies eine geeignete Option ist.
    @MarkAmery ecactly. Was Sie gerade gesagt haben, bedeutet, dass PCI DSS den meisten Unternehmen verbietet, CC-Daten zu speichern, es sei denn, sie nehmen wesentliche Änderungen mit erheblichem Mehraufwand vor oder delegieren die CC-Verarbeitung an andere.
    zxq9
    2014-10-31 08:56:31 UTC
    view on stackexchange narkive permalink

    Die Kosten, um dies zu verhindern, sind enorm und werden daher selten außerhalb großer, gut finanzierter Entwicklungsgruppen durchgeführt. Die obigen Erwähnungen von Codeüberprüfung, Sicherheitsüberprüfung usw. sind alles gute Ideen, aber in der Praxis sind Kunden mehr daran interessiert, funktionierenden Code zu erhalten, als die Verwendung ihrer Assets um Monate zu verzögern, während Überprüfungsprozesse stattfinden.

    Die Mehrheit Der Fall, mit dem sich mein Unternehmen befasst, sind mittelständische Unternehmen, die bereit sind, Ressourcen für die Erstellung von kundenspezifischer Software für den internen Gebrauch aufzuwenden, sich jedoch nicht auf ein ISO-konformes Entwicklungskomitee mit Gletschertempo konzentrieren, nur damit das Kundenkontakt-Tracking-System oder die Projektmanagement-Datenbank dies können verbessert werden.

    In der Praxis gibt es fast keine Möglichkeit, diese Art von Missbrauch zu verhindern, außer sich nur mit Softwareanbietern zu befassen, denen Sie vertrauen. Dies ist natürlich keine Lösung, aber es gibt dem Kunden zumindest die richtige Meinung und kann ihn dazu führen, Geschäftspartner sorgfältig auszuwählen - und ein Softwareanbieter ist ein Geschäftspartner, einer der meisten Intim wird jedes Unternehmen haben, obwohl die Leute die meiste Zeit erstaunlich blind dafür zu sein scheinen.

    Betrachten Sie die Skandale, die in den letzten Jahren mit Beteiligung von Google, Apple, Microsoft usw. und der NSA aufgetreten sind. Oder sogar Googles selbstgesteuerte Datenschutzverletzungen. Die Entwickler stellten sicher, dass jemand die Daten ihrer Kunden stehlen konnte, und zwar auf eine Weise, die die Sicherheitsüberprüfungsprozesse - die diese bestimmten Organisationen groß genug sind, um sie sich leisten zu können - nicht erfassten. Es ist wirklich ein "Quis custodiet ipsos custodes?" Problem (lit. "Wer bewacht die Wachen?").

    In meinem Fall haben wir festgestellt, dass wir Kundendaten niemals selbst speichern werden. Das bedeutet, dass wir billige kleine Server vor Ort bei Kunden bereitstellen, die das Geschäft direkt bedienen. Dies ist die Ära des wahnsinnig schnellen Internets und der billigen Hardware. Ein kleines Unternehmen benötigt keinen Cloud-Service, um von überall auf der Welt auf seine Daten zugreifen zu können. Um Sicherheit und Datenredundanz zu gewährleisten, bieten wir eine drahtlose Sicherung an, die jedoch alle verschlüsselten Blobs enthält, sodass wir sie nicht lesen können.

    Wir könnten mit Sicherheit Löcher in ihren Blobs öffnen Server und missbrauchen ihr Vertrauen, wenn wir wollten. Aber es gibt keine Möglichkeit, jemanden vom Bösen abzuhalten. Als Eigentümer meines Unternehmens habe ich entschieden, dass das beste Gleichgewicht zwischen Sicherheit und Benutzerfreundlichkeit (für uns und den Kunden) darin besteht, dass sie ihre Daten speichern, und dass wir nur verschlüsselte Sicherungen davon aufbewahren.

    I. erwähnte die "Wolke" oben. Dies ist wahrscheinlich die größte Bedrohung für die Datensicherheit, die sich bisher jemand vorgestellt hat, und es gibt genau null Möglichkeiten, den Schutz von Kundendaten zu gewährleisten, sobald diese nicht mehr in ihren Händen sind. "Besitz macht 90% des Gesetzes aus" ist eine gute Lektion, denn in der Neuzeit sind es 90% der Datensicherheit.

    Ich stimme zu, dass die meisten Unternehmen realistisch gesehen nicht viel tun und nur ihren IT-Mitarbeitern vertrauen, aber ich sehe den Punkt in Ihrem Rat nicht. Wählen Sie Softwareanbieter sorgfältig basierend auf was? Die Tatsache, dass ihr Name bekannt vorkommt und sie noch keinen weit verbreiteten Verstoß hatten, ist keine große Garantie für irgendetwas. Wie Sie sagten, können Sie auch in Ihrem Setup so ziemlich alles tun.
    @Relaxed Es geht mehr darum, die Natur der Bedrohung zu verstehen, als sie direkt zu bekämpfen. Zum Beispiel die interne Trennung von Daten, sodass ein Verstoß in einem Bereich weniger problematisch ist, oder die Implementierung von Buchhaltungs- und Kundenaufzeichnungssystemen durch verschiedene Anbieter. Wenn sich ein Kunde der Bedrohung nicht einmal bewusst ist, hat er keine Hoffnung, das Risiko einzuschätzen. Unternehmen steuern Risiken, es ist ein zentraler Bestandteil der Funktion des freien Marktes. Wenn sie sich dessen nicht bewusst sind, können sie nichts tun, als ihre Köpfe in den Sand zu stecken.
    Question Overflow
    2014-10-31 07:37:03 UTC
    view on stackexchange narkive permalink

    Für kleine und mittlere Unternehmen, in denen ein Entwickler mehrere Hüte trägt (DBA, Systemadministrator, technischer Support, Webmaster usw.), wäre die Erfüllung der PCI-DSS-Anforderungen zu schwierig. Eine mögliche Lösung, um zu verhindern, dass ein Entwickler vertrauliche Daten erhält, ist die Verwendung einer Drittanbieter-API , bei der die Verarbeitung und Speicherung vertraulicher Daten auf einer vertrauenswürdigen Drittanbieter-Website statt erfolgt Ihre eigene Website.

    Bei Kreditkartentransaktionen und wiederkehrendem Zahlungsmanagement können Sie PayPal verwenden, das PCI DSS-kompatibel ist, anstatt Ihr eigenes System zu rollen. Natürlich muss der Code noch überprüft werden, um sicherzustellen, dass Kunden während der Transaktion tatsächlich auf die Website eines Drittanbieters umgeleitet werden.

    Am Ende des Tages müssen Sie jemandem vertrauen (einem Vertrauenswürdigen) Entwickler oder ein vertrauenswürdiger Dritter), der beauftragt ist, die Arbeit für Sie zu erledigen. Ansonsten musst du alles selbst machen.

    Jon Story
    2014-10-31 05:23:53 UTC
    view on stackexchange narkive permalink

    Oft hat der Entwickler keinen vollständigen Zugriff auf die Kundendatenbank.

    In meinem Unternehmen werden alle unsere Entwicklungen in anonymisierten Datenbanken durchgeführt - Kreditkartennummern, persönliche Daten usw. werden entfernt und Dinge werden durcheinander gebracht oben. Die Live-Datenbanken befinden sich auf den Kundencomputern, und Junior- / Mid-Level-Entwickler haben einfach keinen Lesezugriff auf diese Tabellen.

    Wir könnten mit den Systemkennwörtern auf sie zugreifen, aber dazu würden wir protokolliert Sowohl das Abrufen der Datei zum Extrahieren des Kennworts als auch das Anmelden vom "falschen" Computer in der Datenbank.

    Andere Systeme, die ich gesehen habe, umfassen das Verschlüsseln der Kreditkartendaten und das Nichtverfügbarkeit des Schlüssels für den Entwickler.

    Am Ende des Tages konnte ein ausreichend entschlossener Entwickler auf fast alles zugreifen, aber indem Sie es schwierig machen, vermeiden Sie die gelegentlichen Versuchungen und indem Sie protokollieren, machen Sie deutlich, dass es Auswirkungen geben wird.

    Ein kurzer Hinweis zu dem Punkt, den Sie zur Protokollierung gemacht haben: Wenn Sie protokollieren können, dass jemand etwas getan hat, können Sie ihn daran hindern (und trotzdem protokollieren, dass er es versucht hat). Ich behaupte, dass Sie dies tun sollten, daher sind die einzigen Sicherheitslücken diejenigen, in denen Sie sich nicht anmelden können. Es sei denn, Sie sprechen von Catch-All-Protokollierung wie Keyloggern auf dem Computer und ausgehenden Paketprotokollen und dergleichen. Keylogger sind clientseitig und daher theoretisch umgehbar, aber die Protokollierung von Paketen würde natürlich an anderer Stelle erfolgen.
    Das ist situativ - mein Beispiel basierte auf der Tatsache, dass das Produktionssystem per Definition muss, auch wenn Entwickler keine Kreditkartentabellen in einer Datenbank lesen können. Durch die Verwendung des Produktionskennworts kann der Entwickler Zugriff erhalten, der nicht unbedingt blockiert werden kann (ohne das Live-System zu blockieren), aber durch Protokollierung später zurückverfolgt werden kann. Es hängt jedoch alles vom jeweiligen Setup ab, und sicherlich können einige Aktionen protokolliert werden oder Warnungen auslösen, während der Versuch blockiert wird.
    Kevin Krumwiede
    2014-11-01 09:42:22 UTC
    view on stackexchange narkive permalink

    Ich bin überrascht, dass niemand DUKPT erwähnt hat, aber vielleicht liegt das daran, dass einige der wichtigsten Zahlungsgateways es nie unterstützt haben, und vielleicht werden sie es jetzt nie tun, da TripleDES Brute-Force-Angriffen ausgesetzt ist . Aber es war zu seiner Zeit eine großartige Idee, und es gibt keinen Grund, warum so etwas mit moderner Verschlüsselung nicht möglich wäre. Einige Anbieter verkaufen immer noch Kartenleser mit DUKPT oder ähnlichem, und es gibt einige kleine Prozessoren, die die Verschlüsselung unterstützen und als Proxys für die größeren fungieren.

    Ich kann dem Wiki-Artikel nichts hinzufügen und ich behaupte nicht, vollständig zu verstehen, wie es funktioniert, nur was es tut. Im Wesentlichen ist die Hardware jedoch manipulationssicher und verfügt über eine integrierte Verschlüsselung. Sie gibt die PAN entweder verschlüsselt oder redigiert aus. Nur das Zahlungsgateway kann es entschlüsseln, sodass der Händler oder der Entwickler seiner Software es nicht durch Vorsatz oder Fahrlässigkeit gefährden kann.

    Ihr zweiter Punkt ist der wichtige: Verschlüsseln Sie vertrauliche Daten in manipulationssicherer Hardware mit kontrollierten Funktionen, damit die Daten in Transport- und Sicherheitslücken sowie (hier) in der Speicherung geschützt sind. DUKPT ist ein cleverer Algorithmus, der für diese Verwendung gut geeignet ist und daher häufig verwendet wird. Sie können jedoch auch eine andere Verschlüsselung von guter Qualität (falls verfügbar) in einem sicheren Gerät verwenden und den Vorteil nutzen, und Sie können DUKPT in unsicherer Windows-Software verwenden (z. B. aus Kompatibilitätsgründen ) und nicht den Vorteil bekommen.
    user2813274
    2014-11-02 21:05:03 UTC
    view on stackexchange narkive permalink

    Zusätzlich zu allen Antworten, die erklären, wie Entwickler daran gehindert werden können, auf solche geheimen Daten zuzugreifen, gibt es auch eine wichtige indirekte Methode: Zugriffsprotokolle

    Abfragen können protokolliert werden, ebenso wie Shell-Befehle usw. . und diese Protokolle sollten so gespeichert werden, dass sie für einen einzelnen Entwickler nicht gelöscht werden können. Selbst wenn sie Zugriff haben, können rote Fahnen gesetzt werden. Warum möchten sie ALLE Kreditkartennummern? in Produktion? - Der wichtige Teil davon ist, dass der Entwickler seine eigenen Anmeldeinformationen für die Arbeit verwendet und dass es keine "freigegebenen Konten" gibt, die nicht zu bestimmten Personen führen, die für ihre Aktionen verantwortlich gemacht werden können.



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...