合成身份欺诈
1. 简介
合成身份盗用是一种欺诈类型,欺诈者通过结合真实和虚假的身份信息来开立账户或进行购买。真实信息(例如照片或护照号码)通常被盗用,并与虚假信息(例如虚假姓名、地址或出生日期)结合。欺诈者随后利用这种合成身份来开立信用卡或进行欺诈性购买。这种方法有时被称为“弗兰肯斯坦身份”,因为其身份信息是拼凑而成的。
2. 场景
身份欺诈是一种不断演变且普遍存在的欺诈形式,对个人、企业和整个经济体构成重大风险。身份欺诈的后果可能是毁灭性的,导致财务损失、信用记录受损以及恢复被盗身份的艰难过程。
这种类型的欺诈变得越来越重要,因为正在讨论的新立法将为受害者提供额外的财务保护,并由汇款和收款机构分摊责任。
身份欺诈是一种普遍且重大的威胁,需要银行的关注和积极措施。通过有效减轻身份欺诈,银行不仅保护客户并维护其信任,还有助于金融系统的整体安全和稳定。
3. 解决方案
Neo4j 是一种先进的图数据库,在检测合成身份方面非常有效。它可以建模复杂的关系、进行高效的链接分析并识别模式。这使其成为快速轻松地揭示合成身份欺诈中典型的可疑连接和行为的理想解决方案。
4. 建模
本节将展示示例图上的 Cypher 查询示例。其目的是说明查询的样式,并提供在实际环境中组织数据的方式指南。我们将在一个包含多个节点的小型图上进行此操作。示例图将基于以下数据模型:
4.2. 演示数据
以下 Cypher 语句将在 Neo4j 数据库中创建示例图:
// Create all people nodes
CREATE (c1:Customer {name: "Michael"})
CREATE (c2:Customer {name: "Adam"})
CREATE (c3:Customer {name: "Alice"})
// Create email node
CREATE (email:Email {email: "michael@abc.com"})
// Create phone node
CREATE (phone:Phone {number: 7971020304})
// Create passport node
CREATE (passport:Passport {number: 123456789})
// Create email relationship
CREATE (c1)-[:HAS_EMAIL]->(email)<-[:HAS_EMAIL]-(c2)
// Create phone relationship
CREATE (c2)-[:HAS_PHONE]->(phone)<-[:HAS_PHONE]-(c3)
// Create passport relationship
CREATE (c3)-[:HAS_PASSPORT]->(passport)<-[:HAS_PASSPORT]-(c1)
5. Cypher 查询
5.1. 识别共享相同电子邮件的客户
在此查询中,我们将识别所有共享相同电子邮件地址的用户。
-
Customer
节点应连接到相同的Email
节点。 -
关系的遍历方向已应用。
您可以通过几种不同的方式表达相同的查询:
// Match all customers sharing an email
MATCH path=(c1:Customer)-[:HAS_EMAIL]->(email)<-[:HAS_EMAIL]-(c2:Customer)
RETURN path
在这里您可以看到,我们为 Customer
节点提供了标签,并指定了要遵循的确切关系。您也可以通过以下方式获得相同的结果:
// Match all customers sharing an email
MATCH path=(c1:Customer)-[]->(email:Email)<-[]-(c2:Customer)
RETURN path
这里的区别在于,这次我们没有指定要遵循的关系类型,但由于我们指定了 Email
节点标签,并且只有一个关系通向 Email
节点,因此我们得到了相同的响应。如果您的图包含连接客户和电子邮件的多个关系,则此查询将给出不正确的结果。
如果您像下面的查询一样在节点和关系上提供所有标签,则可以保证正确的遍历并确保不会得到任何不正确的结果。
// Match all people sharing an email
MATCH path=(c1:Customer)-[:HAS_EMAIL]->(:Email)<-[:HAS_EMAIL]-(c2:Customer)
RETURN path
5.2. 识别共享多个特征的客户
在此查询中,我们将识别与他人共享相同电子邮件、电话或护照号码的任何 Customer
。
-
Customer
节点应连接到相同的Email
节点。 -
Customer
节点应连接到相同的Phone
节点。 -
Customer
节点应连接到相同的Passport
节点。 -
关系的遍历方向已应用。
// Match all customers sharing an email, phone or passport number
MATCH path=(c1:Customer)-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]->(info)<-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]-(c2:Customer)
RETURN path
6. 图数据科学 (GDS)
6.1. 弱连接组件
《弱连接组件 (WCC) 算法》识别有向图和无向图中连接节点的组。如果节点之间存在路径,则认为它们是连接的,并且由相互连接的所有节点形成一个组件。
使用此算法的原因是它能够识别具有相似属性(例如 Email
、Phone
或 Passport
)的连接节点集群。它会生成一个可在未来调查中重复使用的社区 ID,为数据及其周围社区提供有价值的见解。
6.1.1 创建单部图
WCC 算法只能应用于只有一个节点标签的单部图。在我们的例子中,节点标签将是 Customer
。我们必须修改图以使数据与 WCC 算法兼容。为此,我们可以使用下面的查询来建立一个名为 LINKED
的新关系,该关系将由算法使用。
// Match all customers sharing an email, phone or passport number
MATCH (c1:Customer)-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]->(info)<-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]-(c2:Customer)
WHERE ID(c1) > ID(c2)
CREATE (c1)-[:LINKED]->(c2)
上面的查询修改了数据模型并将其更新为如下所示:
6.1.2 图投影
要开始运行任何图数据科学算法,您首先需要投影图的一部分。这将使您能够有效地分析投影中的数据。
CALL gds.graph.project(
// graph projection name
'myGraph',
// nodes to import into projection
'Customer',
// relationship to import into projection
'LINKED'
)