By Aram Lee (A.K.A InPure)
aramlee@a3security.com
I. 서론
2009년 12월부터 판매된 iPhone에 대한 관심이 뜨거워지면서 보안 위협에 대한 우려도 커지고 있습니다. iPhone을 대상으로 한 공격에 대한 고민을 하던 도중 BarCode에 XSS, SQL Injection 공격 스크립트를 심는 기법을 소개한 글을 보았습니다. (http://www.irongeek.com/xss-sql-injection-fuzzing-barcode-generator.php)
미국에서 널리 쓰이는 iPhone 어플 중에 증강현실의 일종으로 BarCode를 인식하여 인터넷 쇼핑몰에서 최저가를 검색한 결과를 보여주는 어플이 있습니다. 이를 이용하여 BarCode(QRCode)+Mobile+Phishing의 조합으로 이루어진 새로운 형태의 피싱 시나리오를 작성하게 되었습니다.
휴대폰으로 BarCode/QRCode를 인식하는 기능은 예전부터 지원하는 기능이었습니다. 하지만, 스마트폰의 확산으로 BarCode/QRCode를 보다 널리 사용하게 될 것으로 예상됩니다.
본 시나리오는 iPhone에만 국한되지 않고 바코드를 인식하는 어플이 있는 모든 스마트폰이 대상입니다.
II. 본론
본 시나리오의 도식도는 다음과 같습니다.
공격자는 피싱사이트의 URL 정보가 포함된 바코드를 이벤트 페이지로 가장하여 다음의 이벤트 홍보문을 배포합니다.
사용자는 이벤트에 참가하고 싶어 이벤트 홍보문에 있는 QRCode를 인식하여 이벤트 페이지에 접속합니다.
응모가 완료되었다는 메시지를 보고 사용자는 이벤트에 응모가 되었다고 생각할 것입니다. 그러나 실제로는 피싱사이트에 개인정보가 수집되고 있습니다.
III. 결론
보이스 피싱, 메신저 피싱 등 새로운 형태의 피싱이 계속 나오고 있는 추세로 볼 때 스마트폰의 확산으로 모바일이 피싱의 새로운 형태가 될 가능성이 높습니다.
일반적으로 모바일 페이지는 웹보다 간단하게 구성되어 있어 피싱사이트를 구축하기가 용이한 특성도 모바일 피싱 확산의 요인이 될 것입니다.
피싱 공격뿐만 아니라, 악성코드 (트로얀, 웜/바이러스, DDoS Bot 등) 배포 등의 공격 가능성도 존재합니다.
IV. 대응방안
1) 먼저 개발자는 BarCode/QRCode 인식 후 BarCode/QRCode에 포함되어 있는 URL 주소로 바로 Redirect하면 안됩니다. BarCode/QRCode에 포함된 URL을 사용자에게 보여주어 사용자의 확인을 받아 해당 URL로 연결하는 방식으로 개발해야 합니다.
2) 입력값에 XSS나 SQL Injection 등에 이용되는 스크립트가 포함되어 있으면 차단하는 기능을 추가해야 합니다.
3) 사용자는 수상한 BarCode/QRCode인지 확인하고, 어플로 BarCode/QRCode 인식 후 URL이 안전한 URL인지 확인해야 합니다. 그리고 신뢰할 수 없는 URL에 자신의 정보를 남기지 않도록 해야 합니다.
[참고사이트]
http://www.irongeek.com/xss-sql-injection-fuzzing-barcode-generator.php
http://www.science.go.kr/center/kor/html/cyber/theme/livingscienec/theme1_5409.html
http://www.scany.net/kr/generator/barcodeQrcode.php
http://www.scany.net/kr/generator/ [바코드생성]
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.
댓글을 달아 주세요
3.1.3 아이팟 터치라고 나와있는데요
실질적으로 아이폰의 경우 3.1.3에서는 사용자 임의의 프로그램을 집어넣는다는 것 자체가 어려운데
이번 연구에서 쓰인 아이팟 터치 3.1.3은 구형 부트롬인지 신형 부트롬인지에 대한 언급과
탈옥이 된 기기인지에 대한 언급을 해주시면 좋겠습니다. (+__)ㅋ
탈옥을 거치지 않은 기기에서 저러한 연구가 되었다면.. 정말 엄청난 이야기군요 ㅇ_ㅇ;;
얼마전 펌웨어 업데이트 직후 탈옥하지 않은 상태에서 진행한 내용입니다.
ps) 3.1.3은 2010년 2월쯤 릴리즈된 것으로 알고있습니다.
그럼 3.1.3인 상태에서 저런 코드를 어떻게 아이팟에 넣으실 수가 있으셨던 거죠..?;
조금 이해가 가지 않아서 다시 질문 드립니다.
순정품에서 증명된 내용인지 궁금하네요^^ 만약 그렇다면 iPhone 0-Day 취약점이겠네요.
악성코드 전파에 대한 연구는 아니었습니다.
이 아티클처럼 순정에 실제 된다면, 세계 최초 0-day 인 것 같습니다.
세부 내용 좀 알 수 있을까요?.. 예전 자료들은 전문이던데, 이건 요약문이네요.....
악의적으로 사용될 수 있는 부분은 일부 제한하고 있습니다. 상세 내부 공유 부분은 후에 공지하도록 하겠습니다^^).
연구 내용은 어떻게 하실건가요????
애플에 보내실건가요?
연구목적입니다.제조사가 원하면, 당연히 제공해야지요.
탈옥상태가 아니라 하셨는데... 그렇다면
순정상태에서 어떻게 코드를 넣으신건지??
설마 SDK에서 개발후에 아이폰에 넣으신건가요?
질문들이 많아, 별도 faq를 게시할 예정입니다.
sdk를 사용치 않고, folk 방식을 이용했습니다.
사진을 보니 쉘로 접속한거같은데, 순정의 터치에 쉘접속이 가능한가요?
네 순정상태에서 접속했습니다.
테스트에 사용된 터치가 순정상태냐 묻는 질문에는 답이 없군요..
위 분들 질문과 마찬가지로 순정 상태의 폰에도 누군가가 만든 임의의 코드를 박는게 가능한가요?
일명 "순정" 상태에서 진행했습니다.
2010/03/23 16:32에 저희가 답변한 내용입니다.
"얼마전 펌웨어 업데이트 직후 탈옥하지 않은 상태에서 진행한 내용입니다." (첫번째 뎃글)
음.. 그러니까 좀비 프로세스 생성까지는 개발툴로 하신거죠? 연구 차원에서, 봇이 돌아갈 수 있나 없나 확인해 보려고 하신거잖아요.
개발툴 부분은 저기 글을 남겼구요. "우스기"님이 말씀하신 대로 연구차원에서 삽질 한번 해봤습니다.