오늘날 널리 퍼진 여러 보안 위협으로 인해 소프트웨어 및 하드웨어 개발, 제조사들은 보안에 극히 주의해야 합니다.
또한 구현 및 생산 전에 해커들이 침입할 수 있는 취약점을 파악해야 합니다. 다만 취약점의 종류도 다양한 관계로 존재할 수 있는 모든 취약점을 찾아내기란 쉽지 않습니다.
CWE는 시스템과 그 사용자에게 피해를 입힐 수 있는 소프트웨어와 하드웨어의 목록으로 개발자와 보안 전문가들의 인식을 높이는 것을 목적으로 합니다. 이 문서를 읽고 개발자와 보안 실무자들이 제품을 발표하기 전에 일반적인 실수를 제거하는 데 도움을 제공하는 커뮤니티 기반 목록인 CWE에 대해 알아보세요.
CWE – 공통 취약점 목록
CWE는 ‘공통 취약점 목록’을 의미합니다. 시스템의 보안과 무결성을 훼손할 수 있는 하드웨어 및 소프트웨어 취약점에 대한 정보가 담긴 목록입니다. 여기서 ‘취약점’이라 함은 하드웨어 또는 소프트웨어의 설계, 코드, 구현 또는 아키텍처에 존재하는 결함, 오류, 버그 등을 말합니다. 이러한 취약점을 그냥 두면 기업에 엄청난 피해를 입힐 수 있습니다.
CWE는 소프트웨어에 존재하는 모든 취약점에 대한 보편적인 온라인 사전의 역할을 합니다. 비영리단체인 MITRE 코퍼레이션이 관리하는 CWE 목록은 누구나 무료로 이용할 수 있습니다. CWE는 하드웨어 및 소프트웨어 전문가들이 제품 출시 전에 일반적인 오류를 제거하도록 도움을 주는 것이 목적입니다. CWE 목록은 다양한 업계의 전문가들이 관리하며 개발 및 보안팀에게 소프트웨어 결함의 싹을 제거하는 데 필요한 지식을 제공합니다.
또한 표준화된 용어를 제공하며 보안 전문가들과 개발자들이 소프트웨어 및 하드웨어에 존재하는 취약점에 대해 원활하게 논의, 소통할 수 있는 공통적 언어의 역할을 합니다. CWE는 취약점을 파악하고 완화를 시작할 수 있는 공통적 기준선을 정립하는 데 유용합니다. 또한 개발자와 보안 전문가들이 이 취약점을 목표로 하는 보안 도구를 분석하는 데 도움이 되는 표준적인 측정기의 역할도 합니다.
CWE를 통해 여러 벤더들은 서로 유사한 제품들을 비교하고 특정 취약점에 대해 사용자에게 알릴 수 있습니다. 또한 CWE 목록은 법무 부서에서 특정 소프트웨어에 대한 용어와 개념을 정립하고 계약을 작성하는 데에도 도움이 됩니다.
CWE 목록의 중요성
CWE 목록에는 하드웨어와 소프트웨어 양쪽의 취약점에 대한 정보가 모두 명시됩니다. 이 목록은 2006년에 최초 발표되었습니다. 원래는 기업들이 보안 결함이 없는 제품을 만들고자 노력하는 분위기에서 소프트웨어 문제가 당시 더 심각했던 관계로 소프트웨어 취약점만 명시되었습니다. 나중 버전에서 분류도와 취약점을 다듬고 모바일 앱 관련 내용이 추가되었습니다. 모바일 앱 관련 부분은 2014년에 추가되었습니다.
그리고 시간이 흐르면서 하드웨어적 취약점도 중요성이 높아졌습니다. 이러한 하드웨어적 문제로는 로잭스(LoJax), 멜트다운/ 스펙터(Meltdown/Spectre), 로해머(Rowhammer) 등이 있습니다. 하드웨어 문제는 2020년부터 중요하게 다루어졌습니다. CWE는 커뮤니티 차원의 활동이며 지속적으로 개선됩니다. 즉 신기술과 상황에 따라 계속 최신화됩니다.
CWE는 3가지 층으로 구성됩니다. 상위층은 벤더, 기업 관리 전문가, 연구자들 간의 원활한 소통을 목적으로 취약점들을 일반적 범주로 나눕니다. 중간층은 시스템 관리자, 보안 전문가, 소프트웨어 개발자에게 유용한 정의로 구성됩니다. 하위층은 일반 PC 사용자를 비롯한 IT 분야 전반에 유용한 목록입니다. CWE 목록의 각 항목에는 숫자가 부여됩니다. 여기를 클릭하여 자세히 알아보십시오.
CWE 목록의 사용법
CWE 목록은 전 세계 누구나 이용할 수 있습니다. 전체 목록을 온라인상에서 보거나 다운로드할 수 있습니다. CWE 목록에서 중요한 점은 3가지 주요 범주로 취약점을 나누어 IT 분야에서도 커뮤니티별로 필요한 내용을 활용할 수 있다는 것입니다. 이를 통해 사용자의 관점에 따라 목록의 내용을 효과적으로 활용할 수 있습니다.
CWE 목록에는 ‘소프트웨어 개발’, ‘하드웨어 설계’, ‘연구’ 개념이 있습니다. 각 개념에는 해당 분야별 전문가들이 찾아낸 취약점이 포함됩니다. 소프트웨어 개발 관점은 소프트웨어 개발에 문제가 되는 오류나 보안 결함에 초점을 맞춥니다. 하드웨어 개발 관점은 하드웨어 설계 중에 나타나는 보안 문제를 다룹니다. 연구 개념은 거동에 따라 취약점을 제시하여 취약점 연구에 도움을 제공합니다.
그 외에 특정 상황이나 영역에 중요한 사전에 정의된 관점도 있습니다. 특히 자바, C+/++, PHP에 존재하여 소프트웨어나 모바일 애플리케이션에 간접적 피해를 입힐 수 있는 취약점도 포함됩니다. 이 사전에 정의된 관점에는 설계나 구현 중에 발생한 취약점도 포함됩니다.
또한 CWE 목록에는 OWASP Top Ten (2017년), CWE Top 25 (2020년), Software Fault Pattern Clusters, Seven Pernicious Kingdoms, CISQ Quality Measures (2020년), SEI CERT Coding Standards for Java, C and Perl을 비롯한 외부 그룹에 대한 매핑을 나타내는 관점도 포함됩니다. 외부 매핑에 따른 관점에는 일부 외부 요인과 관련된 항목들이 포함됩니다.
지금은 중요성이 낮은 관점들도 있습니다. 이 관점들은 그 이름에서 알 수 있듯이 보다 최근의 관점으로 대체되어 이제는 중요하지 않은 것들입니다. CWE 목록은 여러 사용자들의 고유한 관점을 반영하고 누구나 필요에 따라 활용할 수 있도록 작성됩니다.
이 목록은 모든 개인이나 조직에서 연구 및 상업적 목적으로 이용할 수 있습니다. 이용약관은 CWE 공식 웹사이트에서 볼 수 있습니다. MITRE 코퍼레이션은 CWE 목록에 대한 저작권을 가지고 자유 개방 표준으로 관리합니다. CWE 목록은 MITRE 코퍼레이션의 저작권 내용을 명시한다는 조건 하에 자유로이 사용할 수 있습니다.
CWE에서도 특히 중요한 정의
앞서 언급한 대로 CWE는 공통 취약점 유형의 정의를 제공합니다. 이 정의들의 주요 목적은 모든 항목을 정확히 설명하고 차별화하여 누구나 정확히 이해하도록 돕는 것입니다. 이제 ‘소프트웨어 개발 관점’, ‘하드웨어 설계 관점’, ‘연구 개념 관점’을 자세하게 알아보겠습니다.
소프트웨어 개발
이 관점은 주로 소프트웨어 개발 수명주기와 관련됩니다. 아키텍처에서 구현까지 개발의 모든 측면을 다룹니다. 기능 내비게이션, 매핑, 브라우징을 단순화하는 데 도움이 되는 범주들이 이에 포함됩니다. 이 관점은 소프트웨어의 구조화, 설계, 코딩, 테스트를 맡는 이들에게 특히 도움이 됩니다. 또한 소프트웨어의 특정 측면에서 일반적으로 나타나는 오류를 보다 정확하게 파악할 수 있습니다.
이 관점은 이해하기 쉬운 정보와 이용 방식을 제공하며 개발자들에게 익숙한 개념을 바탕으로 취약점들을 정리했습니다. 이 관점을 소프트웨어 수명주기의 특정 단계에서 이용하려는 개발자는 ‘Modes of instruction(명령 모드)’로 필터링하여 활용할 수 있습니다. 또한 이 관점은 개발자를 교육하는 자가 코드베이스의 특정 부분에 발생할 수 있는 잠재적 실수에 대해 개발자들에게 교육하는 데에도 도움이 됩니다.
소프트웨어 개발 관점은 추상화의 여러 수준에서 존재하는 취약점들 간의 관계를 나무와 같은 구조로 나타냅니다. 여기를 클릭하여 전체 목록을 볼 수 있습니다.
하드웨어 설계
소프트웨어와 유사하게 하드웨어 설계 관점에는 관련 취약점에 대한 세부사항이 포함됩니다. 지적재산 설계 중에서도 특정한 측면에서의 실수는 상당히 일반적이며 이 관점은 그러한 실수로 인한 심각한 영향을 제거하도록 도와줍니다. 이 관점에는 하드웨어 설계 실무자들이 오류를 정확히 이해할 수 있는 친숙한 개념이 포함됩니다. 또한 교육 실무자들도 미래 설계자들의 일반적 실수와 오류에 대한 인식을 제고할 수 있습니다.
이 관점은 생산 및 수명주기 관리에 대한 우려, 보안 흐름 문제, 통합 문제 등을 다룹니다. 이 취약점들은 간단하며 직관적인 방식으로 제시됩니다. 같은 취약점이 여러 범주에 존재할 수 있다는 점에도 주의해야 합니다. 전체 목록은 여기에서 볼 수 있습니다.
연구 개념
이 관점은 CWE에 존재할 수 있는 취약점과 간극에 대한 연구를 촉진하는 것이 목적입니다. 또한 개발 프로세스에서 취약점이 발생할 수 있는 코드나 단계보다는 그 거동에 기반하여 취약점들을 정리합니다. 이 관점은 CWE에 존재하는 모든 취약점을 아우르고자 합니다.
주로 학계, 취약점 애널리스트, 평가 도구 벤더를 대상으로 합니다. 학계에서는 이 관점을 이용하여 향후 연구에 중요한 분야를 분석할 수 있습니다. 취약점 애널리스트는 이 관점으로 고수준 클래스와 베이스 간의 관계를 분석하여 취약점을 파악할 수 있습니다. 한편 평가 도구 벤더는 이 관점을 통해 자신의 도구가 감지할 수 있는 취약점을 파악할 수 있습니다. 이는 관계들이 도구의 기술적 기능에 맞춰 정리되므로 가능합니다.
이 관점은 이전 범주에 포함되지 않은 관계를 파악하도록 설계됩니다. 취약점들 간의 관계를 다루며 CWE 내 모든 취약점들에 대해 최소 1개 이상의 부모/자녀 관계가 포함됩니다. 여기를 클릭하여 연구 개념의 전체 목록을 볼 수 있습니다.
결론
악용하기 쉬운 소프트웨어 취약점은 해커들이 단 몇 초만에 시스템을 장악하고 힘들게 쌓은 명성을 파괴할 수 있는 심각한 위협이 될 수 있습니다. 일반적 소프트웨어 취약점에는 버퍼 오버플로우, 구조 및 유효성 문제, 채널 및 경로 오류, 인증 오류, 사용자 인터페이스 오류 등이 있습니다. 하드웨어 취약점에는 권한 분리와 접근 제어 오류 및 CPU, FPGA, 그래픽, AI 등의 문제가 있으며 이로 인해 악용가능한 보안 취약점이 발생할 수 있습니다. 즉 CWE는 공통적 하드웨어 및 소프트웨어 취약점을 해소하는 데 도움이 되도록 만들어졌습니다.
프로그래머, 하드웨어 엔지니어, 아키텍트, 교육 실무자 등에게 모두 유용합니다. CWE 목록은 하드웨어 및 소프트웨어 업계 양쪽에 보안 우려가 되는 취약점을 방지하려는 노력입니다. CWE는 커뮤니티적 활동이므로 그 내용은 정보기술과 보안 분야의 전문성이 결합된 것입니다. 교육 실무자들도 하드웨어 및 소프트웨어 교육에 CWE를 활용할 수 있습니다.
CWE는 취약점의 파악과 방지를 강화하는 데 효과적입니다. 또한 하드웨어와 소프트웨어의 취약점에 대한 적극적 논의를 촉진하며 이는 다시 업계 전체적인 위험 완화 활동을 개선하는 데 기여합니다. CWE는 개발자들이 초기에 취약점을 제거하고 자신의 제품을 더욱 발전시키도록 도와줍니다. CWE의 협력적 성격은 전문가들이 새로운 제안을 통해 그 중요성을 유지하고 장단기적 발전을 반영하여 최신화할 수 있음을 의미합니다.
AppSealing은 신뢰성 높은 클라우드 기반 보안 솔루션을 제공하는 최고의 모바일 애플리케이션 보안 서비스입니다. 몇 분 만에 제로 코딩 보안 기능을 iOS, Android, 하이브리드 앱에 제공하며 성능에는 전혀 영향이 없습니다. 당사의 신뢰성 높은 보안 솔루션으로 귀사의 제품을 지킬 수 있습니다. 지금 바로 문의 주시면 해킹 시도를 모두 추적하고 실시간 통찰로 앱 보안을 강화할 수 있습니다.