어뷰징 테스트(Abusing Test)
어뷰징은 자신의 이익을 위해 불법 프로그램을 사용하거나 시스템의 허점을 이용해서 정당하지 않은 방법으로 부당한 이득을 취하는 것(악의적 행위)과 도덕적으로 옳지 않은 행동을 의도적으로 악용하는 행위(학대적 행위)를 말합니다.
어뷰징 테스트는 기존 사례, 데이터, 내부 취약점 등의 분석으로 발생될 수 있는 문제들을 예측하고 어뷰징 상황을 의도적으로 조작 및 간섭하여 실제 어뷰징이 가능한지 확인하기 위한 목적을 가진 비기능 테스트입니다.
어뷰징 테스트는 주로 게임에서 많이 사용하는 테스트 활동입니다. 실제 저자도 게임회사 재직 당시에만 해당 테스트를 경험해보았고, 포털/이커머스 회사에서는 어뷰징 테스트라는 것을 들어본 적도 테스트 해본 경험도 없었습니다.
어뷰징이라는 것이 게임에만 존재하는 행위가 아닌데 왜 우리는 그동안 어뷰징 테스트를 고려하지도 테스트 활동에 포함하지도 않은 걸까요?
실제 발생된 어뷰징 사례들을 살펴보면 프로그램을 직접적으로 변경/훼손하거나, 회사와 선량한 유저에게 금전적 피해를 주거나, 학대 등 행위로 도덕성을 파괴하는 등 이슈의 여파가 제품의 경제사회적 영향, 만족도, 공정성 등에 큰 영향을 미칩니다.
이 글을 통해 어뷰징 테스트를 처음 접한 분도 있고, 어뷰징이라는 의미는 알고있었지만 테스트 활동에 포함할 엄두가 나지 않거나 필요성이나 중요성을 잘 모르는 분들도 있을 것입니다.
지금까지는 잘 몰라서 / 지식이 부족해서 / 경험이 없어서 / 방법을 몰라서 하지못했던 품질 검증 활동과 경험하지 못한 시야에서 발생되는 이슈들이 다양하다는 것을 이제는 알게되었으니 기획서에만 기반한 기능테스트의 품질 수준에 만족했던 기존의 틀을 깨고 다양한 시야와 각도로 이슈가 유입될 수 있는 경로들을 확인해서 차단하는 역할까지 품질 활동범위를 넓혀나가야 합니다.
어뷰징 이슈에 대응하기위해 어뷰징 행위의 종류와 도메인별로 어떤 어뷰징 유형과 이슈 사례가 있는지 살펴보고 QA의 역할 범위를 알아보도록 하겠습니다.
[1] 어뷰징 행위의 종류
핵, 매크로, 해킹 프로그램 등을 사용하여 제품의 데이터나 프로그램을 변경/훼손/위조하거나 클라이언트 파일을 분해하여 부당한 이익을 챙기는 행위
개인의 이익을 위해 위의 프로그램을 직접 만들어 배포
제품 내 버그를 이용해 부당이익을 챙기는 행위
비정상적인 방법으로 보상, 아이템, 포인트(점수) 등을 획득
불법적인 방법 또는 비정상적인 플레이로 승부를 조작하여 이득을 획득
타인 계정 도용, 부계정 등 다중 계정 조작으로 부당한 이익을 챙기는 행위
[2] 어뷰징 유형 및 이슈 사례 예시
[메신저 서비스, 게임, AI 등 SMS기능이 있는 모든 서비스]
(1) 채팅
(a) 선정적이고 공격적이고 편향적이고 학대의도를 가진 채팅을 유도하여 채팅 데이터나 프로그램을
훼손/변경/위조 (ex_이루다, ChatGPT)
(b) 불법 사이트 홍보, 음란물 발송, 피싱프로그램 발송 등 부당이익을 챙기기 위해 불법적인 방법으로
짧은 기간 내 많은 친구를 추가 또는 채팅방 생성
[IT 도메인 대부분에 해당]
(2) 회원가입 어뷰징
(a) 불법 프로그램 사용으로 대량 가입하여 서비스를 부정 이용
(ex_블로그/카페 등 회원수 조작, 동영상 플랫폼 조회수 조작, 쿠폰/보상/혜택/티켓 부정 취득, 리세
마라(가챠(뽑기)부정 이용) 등)
(b) 회원정보 유출을 목적으로 불법 사이트를 만들어 가입시키는 행위
(ex_음원파일 무료 배급, 불법 동영상 무료 이용등 미끼로 가입 유도)
(3) 계정 어뷰징
(a) 다른이의 계정을 불법 탈취 및 도용 (ex_불법 광고, 서비스 조작 등)
(b) 다른이가 만든 블로그/밴드 등 페이지 사용을 위해 계정을 불법 거래/매매하는 행위
[검색 도메인, 음악, 동영상 공유 플랫폼 등]
(4) 트래픽 어뷰징
(a) 실시간 검색어 등 검색결과 상위 노출을 위해 트래픽량을 증가시키는 행위
(b) 음원 차트 조작 (ex_특정 음원을 수천 회씩 재생, 음반 판매량 조작)
[게임서비스]
(5) 게임 어뷰징
(a) 핵, 매크로 등 불법 프로그램을 사용하여 데이터 조작, 승부 조작, 보상/재화 등 부당한 이득 편취
(b) 다른 사람의 계정을 대신 플레이해서 등급을 올려주거나(대리랭) 고의로 패작하는 행위
[e-commerce]]
(6) 이커머스 어뷰징
(a) 상품 결제 후 배송상태로 변경되는 순간 주문취소하여 환불 및 상품만 무료로 편취
(b) 결제 초기화/경계 시간대에 횟수제한 상품을 무제한 구매하는 등 시스템 취약점 이용
대부분 회사는 어뷰징을 차단 및 단절하기위해 특정 부서(마케팅, 보안 등)에서 프로그램을 활용하거나 또는 데이터를 분석하여 어뷰징을 대응하고 있습니다.
하지만 발생될 수 있는 어뷰징을 예측하고 대응하기 위한 필요성은 느끼지만 어뷰징을 대응할 부서가 없는 경우 QA의 역할과 검증방법의 제안으로 대응 방안을 마련해볼 수 있습니다.
[3] QA 역할 및 검증 범위
✻ 데이터 활용
실제 라이브에서 발생된 어뷰징 데이터 취합 및 관리
설계된 로그와 어뷰징 사례 중심으로 어뷰징 테스트를 위한 시나리오 설계
✻ 시스템 취약점 검증
기획서, 개발설계서, 아키텍쳐 등 문서상 취약점이 존재하는 범위를 선정하여 개선 의견 제시
어뷰징 유형/이슈사례 예시, 실제 발생된 어뷰징 데이터를 활용하여 어뷰징 요소가 될 가능성이 있는 범위 선정
실제 개발 구현된 결과물에서 기능상 취약점과 기존 사례 중심으로 검증
✻ 불법 프로그램 감지
매크로/핵/해킹 프로그램을 실제 사용하여 서버나 클라이언트에서 이를 감지하는 활동을 하고있는지 확인
관련 커뮤니티에서 불법 프로그램 배포 또는 거래되는지 확인
✻ 우회 감지
웹 프록시 사이트 / VPN을 활용하여 실제 접속 불가한 영역에 접속 가능한지 확인
IP 우회로 계정 반복 생성 또는 앱 내 상품을 더 저렴한 환율 국가에서 구매 가능한지 확인
블랙리스트 처리된 IP/ID로 접속 시도시 블로킹되는지, 해당IP/ID가 작성한 댓글/공감등 행위가 무효화 처리되는지 확인
어뷰징 테스트에 대한 이해와 필요성을 알려드리기 위해 어뷰징 유형과 QA가 제안 할 수 있는 역할범위를 공유해드렸지만 앞서 말씀드린대로 회사와 조직의 이해수준, 어뷰징 대응 정책 준비 및 대응이 가능한 상황인지에 따라 발생된 이슈에대한 경각심과 대응 필요성의 인식으로 실제 제품의 품질 결과는 달라질 수 있습니다.
때로는 인력 및 기술의 부족으로 어뷰징이 발생되는 상황 자체가 무시될 수도 있습니다. 안타까운 현실이지만 품질을 관리하는 담당자로써 좌절하고 포기하지 말라는 말씀을 드리고 싶습니다.
루트비히 요제프가 “어떤 돌이 전혀 움직이지 않고, 도저히 손을 쓸 방도가 없다면 먼저 주변의 돌부터 움직여라.” 라는 말을 남겼습니다.
회사나 조직을 상대로 변화를 이끌어낼 방도가 없다면 발생되는 이슈 사례들과 데이터를 확보하고 분석해서 지속적으로 회사에서 이슈를 인지하고 대응할 수 있도록 가이드하는 것을 시작으로 우리가 할 수 있는 주변의 작은 돌부터 옮겨보는 시도를 해보는 것도 품질 향상을 위한 좋은 방법이 될 수 있을 것입니다.