🔥[새 기능 안내] 로드맵 기능 오픈

가볍게 시작하는 취미로 해킹

포함된 강좌수: 5개

마지막 업데이트: 2019.07.15

매니저 짱돌
만든 사람 매니저 짱돌
다른 로드맵

여러분은 해킹이 무엇이라고 생각하시나요?

관련하여, 이야기를 하나 들려드리겠습니다.

 

 

개발자가 생각한 프로그램

 

 

실제 완성된 프로그램

 

버  그

프로그램의 버그는 평생 개발자를 따라다니며 괴롭히는데, 이는 곧 운명임을 알게 됩니다.
개발자가 아무리 똑똑해도, 개발사가 아무리 탄탄해도 다 소용없습니다.
어떻게든 버그는 발생하며 이는 만고의 진리입니다.
 
버그 때문에 잘 안되면, "왜 안 되지?"를 생각하고 반대로 잘 되더라도
"이게 왜 되지?"를 심각하게 고민하며 오늘도 개발자는 버그와의 인연을 이어가고 있습니다.
 
 

보스급 버그

각 버그에는 급이 존재하며, 그중에는 보스급 버그도 있습니다.
우리는 이것을 취약점이라고 부릅니다.
이것은 악성 행위를 유발할 수 있으며, 이 때문에 누군가는 피해를 당할 수도 있습니다.
 
프로그램 출시 후, 2~3년 동안 아무도 무르게 잠복해있는 취약점은 무수히 많습니다.
9년 동안 알려지지 않았던 취약점(Dirty cow)도 있었고, 37년 만에 해결된 취약점(오픈 BSD head 버그)도 있었습니다.
 
현재도 확인된 지 20년 된 취약점이지만 개발사에서도 방치하는 취약점도 있습니다.
근데 그 개발사가 윈도우를 개발한 MS라면(참조) 어떤 생각이 드시나요?
 
결론적으로, 아무리 뛰어나도 세상 모든 취약점에 대처할 수는 없습니다.
취약점의 존재 여부마저도 미리 알 수 없거니와, 식별하더라도 이에 대응하는 것은 또 다른 영역이기 때문입니다.
 
 

디지털 오일


근미래에 고갈될 예정이라던 원유는 세계적으로 점점 더 그 매장량이 증가하고 있습니다. 최근 미국에서는 텍사스에서 대규모 유전을 발견하였는데, 이에 따라 미국이 곧 미국을 침공할 예정이라는 유머가 돌 정도입니다.
 
관련하여 취약점은 원유와 닮은 면이 있습니다. 세계 원유 매장량이 점점 증가하듯, 취약점 보고 횟수도 증가하고 있기 때문입니다. 위 자료는 연도별 취약점 보고 개수인데, '17년에 약 2만여 개가 발견되었고, '18년엔 약 2만 2천 개가 발견된 것으로 보고되는 등 꾸준히 증가 추세에 있습니다. 
 
또한, 발견 시 정제하여 판매하면 돈이 된다는 점도 닮았습니다. 세계의 다양한 플랫폼에서, 등급에 따라 적게는 수십 달러에서부터, 많게는 건당 200만 달러까지 그 가치가 매겨지고 있습니다. 
 
추가로, 원유 매장량이 증가하는 일반적인 경우는 3가지가 있는데, 이는 취약점에도 그대로 적용됩니다. 
 
첫 번째는, 새 유전을 발견하는 경우입니다 → 이미 알려진 취약점이 묻은 채로 개발된 새로운 프로그램을 발견하는 경우입니다. 프로그램은 컴퓨터 언어를 하루만 교육받더라도 특별한 제약 없이 개발할 수 있는 특징이 있는데, 매년 꾸준히 쏟아지는 취약점에 대한 대책을 개발 시 모두 반영할 수는 없습니다.
 
두 번째는, 기술의 발전으로, 기존의 유전에서 생산량이 향상되는 경우입니다. → 해킹 기술의 발전으로 기존의 프로그램에서 새로운 취약점을 발견하는 경우입니다. 패치가 필요 없을 정도로 안정적이라고 생각되던 프로그램에서도 취약점이 발견되는 사례는 적지 않습니다.
 
마지막은, 기술의 발전으로, 원유를 채굴할 수 있는 자원(물질)의 범위가 확대되는 경우입니다. → 해킹 기술이 발전함에 따라 취약점을 발견할 수 있는 자원(프로그램)의 범위가 확대되는 경우입니다. 이는 "그런 (사소해 보이는) 곳에서도 취약점이 발견된다고?"라고 생각될 수 있는 영역입니다.
 
하지만 다른 부분도 존재하는데, 원유 탐사 및 채굴은 조직적인 규모로 접근해야 하는 영역인 반면, 취약점 발견의 경우, 첨단 IT 기술을 기반으로 Gig 경제가 활성화됨에 따라, 개인으로도 활동할 수 있는 환경이 점점 확대되고 있다는 점입니다.
 
 

그러면,

Q. 그러면, 취약점 발견은 어떻게 할 수 있을까요? 
A. 취약점 발견을 위한 장비(툴)가 필요하며 관련 능력을 계발해야 합니다. 
 
하지만 장비와 능력을 따로 떨어뜨려 생각할 필요는 없습니다. 실제와 유사한 가상 환경에서 취약점을 발견하는 트레이닝을 통해, 툴을 사용해보고 관련 능력도 기를 수 있습니다.
 
하지만 이를 위한 적합한 콘텐츠가 부족한 것이 현실입니다. 기초부터 튼튼하게 해야 한다고 말하는 각종 교육에서는, "C 언어 등을 먼저 시작해야 한다"고 이야기하면서 목표의 주변을 지속 맴돌게 하는데, 결국 시간이 지날수록 점점 흥미를 잃어가게 됩니다.
 
기초라고 언급되는 것들은 대부분 허상입니다. 사람들은 자기가 알면 기초이며 상식이고, 모르면 잘못된 것이라고 말합니다. 단순히 익숙하지 않을 뿐이어도, 그렇게 하는 것이 아니라고 말합니다.
 
그러나 실제로 어디부터 해야 된다는 기준은 없습니다. 무엇부터 시작하더라도 어차피 모르는 것은 끊임없이 눈앞에 나타날 것입니다. 때로는 순서가 바뀌었다는 생각이 들 수도 있습니다. 하지만 그것이 틀렸다는 것을 의미하는 것은 아니며, 어떤 과정을 거치든 결과는 동일할 것이라는 점을 인지할 필요가 있습니다.
 
결국, 모든 과정에서 제일 중요한 것은 호기심과 흥미입니다. 교육 커리큘럼이 중요한 것이 아닙니다. 이 두 가지만 있다면 하지 말라고 해도 결국 이루어낼 것입니다. 더불어, 해킹은 정보화 사회의 최종 테크이며, 실질적 21세의 마법입니다. 고부가가치 정보인 취약점을 채굴할 수 있다는 것에 자부심을 느낄 수도 있을 것입니다.
 
관련하여, "취미로 해킹" 시리즈는 취약점 발견 트레이닝 목적으로 제작된 콘텐츠입니다. 가상 환경을 기반으로, 툴 사용법 및 관련 능력을 계발이 용이하도록 구성되었습니다. 취약점 발견의 첫걸음을 떼실 수 있으며, 현재 가용한 콘텐츠는 아래와 같습니다.

참고사항

상호 연관성 고려 시, "권장" 순서는 취미로 해킹 #2 → #1 → #3 → #4 입니다. 

 

매니저 짱돌
만든 사람 매니저 짱돌
다른 로드맵