새해 맞이 폐관 수련

중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
현실

 

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

2018년의 절반하고도 한참을 지나서.

내일 CCE 예선 한다 ! 사실 그래서 잠이 안오는지 모르겠지만 요즘 인생 현타를 연쇄적으로 겪어 2018년을 다시 되돌아보려고 한다. 뭐, 얼마 남지도 않았구.

3월에 몇가지 적어둔게 있었다,, 지금 까지 얼마나 지켰고 또 못 지켰다면 프로그레스는 어느정도 인지 확인해보며 내 자신을 돌아볼 필요가 있을 것 같았다.

  1. 음주 조절하면서 하기.
  2. 한달에 한번씩 꼭 시간내서 여행 가기
  3. 나쁜말 쓰지 않기
  4. 브라우저 취약점 찾기
  5. 커널 취약점 찾기
  6. 컨퍼런스 CFP 제출해보기
  7. 30억 모으기

1번 부터 돌아보자, 분명 3월까지 망나니 인생에서 벗어난게 나의 의지였는지 아니면 단지 회사일이 바빴기 때문인지는 알 수 없지만, 술병걸려 고생한 기억은 없다.
뭐, 나름 만족한다. 나도 맛있는 술만 먹으려고 했고. 젤 걱정인건 접때 포항 내려가서 친구 만났을때, 한병 마시고 정신이 어질어질 했던 거다.. (이때 많은 민폐를 끼쳤다. 죄송합니다.)

— 워낙 감성이 예민한터라 알코올의 힘과, 새벽의 그,, 기운이 합쳐지면 주체를 못한다. 작은거에도 반응하고 피해의식도 갑자기 생겨지고 그러는 것 같다. 알면서도 주의 못하는게 아직 나이를 덜 먹어서 그런 것 같기두.. 시간 지나면 괜찮아질거라고 믿고 있다.


한달에 한번씩 시간내서 여행가기, 일반인 // 사무직 이라면 쉽지 않은 약속이다. 나는 자의 반 타의 반으로 한달에 한번씩은 여행을 갔던 것 같다. 잠깐이나마 쉴 수 있고, 새로운 경험과 사람을 만날 수 있는 기회였던 것 같다.

3월엔 커여운 다훈장과 오키나와 그리고 싱가폴을 함께 갔다. 싱가폴은 비오비에서 갔는데,, 머 나름 재밌었다. 칠리크랩이 정말 맛있었다. 블랙햇 컨퍼런스에 초점이 맞춰있다보니 (사실 놀러간것도 아니고) 여행을 하루밖에 할 수 없어 좀 아쉬웠다.

4월은 도연찡 만나러 다훈장과 부산 가서 잼께 놀았다. 원래 입사전에 어디 좀 박혀서 폐관수련 하려고 했지만 예정보다 (?) 일찍 들어가서 실패했다 ㅜㅡㅜ

5월은 뭐했지, 아마 대전의 달이었던 것 같다. 대전에 거의 살았다고 해야 되나 후..

6월엔 …

7월 8월 9월이 젤 많이 돌아 다녔네..

여름 휴가는 7월 말부터 8월 초까지 아부지랑 스페인 / 포르투갈 다녀왔고 (행복해따), 후 인생의 연인을 만날 수 있었는데 용기가 부족해서 말 몇마디 못걸었다 ㅜㅜ

데프콘 다녀와서 열심히 일하고.. HITB 갔다. 싱가폴 또 갔다. 이번엔 NSHC 다니시는 분이 열심히 서포트 해주셔서 재밌게 여행도 할 수 있었다.

그리고 9월.. 열심히 일만하려고 했지만, 좋은 트레이닝 // 컨퍼런스가 있어 하나 듣고 왔다. 이후에 취약점 찾는거에 대한 생각이 좀 생겨서 좋았다.


3번. “나쁜말 쓰지 않기”다. 불가능하다. 사람은 안변한다. 못한다. ㅠㅠ 컴퓨터 하면 힘들고 짜증나는 순간들이 너무 많아서 이를 소화 시키기 힘들다.. 누군가 정답을 안다면 알려주면 좋겠다.


4번. 비밀이다


5번. 비밀이다

비밀인건 절대 쓸말이 없고 귀찮아서가 아니다 !

6번. 음, 아직 낼만한 주제도 없고.. 사실 자신감이 없다. 우리가 프로젝트 한 이후로 다른 팀들에서 훨씬 좋은 성과를 많이 냈기에.. 유럽에도 냈다고 하시는데,, ㅠㅠ 자신이 없다 으으으

것보다 세한이형의 빈자리를 채우러 코드엔진가서 발표를 했다. 좋은 경험이었다. 분명 한정된 시간내에 내 모든 정보를 말하려고 하다보니 시간이 금방 갔다.. 다음엔 조금 더 잘 준비해야 될 것 같다 !

음, 코드엔진 덕분에 엠티도 가게되어서 날 이 자리까지 오게 한? 시발점인.. 누나를 만났다. 호에엥 신기하고 뭔가 고맙기도 하고 후.. 그냥 공부나 할껄이라는 후회도 밀려왔다.

7번. 고럼고럼 사람은 꿈을 크게 가지는게 좋은 것 같다 ~~~~


종합적으로 보면 뭔가 열심히 산 것 같은데, 나를 되돌아보는 시간이 부족했던 것 같다. 뭘 할지 시간표를 구상해보고 살아야 된다.. 너무 살도 쪄서 운동도 으쌰으쌰 해봐야 겠다 !

하ㅏㅏㅏㅏㅏㅏㅏㅏㅏ~~~~~~~ 즐겁다 ~~~~~~~~