Использование модели Random Forest для обнаружения мошенничества в конфиденциальных вычислениях
Давайте попробуем разработать модель случайного леса для обнаружения мошенничества с кредитными картами и развернем ее на платформе конфиденциальных вычислений Cape Privacy для выполнения безопасного вывода. Cape гарантирует, что как модель, так и проверенные транзакции по кредитной карте остаются конфиденциальными во время вывода.
Мошенничество с кредитными картами
Мошенничество с кредитными картами - это форма кражи личных данных, которая включает использование кредитной карты другого лица для совершения покупок или снятия наличных авансов без согласия владельца карты. Мошенники могут либо получить вашу физическую кредитную карту, либо просто украсть информацию о вашей кредитной карте, такую как номер счета, имя владельца карты и CVV-код, и использовать ее для завладения вашей учетной записью.
Фактически, по данным Федеральной торговой комиссии, мошенничество с кредитными картами стало наиболее частым видом кражи личных данных в 2022 году [1]. Хорошей новостью является то, что большинство крупных поставщиков кредитных карт, таких как Visa, Mastercard или American Express, предлагают своим клиентам защиту от ответственности в размере 0 долларов США, что означает, что лица, информация о кредитной карте которых была украдена, не несут личной ответственности за мошеннические транзакции. Однако кража вашей личности и прохождение процесса смягчения последствий этого по-прежнему не доставляют удовольствия. Таким образом, своевременное выявление мошенничества с кредитными картами имеет первостепенное значение для защиты владельцев кредитных карт от кражи личных данных и для смягчения финансовых потерь, которые индустрия кредитных карт терпит из-за мошенничества.
Обнаружение мошенничества
Чтобы минимизировать свои потери и обеспечить удовлетворенность своих клиентов, компании, выпускающие кредитные карты, используют различные методы для предотвращения и выявления мошенничества с кредитными картами. Современные решения используют машинное обучение для своевременного обнаружения подозрительных транзакций и пресечения мошенничества [2].
Вторжение в частную жизнь при обнаружении мошенничества
Как владелец кредитной карты, каждый хотел бы, чтобы его учетная запись была максимально защищена от мошенничества с кредитными картами, но как же отношусь к сбору и обработке данных о транзакциях по моей кредитной карте? Что, если эти данные обрабатываются ненадежно и происходят утечки? Вот где может помочь конфиденциальная вычислительная платформа Cape.
Конфиденциальные вычисления с помощью Cape
Платформа конфиденциальных вычислений Cape, основанная на защищенных AWS Nitro enclaves, позволяет своим пользователям обрабатывать данные в облаке с сохранением конфиденциальности. Безопасный enclave - это среда, которая обеспечивает изоляцию кода и данных от операционной системы с использованием аппаратной изоляции на уровне процессора. Безопасные enclave предлагают процесс, называемый аттестацией, для проверки того, что процессор и запущенные приложения являются подлинными и неизмененными. Таким образом, защищенные enclave позволяют обрабатывать конфиденциальные данные и обеспечивают конфиденциальность как кода, так и данных внутри анклава.
В дополнение к самой платформе, Cape также предоставляет интерфейс командной строки, который позволяет своим пользователям легко шифровать свои входные данные, а также развертывать и запускать бессерверные функции с помощью простых команд: cape encrypt, cape deploy и cape run. Кроме того, Cape также предоставляет два SDK: pycape и cape-js, которые позволяют использовать cape в программах на Python и JavaScript соответственно.
Безопасный вывод о мошенничестве с кредитными картами с помощью Cape
Мы обучим модель обнаружения мошенничества с кредитными картами с помощью классификатора случайных лесов Sklearn и развернем ее на безопасной облачной платформе Cape, чтобы гарантировать, что модель и входные данные, обрабатываемые во время вывода, остаются конфиденциальными.
Обучение модели
Сначала мы обучаем простой классификатор случайного леса и сохраняем модель следующим образом.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from joblib import dump, load
data = pd.read_csv("creditcard.csv")
X = data.drop(['Class'], axis=1)
Y = data["Class"]
X_data = X.values
Y_data = Y.values
X_train, X_test, Y_train, Y_test = train_test_split(X_data, Y_data, test_size = 0.2, random_state = 42)
model = RandomForestClassifier()
model.fit(X_train, Y_train)
y_pred = model.predict(X_test)
print(accuracy_score(Y_test, y_pred))
# save model
dump(model, 'model.joblib')
Вышеуказанная модель имеет точность тестирования 99,9%.
Создание функции вывода Cape
Приведенный ниже фрагмент кода показывает наш app.py . Сначала мы импортируем библиотеки, которые нам нужны для нашего приложения.
from joblib import load
import pandas as pd
import sklearn
Затем мы определяем функцию обработчика транзакций, которая принимает транзакцию по кредитной карте в качестве входных данных, вызывает ранее обученную модель и выдает прогноз, указывающий, является ли транзакция законной или мошеннической.
Обратите внимание, что любая функция, развернутая с помощью Cape, должна быть названа app.py, где app.py должен содержать функцию с именем cape_handler()
, которая принимает входные данные, обрабатываемые функцией, и возвращает результаты.
def cape_handler(input_data):
csv = input_data.decode("utf-8")
csv = csv.replace("\\t", ",").replace("\\n", "\n")
f = open("data.csv", "w")
f.write(csv)
f.close()
data = pd.read_csv("data.csv")
clf = load('model.joblib')
y_pred = clf.predict(data)
if y_pred == 0:
return "This credit card transaction is legitimate"
else:
return "This credit card transaction is fraudulent"
Применение с Cape
Чтобы развернуть нашу функцию с помощью Cape, нам сначала нужно создать папку, содержащую все необходимые зависимости. В случае этого приложения папка развертывания должна содержать app.py выше, а также обученная модель, которую мы сохранили как model.joblib. Кроме того, поскольку app.py программа импортирует некоторые внешние библиотеки (в данном случае: sklearn, pandas, и joblib), они также должны быть в папке развертывания. Мы можем сохранить список этих зависимостей в requirements.txt файл и запустите docker, чтобы установить эти зависимости в нашу папку развертывания под названием app следующим образом:
sudo docker run -v `pwd`:/build -w /build --rm -it python:3.9-slim-bullseye pip install -r requirements.txt --target ./app/
Теперь, когда у нас все готово, мы можем войти в Cape:
cape login
Your CLI confirmation code is: GZPN-KHMT
Visit this URL to complete the login process: https://login.capeprivacy.com/activate?user_code=GZPN-KHMT
Congratulations, you're all set!
И после этого мы можем развернуть приложение:
cape deploy app
Deploying function to Cape ...
Success! Deployed function to Cape.
Function ID ➜ YdVYPwWkTw2TmP6u7JEF6i
Function Checksum ➜ 26ebbba7e81391b9a40ea35f8b29eb969726417897dbfbe5d069973344a5e831
Управление с Cape
Теперь, когда приложение развернуто, мы можем передать ему входные данные и вызвать его с помощью cape run:
cape run YdVYPwWkTw2TmP6u7JEF6i -f fraudulent_transaction.csv --insecure -u https://k8s-cape-enclaver-750003af11-e3080498c852b366.elb.us-east-1.amazonaws.com
This credit card transaction is fraudulent
cape run YdVYPwWkTw2TmP6u7JEF6i -f legitimate_transaction.csv --insecure -u https://k8s-cape-enclaver-750003af11-e3080498c852b366.elb.us-east-1.amazonaws.com
This credit card transaction is legitimate
Заключение
Мы обсудили важность своевременного выявления мошенничества с кредитными картами, которое стало самой распространенной формой кражи личных данных в 2022 году [1]. Современные инструменты обнаружения мошенничества используют модели машинного обучения, для чего требуется крупномасштабный сбор данных о транзакциях по кредитным картам. Задача состоит в том, чтобы обеспечить безопасную обработку этих конфиденциальных данных, чтобы предотвратить утечку данных, которой могут воспользоваться злоумышленники. Чтобы гарантировать, что проверяемые транзакции по кредитным картам остаются конфиденциальными во время вывода, мы использовали платформу конфиденциальных вычислений Cape.
В частности, мы развернули обученный классификатор random forest в безопасном enclave Cape, откуда мы выполнили вывод по некоторым примерам транзакций.
[1] https://public.tableau.com/app/profile/federal.trade.commission/viz/TheBigViewAllSentinelReports/TopReports
[2] https://www.google.com/url?q=https://journalofbigdata.springeropen.com/articles/10.1186/s40537-022-00573-8&sa=D&source=docs&ust=1667852611321463&usg=AOvVaw3UX5MKe17ZhDxhabVjhQie