스크래핑: 두 판 사이의 차이

IT위키
(새 문서: 분류:디지털 서비스분류:인터넷 ;Scraping 타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정...)
 
잔글 (문자열 찾아 바꾸기 - "분류:개인정보 보호" 문자열을 "분류:개인정보보호" 문자열로)
 
(다른 사용자 한 명의 중간 판 7개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[분류:디지털 서비스]][[분류:인터넷]]
[[분류:디지털 서비스]]
[[분류:인터넷]]
[[분류:금융]]
[[분류:보안]]
[[분류:개인정보보호]]
;Scraping
;Scraping
타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술
;타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술
 
==동작 구조==


== 동작 구조 ==
;고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
;고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
# 인터넷 뱅킹 사이트에 접속한다.
# 고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
# 통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
# 화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.


== 동작 유형 ==
#인터넷 뱅킹 사이트에 접속한다.
* DOM 기반
#고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
** 만약 통장 잔고가 <nowiki><span class='blance'>50,000</span></nowiki> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
#통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
** table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
#화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.
* 텍스트 기반
 
** 만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
==동작 유형==
** 위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.
 
*'''DOM 기반'''
**만약 통장 잔고가 <nowiki><span class='blance'>50,000</span></nowiki> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
**table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
*'''텍스트 기반'''
**만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
**위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.
 
==문제점 및 해결법==
===문제점===
 
*'''[[패스워드]] 저장'''
**[[인증]]을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
**암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
**일반적으로 인증을 위한 패스워드는 [[일방향 암호화]]하여 저장하는데 비하여 상대적으로 매우 위험
**[[개인정보 보호법|개인정보의 안전성 확보조치 기준]] 위반 소지
*'''[[프라이버시]] 침해'''
**위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
**고객은 통장 정보를 읽으라고 비밀번호를 제공했지만 실제론 그 외의 다른 모든 정보를 무단으로 남용할 가능성
*'''[[가용성]] 부족'''
**텍스트 기반이든 [[DOM]] 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
**새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요
*'''웹 전용'''
**웹 등 구조화된 텍스트 기반의 정보가 아니면 읽을 수 없음
**일례로, 뱅크샐러드 등의 핀테크 서비스에서 카카오뱅크 연동은 불가(카카오뱅크는 앱으로만 제공되므로)
 
===해결법===
 
*국내 대부분의 [[핀테크]] 업체에서 이 스크래핑 방식을 사용하여 재무 분석 등의 서비스 제공
*[[금융위원회]]와 [[금융보안원]]에서는 스크래핑 방식의 위험성에 대해 경고하고 [[마이데이터]] 서비스 추진
*금융회사와 핀테크 회사간 [[API]] 계약을 통해 정식으로 정보를 제공받음으로써 프라이버시, 가용성 등 문제점 해결 도모
*[[신용정보법]] 개정을 통해 스크래핑 방식으로 정보를 읽는 것을 금지
 
===스크래핑과 API 비교===
{| class="wikitable"
|+
!구분
!스크래핑 방식
!API 방식
|-
|고객 인증
|
* 인증정보를 핀테크 업체 서비스에 입력
 
* 인증정보 저장 후, 필요한 서비스에 접속
|
* 필요한 서비스에 이용자가 직접 로그인
* 필요한 접근권한을 부여 후 허용
|-
|정보 처리
|
* 화면 보여지는 데이터 중 필요한 데이터 추출
|
* 필요한 서비스에서 제공하는 API를 이용
* 접근이 허용된 필요정보를 요청 및 수신
|-
|표준화
|
* 불특정 웹페이지를 대상으로 하므로 표준화 불가
|
* API 및 데이터 포맷에 대한 표준화 가능
|-
|정보 관리
|
* 중요 정보(ID/PW) 직접 저장 관리
|
* 중요정보 대신 허용권한증표(Token) 관리
|-
|접근 통제
|
* 필요 이상의 정보 접근 가능
* 이용자 중요 정보 오남용 가능성 높음
|
* 이용자가 부여한 권한 내에서 정보 수집 가능
* 정보 접근 통제 용이
|-
|서비스 탈퇴
|
* 입력한 인증 정보 변경 또는 재발급 필요
* (미 변경 시 2차 피해 발생 가능성)
|
* 토큰만 별도로 무효화 처리 가능
* 토큰 기한 만료 시 자동으로 인증 불가
|-
|보안 적용
|
* 핀테크 업체 주도의 보안만 한정적으로 적용
|
* 금융회사와 협의하여 필요한 보안 대책 마련 가능
|}
 
==기술 활용==
 
*스크래핑 기술은 핀테크에만 사용되는 기술이 아니며, API로 완전 대체될 수 없는 독립적인 기술
**핀테크에서 고객정보에 접근하는 사업 모델만 API로 대체 가능
*웹 크롤링, 자동 정보 수집 등에 광범위하게 사용될 수 있음
 
==기출 문제==
 
*[http://q.fran.kr/문제/10029 정보관리기술사 120회 1교시]
 
==같이 보기==
 
*[[마이데이터]]
*[[API]]
 
==참고 문헌==


== 문제점 ==
*정보관리기술사 120회 기출문제 해설집(119회 그루터기 동기회)
* [[패스워드]] 저장
** [[인증]]을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
** 암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
** 일반적으로 인증을 위한 패스워드는 [[일방향 암호화]]하여 저장하는데 비하여 상대적으로 매우 위험
** [[개인정보 보호법|개인정보의 안전성 확보조치 기준]] 위반 소지
* [[프라이버시]] 침해
** 위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
** 고객은 나의 통장 정보를 읽으라고 했지만 실제론 그 외의 다른 모든 정보를 무단으로 읽을 가능성
* [[가용성]] 부족
** 텍스트 기반이든 DOM 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
** 새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요

2020년 5월 6일 (수) 23:23 기준 최신판

Scraping
타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술

동작 구조[편집 | 원본 편집]

고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
  1. 인터넷 뱅킹 사이트에 접속한다.
  2. 고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
  3. 통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
  4. 화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.

동작 유형[편집 | 원본 편집]

  • DOM 기반
    • 만약 통장 잔고가 <span class='blance'>50,000</span> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
    • table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
  • 텍스트 기반
    • 만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
    • 위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.

문제점 및 해결법[편집 | 원본 편집]

문제점[편집 | 원본 편집]

  • 패스워드 저장
    • 인증을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
    • 암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
    • 일반적으로 인증을 위한 패스워드는 일방향 암호화하여 저장하는데 비하여 상대적으로 매우 위험
    • 개인정보의 안전성 확보조치 기준 위반 소지
  • 프라이버시 침해
    • 위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
    • 고객은 통장 정보를 읽으라고 비밀번호를 제공했지만 실제론 그 외의 다른 모든 정보를 무단으로 남용할 가능성
  • 가용성 부족
    • 텍스트 기반이든 DOM 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
    • 새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요
  • 웹 전용
    • 웹 등 구조화된 텍스트 기반의 정보가 아니면 읽을 수 없음
    • 일례로, 뱅크샐러드 등의 핀테크 서비스에서 카카오뱅크 연동은 불가(카카오뱅크는 앱으로만 제공되므로)

해결법[편집 | 원본 편집]

  • 국내 대부분의 핀테크 업체에서 이 스크래핑 방식을 사용하여 재무 분석 등의 서비스 제공
  • 금융위원회금융보안원에서는 스크래핑 방식의 위험성에 대해 경고하고 마이데이터 서비스 추진
  • 금융회사와 핀테크 회사간 API 계약을 통해 정식으로 정보를 제공받음으로써 프라이버시, 가용성 등 문제점 해결 도모
  • 신용정보법 개정을 통해 스크래핑 방식으로 정보를 읽는 것을 금지

스크래핑과 API 비교[편집 | 원본 편집]

구분 스크래핑 방식 API 방식
고객 인증
  • 인증정보를 핀테크 업체 서비스에 입력
  • 인증정보 저장 후, 필요한 서비스에 접속
  • 필요한 서비스에 이용자가 직접 로그인
  • 필요한 접근권한을 부여 후 허용
정보 처리
  • 화면 보여지는 데이터 중 필요한 데이터 추출
  • 필요한 서비스에서 제공하는 API를 이용
  • 접근이 허용된 필요정보를 요청 및 수신
표준화
  • 불특정 웹페이지를 대상으로 하므로 표준화 불가
  • API 및 데이터 포맷에 대한 표준화 가능
정보 관리
  • 중요 정보(ID/PW) 직접 저장 관리
  • 중요정보 대신 허용권한증표(Token) 관리
접근 통제
  • 필요 이상의 정보 접근 가능
  • 이용자 중요 정보 오남용 가능성 높음
  • 이용자가 부여한 권한 내에서 정보 수집 가능
  • 정보 접근 통제 용이
서비스 탈퇴
  • 입력한 인증 정보 변경 또는 재발급 필요
  • (미 변경 시 2차 피해 발생 가능성)
  • 토큰만 별도로 무효화 처리 가능
  • 토큰 기한 만료 시 자동으로 인증 불가
보안 적용
  • 핀테크 업체 주도의 보안만 한정적으로 적용
  • 금융회사와 협의하여 필요한 보안 대책 마련 가능

기술 활용[편집 | 원본 편집]

  • 스크래핑 기술은 핀테크에만 사용되는 기술이 아니며, API로 완전 대체될 수 없는 독립적인 기술
    • 핀테크에서 고객정보에 접근하는 사업 모델만 API로 대체 가능
  • 웹 크롤링, 자동 정보 수집 등에 광범위하게 사용될 수 있음

기출 문제[편집 | 원본 편집]

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • 정보관리기술사 120회 기출문제 해설집(119회 그루터기 동기회)