본문 바로가기

IT 정보

보안 취약점 종류와 발생 원인, 해결 방법 (feat. CVE)

반응형

 

선진국가를 시작으로 디지털 현대화가 이어가고 있는 가운데 디지털에는 항상 취약점(Vulnerability)이라는 문제가 있고 취약점들 중에는 밝혀진 것들이 있을 것이고 밝혀지지 않은 것들이 지금까지도 세상에서 돌아다니며 악용되는 부분이 있는데 이런 것들을 모두 취약점이라고도 부르며 반드시 해결되어야 하는 부분이기도 합니다.

 

그러면 이 취약점이라는 것들이 어떤 것이 있고 이 취약점이 해결되기 위해선 어떤 방법이 있는지 알려드리고자 조금은 어려운 주제이기도 하고 호기심을 자극시키는 부분이기도 하다 보니 궁금증을 해소시켜드리기 위해 이 글을 작성하였습니다.

 


◆ 취약점(Vulnerability) 이란?

 

 

취약점은 소프트웨어든 네트워크든 어디서든지 발생할 수 있는 '약점'을 의미하는 단어로 소프트웨어 취약점, 네트워크 취약점 등 개발자 혹은 담당자가 미처 발견하지 못한 취약지점을 해커나 크래커에게 발견되어 악용되고 있는 약점을 의미합니다.

 

해커 혹은 크래커는 이 부분을 공략하여 악용을 하게 되는데 놀랍게도 소프트웨어가 아닌 하드웨어나 펌웨어[각주:1]에도 이 취약점이 악용될 수 있는 부분이 발생될 수 있으며 실제로 사례가 있는 만큼 매우 중요한 부분이기도 합니다.

 


◆ 취약점 종류

 

 

- 보안 영역

일상생활 속에서도 항상 취약점이 존재할 수 있습니다. 예를 들어, 주민등록증과 같은 신분증을 스캔하여 외부 인터넷 클라우드(예: 구글 클라우드)에 저장해둔다던지 아이디나 비밀번호를 인터넷이나 쪽지, 메모, 포스트잇과 같은 곳에 기록을 해둔다던지, 비밀번호가 개인정보와 유사하다던지 등 이러한 부분이 모두 취약점이라고 볼 수 있습니다.

 

기업의 경우에는 업무용 PC와 같은 경우에는 문제가 없지만 개인용 PC의 경우에는 비밀번호를 분실할까 봐 따로 기록을 해두시는 부분이 있으시다면 하나의 취약점이 되는 것입니다.

 

 

그렇다고 보안 취약점이 해킹을 의미하는 것이 아닙니다. 취약점은 해킹과 같은 악성 행위를 하기 위한 하나의 준비물이며 동시에 해킹을 하기 위한 과정에 필요한 내용을 의미하는 것이므로 보안 취약점과 해킹은 서로 의미하는 바가 다릅니다.

 


- 소프트웨어 영역

 

 

가장 흔하게 볼 수 있고 누구나 쉽게 겪을 수 있는 부분 중 하나인 가장 유명한 '제로데이 취약점(Zeroday Vulnerability)'도 소프트웨어 취약점에 포함되어 있다 보니 모든 개발사가 눈에 불을 켜고 찾아내는 부분이기도 합니다.

 

제로데이 취약점이란 개발자가 미처 발견하지 못한 부분이나 개발된 기능에서 취약점이 발견되면 취약점을 이용하여 바이러스나 악성코드와 같은 악성 파일로 제작하여 배포하여 피해를 주는 방식을 의미하는데 이것은 소프트웨어만 해당되는 부분이 아닌 위에서 말했던 펌웨어를 포함한 운영체제까지 모두 포함되는 부분입니다.

 

 

다행히 이런 제로데이 취약점을 포함하여 세상에 공개된 취약점을 정리하는 CVE(Common Vulnerabilities and Exposures)라고 하는 리스트를 관리하고 있으며 CVE에는 운영체제뿐만 아니라 하드웨어, 소프트웨어 등 다양한 부분에서 세계적으로 알려진 취약점을 리스트로 정리하는 비영리 연구 기관에서 만든 하나의 빅 데이터입니다.

 

가장 유명했던 인텔 CPU 및 ARM CPU 아키텍처 취약점 문제도 'CVE-2017-5754'라는 코드가 부여되면서 전 세계에 알려졌으며 공론화가 됨으로써 엄청난 후폭풍을 가져오게 된 것입니다.

 


- 이외에도

 

이외에 취약점이긴 취약점인데 외부에서 접근할 수 없고 해커가 직접 서버나 컴퓨터 등에 물리적으로 접근을 해야 취약점을 사용할 수 있는 내부 공격 방식의 취약점도 CVE 코드가 부여되고 있는데 이쯤 되면 물리적인 보안을 뚫으면서 사람들에게 걸리지 않고(특히 건물 출입...) 접근을 해야 하기 때문에 이런 영화와 같은 일이 발생될 확률은 매우 희박하다고 볼 수밖에 없습니다.

 


◆ 개발자 측면에서의 해결 방법

 

 

 

제로데이 취약점에서 설명한 것과 같이 개발자가 개발을 하면서 미처 발견되지 못한 부분에서 취약점이 발생될 수 있기에 개발자는 개발을 하면서 주의를 하더라도 취약점은 늘 발생할 수 있는 위험성에 노출되어 있기 마련입니다.

 

따라서 취약점들에 대한 정보 수집을 활성화하고 전문가나 KISA(한국인터넷진흥원)과 같은 자문을 받는 방법과 같은 적극적인 방향으로 취약점을 해커보다 빠르게 찾아서 해결하려는 행동이 가장 중요하며 만약 해커가 개발자보다 빨리 발견하였거나 발견되지 못했던 부분이 공개된 경우 개발자는 빠르게 수정하여 조치하는 행동이 필요합니다.

 


◆ 사용자 측면에서의 해결 방법

 

 

사용자는 반드시 정품을 이용해야 하며 필자가 바이러스 관련한 글에 항상 알려드렸던 부분인 출처를 알 수 없는 프로그램이나 파일을 절대 다운로드하지 마시고 항상 공식 사이트나 정품을 이용해주시는 것을 권장하며 항상 자동 업데이트를 활성화해두어 취약점이 발생하더라도 빠른 시간 안에 해결되는 취약점에 대해서 항상 업데이트를 통해 제공되므로 사용자가 건들 부분 없이 자동으로 수정이 진행됩니다.

 


 

◆ 마지막으로

 

 

취약점이라는 것은 세상 어디에서나 발견될 수 있고 일상 속에서도 하나의 취약점이 존재하거나 만들어질 수 있는 디지털 시대가 되었으니 항상 스마트폰이나 PC와 같은 보안이나 불법 소프트웨어 미설치만 유지하신다면 누구나 쉽게 어렵지 않은 수준으로 취약점에 노출되지 않을 수 있게 될 것입니다.

 


글이 유익하셨다면 공감, 댓글, 구독해주시면 블로그 발전에 큰 도움이 됩니다. ^^-

  1. 하드웨어와 소프트웨어를 연결하는 소프트웨어의 일종 [본문으로]
반응형