
SIM-Swap-Betrug mit Sicherheitsprüfungen auf Unternehmensebene aufdecken
Lesedauer: 6 Minuten
Einführung
In diesem Lernprogramm erfahren Sie, wie Sie die SIM-Swap-Funktion von Vonage Identity Insights nutzen, um die Sicherheit einer typischen Web-App-Anmeldung zu erhöhen, indem Sie potenziellen SIM-Swap-Betrug erkennen.
Was ist SIM-Swap-Betrug?
SIM-Swap-Betrug ist eine bösartige Technik, bei der Kriminelle Mobilfunkanbieter austricksen, um die Telefonnummer eines Opfers auf eine SIM-Karte unter ihrer Kontrolle zu übertragen. Sobald sie die Telefonnummer gekapert haben, können sie die Zwei-Faktor-Authentifizierung (2FA) umgehen und erhalten so Zugang zu sensiblen Konten wie persönlichen E-Mails, Bankkonten oder allen Anwendungen, die auf eine telefonische Verifizierung angewiesen sind. Dieser Betrug nutzt eine Schwachstelle im 2FA-Verfahren aus und stellt somit eine erhebliche Bedrohung für die Sicherheit von Accounts und den Schutz persönlicher Daten dar. Erfahren Sie mehr über SIM-Swap-Betrug in diesem Artikel von Norton.
Was ist die SIM-Swap-Funktion von Vonage Identity Insights?
Die SIM-Swap-Funktion von Vonage Identity Insights ist eine leistungsstarke API, die das Risiko von SIM-Swap-Betrug verringert. Durch die direkte Kommunikation mit Netzbetreibern (Kommunikationsdienstleistern (CSPs)kann die API erkennen, ob die Telefonnummer eines Benutzers kürzlich auf eine neue SIM-Karte portiert wurde. Dieser Erkennungsmechanismus hilft, Account-Übernahmen zu verhindern, indem verdächtige Aktivitäten im Zusammenhang mit SIM-Kartenwechseln identifiziert werden. Die SIM-Swap-Funktion von Vonage Identity Insights bietet eine zuverlässige und effiziente Möglichkeit, die Sicherheit von Applikationen zu erhöhen, die 2FA verwenden.
Voraussetzungen
Vonage API-Konto Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
Hinweis: Die Netzwerk-APIs sind nur bei folgenden folgenden Kommunikationsdienstleistern (CSPs) und Ländern verfügbar, und die Liste der Länder wird bald erweitert.
Übersicht
Für das heutige Tutorial habe ich ein Beispiel für eine typische Anmeldeseite einer Bank-Webanwendung vorbereitet. Wenn SIM Swap Insight bei den Mobilfunkanbietern prüft, ob in letzter Zeit Änderungen an der SIM-Telefonnummer vorgenommen wurden, kann sich der Benutzer nicht anmelden, wenn solche Änderungen vorgenommen wurden. Andernfalls kann er sich bei seinem Konto anmelden.
Der Benutzer meldet sich an und verifiziert seine Identität über das Front-End. Das Front-End sendet diese Informationen an den Server, der dann mit den Vonage Communication Services kommuniziert, um die SIM-Swap-Details mit den Communication Service Providern zu überprüfen.
Overview Diagram
Projekt Architektur
Zu Ihrer Information: So sieht das Projektverzeichnis aus. Sie finden den vollständigen Code auf GitHub.
[node_modules]
[public]
client.js
style.css
[views]
main.html
index.html
.env
server.js
package-lock.json
package.json
private.key
Einrichten Ihrer Entwicklungsumgebung
Um zu beginnen, müssen Sie Node.js und npm auf Ihrem Rechner installieren. Sie müssen auch npm installieren. Um zu beginnen, müssen Sie Node.js und npm auf Ihrem Rechner installieren. Außerdem müssen Sie einige npm-Pakete installieren, darunter @vonage/identity-insights, dotenv, express, und nodemon um Umgebungsvariablen, HTTP-Anfragen und Serveroperationen zu behandeln.
npm install Strukturieren Sie Ihre App
Wir importieren und initialisieren unsere Abhängigkeiten und weisen Express an, statische Dateien aus dem öffentlichen Ordner bereitzustellen. Die Authentifizierung mit Vonage wird automatisch vom IdentityInsights SDK-Client durchgeführt, wenn Sie Ihre Anwendungs-ID und Ihren privaten Schlüssel angeben; eine manuelle JWT- oder Token-Verwaltung ist nicht erforderlich.
// server.js
require("dotenv").config();
const path = require("path");
const express = require("express");
const { IdentityInsights } = require("@vonage/identity-insights");
const fs = require("fs");
const app = express();
app.use(express.json());
app.use(express.static("public")); Initialisieren Sie den Vonage Identity Insights Client
Als nächstes lesen Sie Ihre Anmeldedaten aus den Umgebungsvariablen und instanziieren den IdentityInsights-Client. Das SDK wickelt die gesamte Authentifizierung intern ab; es generiert die erforderlichen Token unter Verwendung Ihrer Application ID und Ihres privaten Schlüssels, sodass Sie JWTs nicht manuell verwalten müssen.
Die Umgebungsvariable VONAGE_PRIVATE_KEY kann entweder auf den Dateipfad der Datei private.key (z.B. ./private.key) oder auf den rohen Schlüsselstring selbst gesetzt werden. Der folgende Code behandelt beide Fälle:
const users = {
user1: { password: "123", phoneNumber: process.env.PHONE_NUMBER }
};
const APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const PERIOD = process.env.PERIOD;
if (!APPLICATION_ID || !PRIVATE_KEY) {
console.error("VONAGE_APPLICATION_ID or VONAGE_PRIVATE_KEY not set");
process.exit(1);
}
const keyContent = fs.existsSync(PRIVATE_KEY)
? fs.readFileSync(PRIVATE_KEY, "utf8")
: PRIVATE_KEY;
if (!keyContent) {
console.error(
"INVALID private key. Check if the file exists or the environment variable is correctly set"
);
process.exit(1);
}
const identityClient = new IdentityInsights({
applicationId: APPLICATION_ID,
privateKey: keyContent,
});
SIM-Swap-Prüfungen
Die Verwendung des identityClient den Sie gerade initialisiert haben, können Sie den SIM Swap Insight aufrufen, um eine Telefonnummer zu überprüfen. SIM Swap Insight prüft das Aktivierungsdatum einer SIM-Karte im Mobilfunknetz anhand von zwei Feldern:
latest_sim_swap_atDatum und Uhrzeit in UTC ISO 8601 des zuletzt durchgeführten SIM-Tauschs
is_swappedis_swapped: Zeigt an, ob die SIM-Karte während des angegebenen Zeitraums ausgetauscht wurde.
Die Telefonnummer ist die zu überprüfende Telefonnummer, die der Benutzer bei der Anmeldung eingibt. Die Variable PERIOD gibt die maximale Anzahl von Stunden an, in denen geprüft werden soll, ob die SIM-Karte ausgetauscht wurde (1 bis 2400; Standardwert ist 240).
Wenn die Antwort erfolgreich ist, gibt der boolesche Wert im Feld isSwapped an, ob im angegebenen Zeitraum ein SIM-Tausch stattgefunden hat.
async function checkSim(phoneNumber) {
try {
const resp = await identityClient.getIdentityInsights({
phoneNumber: phoneNumber,
purpose: "FraudPreventionAndDetection",
insights: {
format: {},
originalCarrier: {},
currentCarrier: {},
simSwap: {
period: parseInt(PERIOD),
},
},
});
return resp.insights?.simSwap?.isSwapped === true;
} catch (error) {
console.warn("Identity Insights SDK call failed:", error && error.message);
}
} Anmeldung erstellen
Um die Anmeldung zu implementieren, erstellen wir einen POST-Endpunkt namens /login der prüft, ob der eingegebene Benutzername und das Kennwort korrekt sind, und dann eine SIM-Swap-Prüfung durchführt, bevor er den Zugriff gewährt.
app.post("/login", async (req, res) => {
try {
const { username, password } = req.body;
const user = users[username];
if (user && user.password === password) {
const simSwapped = await checkSim(user.phoneNumber);
if (simSwapped) {
return res.status(401).json({ message: "SIM Swapped" });
} else {
res.json({ message: "Success" });
}
} else {
res.status(401).json({ message: "Invalid username or password" });
}
} catch (err) {
console.error("Error during login:", err);
res.status(500).json({ message: "Error processing request." });
}
});
Den Kunden aufbauen
Die client.js erhält die für HTML-Elemente relevanten Informationen und sendet sie an die Server-Endpunkte, die für die Anmelde- und SIM-Swap-Prüfungen erstellt wurden. Ihr Server verarbeitet die Antworten von SIM Swap Insight und leitet diese Informationen über Ihr Frontend an den Benutzer weiter. Wenn die SIM-Karte des Benutzers vor kurzem ausgetauscht wurde, informieren Sie ihn und schlagen ihm sofortige Maßnahmen vor, z. B. die Kontaktaufnahme mit seinem Mobilfunkanbieter.
Erstellen Sie die Umgebungsvariablendatei
Erstellen Sie eine .env Datei für Ihr Projekt und fügen Sie die folgenden Umgebungsvariablen hinzu. Ihre VONAGE_PRIVATE_KEY kann entweder der Pfad zu Ihrer privaten Schlüsseldatei sein (z.B., ./private.key) oder der Inhalt des Rohschlüssels als String sein. Siehe auch Michaels Blog-Post für eine Erklärung, wie man Umgebungsvariablen in Node.js verwendet.
# Period in hours to check SIM Swap events
PERIOD=72
# Phone Number you'll use for the SIM Swap Insight
PHONE_NUMBER=+990123400
VONAGE_APPLICATION_ID=
VONAGE_PRIVATE_KEY=
Erstellen des Frontends
Erstellen Sie eine index.html Seite, auf der die Benutzer ihre Anmeldedaten eingeben können, um sich anzumelden. Es gibt ein Formular, in das der Benutzer seinen Benutzernamen und sein Passwort eingeben kann, sowie ein Modal, das erscheint, wenn ein SIM-Tausch festgestellt wurde und die Meldung anzeigt: "Warnung! Ein kürzlich erfolgter SIM-Tausch wurde auf Ihrem Account festgestellt. Zugriff verweigert."
Testen Sie es aus
Fügen Sie einen Port hinzu, den der Server abhören soll, z. B. 3000.
//server.js
app.listen(3000, () => {
console.log("Server is running on port 3000");
});Führen Sie die Server-JavaScript-Datei aus, um die Webanwendung zu initialisieren.
node server.jsNavigieren Sie zu localhost:3000 und geben Sie Ihre Anmeldedaten ein. Wenn die Telefonnummer, die mit diesem Konto verbunden ist, kürzlich ausgetauscht wurde, erhalten Sie eine Warnung und können sich nicht anmelden. Andernfalls können Sie sich anmelden und die Übersichtsseite der Bank aufrufen.
Schlussfolgerung
Herzlichen Glückwunsch, Sie haben das Ende dieses Tutorials erreicht! Sie haben gelernt, wie Sie mit Vonage Identity Insights SIM Swap Insight feststellen können, ob die Telefonnummern Ihrer Nutzer in den letzten Tagen ausgetauscht wurden. Was Sie heute gelernt haben, ist wichtig, um Online-Konten zu schützen und SIM-Swapping-Angriffe zu verhindern, die zu Account-Übernahmen und Betrug führen können.
Es ist faszinierend zu verstehen, wie SIM-Swapping funktioniert und wie es sich auf persönliche Daten auswirkt. Durch die Implementierung von Multi-Faktor-Authentifizierungsmethoden und das Wissen um gängige Social-Engineering-Taktiken können Sie sich und Ihre Nutzer besser vor diesen Betrügereien schützen.
Mit der zunehmenden Verbreitung von Mobiltelefonen und 5G-Netzen wird die Überwachung Ihrer Sicherheit noch wichtiger. Überprüfen Sie Ihre SIM-Karte regelmäßig auf ungewöhnliche Aktivitäten, und achten Sie darauf, welche persönlichen Informationen Sie in sozialen Medien und Online-Konten teilen.
Haben Sie eine Frage oder möchten Sie etwas mitteilen? Beteiligen Sie sich am Gespräch auf dem Vonage Community Slackund bleiben Sie auf dem Laufenden mit dem Entwickler-Newsletter, folgen Sie uns auf X (früher Twitter), abonnieren Sie unseren YouTube-Kanal für Video-Tutorials, und folgen Sie der Vonage Entwickler-Seite auf LinkedInein Raum für Entwickler, um zu lernen und sich mit der Community zu vernetzen. Bleiben Sie in Verbindung, teilen Sie Ihre Fortschritte und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!
Weitere Lektüre
Verbessern Sie Ihre Multifaktor-Authentifizierung mit Verify und SIM Swap APIs.
Probieren Sie die Netzwerk-API Sandkasten um die SIM-Swap-API zu nutzen.
