Defcon (26+27) CTF

기적같은 1년여간의 드래프트를 끝내고 defcon 27과 함께 올리는 후기인 것이다.

Defcon 26

짜잔! 데프콘 26 후기다. 원래 시간상 스페인 다녀온 여행기를 먼저 쓰려고 했지만, 게으름의 정점을 찍고 있는 나에게는 무리였다. 이번에 미국가서 LA는 못 갔다왔지만.. 고든램지 식당 3개 별 찍고, 총도 쏘고 여러가지 재밌는 액티비티를 한듯!

올해는 legitbs가 아니라 OOO가 운영을 했다. 컨셉 자체가 뭔가 중2병 걸린 것 같았는데 운영도 역시 그랬다! 그래서 대회중에 있었던 에피소드와 간단한 라이트업을 작성 할 것이다!!

우선 카테고리는 아래와 같다. Attack/Defense는 취약점 찾아서 팀들(23팀) 익스하고 패치해서 방어하는거다. KingOfTheHill은 없었던 카테고리인데, 짧은 길이도 쉘코드 짜기, 스테이지 더 많이 깨기등.. seccon 본선에서 나오는거라고 한다. (안가봐서 모름)

볼드 처리된게 우리가 풀어서 점수를 먹은 것이고 주황색문제들을 라이트업을 쓰겠다.

Attack / Defense

  • pointless
  • twoplustwo
  • pool
  • oooeditor
  • bew
  • vchat
  • reeducation

KingOfTheHill

  • reverse
  • doublethink
  • propaganda

reverse

가장 처음 나온 문제다! KingOfTheHIll 문제였고 (디스)어셈블 해서 빈칸에 해당하는 인스트럭션 혹은 “??”로 되어있는 옵코드를 맞추면 된다.

unknown.png (523×332)

위 사진은 LEVEL 3까지 넘어와 옵코드를 맞추는 문제다. LEVEL 1, 2는 옵코드에 해당하는 인스트럭션을 맞추면 되는 문제였는데 급하게 해서 사진이 없다.

LEVEL 1, 2풀때 옆에 어셈블된 헥스 값 있는 지 모르고 머리로 대충 게싱해서 점수 올렸다.
e.g.) rdx, rsi 순으로 레지스터 설정한 후 빈칸 있고 call하면 rdi 셋하는 거 선택… 이런식으로 초반에 빈집털이에 성공했다.

Screen Shot 2018-08-16 at 1.10.47 AM.jpg

이후에 스크립트를 아주 잘짠,, 고수 형님들에게 처참하게 털렸다. (PPP, DEFKOR00T, Sauercloud, 등..)

pointless

내 기억상 가장 처음 나온 어택 디펜스 문제다. 첫날 대회장에선 reverse 코드 짜고 있었기도 했고, 손도 못대고 있다가 호텔가서 풀었다. 그런 이유는 여러가지가 있었는데,,

  1. mips 어셈 처음봄
  2. 대회장 너무 추움
  3. 우리 테이블 앞에 큰 스피커 있는데 자꾸 이상한 소리나오는 영상 틀어줌

위 3가지 이유 덕분에 멀미 나서 토할 것 같았다 리얼루.. 아무튼 분석하면 매우 간단한? 프로그램인데..

  1. DH를 4겹으로 한 후(RSA -> AES -> AES -> AES) 메뉴에 접근할 수 있다.
  2. 메뉴에 memcpy stack overflow를 발생시키는 함수가 있고 stack leak도 가능하다.
  3. NX가 없기에 offset 맞춰준 후 스택으로 점프하면 된다.

이제 여기서 부터 문제가 발생했다. 딱 1일차 밤에 완성시키고 2일차에 싱글벙글 하며 갔는데, 본선장에 도착하니 네트워크가 DoS 맞고 있었나,, 뭐래나.. 연결이 좀 왔다갔다 하니깐 끊기는 거다.. 결국 이건 나중에 가서 고쳐졌는데 똑같이 거의 안됐다. 그래서 OOO도  서비스 완전히 내려버렸다 ^___^ 화나고 이해가 안되는건 서비스 완전히 내려버리기 전에 잠깐 maintenance 하는 시간이 있었는데 이때 서비스가 KingOfTheHill 1문제와 Attack/Defense(pointless/풀리지 않은 문제)가 있었음에도 KingOfTheHill 라운드는 계속 올라가며 점수를 주고 있었다는 것이다. 이에 대한 어떠한 보상 및 사과는 이루어지지 않았다!!!!!!!!!! (ㅠㅠ)

~~bew~~

2019년 08월 14일. 기억이 안난다. zz
머 이상한 웹 익스였던걸로 기억. nodejs

~~pool~~

2019년 08월 14일. 기억이 안난다. zz
코인빼오는 거였나?

Defcon 27

올해는 민교랑 익스플로잇 프레임워크 개발에 좀 많은 시간을 썼다. 조만간 오픈소스를 통해 공개할 예정이다. 사실 다른 빌리지 CTF를 통해 블랙뱃지를 얻어보려고 했지만, 테이블에 앉고 정신차리니 밤이라 실패했다고 한다 ㅠ_ㅠ. 작년에 가고싶었던 LA 여행은 성공적으로 했다고 한다. 지금 보스턴 가는 비행기 기다리면서 작성하고 있다.

telooogram

총 취약점 3개인 것 같은 2개가 있었다.

익스플로잇은 상대방의 avatar를 요청하는 기능으로 했다. file path를 전달하게 되는데 flag 를 넣게되면 플래그를 읽어서 해당 유저에게 보낸다.

두번째는 음성통화 기능에 존재하는 overflow다. 익스가 어려워 보여서 손절했다.

세번째는 unsafe한 deserialization을 하는데 이걸로 익스 어떻게 하는지 모르겠어서 손절했다.

아이폰 시뮬레이터 (홍보 차원에서?) 사용한 것 같았는데, 메세지를 폴링하는 방식이라 flag가 아닌 cred를 뺀 후 타 서버에서 (심지어 메시지 서버가 외부 접근이 되었음) 0.1초마다 크롤해주면 아무도 익스를 못하는 DoS 공격이 되어버린다.

어느 시점이후로 플래그가 몇개 안오길래 열심히 새로고침 시켜줬다 ㅋㅋ

aoool

태양이가 열심히 파서를 분석했다. 첫날만 열심히 하고 침대에서 뒹굴 메타를 시전해버렸기 때문에 안하다가 ELF 바이너리 인것 보고 잠깐 하기로 했다. 익스플로잇을 하나 작성해갔지만 정상적으로 작동이 되지 않고 계속해서 공격받고 있었다. 띵킹을 좀 하다가 ELF니깐 셀프바이너리 패치를 하고나서 uploads폴더에 올라간 익스플로잇을 빼오자는 생각을 했다. JUNO를 입력하면 쉘을 띄워주고 그 외엔 모두 정상 path를 타게해서 SLA 체크를 통과시켰다. 그 후 익스빼서 잘 돌렸다 슝슝

jtaste

셋째날 역시 침대에서 뒹굴대고 있었는데 다훈이형의 채찍질로 일어나서 풀었다. 이상하게 내 컴퓨터가 라우팅 설정이 잘못되어 있어가지구 VPN을 붙어도 접속이 안되었다. 그래서 코드만 보고 테스트 없이 익스플로잇을 작성했는데 바로 되었다고 한다. 그렇게 퍼스트블러드를 ~~~~~~~~~ ~! ~! ~! ~!~~!

P.S.

내년에는 ㅡ블랙뱃지를 받을 수 있도록 다른 전략을 세워봐야겠다. (i.e. 빌리지로 도망zz)

metatron-discovery security review speed run

서론

7월 26일 슬랙에 특성 회사 Github 저장소에 스타를 누를경우 선착순으로 경품을 준다는 메시지가 올라왔다. “처음엔 뭔 이런 이벤트가 다있지?” 하는 마음에 넘어갔지만 며칠 뒤 아래 게시글을 통해 사건의 발단되었다.

ㅋㅋㅋㅋ 그냥 웃고 넘어가려고 했는데 회사 슬랙에 @wooeong이 메시지를 보냈다.

링크를 눌러보니 이 프로젝트의 코드 퀄리티를 대충이나마 짐작할 수 있었다.

와!!!!!!!!!! (Command Injection?)

몇 개월동안 블로그를 방치해두기도 했고 빠르게 작성할 수 있을 것 같아 저녁시간을 이용해서 @wooeong과 함께 speed-run을 진행하고 그 결과를 쉐어해기로 했다. speed-run은 매년 Power Of Community라는 infosec conference에서 우리 회사가 진행하는 해킹 이벤트다. 주어진 짧은 시간(보통 10분~15분)에 해킹 문제를 풀면된다. 해킹이 생소하신 개발자분들은 해커톤 느낌으로다가 생각해주시면 될 것 같다.

우선 저장소에 나와있는 순서대로 빌드부터 해보기로 했다.

빌드가 되긴 한다…

국산 오픈소스 프로젝트의 국룰을 어기고 빌드가 성공적으로 진행된다. 다만 아래 사진처럼 철지난 npm 패키지들을 무수히 사용해 48개의 취약점이 발견되었다. 확인 해보지는 않았지만 regex DoS라던지 XSS 던지 하는 것들이 있을 것 같다.

실행하고 싶어요..

conf에 대한 예제가 있는데 이걸 어떻게 인자로 넣어야 하는지에 대한 설명은 readme 어느 곳에도 없었다. 깔끔하게 손절하려고 하던 순간, https://metatron.app/download/guide_vm/ vm image로 제공해준다.

[metatron@localhost ~]$ cat how_to_get_latest_binaries 
wget https://sktmetatronkrsouthshared.blob.core.windows.net/metatron-public/discovery-dist/latest/druid-0.9.1-latest-hadoop-2.7.3-bin.tar.gz

wget https://sktmetatronkrsouthshared.blob.core.windows.net/metatron-public/discovery-dist/latest/metatron-discovery-latest-bin.tar.gz
[metatron@localhost ~]$ 

홈 디렉토리에 저런 파일이 있다. get하는 방법만 알려주고 run하는 방법은 어디에도 나와있지 않기 때문에 실제 데모페이지가 돌아가고 있는 3.2.6 버전으로 audit을 하기로 했다. 블랙/화이트 박스 테스팅을 모두 진행하였고 전체의 아키텍쳐를 이해하지 않은 상태에서 간단한 스트링서치로만 audit을 진행했다. 한 버그클래스에 여러 버그 케이스가 존재하는 경우는 대표적인 것 하나만 작성했다. 아래는 speed-run을 통해 발견된 취약점들이다.

취약점

IDOR (Insecure Direct Object Reference)

대부분의 엔드포인트에서 권한 분리가 제대로 적용되어있지 않다. 펜딩 멤버와 같이 어드민만 볼 수 있는 API를 호출하는 것이 가능하다. 어드민 덧글을 게스트 유저가 수정해보겠다. 참고로 게스트는 다른 덧글을 수정할 수 있는 권한이 없다. (많은 엔드포인트에서 비슷한 취약점이 발생한다.)

Guest Token
Admin이 작성한 덧글 수정 요청
수정 완료

Arbitrary File Read + Path traversal

확장자 체크없이 인풋 받은 path를 그대로 읽어 출력해준다. 이쯤되면 “기능인가?” 의심해볼 필요가 있다.

SSRF

Host / Port 그리고 GET Parameter 조작이 가능하다.

Default username/password

metatron에서 호스팅해주는 데모 서버에 VM이미지를 받았을 때 존재하는 계정 정보로 로그인이 가능하다. (원래는 pending state를 거쳐야 함) — https://discovery.metatron.app/(polaris / polaris)

결론

전체적으로 코드가 많이 난잡하다. (지금 졸려서 내 글도 난잡한 것 같다.) 잠재적인 취약점이 많이 보이는데 회사일도 아니고 시간 도 없어서 말을 줄이겠다. 빅데이터 관련된 지식에 문외한이라 뭘 하는 프로그램인지는 모르겠지만 뭔가 좋은 것 같다. 이것저것 눌러보니 비주얼라이징이 이쁘게 된다. (한국) 기업치고 자사 프로덕트를 오픈소스하기 까지 쉽지 않았을텐데 코드 퀄리티를 떠나서 이 점은 칭찬하고 싶다. 다만 Github Star를 돈으로 산 행위는 이해할 수 없다. ㅋ.ㅋ

https://github.com/metatron-app/metatron-discovery/blob/f019b72a69e1713e38b5e958daf2b0919b7a5d77/discovery-server/src/main/java/app/metatron/discovery/domain/dataprep/PrepDatasetStagingDbService.java#L248-L249

오픈소스를 마음 먹었으면 이런 주석정도는 지울 수 있지 않나..

업데이트

[13:35 30-Jul-19] Github issue를 통해 오픈소스 메인테이너에게 리포트 ( https://github.com/metatron-app/metatron-discovery/issues/2406 )

아르테미스

작년 10월, 버스 기다리다 교보문고에 들렸다. “달에 사는 수학 천재의 기발한 범죄 프로젝트”라고 써져있는 책 한권이 내 눈길을 끌었고 구매했다. 아무래도 소설이다 보니 우선순위에서 미루어져 있다가, 일이 많아져 가볍게 읽을 수 있는 책을 찾다 요 며칠 읽게되었다.

영화 마션의 원작 소설을 쓴 엔디 위어가 새롭게 내놓은 먼 미래에 달 나라에서 일어나는 범죄 프로젝트 소설이다. 여기까지만 들어도 오션스 시리즈가 생각난다. 비행기에서 오션스 시리즈를 처음 접하고 진짜 재밌는 영화라고 생각했다. 그래서인지 술술 읽혔다.

뭐, 돈 때문에 산소 공급 체계를 부수는 범죄를 계획하고 수행하는 과정 중 범죄 조직에 연루되어 고난을 겪다 결국 성공하는 그런 내용이다. 시시한 주제일지 몰라도 “달에서” 일어난다는 점이 흥미로웠다.

인류를 지구가 아닌 다른 곳에서 살게 한다는 건 아마 모든 사람의 희망이자 꿈일거다. 몇 달전 스페이스x 팰콘 해비가 랜딩하는거 보고 머지않아 현실이 될 수 있을 것 같았다. 준비되었을 때 떠날 수 있게 열심히 일하러 가야겠다.

2019년 첫 글, 폐관 수련 후기

2018년 12월 26일 부터 2019년 01월 12일 까지 나는 베트남에서 폐관수련을 했다. 숙소에서 공부와 업무를 동시에 진행하면서 느낀점을 써보려고 한다.

왜 베트남이었는가? — 위 글에도 나와있지만 처음 선택지는 뉴질랜드였다. 하지만 예산과의 타협과 11월에 좋은 추억도 있어 베트남으로 선택하게 되었다. (맥북 빼면 시체인 디지털 노마드)

나라를 정하고나서 일정을 계획해야 했다. 나는 같이가는 형과 함께 현대카드 트래블 팩토리에서 책도 보고 프리비아 상담도 받았다. (https://haggish00.blog.me/220933421469) 압구정 로데오 쪽에 있는데 여행 책이 엄청 많고! 무엇보다도 바로 일정이나 비행기등을 상담받을 수 있어서 매우 만족했다.

그렇게 계획된 일정은?
12월 26일 ~ 12월 03일 하노이
12월 04일 ~ 12월 05일 한국 (회사 워크샵 덕분에 한국에 왔었다 잠깐.)
12월 05일 ~ 12월 07일 다낭
12월 08일 ~ 12월 17일 나트랑

계획할 때 나트랑이 그렇게 좋다는 말과 한달 날씨 예보를 보고 우기를 피해 잡다보니 일정을 길게 잡았다. 하지만 비는 그렇게 많이 오지 않았고 다낭이 더 좋았기에 아쉬움이 남는다. ㅜㅡㅜ

비용?

항공 비용은 현대카드 프리비아 여행을 통해 예약하였는데 발권 수수료를 제외하고 75,4900원+ 502,100원 = 1,257,000원이 들었다.
숙소 비용은 알아보니 현지 부동산에 가면 조금 더 싸게 구할 수 있다고 봤는데 사람 대하기 힘든 우리에겐 매우 험난한 작업이었다. 리스크를 줄이기 위해 그냥 돈을 더 내고 에어비엔비+호텔 예약 사이트를 이용하기로 했다. 122,408원 + 81,065원 + 125,212원 = 328,685원이 들었다. 1인당 비용인걸 감안해도 저렴하다고 생각한다.
그 외에 유심사고 보험들고 먹고 놀고 했던 비용은 합쳐서 대략 1,000,000원 정도 들었다고 생각한다. 아 아니다 환전도 했으니 300,000원 더하면 될 듯.
총합: 1,257,000원 + 328,685원 + 1,000,000원 + 300,000원 = 2,885,685원이 들었다고 할 수 있다.

목적 및 결과?
이번 수련의 목적은 v8을 완벽히 분석해서 취약점 찾자! 였다. 취약점을 못 찾은게 너무 한이 되지만 내부 동작 구조를 파싱부터 컴파일까지 어느 정도는 숙지할 수 있게 된 것 같다. 예상치 못한 업무가 01월 07일부터 시작되어서 대략 10일정도 집중할 수 있었다. 지금 생각해보니 10일 동안 한 것치고는 많은 성과가 나온 것 같아 기분이 매우 매우 좋다.
원래 계획은 코워킹 스페이스를 적극적으로 이용하려고 했는데 여행 아니면 집 밖 잘 안나가는 해커의 습성과 편안한 침대 덕분에 집에서 더 많이 했던 것 같다 ㅋㅋ. 하노이에서 한번 가본 코워킹 스페이스(moon-work)는 나름 괜찮았다. 점심 배달 서비스도 있어서 굳이 나가지 않아도 돈만 내면 뭐든 시켜줬다.

음식?
숙소비를 나름 최대한 줄였기 때문에 맛있는 것을 먹는데에 돈을 많이 썼다.

같이간 형은 인천에서 양주 사서 마치 알코올 홀릭처럼 마셨다 ㅋㅋ
쌀국수도 많이 먹었다.

저렴한 물가 덕분에 한국에선 10만원이 넘는 파인 다이닝 레스토랑 혹은 3-dish 코스요리등을 3-5만원 정도 선에서 먹을 수 있던 점이 가장 마음에 들었다.

요런거라 던지…

사진은 많아 여기에 다 올릴 수 없는게 참 아쉽다. ㅜㅜ

뉴이어 파티

우리 일정 중 새해가 포함되어 있어 뉴이어 파티를 가보았다. 인-싸들만 가는 파티라 10만원이라는 거금을 내고 들어갔다 ㅜㅜ 술 2개와 플래터가 포함되어있는 가격이었다. 사람들과 어올려 카운트 다운을 하니 나름 좋은 경험이었다. (ㅎㅁㅎ)

아저씨 포스로 사진 찍었다 ㅋㅋㅋ

 여행?
원래 여러가지 여행지를 정했는데 일하고 공부하느라 호이안 밖에 가지 못했다. 지금까지도 이어지고 있는 기관지염도 한몫했다. (나트랑 바다에서 수영하려고 수영복 챙겨왔는데 한번도 못했다 ㅜ)
호이안은 정말이지 한국 사람으로 넘쳐났다. 이쁜 거리와 좋은 야경때문에 사람이 많은 것 같았다. 반세오도 호이안에서 먹었다. 베트남 음식들은 라이스페이퍼에 싸먹는 음식이 엄청 많은데 난 귀찮았다.. 그래서 그냥 대충 슥슥해서 한입에 넣어버렸다.

고양이 머리띠도 사봤다 ㅎ.ㅎ

 마무리
여러가지 재미난 에피소드와 맛있는 음식이 더 많지만 더 이상 쓰기 귀찮으니,, 이만 마무리를 하도록 하겠다. 같이간 형님의 인스타그램에 우리가 먹었던 음식이며 그랩을 이용해 오토바이를 탔던 것들 이 남아있으니 궁금하면 들어가서 확인해보길 바란다. ㅎㅁㅎ (https://www.instagram.com/dohyeon.routine/) 마지막으로 같이 갔던 도현장에게 이 글을 바칩니다.

흐므흐흐ㅡㅁ흐ㅡ


새해 맞이 폐관 수련

중2병 걸린 제목 같지만, 어쨌든 계획하고 있다. 한국은 너무 추우니 따뜻한 나라에 박혀 소스코드를 보면서 버그 찾고,, 근본이 되는 압도적인 힘을 공부/정리하고 오려고 한다.

원래 처음 선택지는 뉴질랜드였다. 남반구에 있으니 뭐, 우리나라 겨울일 때 따뜻하다는 것은 누구나 아는 사실일테고. 좋은 공기는 덤. 폐관 수련 장소로 선택되지 못한 이유는 돈과 인터넷이었다.
금액적으로 너무나 비싼 숙소값 (물론 버그를 찾으면 땜빵할 수 있겠지만..). 적정선을 맞춰 숙소를 알아보니 인터넷이 안될 것만 같은.. 그런 곳들만 나왔다. ㅜㅡㅜ

결국 베트남을 골랐다. 11월에 CTF하러 하노이에 잠깐 다녀왔었는데 맛있는 음식도 많고 날씨는 덥지도 않고 선선하니 괜찮았었다. 다만 문제되는게 있다면 공기가 매우 좋지 못하다는 것이다 ㅜ. 이게 어떻게 작용할지는 모르겠지만 하노이만 있는 것은 아니니 상관 없을 것 같다.

[하노이 –> 다낭 (호이안) –> 나트랑] 일주일 씩 이동하면서 숙소/코워킹 스페이스에 박혀 공부하는게 일정이다. 각 주마다 목표치를 정해두고 해야할 것 같은데. 슬슬 정해야 겠다.

으아악 30세 은퇴 가능한거신가!?

건강한 보안 생태계 발전을 위해

트위터에서 워게임의 Write-Up 공유를 막은게 뉴비의 진입장벽을 높였는가?  라는 말이 나와 이것에 대해 이야기를 해보려고 한다. 내 생각이 옳은 것 만은 아니기 때문에 다양한 의견이 오갈 수 있으면 좋겠다. 밤새고 쓴 글이라 두서가 없고 글의 내용이 이해가 되지 않을 수 있습니다.

우선 보안/해킹 분야의 진입장벽은 높다. 아니, 높을 수 밖에 없는게 사실이다. 절대 자료가 부족해서가 아니다. 방대한 CS 기초 지식들을 바탕으로 어플리케이션 레벨에서 문제가 발생해 취약점이 생기는 것이기 때문이다. 심지어 최근들어 CTF에 하드웨어/수학과 관련된 지식을 요구하는 문제들도 나온다. 그래서 뉴비들이 힘겨워 하는게 당연하다. 다만 우리가 공부하면서 겪었던 시행 착오들을 줄일 수 있게 도와주는게 맞지 않을까. 옛날에 아무것도 없는 상태에서 해킹했던 사람들이 정리해둔 것을 보며 도움을 받았던 것 처럼.

Screen Shot 2018-11-07 at 5.22.57 AM

문제를 풀때 가장 풀이가 보고 싶어질 때는 코드를 보고 보아도 아무것도 생각나지도 뭘 해야할지도 모르겠을때다. 하지만 대부분의 경우는 CS 베이스 지식들을 무시하고 문제를 풀게 해달라!! 하는 것이라 그렇다. 이건 당연하게도 도둑놈 심보라고 생각된다. 무언가 문제를 풀 때 도저히 갈피가 안잡히면 문제에 나온 함수들이나 코드들이 한줄 한줄 실제로 어떻게 동작하는지, 기능을 다르게 구현할 수 있을텐데 왜 이런 로직을 썼는지, a부터 z까지 완벽하게 알아볼 필요가 있다. 만약 그래도 모르겠다면 낮은 난이도의 문제를 찾아 풀어보는게 어떨까.

출제자가 풀이 공유를 금지시킨 이유는 “출제자가 생각못한 의도치 않은 풀이를 얻기 위함” 인 것 같다. 당연하게도 해당 문제에 대한 풀이를 한번 본 사람은 생각을 편협적으로 할 수 밖에 없다. CTF를 풀 때도 안풀리는 문제를 다른 팀원에게 받으면 일부만 알려달라고 한다. 그 사람 생각을 그대로 받고 다시 분석하게 되면 그냥 그 팀원 생각대로 분석할 뿐이다. 그럼 문제를 못 푼다. 따라서 챌린징한 워게임 문제에 대해선 풀이 공유를 금지하는게 합당하다.

문제 풀이자 입장에서 보았을 때도 흔히 말하는 “삽질”을 통해 배우는게 엄청 많다. 기본적으로 삽질은 내가 모르는 부분을 하기 때문에, 강제로 학습 당해버린다. 뭐 다른 관점에서 보면 가성비가 안좋다고 느낄 수 있지만 난 문제 풀이 과정의 일부분이라 생각한다.

물론 내가 그 문제를 풀었을땐 다른 사람들이 어떻게 풀었는지 알 권리는 줘야한다. (pwnable.kr, pwnable.tw)는 문제를 풀면  다른 사람 풀이를 확인할 수 있다. 그렇게 해서 많은 방법들이 나왔을 때 삽질했던 시행 착오들을 모아서 how2heap처럼 정리하면 아주 좋을 것이다. 다만 이런 시행착오들을 아무런 댓가 없이 습득해버리게 되면 결국 잡기술만 늘게 된다. 잡기술이 되는 근본적인 원인을 찾고 이해해야 다른거에도 적용을 시킬텐데, 대부분의 사람들은 그렇지 않는다. 기초 과학은 중요시 하면서 왜 CS를 깡그리 무시한체 문제 푸는거에만 집중을 할까..

트위터에서 이슈가 됐던건 pwnable.kr의 풀이 공유 금지 룰 때문이다. 한가지 집고 넘어가야 할것이 나는 절대 pwnable.kr이 뉴비를 위한 입문용 워게임이라고 생각하지 않는다. CS 및 해킹의 기초 지식, 즉 베이스가 탄탄한 상태에서 다양한 시각을 가져야만 풀 수 있게 의도된 문제들이 많다. 그러니깐 제발 ftz, lob, overthewire로 무얼 원하는건지 좀 알고 시작했으면 좋겠다 !! 찾아보니 요즘은 pwnable.kr 라이트업도 공개로 많이 올라와 있다. 심지어 유튜브 영상도 있다. (https://www.youtube.com/watch?v=rcnnyJW8qXo)

예전보다는 뉴비들이 입문용으로 배울 수 있는 레퍼런스들은 매우 많이 생겼다. 다만 그 자료들의 수준이 매우 얕고 강의가 시작은 하지만 끝나는 경우가 없다.

그럼 왜 사람들은 자신이 겪었던 시행 착오를 모아둔 “제대로된 정보“를 공유하거나 로드맵을 그려줄 무언가를 만들지 않는가? 난 여기에 몇가지 이유가 있다고 생각한다.

첫째, 금전적인 이익으로 귀결되기 때문이다. 금융공학이 학문적으로 발전할 수 없는 가장 큰 이유는 간단하다. 학문적으로 발전 시킬 무언가는 곧 바로 금전적인 이익으로 귀결되기 때문에 논문을 내거나 하지 않는다. (논문을 내는 순간 모든 사람이 정보를 알기 때문) 보안도 마찬가지이다. 뉴비들을 위한 스텝 바이 스텝은 기업 강의 자료로 만들어 진다. 보안을 취미로 하지 않는 이상 남들에게 떠먹여 주는 자료를 만들며 봉사하긴 힘들다.

둘째, 한국 사회의 교육 및 평가 체계 문제라고 생각한다. 눈에 보이는것만 인정해주는 그런 문화, 팀 대회를 우승 했어도 하나의 문제를 풀 때 얼마나 많은 컨트리뷰션을 했느냐 보다는 그냥 몇 문제를 더 풀었냐로 외부 에서 평가를 하다보니 내부에서도 경쟁이 생길 수 밖에 없다. 청소년 시절, 즉 불과 1-2년전만 해도 이런거에 엄청 신경썼다. 그때는 1-2년의 결과가 인생의 전부라고 생각했기 때문. 그러다 보니 팀 내부에서도 경쟁을 할 수 밖에 없다. 함께 하면 더 빨리 풀 문제를 2N+a 보다 더 많은 시간을 쏟았다. 뭐 하튼 자기들 끼리도 경쟁하는데 뉴비에게 신경 쓸 여유가 있나.

 셋째, 잡지식으로 이루어진 상태라 트렌드를 따라가지 못하거나 잠깐 여유를 가지면 실력의 갭이 엄청나게 난다. 나를 포함해서 (ㅠㅠ) 기초가 제대로 되어있지 않은 상태에서 얻은 잡지식을 바탕으로 문제를 풀다보니 새로 나온 기술들이나 트렌드를 빠르게 읽지 못하면 CTF 씬에서 살아남기 힘들다. 뉴비를 챙겨줄 만한 여유가 없지 않나 싶다. 나중에 여유가 생겼다고 해도 대박친 ICO 대표들 처럼 놀고 먹을 가능성이 농후하기 때문.

그렇다면 단순히 모든 문제에 대한 라이트업을 공개한다고 해서 해결될 문제인가? 나는 아니라고 생각한다. 일단 라이트업들이 뉴비들에게 친절하지 않을 뿐더러 문제 풀이자도 뉴비를 대상으로 라이트업을 쓰지 않는 경우가 많다. 그럼 결국 원론적인 이유를 이해하지 못하고 그냥 이렇게 이렇게 해서 이렇게 되는구나... 하고 마는 경우가 많다. 그러니까 결국 뉴비들을 위해 계단을 놓아줄 무언가가 필요하다. 그게 교육 솔루션이 되었든, 오픈 커뮤니티가 되었든 반드시 뭔가 하나는 필요하다.

그럼 라이트업이나 로드맵 처럼 뉴비들도 알아먹을 수 있게 문서를 잘 써서 공개하면 어떤 일이 일어날까?  how2heap을 살펴보면 몇 년동안 자신들 만의 리그에서 공유되던 ptmalloc exploit 기법들이 한번에 공개되었다. 이를 통해 많은 사람들이 힙 익스플로잇에 익숙해졌고, “평균적으로” ptmalloc 구조를 이해하려고 하는 사람들이 많아졌다. 그 사람들에 의해서 새로운 힙 익스플로잇 테크닉도 많이 발견 되었다.

궁극적으로 계단을 놓아줄 수 있는 상황이 온다면 보안하는 사람들이 많아질테고 그러면 어중이 떠중이들이 없어져 각 개인이 먹을 수 있는 파이의 조각이 많아질 것이다. (난 절대 이 분야가 파이가 작다고 생각하지 않는다. 다만 개인의 실력에 따라 먹을 수 있는 파이 조각의 갯수에 리밋이 있을 뿐.) 또 실력 자체가 상향 평준화 돼서 좀 더 건강한 보안 생태계가 될 듯 하다.

 이런 상황이 오기 전까지는 제발 질문좀 했으면 좋겠다. 우리나라 사람들 종특인지 모르겠지만 발표 끝나고 질문을 부탁할 때 안하고 꼭 끝나고 와서 개인적으로 물어보더라. 모르는게 부끄러운게 아니라고 생각한다. 해커들이 사이코패스도 아니고 물어보는데 “화이팅 ^^7” 이런 사람들은 없다..

Screen Shot 2018-11-07 at 12.00.52 PM.PNG
챌린징한 문제들. 물어보면 잘 알려줍니다.

마지막으로 코딩 교육에 돈 쏟아 붓는 만큼 보안 교육에 돈 좀 잘 썼으면 좋겠다. 막 이상한거 만들지 말고.. 본질적인걸 보고 뭐가 필요 한지 찾아야 하는데 자기들 성과내기 급급하니깐 ㅋㅋ 이상한 대회 만들고 ㅎㅁㅎ

Screen Shot 2018-11-07 at 12.45.41 PM
현실

 

이다훈, 김용진, 이태양, 김낙현과 함께 나눈 의견을 바탕으로 작성 되었습니다.
감사합니당.
글에 나온 제 의견은 제가 속한 조직과 위 분들을 대표하는게 아닌 개인적인 생각입니다.

맥 카카오톡 이미지 클립보드 붙여넣기가 안될때 해결

장장 3개월을 몰라서 포맷할까? 생각도 하고,, 엄청난 삽질을 했었다. 문제는 다음과 같다.

CMD + SHIFT 3, 4 + CTRL 을 통해 이미지를 클립보드에 저장하고 카카오톡에 붙여넣기를 하면 정상적으로 되질 않는다. 파일로 저장한 후 복사/붙여넣기 할때는 제대로 된다.

이유를 몰라 엄청 헤맸었는데 이유를 찾았다. 어떻게 찾았는지가 더 재밌는데 어제 자기전 상상속에서 생각을 하다가 CTF문제를 풀기위해 맥 스크린샷 포맷을 JPEG로 바꾼 것이 생각났다. 분명 비슷한 시기에 클립보드 붙여넣기가 안된거 같고. 이때 슬랙이나 다른 메신저로 붙여넣기는 정상적으로 되었다.. 하여튼 포맷을 PNG로 바꾸니깐 다시 잘 된다! 행복!

defaults write com.apple.screencapture type PNG

터미널에 위 명렁어를 치면 된다..

Screen Shot 2018-10-03 at 3.39.03 AM.PNG
근데 워드프레스는 붙여넣기가 안되네, 안습..