int $0x80

슬럼프 극복을 위한 연구 재개 본문

프로젝트/머신러닝을 이용한 프로그램 자동 분석 및 취약점 자동 검출

슬럼프 극복을 위한 연구 재개

cd80 cd80 2019. 10. 19. 20:53

이 블로그를 남에게 줄때 가장 부끄러운것중 하나는 내 신세한탄 비슷한것들을 너무 많이 늘어놨고

뭔가 대단한것이라도 되는것처럼 생각하고 남들을 지적해놓고는 똑같은 문제를 나도 갖고있다

그래도 생각을 정리하고 앞으로를 계획하기에는 이런 글쓰기만한것이 없기 때문에, 그리고 이렇게 공개적으로 글쓰는 것에 깔려있는 과시욕은 내 큰 동기가 된다고 생각하기 때문에 나는 오늘도 흑역사를 생성한다

 

18살때부터 가장 열성적으로 팠고 내 모든시간을 쏟아부어도 재밌었던것이 취약점 분석 자동화였다

2015년에 회사를 다니기 시작하면서 내 앞에는 수없이 많은(사실 세보면 9가지 정도 되는) 분야가 놓여져 있었다.

예를들어 CTF, 브라우져, 리더류(어도비, 한글, 곰플등), 머신러닝, 수학, 과학, 기타 여러가지 인문분야

 

돌이켜보면 고등학교때까지 공부를 참 열심히했다.

뉴질랜드에있을때는 ROP 하나를 이해해보겠다고 매일 9시간씩 반년 내내 공부하고 디버깅하고 연구했다(2012년은 ROP가 나온지 얼마 안된, 극강의 공격기법이라고 여겨질때였다)

뉴질랜드에서 돌아와서 고등학교 입학한후부터는 약 8개월간 공백기가 있었지만 이때문에 자퇴를 결심할정도로 해킹에 열정이 있었고

자퇴후엔 잠깐 자유를 만끽하느라 롤에 빠졌지만 어느순간 정신차리고 비오비를 들어가기 위한 실력향상에 매진했었다

비오비에 들어가서도 왠만한 강의를 모두 이해하려고 노력했고 과제도 모두 제출했었다(퀄리티는 낮지만 - 실제로 객관적으로 낮다)

비오비가 끝나고나서도 해킹공부를 놓을 수 없어 대학교와 해킹실력에서 해킹실력을 골랐다. 사실 대학교를 갔었다면 좀더 실력이 탄탄해졌을수도 있을까 싶기도하다. 나는 그때당시 학교보단 회사에서 배우는게 더 많을것이라 판단했었다

 

그정도로 열의있게 공부하다가 어느순간 나는 실력향상을 포기했다. 

그 원인에 대해서 오늘 오래 고민했다. 나라는 사람이 옛날의 나에서 지금의 나로 변하기까지 무슨일들이 있었고 무슨 고민과 무슨 선택을 했었는가를 고민했다.

여러가지 있겠지만 실력만 놓고 보자면 나는 취약점 찾는것을 자동화하겠다는 목표에 아주 깊이 빠져들어 공부했었다

그것때문에 수개의 타겟을 열심히 파는 버그헌팅을 멸시하고 경시했었다

그도 그럴게 이상적으로 놓고보면, 이상적인 자동화는 이상적인 수동화보다 거의 언제나 좋다

 

이상의 비교에서 나는 자동화'만' 파겠다는 결심을 했고 그 이상을 향해 가는 과정에서 현실적인 벽들을 몇개 발견했다

1. 프로그램을 자동으로 분석하는게 꽤 어렵다

2. '취약점' 이라는 것을 특정하기 어렵다

3. 머신러닝이라는 궁극으로 보이는 분야를 이해하기가 불가능했다(머신러닝을 설명하는 수식을 이해할 수 없었다)

4. 참고할만한 좋은 연구가 없었다(2015년 말까지의 기준임), 내 기준으로 가장 좋은 연구는 fabian yamaguchi의 연구와 patrice godefroid의 연구였다

 

위의 벽들을 마주하고 포기한건 당연히 아니다 해결하는 과정에서 지쳤었다

1. 수학 공부를 시작했다, 근데 수학공부는 생각보다 비실용적으로 보이는것들을 많이 공부해야했다. 내가 느끼기에 내가 내 목표에 도달하기 위해서는 비실용85+실용15가 섞여있는것을 공부해야 했다. 여기서 되게 많이 지쳤다

2. 취약점을 특정하기 위한 많은 고민을 했지만 이를 우회하는 방식을 택했다. 그것은 바로 취약점이 있는 코드를 찾는것이 아닌, 경험적으로 취약점이 있는것처럼 보이는 코드를 찾는것이었다 참고

2-1. 그럼 여기서 더 나아가면 되지 않느냐? 할 수 있는데 사실 틀린말은 아니다. 하지만 이때는 내 욕심에 사로잡혀있었다

2-2. 그 욕심은 바로 런타임정보까지 유추할 수 있게 하는, 그러니까 코드의 형태와 코드사이의 관계뿐만 아니라 오가는 데이터의 종류와 배치까지 이해하는 프로그램을 만들고싶었다

 

 

여러번의 실패를 겪기는 했지만 내가 가장 재미를 느끼는 분야인만큼 한번 다시 뚫을수있는만큼 최대한 뚫어보려고 한다

며칠간은 논문리뷰만 주구장창 올릴것같다

와! 논문 찾아보고있는데 분명 2015년 후반에 내가 마지막으로 연구할땐 논문이 많아봐야 10개내외였는데 지금은 쏟아진다

정말 한동안 논문만 다봐야겠다

0 Comments
댓글쓰기 폼