수십, 수백 번의 클릭을 0.1초 만에 대신해 주는 '매크로(Macro)' 프로그램 때문이다.
최근 이 매크로는 단순한 '개인의 꼼수'를 넘어 심각한 사회적 범죄이자 문제로 대두되고 있다.
매크로 암표, 단순 새치기가 아닌 '범죄'다
과거에는 매크로로 표를 구해서 중고나라나 당근마켓에 웃돈(프리미엄)을 얹어 파는 행위가
단순 경범죄(20만 원 이하 벌금) 정도로 취급받았다.
하지만 상황이 심각해지자 철도운영사와 경찰청이 칼을 빼들었다.
6,400만 건의 불법 접속 시도 (연합뉴스, 2025.02.20): SR(수서고속철도)은 설 승차권 예매 기간에 불법 매크로를 돌린 9명을 경찰에 수사 의뢰했다. 이 중 한 명은 혼자서 무려 3,100만 건의 접속을 시도하며 서버를 마비시켰다.[기사 출처: https://www.yna.co.kr/view/AKR20250220057200003]
매크로 조직적 이용자 검찰 송치 (노컷뉴스, 2025.10.03): 경찰청은 매크로 프로그램을 이용해 명절 기차표를 싹쓸이한 피의자 6명을 불구속 송치했다.
[기사 출처: https://www.nocutnews.co.kr/news/6409767]
몇 만 원 치킨값 벌어보려다 전과자가 되고 벌금을 물어내야 할 수도 있다는 뜻이다.
그렇다면 이같은 매크로 프로그램은 도대체 얼마나 대단한 고도의 기술일까?
결론부터 말하자면, 크게 어렵지 않다.
조금만 분석할 수 있는 능력만 있으면 누구나 쉽게 만들 수 있는 난이도이다.
크게 매크로 로직은 정말 허무할 정도로 단순하다.
사이트에 접속해서 로그인을 한다.
출발역, 도착역, 시간을 설정한다.
'조회하기' 버튼을 기계처럼 계속 누른다.
화면에 '예약하기' (빈자리) 이미지가 뜨면 0.001초의 망설임도 없이 클릭한다.
이게 끝이다.
사람이 마우스를 쥐고 눈으로 화면이 바뀐 걸 확인한 뒤 클릭하는 반응속도는 아무리 빨라도 0.2~0.3초다.
하지만 컴퓨터(매크로)는 코드가 실행되는 즉시 누른다.
애초에 인간이 이길 수 없는 싸움인 것이다.
위 코드처럼 만드는 것 자체는 너무나 쉽다.
구글링 몇 번이면 GitHub에 널려 있는 게 기차 예매 매크로 소스코드이다.
하지만 Github나 공유되고 있는 소스코드는 예전 코드이기 때문에 대부분 동작하지 않기 때문에
직접 분석해 분석한 내용으로 아래의예매 웹 사이트로 만들어 보았다.
이처럼 쉽게 만들수가 있었다.
예매가 된다면 내 폰으로 알림을 오게 만들 수도 있고, 혹은, 웹 사이트가 아닌 모바일 앱으로 만든다면?
본격적인 분석을 위해 현재 기준으로 최신 Frida버전인17.7.3으로 테스트를 해보았다.
https://github.com/frida/frida/releases
역시나 모바일 보안 솔루션답게 Frida를 즉시 탐지해 애플리케이션이 강제 종료되었다.
NHN AppGuard의 핵심 방어 로직 중 하나는 강력한안티 디버깅과 네이티브 라이브러리(.so) 보호이다.
이를 분석하기 위해서는 NHN AppGuard에서 개발한 모바일 보안 솔루션의 .so 파일을 추출해야 한다.
따라서 APK 파일을 다운로드하고. so 파일을 살펴보았다.
lib 폴더에 존재하는 so 파일 중 libloader.so가 NHN AppGuard에서 개발한 모바일 보안 솔루션의 라이브러리다.
따라서 분석을 진행하기 위해 IDA Pro를 활용하여 디컴파일을 진행하였다.
IDA로 libloader.so 파일을 디컴파일 하니 위의 그림처럼 에러가 발생하였다.
따라서, 동적으로 libloader.so 파일을 덤프 해야 했다.
왼쪽 그림이 그냥 so 파일을 디컴파일한 모습이고, 오른쪽이 동적으로 덤프 한 so 파일이다.
함수의 심볼의 차이가 거의 9배나 차이가 난다.
동적으로 덤프 한 so 파일을 하나하나 뜯어보며,
AppGuard가 어느 시점에 실행한 디바이스의 환경을 검증하고 Frida 탐지 로직이 실행되는지 분석을 시작했다.
분석 결과, 크게 루트 권한 탐지, 무결성 검증, Proxt 탐지 그리고 동적 분석 도구의 Frida 탐지 등
여러 단계의 탐지 로직이 엄청나게 얽혀 있는 것을 확인할 수 있었다.
결과적으로 아래와 같이 NHN AppGuard의 탐지 로직을우회하고,
밀리의 서재 애플리케이션에 성공적으로 Frida를 연결할 수 있었다.
하지만 더 분석을 진행하고 싶었지만 밀리의 서재의 DRM을 분석하기 위해서는 구독을 해야 한다.
계정 공유 가능하신 분 주시면 감사하겠습니다
계정을 공유받을 수 있다면 밀리의 서재의 DRM도 분석을 진행해봐야겠다.
※ 주의 본 포스팅은 보안 연구 및 모의해킹 역량 강화를 위한 학습 목적으로만 작성되었습니다. 실제 서비스에 대한 무단 우회 배포, 저작권 침해 및 악의적인 해킹 시도는 명백한 불법이며 법적 처벌을 받을 수 있습니다. 기술적 원리 이해를 위한 참고 자료로만 활용해 주시기 바랍니다.