This content originally appeared on Twilio Blog and was authored by Kelley Robinson
Hallo und Danke fürs Lesen! Dieser Blogpost ist eine Übersetzung von Build a carrier block list with Twilio Lookup. Während wir unsere Übersetzungsprozesse verbessern, würden wir uns über Dein Feedback an help@twilio.com freuen, solltest Du etwas bemerken, was falsch übersetzt wurde. Wir bedanken uns für hilfreiche Beiträge mit Twilio Swag :)
Betrüger können die Telefonverifizierung oder Zwei-Faktor-Authentisierung ins Visier nehmen, um den SMS-Verkehr künstlich zu erhöhen. Bestimmte Netzbetreiber lassen dies zu, wissentlich oder unwissentlich, und die Betrüger verdienen an diesem erhöhten Datenverkehr Geld. Dies könnte zu einem höheren als erwarteten Twilio-Datenverkehr führen.
Unsere Verify-API zum Senden einmaliger Sicherheitscodes beinhaltet umfassende Mechanismen zur Betrugsbekämpfung. Allerdings kann keine anbieterseitige Lösung eine absolute Wirksamkeit gegen ausgeklügelte Angreifer garantieren, weshalb wir zur Kundenbeteiligung bei der Verhinderung von Angriffen raten.
Glücklicherweise kann die Lookup-API von Twilio Netzbetreiber erkennen, und wir können damit bekannte Betrüger herausfiltern, bevor wir eine SMS-Verifizierung senden.
Hier ist ein kurzer Ausschnitt aus einer Beispiel-Sperrliste:
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require("twilio")(accountSid, authToken);
// hard coded for demo purposes only
const block = ["12301", "12302"];
client.lookups
.phoneNumbers("+15108675310")
.fetch({type: ["carrier"]})
.then((resp) => {
const mccmnc = resp.carrier.mobile_country_code + resp.carrier.mobile_network_code
if (block.includes(mccmnc)) {
// block or add additional checks
console.log("blocked!");
} else {
// proceed with sending one time passcode
console.log("allowed!");
}
});
Der Rest des Beitrags befasst sich mit dem Erstellen dieser Lösung mit der Twilio Lookup-API.
Definieren eines Netzbetreibers in Code: MCC und MNC
Die Kombination aus Mobile Country Code (MCC) und Mobile Network Code (MNC) ist weltweit einzigartig und wird zur Identifizierung von Netzbetreibern weltweit verwendet. Hinweis: MCC und MNC sind für Festnetznummern nicht verfügbar.
Diese Daten werden in einer Netzbetreiber-Lookup-Antwort zurückgegeben, wenn verfügbar:
{
"caller_name": null,
"carrier": {
"error_code": null,
"mobile_country_code": "310",
"mobile_network_code": "456",
"name": "verizon",
"type": "mobile"
},
"country_code": "US",
"national_format": "(510) 867-5310",
"phone_number": "+15108675310",
"add_ons": null,
"url": "https://lookups.twilio.com/v1/PhoneNumbers/+15108675310"
}
Ein Angreifer sendet oft Anfragen an eine Reihe von aufeinander folgenden Nummern mit derselben Vorwahl. Achte also auf Datenverkehr mit ungeprüfter Verifizierung, der über dieselbe Vorwahl kommt. Wenn du Vorwahlen sperren möchtest, lohnt es sich, die Sperrung nach einiger Zeit wieder aufzuheben, um legitimen Datenverkehr erneut zuzulassen.
Eine Liste aller MCC-MNCs findest du auf dieser Website:https://www.mcc-mnc.com/ und hier eine Liste von Handy-Vorwahlen.
Voraussetzungen für das Erstellen einer Erkennungsliste für Netzbetreiber
Wenn du mitprogrammieren möchtest, musst du folgende Schritte ausführen:
Schritt 1:Registrieren oder Anmelden bei deinem Twilio-Konto
Schritt 2: Installieren von Node JS https://nodejs.org/en/download
Schritt 3: Installieren der Twilio CLI (weitere Informationen)
npm install -g twilio-cli
Schritt 4: Installieren des Serverless CLI-Plug-in
twilio plugins:install @twilio-labs/plugin-serverless@1.9.0
Schritt 5: Anmelden bei der CLI mit den Anmeldeinformationen für dein Twilio-Konto
twilio login
Herunterladen der Lookup-Startvorlage
Klone mithilfe der CLI die internationale Telefoneingabevorlage aus dem Twilio CodeExchange:
twilio serverless:init lookup-block-list --template=international-telephone-input && cd lookup-block-list
Öffne die .env-Datei und stelle sicher, dass deine Anmeldeinformationen für das Twilio-Konto (ACCOUNT_SID
und AUTH_TOKEN
) ausgefüllt wurden. Du findest deine Anmeldedaten in der Twilio-Konsole. Du kannst die App starten, indem du folgenden Befehl ausführst:
twilio serverless:start
Öffne http://localhost:3000/index.html in einem Browser. Du solltest in der Lage sein, deine Telefonnummer einzugeben, und sie im E.164-Format sehen:
Die Anwendung erweist sich bereits als sehr praktisch, indem sie international formatierte Nummern akzeptiert und sie in das Standardformat E.164 konvertiert. Die Lookup-API überprüft dann, ob die Nummer gültig ist oder nicht. Wenn du versuchst, nur 12345
oder eine andere ungültige Telefonnummer einzugeben, erhältst du eine Fehlermeldung.
Hinzufügen einer Sperrliste zum Registrierungsformular
Vermeide die Hartcodierung dieser Werte in einer Produktionsumgebung. Wir empfehlen, die Liste aus einem externen Speicher wie einer Konfigurationsdatei oder einer Datenbank zu laden, damit sie einfacher aktualisiert werden kann, ohne dass der Code selbst geändert werden muss.
Um eine Sperrliste hinzuzufügen, öffnest du die Datei functions/lookup.js
und fügst die folgende Zeile nach const client = ...
ein:
const block = ["12301", "12302"];
Diese Liste verwendet Mobile Country Codes (MCC) und Mobile Network Codes (MNC) zur Identifizierung von Netzbetreibern, die auch von der Lookup-API verwendet werden. Unsere Liste ist fiktiv, aber du kannst mihilfe dieser Website MCC-MNC-Kombinationen ermitteln. Um deine Verifizierung nach verschiedenen MCC+MNCs aufzuteilen, beginne mit der Nachverfolgung dieser Details, damit du mehr Informationen darüber erhältst, welchen Netzbetreibern du mehr oder weniger vertrauen kannst.
Bei der Betrachtung des Rests der Funktion stellst du sicher fest, dass wir die Antwort der Lookup-API nicht verwenden. Um die Antwort zu nutzen und den zurückgegebenen Netzbetreiber zu erfassen, ersetzen wir den aus 5 Zeilen bestehenden Code, der mit response.setStatusCode(200);
beginnt, durch:
const mccmnc = resp.carrier.mobile_country_code + resp.carrier.mobile_network_code
if (block.includes(mccmnc)) {
response.setStatusCode(401);
response.setBody({
success: false,
error: "Carrier not allowed.",
});
return callback(null, response);
} else {
response.setStatusCode(200);
response.setBody({
success: true,
});
return callback(null, response);
}
Rufe abschließend assets/index.html
auf und aktualisiere Zeile 73, um die Fehlermeldung der Funktion zu melden:
error.innerHTML = json.error;
Stelle sicher, dass das Projekt mit twilio serverless:start
ausgeführt wird, rufe http://localhost:3000/index.html auf und teste es! Versuche dann, die MCC-MNC-Kombination deiner Handynummer zur Sperrliste hinzuzufügen, um die Fehlermeldung „Carrier not allowed“ anzuzeigen.
Alternativen zur Sperrung von Netzbetreibern
Die komplette Sperrung eines Netzbetreibers birgt das Risiko, auch legitimen Datenverkehr zu blockieren. Du könntest die Lookup-API-Antwort verwenden, um Nummern mit höherem Risiko zu erkennen und Schutzmaßnahmen wie reCAPTCHAs hinzuzufügen, um Bots zu verhindern.
Du kannst Verifizierungen aus bestimmten Ländern auch mit einer ähnlichen Methode, die in diesem Blogbeitrag beschrieben wird, blockieren oder zulassen.
Du könntest auch den WhatsApp-Kanal anstelle von SMS zum Senden von Verifizierungscodes verwenden (demnächst mit der Verify-API möglich).
Was tun, wenn du betrügerische Aktivitäten in deinem Konto vermutest?
Bei Messaging-Missbrauch in der Authy-API oder Verify-API kannst du eine E-Mail an fraud@twilio.com senden. Bitte mache in deiner Nachricht die folgenden Angaben:
Account SID:
Product Type (Authy or Verify):
Date/time Range:
To/Recipient Country:
Workspace SID:
Description of Activity:
Andere Verwendungszwecke für die Lookup-API
Du kannst die Lookup-API auch für die Zulassung oder Erkennung bestimmter Länder verwenden. Das ist eine weitere Möglichkeit, Betrug zu verhindern und die Oberfläche deiner Anwendung zu verringern.
Lookup kann auch dazu verwendet werden, die Leitungsart zu ermitteln, um Handynummern, Festnetznummern und VoIP-Nummern zu unterscheiden.
Nach der Implementierung von Lookup möchtest du Telefonnummern natürlich mit der Twilio Verify-API verifizieren. Hier sind einige weitere Ressourcen für die Kontosicherheit, die dir gefallen könnten:
- Dokumentation zur Lookup-API
- Best Practices für die Validierung von Telefonnummern während der Registrierung neuer Benutzer
- Best Practices für die Verwaltung von Logik für Wiederholungsversuche mit SMS 2FA
- Senden einer SMS-OTP in 5 Minuten
Ich bin gespannt, was du mit Twilio entwickelst und sicherst!
This content originally appeared on Twilio Blog and was authored by Kelley Robinson
Kelley Robinson | Sciencx (2021-10-08T14:29:54+00:00) Erstellen einer Sperrliste für Netzbetreiber mit Twilio Lookup. Retrieved from https://www.scien.cx/2021/10/08/erstellen-einer-sperrliste-fur-netzbetreiber-mit-twilio-lookup/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.