10개 대학 정보보호 동아리가 뭉친 까닭은

현장속으로/세미나 2013. 9. 17. 07:00



2012년에 신규 결성된 전국 대학교 정보보호 동아리 연합인 INCOGNITO가 지난 8월 30일부터 9월 1일까지, 양재동 KT 연구개발센터에서 2회 컨퍼런스를 개최했다. INCOGNITO는 고려대학교, 서울여자대학교, 성균관대학교, 세종대학교, 숙명여자대학교, 연세대학교, 인하대학교, 포항공과대학교, 한국과학기술원, 한양대학교에 소속된 10개의 정보보호 동아리가 모인 연합 동아리이다. 연 1회 이상의 정보보호 기술 컨퍼런스 개최가 주요 활동이다. 작년 포항공대에서 이틀 동안 개최했던 1회에 이어, 이번 2회는 3일 동안 진행되었다. 더욱 더 많은 세미나와 특별 발표 세션이 진행되었다. 

 

INCOGNITO 연합은 구성 동아리들이 정보보호 분야에서 많은 활동을 수행하면서 두각을 나타내고 있어 앞으로의 발전 가능성이 주목된다. 발전가능성을 보여주는 대학 정보보호 동아리들은 왜 INCOGNITO 연합을 만든 것일까, 그리고 어떻게 INCOGNITO를 발전시켜 나갈까? INCOGNITO를 이끌어간 운영진들에게 INCOGNITO와 준비과정, 앞으로의 계획 등을 들어보았다.


아래는 INCOGNITO 운영진의 인터뷰를 정리한 것이다.


Q : INCOGNITO 연합을 소개해주세요. 어떤 취지로 모이게 되었나요?

-컴퓨터 보안을 주제로, 상업적인 것 말고 '대학생들이 할 수 있는 것들을 모여서 해보자' 라는 취지로 모이게 되었어요. 작년에 1회를 진행했고, INCOGNITO에 소속된 동아리들끼리만 모여서 하면 발전이 없을 것 같아서 올 해에는 외부에도 공개를 했습니다. 내년 행사에도 많은 사람들과 교류할 수 있도록 준비를 해서 진행 할 예정입니다.


Q : INCOGNITO를 준비한 기간이 어떻게 되나요? 어떤 것을 중심으로 준비했는지도 궁금합니다.

-준비기간은 6개월정도 됩니다. 준비한 것은 당연히 발표 컨텐츠가 중심이었던 것 같고, 너무 발표만 진행되면 딱딱해지기 쉬우니까 부가적으로 컨퍼런스를 채워줄 수 있는 친목행사나 골든벨 같은 것들을 추가하는 식으로 준비했습니다.


Q : 세미나를 위한 발표주제를 선정하는 기준이 있을까요?

-기준은 딱히 없습니다. 각 대학교의 동아리마다 자체적으로 연구하는 것들을 주제로 선정해서 발표합니다.


Q : CTF도 진행이 되었는데, CTF에 대해서도 소개 해 주세요.

-보안 공부를 많이 한 사람들도 있지만, 동아리에는 이제 막 공부를 시작한 신입생들도 있어요. 그런 신입생들에게 해킹과 보안을 접할 기회를 줄 수 있도록 CTF를 진행했습니다. 포항공대와 카이스트에서 문제 출제를 맡았고, 신입생들과 어느정도 문제를 풀 줄 아는 사람들을 적절히 섞어서 팀을 이루어 진행했습니다.

-문제를 출제할 때는 분야를 다양하게 내려고 노력했습니다. 해킹에 다양한 분야가 있으니까요. 익스플로잇이라던지, 포렌식이라던지, 웹이라던지. 골고루 내는 것을 목표로 했고, 아무래도 참가자들의 실력 분포가 다양하고 또 즐기자는 취지도 있었기 때문에, 쉽게 내자고 이야기 하면서 진행했습니다.

-하지만 난이도 조절에 살짝 실패한 경향이 있는 것 같아요. 문제를 출제하는 입장에서 학생들 수준을 너무 높게 잡았던 것 같습니다. 참가자 대부분이 신입생들이었는데, 그걸 고려를 안한거예요. 내년에는 문제를 좀 더 쉽게 낼 에정이예요. 그런데 CTF 문제를 쉽게 내면 팀의 잘 하는 사람이 문제를 빨리 풀고, 비교적 실력이 부족한 학생들이 겉돌수가 있어서 그런 상황들도 고려를 해야할 것 같습니다. 그래서 외부 CTF와 내부 CTF를 나눠서 외부 CTF는 어렵게 내고, 내부 CTF는 쉽게 내면 어떨까, 하는 의견이 나왔던 것 같아요.


Q : 운영하면서 어려웠던 점이 있나요?

-가장 어려웠던 점은 장소가 너무 늦게 정해져서 준비할 것들이 막바지에 몰렸던 것이었어요. 그 외에는 소속된 동아리들이 각자 협조도 잘 해주셨고, 커뮤니케이션도 잘 되었기 때문에 별다른 문제는 없었던 것 같습니다.


Q : INCOGNITO가 궁극적으로 이루고자 하는 목표가 있나요?

-어떤 것을 이루겠다 하는 목표는 딱히 없는 것 같습니다. 주어진 것들을 활용해서 열심히 준비하고, 교류하고 공부하는 것이 최선이라고 생각해요. 일단 INCOGNITO에 소속된 동아리들이 딱히 뭘 바라고 이 연합에 참가한 것이 아니니까요. 그냥 참여를 해서 우리들끼리 하고싶은 것들 하자, 이런 취지로 모였습니다. 모여서 공부하고 서로 발표하면 좋은거니까요.


Q : 앞으로 INCOGNITO가 어떤 연합, 어떤 컨퍼런스로 성장을 했으면 좋겠다고 생각하나요?

-아무래도, 바라는 것이 있다면 발표 주제를 선정할 때 컨퍼런스를 위해서 발표 주제를 선정하는 것 보다 평소에 연구했던 것들 중에서 재미있었던 것을 발표하는 장이 되었으면, 그렇게 성장했으면 좋겠다는 생각이 듭니다. 사람들이 대학생들의 컨퍼런스를 듣는 이유는 대학생들이 어떤 것에 관심이 있고 어떤 것을 평소에 공부하는지 들으려고 오는거니까요. 평소에 하고 있는 것들을 중심으로 발표했으면 좋겠습니다.

-컨퍼런스에서 만난 사람들끼리 컨퍼런스 기간동안만 만나다가 끝나는 게 아니라, 지속적으로 교류할 수 있는 컨퍼런스가 되었으면 좋겠어요. 그리고 규모가 조금 더 커져서 외부 사람들도 많이 참가하는 컨퍼런스가 되었으면 좋겠습니다.


Q : 3회에 더 해보고싶거나 보완하고 싶은 컨텐츠들이 있나요?

-일단은 INCOGNITO를 후원해주시는 후원사와 함께 취업 리크루팅을 했으면 좋겠다는 의견도 있었어요. 그리고 CTF를 우리끼리만 진행하는 것 보다, 외부에 공개를 하면 어떨까 하는 의견도 있었습니다. 외부에 공개적으로 하는 것 하나, 우리끼리 진행하는 것 하나, 이런 식으로요. 저희가 문제를 출제하고 외부에도 공개해서 참가를 유도하는거죠. 

-예산이 부족해서 그랬는지, 공식적인 뒷풀이가 없었어요. 친목적인 부분이 살짝 아쉽습니다. 이렇게 컨퍼런스를 끝내고 나면 내년에 3회가 있기 전 까지는 잘 못 만나거든요. 온라인상으로도 활발하게 교류할 수 있도록 친목적인 부분을 강화했으면 좋겠다고 생각했어요.

-CTF 문제도 좀 더 쉽게 내서 신입생들이 더 의욕적으로 참가할 수 있도록 유도했으면 좋겠다는 생각도 듭니다.

-3회에는 조금 더 책임감있게 행사를 준비하고, 자기 동아리 활동이 아니라 "INCOGNITO 활동이다" 라고 생각하고 모든 동아리들이 조금 더 끈끈한 유대관계를 가지고 참여했으면 좋겠습니다. 그렇게 되면 내년에는 더 좋은 모습으로 많은 사람들께 선보이고 만나뵐 수 있으니까요.


Q : 마지막으로 더 하고싶은 말이 있나요?

-대학의 정보보안 동아리들이, 동아리 내에서만 활동하는 것 보다는 다른 동아리들과 서로 교류를 많이 했으면 좋겠어요. 그러면 더 많은 것들을 배울 수 있고, 여러가지 분야도 더 쉽게 접할 수 있어요. 아는 사람들이 많아질수록 관심 분야에 대한 이슈들을 접하기도 쉽고요. 좋은 기회이니까, 보안동아리들끼리 서로 활발하게 교류했으면 좋겠습니다.

-정보보안이라는 분야가 IT분야에서는 아직 많이 활성화 되지는 않았다고 생각해요. 일단 좁은 분야이기도 하고요. 그만큼 저희들끼리 모여야 발전 가능성도 더 커질 것이라고 생각합니다. 정보보안까지 두루 갖춘 IT강국이 되려면 저희가 뭉쳐야 하는 것 같아요.

-40년 전에도, 30년 전에도, 20년 전에도 계속 10년 뒤 유망직동이 정보보안전문가라고 나오는데, 아직 그렇지는 않은 것 같아요. 대학생들끼리 뭉쳐서, 정말 10년 뒤에 유망직종이 되도록 같이 공부하고 교류했으면 좋겟습니다.


아무런 대가를 바라는 것 없이, "좋아서 모인 것 뿐이다" 라는 말이 참 와닿는다. 열정을 가진 우수한 정보보호 동아리들이 연합하여 스스로 꾸려가는 대학생들의 모습이 보기 좋다. 정보보안 인력이 조금 더 단단해지고 성장할 수 있는 발판을 스스로 만들어가는 INCOGNITO의 앞으로의 행보가 기대된다. Ahn




대학생기자 강정진 / 숙명여자대학교 컴퓨터과학과


學而不思則罔思而不學則殆

배우기만 하고 생각하지 않으면 멍청해지고, 생각하기만 하고 배우지 않으면 위태로워진다.





댓글을 달아 주세요

내가 분실한 스마트폰을 해커가 습득했다면?

현장속으로/세미나 2013. 9. 5. 08:49

하루종일 손에 붙어있는 시간이 많은 스마트폰. 메시지를 주고받는 일부터 사진을 찍고 SNS에 글을 올리고 메일을 확인하고 문서를 보는 일까지, 스마트폰이 우리 생활에 들어오면서 우리는 많은 일들을 스마트폰으로 해결하고 있다. 그렇기 때문에 스마트폰을 잃어버리면 개인정보 유출 등 심각한 피해를 입을 수 있고, 휴대폰 분실이 큰 문제로 이어질 수도 있다. 


지난 8월 30일부터 9월 1일까지, 양재 KT 연구개발센터에서 개최된 INCOGNITO Hacking Conference 2013에서 다양한 주제의 발표가 진행되었다. 그 중, 인하대학교 정보보안동아리 NewHeart 소속의 박민건씨가 <Variety of SmartPhone Hacking>이라는 주제로 진행한 발표 내용을 소개한다. 




분실한 스마트폰을 해커가 습득했을 때 어떤 일들을 할 수 있을까? 해커가 스마트폰을 습득했을 때 해커의 관점에서 어떤 식으로 해킹을 할 수 있는지, 총 5가지의 시나리오를 토대로 발표가 진행되었다. 아래의 내용은 발표 내용을 발표자의 말로 재구성한 것이다. 




1. Smudge Attack


스마트폰을 습득했을 때 가장 빠르게 스마트폰을 해킹할 수 있는 방법이다. 폰을 비스듬하게 놓고 보면 지문이 보이는데, 보통 패턴으로 잠금이 걸려있을 경우 쉽게 패턴이 노출된다. 


즉, Smudge Attack이란 터치스크린에 묻어있는 지문으로 패턴이나 비밀번호를 유추해내는 공격이다. 다양한 각도나 밝기, 명암을 조성하여 성공률을 높일 수 있다. 실제로 논문으로 나오기도 하는 연구 주제로, 유명한 공격이다. 




2. Take Shell


Smudge Attack에 성공을 했든 안했든, 스마트폰을 습득했을 경우에는 루팅을 하는 것이 가장 획기적인 방법이다. 참고로, 루팅이 합법적일까 불법적일까 의구심이 들어서 조사해 보았는데, 조사한 결과 루팅은 합법적이다. 루팅과 관련한 법규가 아직 없기 때문이다. 하지만 루팅을 할 때는 조심히 진행해야 하는데, 잘못될 경우 흔히 말하는 '벽돌' 이 될 수 있다. 


루팅을 할 수 있는 방법은 3가지 정도가 있다. 알려진 커널 익스플로잇을 이용해 루팅을 하는 방법이 있고(Android Kernel Exploit), 루트 권한을 가진 이미지를 가지고 플래싱을 하는 방법(Rooted Image Flashing), 그리고 Update.zip 파일을 이용해 플래싱 하는 방법(Using Update.zip to set rooted environment)이다. 


다양한 종류의 안드로이드 버전이 있는데, 각 버전에 따라서 구글링을 통해 커널 익스플로잇을 구할 수 있다. 통상 커널 익스플로잇보다 이미지를 이용한 플래싱을 하는 방법을 더 많이 사용한다. 'fastboot mode'로 진입한 뒤에 커스터마이징한 이미지를 플래싱하는 방법인데, 커널 익스플로잇을 찾는 것보다 훨씬 쉬운 방법이다. 역시 구글링을 통해서 순정롬을 획득한 뒤 커스터마이징을 해서 사용하면 된다. Update.zip 파일을 이용하는 방법은 이미지를 플래싱하는 방법과 유사하다. Update.zip 파일 안에 boot.img 파일을 이용하는 방법이다. 


루팅을 할 때는 USB 디버깅 모드가 ON으로 되어 있을 경우 쉬워진다. OFF가 되어있을 경우에는 persist.service.adb.enable의 값이 0으로 설정 되어있는 것을 1로 바꿔준 뒤에 이미지 플래싱을 하면 된다고 하는데, 직접 해본 결과 성공하지는 못했다. 하지마 커널 이미지를 실제로 고칠 수 있다는 점은 변함이 없기 때문에 디버깅 모드가 ON이든 OFF이든 루팅을 할 수 있는 것은 확실하다.


3. Pattern Lock BruteForcing


스크립트에서 중요한 부분은 permutations 함수를 이용하는 것이다. 안드로이드의 패턴락에 관한 데이터파일은 /data/system/gesture.key 경로에 있다. 해당 key파일은 SHA-1 해쉬 알고리즘으로 암호화가 되어있다. 이 파일을 명령어를 통해 추출을 해 놓은 다음, 파이썬으로 BruteForce하는 스크립트를 짜서 이용한다.


스크립트에서 중요한 부분은 permutations 함수를 이용하는 부분인데, 패턴락이 순서를 가지고 있는 순열 형태이기 때문이다. 암호화 패턴이 가질 수 있는 최소값과 최대값을 설정하고, 패턴이 될 수 있는 모든 경우의 수를 리스트 형식으로 만들어 준 뒤 HEX값으로 바꾼 뒤 원래 값과 비교하는 방식으로 BruteForcing 할 수 있다. 


왜 이런 보안을 하지 않느냐 하면 사실 루팅을 하면 패턴 락이 걸려 있어도 lockscreen과 관련된 값을 1로 바꿔주면 끝나버리기 때문이다. 그렇기 때문에 패턴락 BruteForcing과 관련된 연구를 그렇게 활성화 되어있는 상태는 아니다.


4. Time To Hack Her


해커라면, 단순하게 볼 수 있는 정보에는 접근하지 않는다. 단순하게 볼 수 없는 정보의 예는 삭제된 통화기록이다. 사용자가 통화기록을 삭제하면, 안드로이드는 삭제와 동시에 Garbage-Collection을 진행하기 때문에, 그냥 볼 수가 없다. 보려면 다른 방법을 써야하는데, Logcat을 이용하면 삭제된 기록을 볼 수 있다.


또한 삭제된 사진 목록은 어떻게 볼 수 있을까? 간단하다. 이미지를 전부 덤프 뜬 뒤에 winhex나 foremost같은 도구를 이용하여 카빙 하면 된다.


또한, 스마트폰 메신저의 캐시 사진을 추출할 수도 있다. 스마트폰 주인이 예전에 설정했었던 프로필 사진까지 볼 수 있다. 사용자 뿐 아니라 사용자 친구들의 전 프로필 사진까지 전부 볼 수 있다. 데이터베이스에 접근한 뒤 확장자가 안적혀있는 파일들에 jpeg 확장자를 붙여주면 전부 사진으로 보인다. 수많은 사진을 일일이 jpeg 확장자를 달아줄 수 없어서, 간단한 스크립트를 통해 jpeg로 파일 확장자를 전부 바꿔주는 방식을 택했다. 


이제 습득한 스마트폰 주인의 사진까지 다 찾아볼 수 있었다. 그럼 그 다음에 무엇을 더 할 수 있을까? 스마트폰을 다시 주인에게 돌려준다. 단, 해당 스마트폰에 리버스쉘을 설치하면 스마트폰 메신저를 사칭할 수가 있다. 이런 방법은 금전 피해와도 연결될 수 있다. 리버스쉘을 해당 스마트폰에 설치한 뒤, 원격으로 데이터베이스에 접근하고, Select문으로 메시지를 엿본 후 Insert와 Update문으로 적절히 데이터를 조작해 보내는 것이다. 


스마트폰에 리버스쉘은 설치하면 되지만, 파이썬이나 루비는 안드로이드 스마트폰에 설치되어 있지 않다. busybox에 netcat이 설치되어 있긴 하지만, -e 옵션이 먹히지 않는다. 어떻게 할까 고민하다 보니 telnet을 떠올리게 되었다. 


예를 들어 공격자가 8888번 포트와 9999번 포트를 열고, 텔넷을 이용해서 8888번 포트로 들어오는 메시지를 시스템 명령어를 통해 출력한 다음, 9999포트로 넘겨주는 식이다. 이렇게 연결한 뒤 메시지를 Insert문을 통해 조작해서 보내면 된다. index 부분은 하나씩 늘려주고, 고유 id에는 겹치지 않는 숫자를 넣어준다. 그 뒤 전송할 메시지와 시간을 보낸다. 안 읽은 메시지 부분을 1로 설정해서 보낸다면 타겟을 완벽하게 속일 수 있다.


이런 기술적인 방법 말고도, 일반 사용자가 다른 사람의 스마트폰 메신저를 몰래 볼 수 있는 방법도 있다. airplane 모드 등을 켜서 단말기에 네트워크를 끊은 뒤 스마트폰 메신저에 접속하면, 이미 와있지만 확인하지 않은 메시지를 보더라도 읽지 않았다는 숫자 표시가 사라지지 않는다. 다시 네트워크를 연결하고 보면 숫자 표시가 사라진다. 이런 소소한 취약점을 이용해서도 남의 메시지를 들키지 않고 볼 수 있다. 


5. Can iPhone be attacked by DoS?



이 공격에는 에피소드가 하나 있다. KUCIS 세미나를 동아리 멤버와 같이 들으러 갔는데, 그 친구가 심심하다고 내 휴대폰을 가지고 가서는 통화 애플리케이션을 실행시키더니 계속 번호를 눌렀다. 계속 누르길래 다시 휴대폰을 가져와서 통화를 눌러봤더니, 20분 동안 휴대폰이 움직이지를 않는 거다. 휴대폰이 고장난 줄 알았는데, 집에 와서 생각해보니 버퍼 오버플로우인가, 하는 생각이 들었다. 


그 친구는 보안에는 관심이 없고 소프트웨어 개발에만 관심이있는 친구였는데, 나는 보안에 관심이 있으니까 이런 생각을 하게 되는 것이다. 관점의 차이이다. 그래서 다시 한번 집에서 해 봤는데, 또 한 시간 동안 휴대폰이 움직이지 않는 상태에서 배터리는 막 소모되다가 재부팅되는 상황이 발생했다. 그래서 연구를 시작했다. 그렇게 뚜렷한 연구결과는 아니지만, 계속 연구해볼 의향이 있다.


취약점은 전화 애플리케이션에서 터진다. 전화 애플리케이션이 생각보다 취약한 것 같다. 아이폰의 전화 애플리케이션은 40자리 이하의 번호를 입력하면 입력이 잘못되었다고 알려주지만, 40자리 이상의 번호를 입력하면 그런 것 없이 가만히 휴대폰이 멈춰있는 현상이 발생한다. 애플리케이션이 입력값의 길이를 체크하지 않기 때문에 가능하다. 


입력값이 200자, 300자, 400자, 이렇게 늘어날수록 반응속도가 더욱 느려진다. 그러다가 1000개의 입력값을 넣고 통화버튼을 누르니 20~30분동안 아무것도 되지 않는다. 이런 취약점을 이용해서 어떤 공격을 할 수 있을까, 생각해 보았다. 그래서 일단 1000개 자리의 번호를 친구로 등록했다. 그 다음에 그 번호로 전화를 걸었더니 처음에는 3G가 꺼지고, 그 후에는 휴대폰 상태바에 통신사 이름이 사라지는 현상이 발생했다.


이것을 어떻게 더 응용해볼 수 없을까 생각하다가, 서버를 하나 만들어두고 TEL tag를 이용하는 방법을 생각해 보았다. TEL tag에 긴 숫자를 넣은 다음에 스미싱처럼 그 태그를 메시지로 친구들에게 보내는 것이다. 그렇게 되면 그 메시지를 받은 사람들이 태그를 누르는 순간, 해당 사용자의 휴대폰은 마비가 될 것이다. 일종의 DoS 공격이 되는 것이다. 분명 더 뚜렷한 취약점이 있을 것이다. 더 연구해 볼 생각이다.



이처럼 분실한 휴대폰을 해커가 습득했을 경우, 악의적인 목적을 가지고 얼마든지 정보를 유출하고 이용할 수 있다. 사실 이 발표는 발표 내용도 흥미로웠지만 각 공격 방법마다 데모 영상이 준비되어 있어서, 영상으로 공격 과정을 볼 수 있어서 더 흥미로웠다. 


특히 4번 공격 시나리오인 'Time To Hack Her'에서 스마트폰 메신저와 관련한 해킹 내용이 흥미로웠고, 5번 공격 시나리오인 'Can iPhone be attacked by DoS?'의 데모 영상 또한 인상깊었다. 특히 친구의 장난으로 시작된 현상을 취약점과 관련지어서 생각하고 연구하고 그것을 발표하는 것이 매우 재미있게 다가왔고, 보안 공부를 하는 사람의 입장에서 배워야 할 자세라는 생각이 들었다. 


이렇게 스마트폰을 가지고 할 수 있는 해킹 방법이 다양하다. 분실된 휴대폰으로 할 수 있는 여러 공격을 예방하기 위해서 모바일 운영체제나 모바일 애플리케이션에 대한 보안 또한 신경 써야 할 부분이 되었다. 그러나 스마트폰의 보안을 지키는 첫 걸음은 '휴대폰을 잃어버리지 않는' 것일지도 모르겠다. 분실된 스마트폰이 어디로 어떻게 흘러들어갈지, 돌려받은 휴대폰에 악성코드가 설치되어 있을지 파악하고 난 뒤는 이미 해킹을 당한 뒤일 테니 말이다. Ahn



대학생기자 강정진 / 숙명여자대학교 컴퓨터과학과


學而不思則罔思而不學則殆

배우기만 하고 생각하지 않으면 멍청해지고, 생각하기만 하고 배우지 않으면 위태로워진다.


댓글을 달아 주세요

  1. 미소 2013.09.05 15:43  Address |  Modify / Delete |  Reply

    대단해요~ㅋㅋ

  2. 왕샘 2013.09.05 16:06  Address |  Modify / Delete |  Reply

    휴대폰 분실 조심해야겠네요