모바일 은행 사기 검색

Azure Machine Learning
Azure Synapse Analytics
Azure Event Hubs
Azure Key Vault
Azure SQL Database

전형적인 온라인 사기의 경우, 도둑은 여러 건의 트랜잭션을 하여 수천 달러의 손실을 입습니다. 이것이 사기 검색이 근 실시간으로 이루어져야 하는 이유입니다. 8억 명이 넘는 사람들이 모바일 앱을 사용합니다. 그 수가 증가함에 따라 모바일 은행 사기도 증가합니다. 금융 산업은 모바일 플랫폼 액세스로 인한 손실이 전년 대비 100% 증가하고 있습니다. 그러나 완화가 있습니다. 이 문서에서는 Azure 기술을 사용하여 2초 이내에 사기성 모바일 은행 트랜잭션을 예측하는 솔루션을 제시합니다. 여기에 제시된 아키텍처는 실제 솔루션을 기반으로 합니다.

과제: 드문 사기 사례 및 엄격한 규칙

대부분의 모바일 사기는 SIM 교환 공격을 사용하여 휴대전화 번호를 도용할 때 발생합니다. 전화번호가 복제되고 범죄자는 피해자의 모바일 디바이스로 전송된 SMS 알림과 전화를 받습니다. 그런 다음 범죄자는 소셜 엔지니어링, 피싱, 비싱(전화를 사용하여 피싱) 또는 감염된 다운로드 앱을 사용하여 로그인 자격 증명을 가져옵니다. 이 정보를 통해 범죄자는 은행 고객을 사칭하고 모바일 액세스에 등록하고 즉시 자금 이체 및 인출을 생성할 수 있습니다.

모바일 사기는 검색하기 어렵고 소비자와 은행에 비용이 많이 듭니다. 첫 번째 문제는 드물다는 것입니다. 모든 트랜잭션의 1% 미만이 사기이므로 사기 또는 사례 관리 팀이 잠재적인 사기 트랜잭션을 선별하여 사기 트랜잭션을 식별하는 데 시간이 걸릴 수 있습니다. 두 번째 문제는 많은 사기 모니터링 솔루션이 규칙 기반 엔진에 의존한다는 것입니다. 전통적으로 규칙 기반 엔진은 위험한 IP 주소에서 생성된 사기와 유사한 트랜잭션 또는 새 계정에서 짧은 기간 내에 생성된 여러 트랜잭션의 확립된 패턴을 검색하는 데 효과적입니다. 그러나 규칙 기반 엔진에는 상당한 제한이 있습니다. 규칙은 새롭거나 진화하는 형식의 공격에 빠르게 적응하지 못합니다. 다음과 같은 방식으로 제한됩니다.

  • 검색은 실시간이 아니므로 금전적 손실이 발생한 후에 사기가 검색됩니다.
  • 규칙은 이진 파일이며 제한적입니다. 평가할 수 있는 입력 변수의 복잡성과 조합을 수용하지 않습니다. 이 제한으로 인해 많은 수의 가양성이 발생합니다.
  • 규칙은 비즈니스 논리에 하드코딩됩니다. 규칙을 큐레이팅하거나 새로운 데이터 원본을 통합하거나 새로운 사기 패턴을 추가하려면 일반적으로 업무 프로세스에 영향을 미치는 애플리케이션 변경이 필요합니다. 업무 프로세스 전체에 변경 내용을 전파하는 것은 번거롭고 비용이 많이 들 수 있습니다.

AI 모델은 사기 검색율과 검색 시간을 획기적으로 개선할 수 있습니다. 은행은 손실을 줄이기 위해 이러한 모델을 다른 방식과 함께 사용하고 있습니다. 여기에 설명된 프로세스는 세 가지 요소를 기반으로 합니다.

  • 파생된 동작 특성 집합에 따라 작동하는 AI 모델
  • 기계 학습을 위한 방법론
  • 포트폴리오를 평가하기 위해 부정 행위 관리자가 사용하는 것과 유사한 모델 평가 프로세스

운영 컨텍스트

이 솔루션의 기반이 되는 은행의 경우 고객의 디지털 서비스 사용이 증가함에 따라 모바일 채널 전체에서 사기가 급증했습니다. 은행이 사기 적발 및 예방에 대한 방식을 재고해야 할 때였습니다. 이 솔루션은 부정 행위 프로세스 및 결정에 영향을 미치는 질문에서 시작되었습니다.

  • 어떤 작업이나 트랜잭션이 사기일 가능성이 있나요?
  • 어떤 계정이 손상되었나요?
  • 추가 조사 및 사례 관리가 필요한 작업은 무엇인가요?

솔루션이 가치를 제공하려면 운영 환경에서 모바일 은행 사기가 어떻게 명백하게 드러나는지 명확하게 이해해야 합니다.

  • 플랫폼에서 어떤 종류의 사기가 지속되나요?
  • 어떻게 커밋되나요?
  • 사기 작업 및 트랜잭션의 패턴은 무엇인가요?

이러한 질문에 대한 답변을 통해 사기를 나타낼 수 있는 동작 형식을 이해할 수 있었습니다. 데이터 특성은 식별된 동작과 상호 관련된 관계가 있는 모바일 애플리케이션 게이트웨이에서 수집된 메시지에 매핑되었습니다. 그런 다음 사기를 판단하는 데 가장 관련성이 높은 계정 동작을 프로파일링했습니다.

다음 표에는 침해 형식, 사기를 나타낼 수 있는 데이터 특성, 은행과 관련된 동작이 나와 있습니다.

자격 증명 손상* 디바이스 손상 재정적 타협 비 트랜잭션 타협
사용된 메서드 피싱, 비싱. SIM 교환, 비싱, 맬웨어, 탈옥, 디바이스 에뮬레이터. 계정 자격 증명과 디바이스 및 사용자 디지털 식별자(예: 이메일 및 실제 주소) 사용. 계정에 새 사용자 추가, 카드 또는 계정 한도 증가, 계정 세부 정보 및 고객 프로필 정보 또는 암호 변경.
데이터 이메일 또는 암호, 크레딧카드 또는 직불 카드 번호, 고객이 선택한 PIN 또는 일회용 PIN. 디바이스 ID, SIM 카드 번호, 지리적 위치 및 IP. 거래 금액, 이체, 인출 또는 지급 수혜자. 계정 세부 정보.
패턴 기존 카드와 PIN이 있는 신규 디지털 고객(이전에 등록되지 않음).

존재하지 않거나 알 수 없는 사용자의 로그인 실패.

계정에 일반적이지 않은 시간 프레임 동안 로그인.

로그인 암호 변경 여러 번 시도.
지리적 불규칙성(특이한 위치에서 액세스).

짧은 시간에 여러 디바이스에서 액세스.
트랜잭션의 패턴. 예를 들어, 짧은 시간에 동일한 계정에 대해 많은 소액 트랜잭션이 로그되고 때로는 대규모 인출이 뒤따름. 또는 최대 허용 금액에 대한 결제, 인출 또는 이체.

비정상적인 트랜잭션 빈도.
로그인 패턴 및 작업 시퀀스. 예를 들어, 짧은 시간 내에 여러 번 로그인하거나, 연락처 정보를 변경하려고 여러 번 시도하거나, 비정상적인 시간 동안 디바이스 추가.

* 가장 일반적인 손상 지표입니다. 금전적 및 비재정적 타협보다 우선합니다.

동작 차원은 모바일 사기를 검색하는 데 중요합니다. 동작 기반 프로필은 계정에 대한 일반적인 동작 패턴을 설정하는 데 도움이 될 수 있습니다. 분석은 표준을 벗어난 것으로 보이는 작업을 지적할 수 있습니다. 다음은 프로파일링할 수 있는 동작 형식의 몇 가지 예입니다.

  • 디바이스와 연결된 계정은 몇 개인가요?
  • 계정과 연결된 디바이스는 몇 개인가요? 얼마나 자주 삭제되거나 추가되나요?
  • 디바이스 또는 고객이 얼마나 자주 로그인하나요?
  • 고객이 암호를 얼마나 자주 변경하나요?
  • 계정에서 평균 이체 또는 인출 금액은 얼마인가요?
  • 계정에서 얼마나 자주 인출되나요?

이 솔루션은 다음을 기반으로 하는 방식을 사용합니다.

  • 고객 및 계정에 대한 동작 프로필을 만들기 위한 기능 엔지니어링.
  • 의심스럽거나 일관되지 않은 계정 동작에 대한 사기 분류 모델을 만드는 Azure Machine Learning.
  • 실시간 이벤트 처리 및 엔드투엔드 워크플로를 위한 Azure 서비스.

상위 수준 아키텍처

Diagram that shows an architecture for detecting mobile bank fraud.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

이 아키텍처에는 세 가지 작업 흐름이 있습니다.

  • 이벤트 기반 파이프라인은 로그 데이터를 수집 및 처리하고 동작 계정 프로필을 만들고 유지하며 사기 분류 모델을 통합하고 예측 점수를 만듭니다. 이 파이프라인의 대부분의 단계는 Azure 함수로 시작합니다. Azure 함수는 서버리스이고 쉽게 크기 조정되고 예약되기 때문에 사용됩니다. 이 워크로드는 수백만 건의 수신 모바일 트랜잭션을 처리하고 근 실시간으로 사기 여부를 평가해야 합니다.

  • 모델 학습 워크스트림은 온-프레미스 과거 사기 데이터와 수집된 로그 데이터를 결합합니다. 이 워크로드는 일괄 처리 지향적이며 모델 학습 및 재학습에 사용됩니다. Azure Data Factory는 다음을 포함한 처리 단계를 오케스트레이션합니다.

    • 온-프레미스 원본에서 레이블이 지정된 과거 사기 데이터 업로드.
    • 모든 트랜잭션에 대한 데이터 기능 집합 및 점수 기록 보관.
    • 기능 엔지니어링 및 모델 재학습 및 평가를 위해 이벤트 및 메시지를 구조화된 형식으로 추출.
    • Azure Machine Learning을 통한 사기 모델 학습 및 재학습.
  • 세 번째 작업 흐름은 백 엔드 업무 프로세스와 통합됩니다. Azure Logic Apps를 사용하여 온-프레미스 시스템에 연결하고 동기화하여 사기 관리 사례를 만들거나 계정 액세스를 일시 중지하거나 전화 연락처를 만들 수 있습니다.

이 아키텍처의 중심에는 데이터 파이프라인과 AI 모델이 있으며 이에 대해서는 이 문서의 뒷부분에서 자세히 설명합니다.

이 솔루션은 ESB(엔터프라이즈 서비스 버스) 및 고성능 네트워크 연결을 사용하여 은행의 온-프레미스 환경과 통합됩니다.

데이터 파이프라인 및 자동화

범죄자가 모바일 앱을 통해 은행 계좌에 액세스하면 금전적 손실이 몇 분 안에 발생할 수 있습니다. 사기 행위의 효과적인 검색은 범죄자가 모바일 애플리케이션과 상호 작용하는 동안 그리고 금전 트랜잭션이 발생하기 전에 이루어져야 합니다. 사기 트랜잭션에 대응하는 데 걸리는 시간은 예방할 수 있는 금전적 손실의 양에 직접적인 영향을 미칩니다. 검색이 빠를수록 금전적 손실이 줄어듭니다.

모바일 뱅킹 작업이 처리를 위해 전달된 후 사기 여부를 평가해야 하는 최대 시간은 2초 미만이며 이상적으로는 훨씬 짧습니다. 이 2초 동안 발생해야 하는 작업은 다음과 같습니다.

  • 복잡한 JSON 이벤트를 수집합니다.
  • JSON의 유효성을 검사, 인증, 구문 분석 및 변환합니다.
  • 데이터 특성에서 계정 기능을 만듭니다.
  • 유추를 위해 트랜잭션을 제출합니다.
  • 사기 점수를 검색합니다.
  • 백 엔드 사례 관리 시스템과 동기화합니다.

대기 시간 및 응답 시간은 사기 검색 솔루션에서 매우 중요합니다. 이를 지원하는 인프라는 빠르고 확장 가능해야 합니다.

이벤트 처리

은행의 모바일 및 인터넷 애플리케이션 게이트웨이의 원격 분석 이벤트는 느슨하게 정의된 스키마가 있는 JSON 파일로 형식이 지정됩니다. 이러한 이벤트는 애플리케이션 원격 분석으로 Azure Event Hubs에 스트리밍되며, 여기에서 전용 App Service Environment의 Azure 함수가 처리를 조정합니다.

다음 다이어그램은 이 인프라 내의 Azure 함수에 대한 기본적인 상호 작용을 보여 줍니다.

Diagram that shows the event-processing infrastructure.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. Event Hubs에서 원시 JSON 이벤트 페이로드를 수집하고 Azure Key Vault에서 검색한 SSL 인증서를 사용하여 인증합니다.
  2. Azure Data Lake의 원시 JSON 메시지와 Azure SQL Database의 사용자 금융 트랜잭션 기록의 역직렬화, 구문 분석, 저장 및 로깅을 조정합니다.
  3. SQL Database 및 데이터 레이크에서 사용자 계정 및 디바이스 프로필을 업데이트하고 검색합니다.
  4. Azure Machine Learning 엔드포인트를 호출하여 예측 모델을 실행하고 사기 점수를 가져옵니다. 운영 분석을 위해 유추 결과를 데이터 레이크에 유지합니다.
  5. 실시간 운영 분석 대시보드를 위해 Azure Synapse Analytics를 통해 Power BI를 데이터 레이크에 연결합니다.
  6. 추가 사기 조사 및 관리 작업을 위해 채점 결과를 온-프레미스 시스템에 이벤트로 게시합니다.

데이터 전처리 및 JSON 변환

이 솔루션이 기반으로 하는 실제 시나리오에서 데이터 사전 처리는 기계 학습 모델의 개발 및 학습을 위한 데이터 형식 지정의 필수 단계였습니다. JSON 형식의 애플리케이션 게이트웨이 원격 분석에서 트랜잭션 데이터를 포함하여 수년간의 역사적인 모바일 및 인터넷 뱅킹 이벤트가 있었습니다. 기계 학습 모델을 학습하기 위해 역직렬화, 평면화 및 정리해야 하는 여러 이벤트가 포함된 수십만 개의 파일이 있었습니다.

각 애플리케이션 게이트웨이는 OS, 모바일 디바이스 메타데이터, 계정 데이터, 트랜잭션 요청 및 응답과 같은 정보를 캡처하여 사용자의 상호 작용에서 원격 분석을 생성합니다. JSON 파일과 특성 간에 차이가 있었고 데이터 형식이 서로 다르고 일관성이 없었습니다. JSON 파일의 또 다른 문제는 애플리케이션 업데이트가 게이트웨이로 푸시되고 기능이 제거, 수정 또는 추가됨에 따라 특성 및 데이터 형식이 예기치 않게 변경될 수 있다는 것입니다. 스키마와 관련된 데이터 변환 문제는 다음과 같습니다.

  • JSON 파일에는 하나 이상의 휴대폰 상호 작용이 포함될 수 있습니다. 각 상호 작용은 별도의 메시지로 추출되어야 합니다.
  • 필드는 다르게 이름이 지정되거나 표시될 수 있습니다.
  • 새 줄이나 캐리지 리턴과 같은 문자가 메시지에 일관되지 않게 포함됩니다.
  • 이메일 주소와 같은 특성이 누락되었거나 부분적으로 형식이 지정되었을 수 있습니다.
  • 복잡하고 중첩된 속성 및 값이 있을 수 있습니다.

Spark 풀은 콜드 경로의 일부로 사용되어 기록 JSON 파일을 처리하고 디바이스 및 트랜잭션 특성을 역직렬화, 평면화 및 추출합니다. 각 JSON 파일의 유효성이 검사되고 구문 분석되며 트랜잭션 특성이 추출되어 데이터 레이크에 유지되고 트랜잭션 날짜를 기준으로 분할됩니다.

이러한 특성은 나중에 사기 분류자를 위한 기능을 만드는 데 사용됩니다. 이 솔루션의 기능은 JSON 데이터를 표준화, 조인 및 기록 데이터로 집계하여 동작 프로필을 만드는 기능을 사용합니다.

SQL Database를 사용한 근 실시간 데이터 처리 및 기능화

이 솔루션에서 이벤트는 인증 레코드, 고객 정보 및 인구 통계, 트랜잭션 레코드, 모바일 디바이스의 로그 및 작업 데이터를 비롯한 여러 원본에서 생성됩니다. SQL은 많은 개발자에게 친숙하기 때문에 SQL Database는 실시간 데이터 구문 분석, 사전 처리 및 기능화를 수행하는 데 사용됩니다.

짧은 대기 시간 및 근 실시간으로 기능을 계산하기 위해 지난 7일 동안 특정 디바이스에 대한 사용자 계정 동작 기록을 검색하려면 HTAP 기능이 필요합니다. SQL Database에서는 다음과 같은 HTAP(하이브리드 트랜잭션/분석 처리) 기능이 사용됩니다.

  • 메모리 최적화 테이블은 계정 프로필을 저장합니다. 메모리 최적화 테이블은 주 메모리에서 만들어지고 액세스되기 때문에 기존 SQL 테이블보다 이점이 있습니다. 대기 시간과 디스크 액세스 오버헤드가 방지됩니다. 이 솔루션의 요구 사항은 초당 300개의 JSON 메시지를 처리하는 것입니다. 메모리 최적화 테이블은 이러한 수준의 처리량을 제공합니다.
  • 메모리 최적화 테이블은 기본적으로 컴파일된 저장 프로시저에서 가장 효율적으로 액세스됩니다. 해석된 저장 프로시저와 달리 고유하게 컴파일된 저장 프로시저는 처음 만들어질 때 컴파일됩니다.
  • temporal 테이블은 변경 내용을 자동으로 유지 관리하는 테이블입니다. 행이 추가되거나 업데이트되면 버전이 지정되고 기록 테이블에 기록됩니다. 이 솔루션에서 계정 프로필은 7일 보존 정책이 있는 temporal 테이블에 저장되므로 보존 기간이 지나면 행이 자동으로 제거됩니다.

이 방식은 다음과 같은 이점도 제공합니다.

  • 운영 분석, 기계 학습 모델 재학습 및 사기 유효성 검사를 위해 보관된 데이터에 액세스
  • 장기 스토리지에 대한 단순화된 데이터 보관
  • 분할 데이터 및 탄력적 데이터베이스 사용을 통한 확장성

이벤트 스키마 관리

스키마 관리 자동화는 이 솔루션에서 해결해야 하는 또 다른 과제입니다. JSON은 스키마가 데이터와 함께 저장되지 않기 때문에 유연하고 이식 가능한 파일 형식입니다. JSON 파일을 구문 분석, 역직렬화 및 처리해야 하는 경우 JSON 구조를 나타내는 스키마를 어딘가에 코딩하여 데이터 속성 및 데이터 형식의 유효성을 검사해야 합니다. 스키마가 들어오는 JSON 메시지와 동기화되지 않으면 JSON 유효성 검사가 실패하고 데이터가 추출되지 않습니다.

새로운 애플리케이션 기능으로 인해 JSON 메시지의 구조가 변경될 때 문제가 발생합니다. 원래 솔루션에서 이 솔루션을 만든 은행은 각각 고유한 UI, 기능, 원격 분석 및 JSON 메시지 구조가 있는 여러 애플리케이션 게이트웨이를 배포했습니다. 스키마가 수신 JSON 데이터와 동기화되지 않은 경우 불일치로 인해 사기 검색을 위한 데이터 손실 및 처리 지연이 발생했습니다.

은행에는 이러한 이벤트에 대해 정의된 공식 스키마가 없었으며 JSON 파일 구조의 지속적인 변동으로 인해 솔루션을 반복할 때마다 기술적인 문제가 발생했습니다. 이 솔루션은 이러한 이벤트에 대한 스키마를 설정하고 Azure Schema Registry를 사용하여 해당 문제를 해결합니다. Azure Schema Registry는 생산자 및 소비자 애플리케이션이 스키마를 관리 및 공유할 필요 없이 데이터를 교환할 수 있도록 이벤트 및 유연성을 위한 중앙 스키마 리포지토리를 제공합니다. 재사용 가능한 스키마에 대해 도입한 간단한 거버넌스 프레임워크와 그룹화 구문(스키마 그룹)을 통해 스키마 간에 정의하는 관계는 상당히 기술적인 문제를 제거하고, 준수를 강화하고, 변경하는 스키마 간에 이전 버전과의 호환성을 제공할 수 있습니다.

기계 학습을 위한 기능 엔지니어링

기능은 다양한 시간 척도에 대한 작업을 집계하여 계정 동작을 프로파일링하는 방법을 제공합니다. 트랜잭션, 비트랜잭션 및 디바이스 동작을 나타내는 애플리케이션 로그의 데이터에서 만들어집니다. 트랜잭션 동작에는 결제 및 인출과 같은 금전적 트랜잭션 작업이 포함됩니다. 비트랜잭션 동작에는 로그인 시도 및 암호 변경과 같은 사용자 작업이 포함됩니다. 디바이스 동작에는 디바이스 추가 또는 제거와 같은 모바일 디바이스와 관련된 작업이 포함됩니다. 기능은 다음을 포함하여 현재 및 과거 계정 동작을 나타내는 데 사용됩니다.

  • 특정 디바이스에서 신규 사용자 등록을 시도합니다.
  • 성공 및 실패한 로그인 시도.
  • 제3자 수취인 또는 수혜자 추가 요청.
  • 계정 또는 신용 카드 한도 증가 요청.
  • 암호 변경.

계정 프로필 테이블에는 메시지 ID, 트랜잭션 형식, 결제 금액, 요일 및 시간과 같은 JSON 트랜잭션의 특성이 포함됩니다. 작업은 1시간, 1일, 7일과 같은 여러 시간 프레임에 걸쳐 집계되며 각 계정의 동작 기록으로 저장됩니다. 테이블의 각 행은 단일 계정을 나타냅니다. 다음은 몇 가지 기능입니다.

Table that lists example features, including number of changed password messages in the past seven days and average withdrawal in the past day.

계정 기능이 계산되고 프로필이 업데이트된 후 Azure 함수는 REST API를 통해 점수를 매기기 위해 기계 학습 모델을 호출하여 다음 질문에 대답합니다. 본 동작에 따라 이 계정이 사기 상태에 있을 확률은 무엇인가요?

AutoML

AutoML은 빠르고 사용하기 쉽기 때문에 솔루션에 사용됩니다. AutoML은 전문 지식이나 설정이 필요하지 않기 때문에 빠른 검색 및 학습에 유용한 출발점이 될 수 있습니다. 시간 소모적이고 반복적인 기계 학습 모델 개발 작업을 자동화합니다. 데이터 과학자, 분석가 및 개발자는 이를 사용하여 모델 품질을 유지하면서 확장성, 효율성 및 생산성이 높은 기계 학습 모델을 빌드할 수 있습니다.

AutoML은 기계 학습 프로세스에서 다음 작업을 수행할 수 있습니다.

  • 데이터를 학습 및 유효성 검사 데이터 세트로 분할
  • 선택한 메트릭을 기반으로 학습 최적화
  • 교차 유효성 검사 수행
  • 기능 생성
  • 누락 값 입력
  • 원-핫 인코딩 및 다양한 배율 조정기 수행

데이터 불균형.

심각한 계층 불균형으로 인해 사기 분류가 어렵습니다. 사기 데이터 세트에는 사기 트랜잭션보다 사기가 아닌 트랜잭션이 더 많습니다. 일반적으로 데이터 세트의 1% 미만에 사기 트랜잭션이 포함됩니다. 해결되지 않으면 이 불균형은 모든 트랜잭션이 사기가 아닌 것으로 분류될 수 있기 때문에 모델에서 신뢰성 문제를 일으킬 수 있습니다. 이 모델은 모든 사기 트랜잭션을 완전히 놓칠 수 있으며 여전히 99%의 정확도를 달성할 수 있습니다.

AutoML은 데이터를 재분배하고 사기성 트랜잭션과 비사기성 트랜잭션 간에 더 나은 균형을 만드는 데 도움이 될 수 있습니다.

  • AutoML은 가중치 열을 입력으로 추가하여 데이터 행의 가중치를 높이거나 낮추어 클래스의 중요성을 덜 수 있도록 지원합니다. AutoML에서 사용하는 알고리즘은 소수 클래스의 샘플 수가 다수 클래스의 샘플 수의 20% 이하일 때 불균형을 검색합니다. 그 후 AutoML은 서브샘플링된 데이터로 실험을 실행하여 클래스 가중치를 사용하면 이 문제가 해결되고 성능이 개선되는지 확인합니다. 실험으로 인해 성능이 더 좋다고 판단되면 구제책이 적용됩니다.
  • 불균형 데이터를 더 잘 처리하는 성능 측정 메트릭을 사용할 수 있습니다. 예를 들어, 모델이 가음성에 민감해야 하는 경우 recall을 사용합니다. 모델이 가양성에 민감해야 하는 경우 precision을 사용합니다. F1 점수를 사용할 수도 있습니다. 이 점수는 precisionrecall 사이의 조화 평균이므로 많은 진양성 또는 진음성의 영향을 받지 않습니다. 테스트 단계에서 일부 메트릭을 수동으로 계산해야 할 수도 있습니다.

또는 사기로 분류된 트랜잭션 수를 늘리기 위해 SMOTE(Synthetic Minority Oversampling Technique)라는 기술을 수동으로 사용할 수 있습니다. SMOTE는 부트스트래핑 및 KNN(k-가장 인접한 항목)을 사용하여 소수 클래스의 인스턴스를 생성하는 통계 기법입니다.

모델 학습

모델 학습의 경우 Python SDK는 Pandas 데이터 프레임 형식 또는 Azure Machine Learning 표 형식 데이터 세트의 데이터를 예상합니다. 예측하려는 값이 데이터 세트에 있어야 합니다. 학습 작업을 만들 때 y 열을 매개 변수로 전달합니다.

다음은 주석이 있는 코드 샘플입니다.

data = https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv
dataset = Dataset.Tabular.from_delimited_files(data)
training_data, validation_data = dataset.random_split(percentage=0.7)
label_column_name = "Class"

automl_settings = {
    "n_cross_validations": 3, # Number of cross validation splits.
    "primary_metric": "average_precision_score_weighted", # This is the metric that you want to optimize.
    "experiment_timeout_hours": 0.25, # Percentage of an hour you want this to run.
    "verbosity": logging.INFO, # Logging info level, debug, info, warning, error, critical.
    "enable_stack_ensemble": False, # VotingEnsembled is enabled by default.
}

automl_config = AutoMLConfig(
    task="classification",
    debug_log="automl_errors.log",
    training_data=training_data,
    label_column_name=label_column_name,
    **automl_settings,
)

local_run = experiment.submit(automl_config, show_output=True)

코드에서:

  1. 데이터 세트를 Azure Machine Learning 표 형식 데이터 세트 또는 Pandas 데이터 프레임에 로드합니다.
  2. 데이터 세트를 학습 70%와 유효성 검사 30%로 나눕니다.
  3. 예측하려는 열에 대한 변수를 만듭니다.
  4. AutoML 매개 변수 만들기를 시작합니다.
  5. AutoMLConfig 구성.
    1. task는 수행하려는 기계 학습의 형식입니다(classification 또는 regression). 이 예제의 경우 classification입니다.
    2. debug_log는 디버그 정보가 기록되는 위치입니다.
    3. training_data는 학습 데이터가 로드되는 데이터 프레임 또는 테이블 형식 개체입니다.
    4. label_column_name은 예측하려는 열입니다.
  6. 기계 학습 작업을 실행합니다.

모델 평가

좋은 모델은 현실적이고 실행 가능한 결과를 생성합니다. 이것이 사기 검색 모델의 과제 중 하나입니다. 대부분의 사기 검색 모델은 트랜잭션이 사기인지 여부를 결정하기 위해 이진 결정을 내립니다. 결정은 두 가지 요소를 기반으로 합니다.

  • 분류 알고리즘에 의해 반환되는 0에서 100 사이의 확률 점수
  • 비즈니스에서 설정한 확률 임계값입니다. 임계값을 초과하면 사기로 간주되고 임계값 미만은 사기가 아닌 것으로 간주됩니다.

확률은 모든 분류 모델의 표준 메트릭입니다. 그러나 일반적으로 사기 시나리오에서는 추가 손실을 방지하기 위해 계정을 차단할지 여부를 결정하는 데 충분하지 않습니다.

이 솔루션에서는 계정 수준 메트릭이 만들어지고 비즈니스가 계정을 차단하기 위해 조치를 취해야 하는지 여부를 결정하는 데 고려됩니다. 계정 수준 메트릭은 다음과 같은 산업 표준 메트릭을 기반으로 정의됩니다.

사기 관리자의 우려 메트릭 설명
사기를 검색하고 있나요? 사기 ADR(계정 적발률) 모든 사기 계정에서 검색된 사기 계정의 백분율입니다.
얼마나 많은 돈을 저축하고 있나요(손실 방지)? 경고에 대한 대응 지연 비용은 얼마인가요? VDR(값 검색율) 현재 사기 트랜잭션이 모든 사기 손실에 대해 후속 트랜잭션에 대한 차단 작업을 트리거한다고 가정한 금전적 절감 비율입니다.
얼마나 많은 좋은 고객이 불편하나요? AFPR(계정 가양성률) 검색된 모든 실제 사기에 대해 신고된 사기가 아닌 계정의 수(일별). 검색된 사기 계정에 대해 검색된 가양성 계정의 비율입니다.

이러한 메트릭은 사기 관리자에게 중요한 데이터 포인트입니다. 관리자는 이를 사용하여 계정 위험에 대한 보다 완전한 그림을 가져오고 수정을 결정합니다.

모델 조작 및 재학습

예측 모델은 주기적으로 업데이트되어야 합니다. 시간이 지남에 따라 새롭고 다른 데이터를 사용할 수 있게 되면 예측 모델을 재학습해야 합니다. 이는 새로운 범죄 작업 패턴이 자주 발생하는 사기 검색 모델의 경우 특히 그렇습니다. 또한 수정 사항이 애플리케이션 게이트웨이로 푸시되어 모바일 애플리케이션 로그의 원격 분석이 변경되는 경우에도 필요합니다. 이 솔루션에서 재학습을 제공하기 위해 분석을 위해 제출된 모든 트랜잭션과 해당 모델 평가 메트릭이 로그됩니다. 시간 경과에 따라 모델 성능이 모니터링됩니다. 성능이 저하된 것으로 보이면 재학습 워크플로가 트리거됩니다. 재학습 워크플로에는 여러 Azure 서비스가 사용됩니다.

  • Azure Synapse Analytics 또는 Azure Data Lake를 사용하여 이전 고객 데이터를 저장할 수 있습니다. 이러한 서비스를 사용하여 트랜잭션, 예측 및 모델 평가 메트릭을 포함하여 온-프레미스 원본에서 업로드된 알려진 사기 트랜잭션과 Azure Machine Learning 웹 서비스에서 보관된 데이터를 저장할 수 있습니다. 재학습에 필요한 데이터는 이 데이터 저장소에 저장됩니다.

  • Data Factory 또는 Azure Synapse 파이프라인을 사용하여 데이터 흐름을 조정하고 재학습을 위한 프로세스를 다음과 같이 조정할 수 있습니다.

    • 온-프레미스 시스템에서 기록 데이터 및 로그 파일 추출.
    • JSON 역직렬화 프로세스.
    • 데이터 전처리 논리.

    자세한 내용은 Azure Data Factory로 Azure Machine Learning 모델 재학습 및 업데이트를 참조하세요.

  • Azure Machine Learning에서 파란색-녹색 배포를 사용할 수 있습니다. 가동 중지 시간을 최소화하면서 새 모델을 배포하는 방법에 대한 자세한 내용은 온라인 엔드포인트를 위한 안전한 롤아웃을 참조하세요.

구성 요소

  • Azure Functions는 이벤트 기반 서버리스 코드 함수와 엔드투엔드 개발 환경을 제공합니다.
  • Event Hubs는 완전 관리형 실시간 데이터 수집 서비스입니다. 이를 사용하여 모든 원본에서 초당 수백만 개의 이벤트를 스트리밍할 수 있습니다.
  • Key Vault는 클라우드 앱 및 서비스에서 사용하는 암호화 키 및 기타 비밀을 암호화합니다.
  • Azure Machine Learning은 엔드투엔드 Machine Learning 수명 주기를 위한 엔터프라이즈급 서비스입니다.
  • AutoML은 시간 소모적이고 반복적인 기계 학습 모델 개발 작업을 자동화하는 프로세스입니다.
  • Azure SQL Database는 클라우드용으로 빌드된 완전 관리형 관계형 데이터베이스 서비스로 항상 최신 상태를 유지합니다.
  • Azure Synapse Analytics는 데이터 통합, 엔터프라이즈 데이터 웨어하우징과 빅 데이터 분석을 결합한 무제한 분석 서비스입니다.

기술 고려 사항

사기 검색을 위해 지속적으로 운영되는 클라우드 기반 인프라에 적합한 기술 구성 요소를 선택하려면 현재 요구 사항과 때로는 모호한 요구 사항을 이해해야 합니다. 이 솔루션에 대한 기술 선택은 유사한 결정을 내리는 데 도움이 될 수 있는 고려 사항을 기반으로 합니다.

기술 집합

솔루션을 디자인, 구현 및 유지 관리하는 팀의 현재 기술 기술을 고려합니다. 클라우드 및 AI 기술은 솔루션 구현에 사용할 수 있는 선택을 확장합니다. 예를 들어, 팀에 기본적인 데이터 과학 기술이 있는 경우 Azure Machine Learning은 모델 만들기 및 엔드포인트에 적합합니다. Event Hubs를 사용하기로 한 결정은 또 다른 예입니다. Event Hubs는 설정 및 유지 관리가 쉬운 관리되는 서비스입니다. Kafka와 같은 대안을 사용하면 기술적인 이점이 있지만 그렇게 하려면 학습이 필요할 수 있습니다.

하이브리드 운영 환경

이 솔루션의 배포는 온-프레미스 환경과 Azure 환경에 걸쳐 있습니다. 서비스, 네트워크, 애플리케이션 및 통신은 워크로드를 지원하기 위해 두 인프라에서 효과적으로 작동해야 합니다. 기술 결정에는 다음이 포함됩니다.

  • 환경은 어떻게 통합되나요?
  • Azure 데이터 센터와 온-프레미스 인프라 간의 네트워크 연결 요구 사항은 무엇인가요? Azure ExpressRoute는 이중 회선, 중복성 및 장애 조치(failover)를 제공하기 때문에 사용됩니다. 사이트 간 VPN은 워크로드에 필요한 보안 또는 QoS(서비스 품질)를 제공하지 않습니다.
  • 사기 검색 점수는 백 엔드 시스템과 어떻게 통합되나요? 점수 매기기 응답은 백 엔드 사기 행위 워크플로와 통합되어 고객 또는 기타 사례 관리 활동과의 트랜잭션 확인을 자동화해야 합니다. Azure Functions 또는 Logic Apps를 사용하여 Azure 서비스를 온-프레미스 시스템과 통합할 수 있습니다.

보안

클라우드에서 솔루션을 호스팅하면 새로운 보안 책임이 발생합니다. 클라우드에서 보안은 클라우드 공급업체와 고객 테넌트 간의 공동 책임입니다. 워크로드 책임은 워크로드가 SaaS, PaaS 또는 IaaS 서비스인지에 따라 다릅니다. 자세한 내용은 클라우드의 공유 책임을 참조하세요.

제로 트러스트 방식으로 이동하거나 규정 준수 요구 사항을 적용하기 위해 노력하는 경우 엔드투엔드 솔루션을 보호하려면 신중한 계획과 고려가 필요합니다. 디자인 및 배포를 위해 제로 트러스트 방식과 일치하는 보안 원칙을 채택하는 것이 좋습니다. 명시적으로 확인, 최소 권한 액세스 사용, 위반 가정과 같은 원칙을 채택하면 워크로드 보안이 강화됩니다.

명시적으로 확인은 액세스 요청의 다양한 측면을 검사하고 평가하는 프로세스입니다. 다음은 몇 가지 원칙입니다.

  • Microsoft Entra ID와 같은 강력한 ID 플랫폼을 사용합니다.
  • 각 클라우드 서비스의 보안 모델과 데이터 및 액세스 보안 방법을 이해합니다.
  • 가능한 경우 관리 ID 및 서비스 주체를 사용하여 클라우드 서비스에 대한 액세스를 제어합니다.
  • 키, 비밀, 인증서 및 데이터베이스 문자열, REST 엔드포인트 URL, API 키와 같은 애플리케이션 아티팩트를 Key Vault에 저장합니다.

최소 권한 액세스 사용은 적절한 환경에서 적절한 고객에게 특정 비즈니스 요구를 충족하기 위한 권한만 부여되도록 도와줍니다. 다음은 몇 가지 원칙입니다.

  • 역할 할당 또는 네트워크 액세스를 통해 구성 요소 또는 리소스에 대한 액세스 권한을 제한하여 워크로드를 구분합니다.
  • 엔드포인트 및 서비스에 대한 공용 액세스를 허용하지 않습니다. 서비스에 공용 액세스가 필요한 경우가 아니면 프라이빗 엔드포인트를 사용하여 서비스를 보호합니다.
  • 방화벽 규칙을 사용하여 가상 네트워크를 사용하여 서비스 엔드포인트를 보호하거나 워크로드를 격리합니다.

위반 가정은 디자인 및 배포 결정을 안내하는 전략입니다. 전략은 솔루션이 손상되었다고 가정하는 것입니다. 보안 위협의 검색, 응답 및 수정을 계획하여 워크로드에 복원력을 빌드하는 방식입니다. 디자인 및 배포 결정의 경우 다음을 의미합니다.

  • 워크로드 구성 요소는 격리되고 분할되어 하나의 구성 요소가 손상될 경우 업스트림 또는 다운스트림 구성 요소에 대한 영향을 최소화합니다.
  • 원격 분석은 변칙과 잠재적인 위협을 식별하기 위해 자동 관리로 캡처되고 분석됩니다.
  • 자동화는 위협을 감지, 대응 및 수정하기 위해 마련되었습니다.

다음은 고려해야 할 몇 가지 지침입니다.

  • 미사용 데이터 및 전송 중인 데이터를 암호화합니다.
  • 서비스에 대한 감사를 사용하도록 설정합니다.
  • 감사 로그 및 원격 분석을 단일 로그 작업 영역으로 캡처하고 중앙 집중화하여 분석 및 상관 관계를 용이하게 합니다.
  • 클라우드용 Microsoft Defender를 사용하도록 설정하여 잠재적으로 취약한 구성을 검사하고 잠재적인 보안 문제에 대한 조기 경고를 제공합니다.

네트워킹은 가장 중요한 보안 요소 중 하나입니다. 기본적으로 Azure Synapse 작업 영역 엔드포인트는 공용 엔드포인트입니다. 즉, 모든 공용 네트워크에서 액세스할 수 있으므로 작업 영역에 대한 공용 액세스를 사용하지 않도록 설정하는 것이 좋습니다. 작업 영역과 다른 Azure 서비스 간에 격리 계층을 추가할 수 있는 관리되는 Virtual Network 기능을 사용하여 Azure Synapse를 배포하는 것이 좋습니다. 관리되는 Virtual Network 및 기타 보안 요소에 대한 자세한 내용은 Azure Synapse Analytics 보안 백서: 네트워크 보안을 참조하세요.

Diagram that shows the networking considerations for the solution.

이 아키텍처의 Visio 파일을 다운로드합니다.

은행 솔루션의 각 솔루션 구성 요소와 관련된 보안 지침은 다음 표에 포함되어 있습니다. 각 개별 Azure 서비스에 대한 보안 기준이 포함된 Azure Security Benchmark를 검토하여 좋은 출발점을 찾습니다. 보안 기준 권장 사항은 각 서비스에 대한 보안 구성 설정을 선택하는 데 도움이 될 수 있습니다.

Event Hubs 클러스터 Key Vault Azure Data Lake Storage Gen2 Azure Synapse Analytics 작업 영역: Spark 풀 Azure SQL Azure Functions
데이터 보호
- 미사용 암호화 기본 제공 기본 제공 기본 제공 기본 제공 기본 제공 기본 제공
- 전송 중 암호화 TLS 1.2 TLS 1.2 TLS 1.2 TLS 1.2 TLS 1.2, SQL Database에 안전하게 연결하도록 클라이언트 구성 TLS 1.2 적용
- 데이터 분류 Purview Purview 또는 Azure SQL Data Discovery 및 분류
액세스 제어 Microsoft Entra RBAC, 공유 액세스 서명 Microsoft Entra RBAC, 조건부 액세스 RBAC(일반), ACL(세부), 공유 액세스 서명, 공유 키 권한 부여 Azure Synapse RBAC SQL RBAC, 직무 분리 Azure RBAC, 함수 및 호스트 키, 엔드포인트
인증 Microsoft Entra 옵션 Microsoft Entra ID, Microsoft Entra 보안 그룹이 할당된 보안 주체로 권장됨 Microsoft Entra ID, 다단계 인증, 관리 ID Microsoft Entra ID 관리 ID(사용자 할당 및 시스템 할당 모두 지원됨)
로깅 및 모니터링 Event Hubs 모니터링 Key Vault 모니터링, 로깅 Azure Blob Storage 모니터링 로깅, 진단 설정 사용 모니터링, 로깅 및 감사 로그 및 모니터
보호 및 검색
- Azure 보안 기준 Event Hubs Key Vault Azure Storage Synapse Analytics 작업 영역 SQL 데이터베이스 Azure Functions
- 권장 보안 방법 Key Vault Azure Storage Azure Synapse Analytics 보안 백서 일반적인 보안 요구 사항에 대한 플레이북 Azure Functions 보안 설정
- 클라우드용 Defender를 사용하여 보안 태세 및 구성 모니터링
- 고급 위협 검색 네이티브 서비스가 없습니다. Log Analytics 작업 영역/Sentinel에 로그를 전달하는 옵션입니다. Key Vault용 Defender 스토리지용 Defender 네이티브 서비스가 없습니다. Log Analytics 작업 영역/Sentinel에 로그를 전달하는 옵션입니다. SQL용 Defender 네이티브 서비스가 없습니다. Log Analytics 작업 영역/Sentinel에 로그를 전달하는 옵션입니다.

자세한 내용은 제로 트러스트 지침 센터를 참조하세요.

확장성

솔루션은 사용량이 많은 시간에 엔드투엔드 성능을 발휘해야 합니다. 지속적으로 도착하는 수백만 개의 이벤트를 처리하기 위한 스트리밍 워크플로에는 높은 처리량이 필요합니다. 필요한 대기 시간을 충족하도록 기술 구성 요소가 구성 및 조정되도록 볼륨 및 동시성을 시뮬레이션하는 테스트 시스템을 빌드할 계획입니다. 확장성 테스트는 다음 구성 요소에 특히 중요합니다.

  • 동시 데이터 스트림을 처리하기 위한 데이터 수집. 이 아키텍처에서는 Event Hubs의 여러 인스턴스를 배포하고 다른 소비자 그룹에 할당할 수 있기 때문에 Event Hubs가 사용됩니다. 스케일 업하면 잠금이 발생할 수 있으므로 스케일 아웃 방식이 더 나은 옵션입니다. 모바일 뱅킹에서 인터넷 뱅킹 채널을 포함하도록 사기 검색을 확장하려는 경우에도 스케일 아웃 방식이 더 적합합니다.
  • 프로세스 흐름을 관리하고 예약하는 프레임워크. Azure Functions는 워크플로를 오케스트레이션하는 데 사용됩니다. 처리량 개선을 위해 메시지는 마이크로 일괄 처리로 일괄 처리되며 함수 호출당 하나의 메시지를 처리하는 대신 단일 Azure 함수를 통해 처리됩니다.
  • 구문 분석, 사전 처리, 집계 및 스토리지를 처리하는 대기 시간이 짧은 데이터 프로세스. 이 문서가 기반으로 하는 실제 솔루션에서 인메모리 최적화 SQL 함수의 기능은 확장성 및 동시성 요구 사항을 충족합니다.
  • 동시 요청을 처리하기 위한 모델 점수 매기기. Azure Machine Learning 웹 서비스를 사용하면 크기 조정을 위한 두 가지 옵션이 있습니다.
    • API 동시성 워크로드를 지원하는 프로덕션 웹 계층을 선택합니다.
    • 200개 이상의 동시 요청을 지원해야 하는 경우 웹 서비스에 여러 엔드포인트를 추가합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

다른 기여자:

다음 단계