본문 바로가기
정보보안/보안뉴스

여기어때에서 발생한 개인정보 유출사건 ++ SQL Injection, 여기어때

by 우동이 2022. 4. 29.
300x250

안녕하세요! 오늘은 여기 어때 에서 발생한 해킹 사건에 관해서
알아보도록 하겠습니다!


먼저 여기어때는 국내 숙박 예약 플랫폼 회사로
야놀자와 함께 국내 숙박 업계의 양대산맥일 만큼 입지 있는 기업입니다.
동종업계에서는 매출액 순위(2020년도 기업별 재무정보 기준.)
기준으로 8에 속할 정도로 규모가 크기도 하고요.


하지만 지난 2017년 3월(6~17일) 방송통신위원회에서 밝힌 바로는
여기 어때 서비스 이용자의 숙박 예약정보
회원정보 17만 8625건(중복제거 시 97만 1877명)이 해커에게 유출됨과 동시에
숙박 예약정보를 악용해 음란문자 4,817건이 발송된 사실을 확인 후
여기 어때를 운영 중인 ㈜위도 기술혁신에 대해 과징금을 부여하는 행정처분을 의결했다고 합니다.

(정보 출처:방통위 사건 개요)
출처 : https://www.gov.kr/portal/gvrnPolicy/view/156224561?policyType=G00301&srchTxt=%EC%97%AC%EA%B8%B0%EC%96%B4%EB%95%8C


이 말인 즉 여기 어때 플랫폼을 통해 숙박 및 레저 예약을 한 회원들의
개인정보가 해커집단에 넘어갔다는 뜻입니다.
생각만 해도 소름 끼치는 일이라고 할 수 있습니다


사건 개요

사건에 대한 자세한 개요를 살펴보자면
방통위에서 밝힌 해커 집단에 유출당한 개인정보는

<참고-1> ㈜위드이노베이션의 유출 정보 현황(근사치)

표 1

구 분 유 출  항 목 건수
이용자
정보
숙박
예약
정보
숙박 시설 및 일자에 대한 정보 일체 330만건
회원
정보
회원가입시 제출하는 개인정보 17만건
소 계 - 340만건
사업자(제휴점)
정보
업체 및 사업자 정보 일체 1200
합 계 - 340만건

예약일시입*퇴실 시간 등
시설 사용정보는 물론이거니와 회원들의 개인정보까지 공개되었음을 알 수 있는데요
이렇듯 민감한 개인정보들이 정보 악용자의 손에 들어가게 되었다는 사실이
참 안타깝다고밖에 할 수 없습니다.
심지어 해커집단 측에서는 여기 어때 측에 6억 원가량의 비트 코인
요구했다고 합니다.


사건 발생 요인


이번 해킹 사건은 여기어 때의 웹 페이지의 보안 취약점에서 발생했다고 합니다.
경찰 측에서 밝혀진 바로는 해커들은 [SQL Injection]이라는 보안 취약점을 통해
여기 어때 이용자들의 개인정보를 탈취했다는 사실이 밝혀졌습니다.
그렇다면 SQL Injection이라는 취약점은 무엇인가
간단하게 알아보고 가도록 합시다


SQL Injection

내용 출처 : https://owasp.org/Top10/

세계에서 발생하는 오픈 소스 웹 애플리케이션의 보안 취약점을 발표하는
OWASP에서는
이를 OWASP Top 10이라고 합니다.

그 OWASP TOP10에서도 늘 상위권을 차지하는[Injection] 보안 취약점이 존재하는데요
그중에서도 DB의 SQL 질의문을 변조 후 웹 페이지에 삽입하여
발생하는 SQL Injection 취약점은 2021년 OWASP TOP10에서 3위에 기록되어 있습니다.
17년도 당시에는 1순위 취약점이었습니다.

그림 1 - Injection 취약점 순위


국내에서도 나름 상당한 규모의 기업임에도 불구하고
해당 취약점에 의해 개인정보를 유출당한 사태에서
국내 기업들의 정보보안에 대한 인식이 부족하다는 실태와 함께
Injection 취약점 자체가 얼마나 위험한지를 알 수 있는데요
이제 해당 취약점이 가진 위험성에 대해 알아봤으니
어떤 원리를 통해 발생하는지도 알아보면 좋을 것 같습니다.


SQL Injection-원리


웹 홈페이지를 운영하는 사업자 혹은 기업은
서비스 사용자의 수많은 개인정보를 담아두기 위해
DB(database)라는 저장소(서버)를 따로 운영합니다.

그림 - 2 DB

DB에 들어가 있는 많은 정보를 다루기 위해서는
특수 목적으로 설계된 전용 언어
SQL을 사용해야 하는데요
이 SQL은 다양한 회사에서 제작된 DB의 종류마다
조금씩의 차이가 있습니다.

(MS-SQL, Oracle, AWS


하지만 SQL injection이 발생하는 원리는
질의문을 변조해 참값을 맞춰야 한다는 점은 같습니다.

‘1’ or ‘1’=’ 1
1 ‘or’ 1 ‘like’ 1

위 연산은 =와 like 양쪽 둘 다 참값이 발생합니다.
그러면 해당 코드를 SQL로 짜 봅시다.


“SELECT * FROM [TABLE] WHERE [ID] = ‘admin’
and [PW] = ‘1’ or ‘1’ = ‘1’”

그림 - 3 SQL Injection의 원리

참값을 발생시키는 논리 연산 코드를
SQL 문에 집어넣었습니다.

SELECT=조회 기능
FROM [TABLE] = [TABLE] 이름을 가진 테이블에서
WHERE = 조건을 통해 필터링


위 구문은 [TABLE] 테이블에서 ID가 admin 계정을 조회하는 구문입니다.
PW에는 참값을 발생시키는 논리 연산 코드를 넣어
해당 구문을 수행시켜 admin(관리자) 계정을 탈취할 수 있습니다.

이게 SQL Injection의 기초라고 할 수 있으며
참값을 발생시킨다는 간단한 원리를 통해
무궁무진한 공격코드를 만들어낼 수 있습니다.
그렇기에 Injection 취약점은 현재까지도 높은 위험도를 가진 보안 취약점으로 분류되고 있습니다.
현재만 해도 String filtering, Blind SQL Injection
UNION SQL Injection 등등
다양한 우회 기법이 존재합니다.


이렇게 오늘은 여기 어때에 발생한 해킹 사건과
SQL Injection이라는 보안 취약점에 대해 간략히 알아봤는데요

개인정보는 민감하고 중요합니다.
개개인의 삶을 위해서라도
보안은 더욱더 엄격해져야만 합니다.
기업도 보안에 더욱이 신경 써야 하지만
개인정보는 자기 자신이 더 잘 지킬 수 있음을
항상 잊지 않았으면 좋겠습니다.

출처 목록


-사건 정보 출처(경찰청 사건기록) : https://www.gov.kr/portal/gvrnPolicy/view/156224561?policyType=G00301&srchTxt=%EC%97%AC%EA%B8%B0%EC%96%B4%EB%95%8C

그림-1 : https://owasp.org/www-project-top-ten/
그림-2 :자체 제작
그림-3 : 자체제작


표-1 : https://www.gov.kr/portal/gvrnPolicy/view/156224561?policyType=G00301&srchTxt=%EC%97%AC%EA%B8%B0%EC%96%B4%EB%95%8C

300x250

댓글