Using Graphs to Fight Financial Crime
Financial crime can take many forms: money laundering, terrorism funding, corruption, tax evasion, insurance fraud, etc. In all these scenarios, perpetrators need to hide their tracks to avoid jail time or fines.
That means creating layers of obfuscation between their identity and their wrongdoings via the use of fake identities, middlemen, complex financial schemes and other tactics. On the other hand, law enforcement agencies, financial institutions and other fraud detection professionals are looking to find evidence of wrongdoing.
Graph technologies like Linkurious and Neo4j offer a unique chance to unmask financial criminals because of their:
- Ability to provide an holistic view of the various entities involved in financial crime and their relationships
- Ability to identify in real-time complex suspicious connections (e.g., graph patterns)
Graph-Powered Anti-Money Laundering
Money laundering is the process of transforming the proceeds of crime and corruption into ostensibly legitimate assets. Financial institutions are responsible for monitoring the behavior of their customers and report to authorities potential money-laundering activities. Failure to do so can result in billion-dollar fines.
How can banks and financial institutions identify links between their customers and corrupt politicians, known criminals, terrorists or countries on sanctions list?
If you’re reading this, perhaps you already understand that this is a graph problem. Relational databases are not flexible enough to tackle evolving, complex connected data. NoSQL databases don’t consider relationships as first class citizens. In both cases, relationships in the data are either missing or too hard to compute.
Storing the Data
That’s where graph database like Neo4j come in. Neo4j is designed to store and query complex, connected data which is perfect for anti-money laundering (AML).
A financial institutions has information about the companies and individuals it does business with and their transactions. This data can be augmented with other data sources like watch lists, company registries, etc. A graph approach can help us consolidate these different entities coming from various systems into a single view (click the image to enlarge):
Linkurious Enterprise integrates seamlessly with Neo4j and provides an additional layer of high-level services including support for authentication services (LDAP, Active Directory), user access management, graph visualization and full-text search all available via a REST API.
Now we can start asking questions like “Are my customers in contact with criminals?” or “Am I doing business with companies with ties to countries on a sanctions list like the Specially Designated Nationals List (SDN)?”
To do that, we can use the Cypher graph query language. We’ll use a pattern which identifies transactions linked to either an individual who is on a watch list or a company who is on a sanctions list.
Here is our pattern:
MATCH p = (a:TRANSACTION)-[*..4]-(b:PERSON) WHERE b.watch_list = 'YES' RETURN p,a.amount
The new Linkurious Enterprise makes it easier than ever to monitor your data to identify a graph pattern. In a few clicks a data scientist or developer can take a Cypher query and create an alert.
As we update our data with new transactions, persons, companies and relationships, Linkurious will identify suspicious connections.
What if we identify a transaction linked to a criminal or an at-risk country? Neo4j provides a browser for developers where it’s possible to type Cypher queries and visualize data. In Linkurious Enterprise, the process of reviewing ongoing issues is streamlined with an alert dashboard designed for analysts.
As an analyst, I may want to dig deeper into a flagged transaction. I can quickly visualize the entities it involves.
Here we can see that Angela Marshall, a (fictitious) individual, is connected to an address which is connected to a company which is connected to a bank account which is connected to a transaction. This matches the pattern we defined and thus the transaction was flagged. In one glimpse we can get an overview of the situation.
Our suspicious customer is connected to an address which is connected to something else. We can also explore other entities connected to the address.
It appears the suspicious customer shares an address with two internal employees. They are all living at 3557 Straubel Circle – Hongqiao.
Perhaps the employee and the customer are colluding? Linkurious Enterprise helps investigators discover new hidden connections. It’s not enough to identify individual suspicious individuals. The graph approach helps us fight the full network, which is more effective.
The geospatial visualization that we have produced can be shared with colleagues or with law enforcement. It will help everyone understand the situation and coordinate regarding the next steps (blocking the account, alerting the authorities, etc).
Linkurious and Neo4j are used by organizations looking to find threats and opportunities in complex connected data. Among these organizations is a growing number of financial institutions fighting fraud, anti-money laundering or terrorism funding.
The Neo4j graph database provides the ability to quickly store and query large, complex and evolving datasets. Linkurious Enterprise makes these capabilities easy to deploy securely via its:
- Alert system to automatically identify graph patterns
- Dashboard to streamline review of suspicious cases
- Graph visualization interface to accelerate investigations