본문 바로가기

해킹

버그바운티를 시작하고 싶다면, 팁 몇가지

버그바운티는 쉽게 말해서 해킹할 수 있는 방법(취약점)을 찾아서 신고하는 것을 말합니다.

취약점을 찾는 것이 재밌기도 하고 돈도 벌 수 있는 수단이되기 때문에 많은 분들이 하고 있다고 생각합니다. 

이 글을 쓰는 이유는 버그바운티를 시작하고 싶은 분들에게 작은 팁이라도 드리기 위해 작성합니다.  

 

먼저 저는 이 글을 쓰는 시점에 취약점 분석을 시작한지 5개월이 되었고 

미신고 취약점을 포함해서 8건의 취약점을 가지고 있습니다. 일단 1분기 포상 인증합니다. 

생각보다 상금이 많이 나옵니다. 단점은 분기별로 포상금이 나오기 때문에 몇 개월간 기다려야한다는게 단점이죠

그래서 회사를 다니면서 주말이나 퇴근 이후에 취약점 분석해서 신고하면 연봉이 뻥튀기 되실겁니다.ㅋㅋ 

 

잡담은 이제 그만하고 첫번째 저의 팁은 가능한 빨리 취약점 신고를 해라 입니다.

소프트웨어 취약점의 재미있는 점은 동일한 취약점이 대부분의 소프트웨어에서 동일하게 나온다는 점입니다. 

저도 이 부분은 좀 의아한데 한명의 개발자가 개발한 것도 아니고 많은 개발자가 같은 실수를 한다는 것이 

공격자의 입장에서는 정말 큰 이점이 아닐 수 없습니다. 

위에서도 말씀드렸다시피 지금까지 8건의 취약점을 찾았습니다. 그 중 6건이 동일한 취약점을 가지고 있었습니다. 

 

두번째 팁은 해킹대회의 포너블분야는 그렇게 많은 도움이되지 않습니다. 다른 분야는 해본적이 없어서 잘 모르겠네요 

포너블 문제를 풀면 EIP를 변조하고 쉘코드를 올려서 코드실행을 하는게 목적인데, 현실세계에서는 EIP를 변조할 수 있어도 ASLR이 걸려있어서 코드실행까지 도달할 수 없는 경우가 굉장히 많습니다. 

그렇다고 메모리 릭을 낸다면 가능하겠지만, 오버플로우같은 취약점도 희귀한데다

릭을 내고 EIP변조를해서 코드실행할 수 있는 상황도 많이 안나옵니다.

 

그래저 만약 포너블과 리버싱을 선택한다면 차라리 리버싱을 먼저 하라고 말씀드리고 싶습니다. 

취약점을 찾기 위해 프로그램 분석은 필수 입니다. 과연 얼마나 프로그램 분석없이 취약점을 찾을 수 있을까요?

 

팁은 여기까지이고, 최근에 제가 느낀점을 말씀드리면 

현재 KISA에서는 사용자PC에 설치되는 소프트웨어에 대한 취약점만 신고를 받고 있지만,

제 개인적인 의견으로는 조만간 웹 취약점들도 신고를 받을 것으로 보입니다. 그 예로 네이버를 들 수 있겠죠. 

현재 네이버는 몇몇 사이트에 대해 웹 취약점 신고를 받고 있습니다. 

 

그리고 이것도 제 개인적인 의견입니다만,사용자PC에 설치되는 프로그램의 취약점은 곧 사라지거나,

존재해도 로컬상에서만 취약점이 발생하는 정도에서만 존재할 것으로 생각합니다. 

이유는 위에서 말씀드렸다시피 동일한 취약점이 대부분 소프트웨어에서 발생하는 것을 발견하고 

그것들이 패치되고, 개발자들이 인지하고 개발한다면

결과적으로 취약점들이 모두 사라지거나, 로컬상에서만 취약점이 존재할거라 봅니다. 

 

그래서 만약 미래에도 버그바운티를 하고싶다면, 웹해킹은 기본으로 깔고

리버싱을하거나, 포너블을 하시기 바랍니다.