active sharing of fraud policy data between financial
sector organisations using a service oriented
architecture, significantly reducing the latency
associated with discovery and deployment of fraud
policies in response to emerging industry threats
(Edge, Sampaio et al. 2008).
7 SUMMARY
This paper presents a financial fraud policy
specification language and policy mapping
technology for simplifying the challenges associated
with proactive fraud policy management using
stream processors. Fraud policies are defined using
a domain specific modelling language (FFML) and
translated into a StreamSQL representation using the
developed compiler component. A key element of
the framework is the application of an Event-
Condition-Action model for specification of
proactive fraud policies which span multiple
channels, time windows and events, and mapping
into the required stream processing implementation.
It is also illustrated using a simple example how the
expression of fraud policies using FFML can result
in significant syntax reductions over direct
implementation within the underlying stream
processing language model. Future work will
include the development of a real-time customer
profiling mechanism using signature-based models
(Edge and Sampaio 2009) and a component for
optimisation of generated StreamSQL code.
REFERENCES
Arasu, A., S. Babu, et al. (2006). "The CQL continuous
query language: semantic foundations and query
execution." The VLDB Journal 15(2): 121-142.
Chandrasekaran, S. (2003). TelegraphCQ: Continuous
Dataflow Processing for an Uncertain World. CIDR
Edge, M. E. and P. R. F. Sampaio (2009). "A Survey of
Signature Based Methods for Fraud Detection."
Computers and Security [To appear].
Edge, M. E., P. R. F. Sampaio, et al. (2007). Towards a
Proactive Fraud Management Framework for
Financial Data Streams. The 3rd IEEE International
Symposium on Dependable, Autonomic and Secure
Computing (DASC'07), Loyola College Graduate
Center, Columbia, MD, USA., IEEE.
Edge, M. E., P. R. F. Sampaio, et al. (2008). A Policy
Distribution Service for Proactive Fraud Management
over Financial Data Streams. IEEE International
Conference on Services Computing, 2008. (SCC '08),
Honolulu, Hawaii, USA.
Entrust. (2008). "www.entrust.com."
Fair Isaac. (2008). "www.fairisaac.com."
Kou, Y., C.-T. Lu, et al. (2004). Survey of fraud detection
techniques. IEEE International Conference on
Networking, Sensing and Control.
Luckham, D. (2005). The RAPIDE Pattern Language. The
Power of Events: An Introduction to Complex Event
Processing in Distributed Enterprise Systems, Pearson
Education: 145 - 174.
Phua, C., V. Lee, et al. (2005). "A Comprehensive Survey
of Data Mining-based Fraud Detection Research."
Stonebraker, M., A. Jhingran, et al. (1990). "On Rules,
Procedures, Caching and Views in Data Base
Systems." Proceedings of the 1990 ACM SIGMOD:
281 - 290.
StreamBase. (2008). "www.streambase.co.uk."
APPENDIX
CREATE INPUT STREAM ONL
fa
led
logonphase1(
transid string(10), sortcode string(6),
accountnumber string(8), datetime timestamp,
onlineid string(20), ipnumb string(25),
sessionid string(25), password1_entered
string(25));
CREATE INPUT STREAM ONL_failed_logonphase2(
transid string(10), sortcode string(6),
accountnumber string(8), datetime timestamp,
onlineid string(20), ipnumb string(25),
sessionid string(25), password2_entered
string(25), password3_entered string(25));
CREATE INPUT STREAM ONL_transfer(
transid string(10), sortcode string(6),
accountnumber string(8), datetime timestamp,
onlineid string(20), ipnumb string(25),
sessionid string(25), currency string(3),
amount double, dest_sortcode string(6),
dest_accountnumber string(8), dest_transferdate
string(10));
CREATE STREAM out__Pattern_1;
SELECT ONL_transfer.transid AS transid,
ONL_transfer.sortcode AS sortcode,
ONL_transfer.accountnumber AS accountnumber,
ONL_transfer.onlineid
AS onlineid,
ONL_transfer.ipnumb AS ipnumber,
ONL_transfer.sessionid AS sessionID,
ONL_transfer.currency AS currency,
ONL_transfer.amount AS amount,
ONL_transfer.dest_sortcode AS dest_sortcode,
ONL_transfer.dest_accountnumber AS
dest_accountnumber,
ONL_transfer.dest_transferdate AS
dest_transferdate
FROM PATTERN ((ONL_failed_logonphase1 THEN
ONL_failed_logonphase2)
THEN ONL_transfer) WITHIN 300 TIME
WHERE ONL_failed_logonphase1.transid =
ONL_failed_logonphase2.transid
AND ONL_failed_logonphase2.transid =
ONL_transfer.transid INTO out__Pattern_1;
CREATE STREAM out__TOTALDEBIT_2;
APPLY JDBC accountdata
"SELECT sum(amount) AS currentdaytotal FROM
transactions
WHERE (channel = 'CNP')
AND sortcode = {sortcode} AND accountnumber =
{accountnumber}
AND type = 'deb'
AND transdate >=
CONVERT(datetime,(FLOOR(CONVERT(float(GETDATE()
)))
AND transdate <
CONVERT(datetime,FLOOR(CONVERT(float,DATEADD(dd
,1,CURRENT_TIMESTAMP))));" FROM out__Pattern_1
INTO out__TOTALDEBIT_2;
CREATE STREAM out__Filter_3;
SELECT * FROM out__TOTALDEBIT_2
WHERE currentdaytotal >= 500 INTO
out__Filter_3;
CREATE STREAM out__Filter_4;
SELECT * FROM out__Filter_3
WHERE value >= 1500 INTO out__Filter_4;
CREATE
OUTPUT STREAM ALERT;
SELECT transid AS transid,
sortcode AS sortcode ,
accountnumber AS accountnumber
FROM out__Filter_4 INTO ALERT;
SPECIFYING AND COMPILING HIGH LEVEL FINANCIAL FRAUD POLICIES INTO STREAMSQL
199