해킹팀

여수버스정류장 야동 송출 사건 - (2) 본문

밝혀진진실

여수버스정류장 야동 송출 사건 - (2)

타이거팀 2016. 8. 8. 17:59

여수버스정류장 송출 사건 - (2)

 

 

 

 

 

버스정류장 모니터를 보다 궁금해진 해킹팀은 버스정보안내시스템의 웹버전을 분석해 아이폰용 앱까지 만들어버렸다.

 

뒤이어 부산버스 앱도 소스코드 공개가 되고,  버스정보는 카카오가 천하통일 하는듯하다.  

 

 

 

이 블로그 글은 여러번 계속 업데이트 될 예정이다.

 

불편한 진실에 도달할때까진 여러가지 가설에 온갖 상상력의 날개를 펼쳐 도전하는거다.

 

 

 

 

BIS 버스정보시스템 웹버전

 

 

 

 

BIS 버스정보시스템에는 일반적으로 앱버전도 있지만, PC사용자를 위한 웹버전이 별도로 존재한다.

 

이 BIS 버스정보시스템 웹버전이 우리가 이번 연재에서 들여다봐야할 알맹이중 하나다.

 

 

2010년경 아이폰이 처음 출시되었을 즈음 BIS 버스정보시스템은 013-3366-XXXX로 알고싶은 버스정류장 번호를 넣어서 문자를 보내면 다시 도착버스에 대한 정보를 문자로 답을 주거나  음성안내로 버스정보를 받아 볼 수 있는 시스템이었다.

 

 

아이폰용 서울버스정보 앱이 나오면서 방법론이 생겨  해킹팀에게는 도전해 볼 목표물이 하나 생긴것이다.  

 

 

BIS 시스템 담당공무원에게 친절하게 BIS 버스정보 시스템 API 정보공개 요청을 헸지만, API 공개는 못한다고 불친절하게 받아치는 공무원에게는 응당 해커로서 답변이 필요해보였다.

 

 

일단 쉬운게 버스정류정 코드에 대한 것만 알면 순방향, 역방향 처리에 대해서 파라미터등을 친절하게 웹버전에서 거의 다 파악이 가능하니 시스템 자체를 전부 알아야할 필요도 없다. 아니 몰라도 가능하다. 

 

인턴 대학생과 둘이 앉아서 약 한시간 정도 분석한 뒤, 아이폰 앱으로 즉시 개발에 착수하는건 실행에 옮기느냐 마느냐의 단순한 문제였다.

 

 

 

 

 

웹버전 분석

 

 

 

한번 사이트 개편이 이뤄져서 2010년 당시 예전 모습은 없지만, 기본은 같다.

 

울산시청 홈페이지 하단에서 "교통정보"를 클릭한뒤, 울산교통정보센터 홈페이지로 이동한다.

 

버스정보안내중 버스번호 225를 선택하고 웹버전에서 나오는 기본 파라미터 정보를 확인하자.

 

 

 

 

 

 

225번 버스에 대한 순방향 정보확인

 

http://www.its.ulsan.kr/Menu003/BusLineMap.aspx?BusNo=225&EmergencyFlag=0&Type=13

 

 

버스번호는 BbusNo=225 로 파라미터를 넘겨주고있다. BusNo = 453으로 바꾸면 453번 버스에 대한 정보가 표시된다.

 

현재 북구청앞을 달리고있는 225번 버스 번호판이  71자 2808이란 것까지 표시해준다.

 

 

 

 

 

 

 

 

225번 버스에 대한 역방향 정보확인

 

 

http://www.its.ulsan.kr/Menu003/BusLineMap.aspx?BusNo=225&BrtId=195102251&Direction=1&EmergencyFlag=0&Type=13

 

 

도착점에서 출발하는 버스는 여기선 역방향이다.

 

역방향 정보는 Direction =1 파라미터를 붙여서 처리한다. 

 

 

 

 

 

 

 

 

특정 정류장에 대해서 버스정보를 더 알고싶다면 정류장번호가 추가로 필요하다.

 

학성공원 (24302)에 대한 출 도착정보를 선택하면  11분후 버스 도착 정보가 뜬다.

 

 

 

 

 

 

 

http://www.its.ulsan.kr/Menu003/BusLineMap.aspx?BusNo=5003&EmergencyFlag=0&Type=11

 

 

 

 

5001번부터 5003번 버스는 KTX 역으로 일부 정류장만 서는 리무진버스로 파라미터는 Type =11 로 분류하고 있다.  

 

 

부산과 울산을 오가는 2100, 2300번 광역버스는 Type 12,   

 

카운티타입 소형 마을버스는 Type =30,

 

두자리 번호판인 버스는 Type =20 을 사용한다. 

 

 

 

 

 

 

 

 

 

  

 

울산버스 아이폰 앱개발 

 

 

 

 

자아, 여기까지 BIS버스정보시스템이 어떻게 데이터를 구성하고 있는지,  무슨 파라미터를 주고받는지  웹버전에 대한 분석까지 다했고,  학성공원 (24302)에 대한 출 도착정보등을 선택하면 " 11분후 버스 도착" 정보가 팝업창으로 뜨게만 하면 버스정보 안내앱은 거의 다 만든거나 다름없다.  

 

 

울산버스를 만들기위해 해킹팀은 인턴 학생에게 50만원짜리 맥북 중고를 하나 구매해 선물로 주었다. 

 

SK텔레콤의 앱 공모전에서 받은 상금 50만원을 인턴 학생의 기살리기와 앱 개발에 투자를 한 것이다.  어차피 버스 앱을 만들어도 본인의 제작 포트폴리오로 쓸수 있도록 해주었으며, 제작지원 부문에만 회사의 이름을 넣었다.

 

앱에서 사용할 디자인은 이화여대를 다니는 아리따운(?) 여대생에게 인턴학생이 온라인상으로 의뢰했는데, 버스 앱에 개발자 실명을 넣는대신 자신의 아이디 P3HO를 넣어줄것을 요구했다.  그대로 받아들여졌다.

 

 

 

 

 

 

 

 

 

 

 

실시간 버스검색과 팝업창 알려주기등을 구현한다. 웹버전에서 정보를 받아온다. 

 

정류장 정보등은 미리 엑셀등으로 정리해서 앱에 탑재시켜놔야 검색 속도가 제대로 나온다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

이렇게 해서 순식간에 버스정보 앱이 완성되었다. 

 

이제 버스정류장까지 달려가지않고도 아이폰에서 정류장의 버스정보 출도착정보를 받아보게되었다. 013-3366-XXXX로 버스정류장번호 문자를 안보내도 된다.  

 

해킹팀은 아이폰이 없어 앱 개발에 와이파이만 가능한 아이팟터치를 사용하여 테스트를 했다.

 

울산버스가 엄청 인기를 구가할 무렵, 울산시청은 울산버스가 자기들이 자체적으로 만든게 아니란 이유로 인정을 하지않았다.

 

웹버전 SW는 .jsp 버전에서 .aspx 라는 ASP.NET 버전으로 싹 바꿔치우고 서버도 윈도 기반 서버로 바뀌면서 새로 "울산버스정보" 앱을 만든다. 울산시는 "울산버스" 라는 이름을 빼앗겨서 지금도 "울산버스정보"라는 이름으로 버스정보 앱을 배포하고있다. 

 

 

필자 해킹팀은 울산버스의 개발했던 아이폰용 소스코드를 블로그애서 모두 공개하겠다. 

 

곧 다운로드 링크가 보이게 될것이다.



 

 

 

소스코드공개

 

 

  곧 다운로드 링크가 공개됩니다.

 

 

 

 

 

 

부산버스정보시스템

 

 

이부분 원고는 계속 작업중입니다.

 

곧 업데이트 됩니다.

 

 

 

 

 

소스코드공개

 

 

  

https://github.com/kmshack/busanbus-android

 

 

깃허브를 통해 공개했다. 

 

아래의 정류소데이터나 실시간 도착 데이터 링크가 있어야 부산 버스정보앱은 힘을 발휘할수 있다.

 

 

 

 

데이터 정보

 

 

 

Comments