3줄 요약
1. 소프트웨어 취약점으로 인해 사고가 나면 소프트웨어 개발사도 책임을 져야 함.
2. 책임 지기 싫으면 기획과 설계 단계에서부터 보안을 기준으로 삼을 수 있어야 함.
3. 경로 조작 취약점의 경우 너무 널리 알려져 있어 이제 당하는 사람의 책임이 더 큼.
[보안뉴스 문가용 기자] 각종 소프트웨어 제품들에서 지속적으로 발견되는 취약점들이 몇 가지 있다. 그 중 하나는 ‘경로 조작 취약점(path traversal)’이다. 소프트웨어 업계도 이 사실을 잘 알고 있다. 그래서 지난 20여 년 동안 이 취약점을 문서화 하고 효과적인 제거 방법을 개발, 발굴, 제시해 왔다. 하지만 아직도 충분하지 않다. 여전히 취약한 소프트웨어 제품들이 개발되고 시중에 나오는 중이고, 이 때문에 사용자들이 위험해지고 있다.
[이미지 = gettyimagesbank]
올해에도 경로 조작 관련 사건은 끊임없이 일어났다. 특히 CVE-2024-1708과 CVE-2024-20345 취약점들이 여러 사건을 일으킨 것으로 조사됐고, 피해를 입은 곳 중에는 사회 기반 시설도 있었다. 이 때문에 미국의 보안 전담 기관인 CISA와 수사기관인 FBI는 새롭게 보안 경보를 발령해 ‘경로 조작 취약점’에 대한 개발사와 사용자들의 주의를 환기시켰다.
경로 조작 취약점은 무엇인가?
경로 조작 취약점이란, 사용자가 입력 매개변수나 파일 경로 등 ‘사용자 입력값’을 조작함으로써 소프트웨어나 서비스의 개발자가 의도하지 않은 ‘접근’을 할 수 있게 해 주는 버그나 오류를 의미한다. 이를 통해 공격자들은 원래 관리자 외에는 접근할 수 없는 디렉토리에 접속하기도 하고, 민감한 데이터를 열람할 수 있게 되기도 한다. 심지어 특정 디렉토리에 쓰기도 할 수 있게 되기도 하며, 이는 임의 코드 실행 공격으로 이어지기도 한다. 즉 대단히 치명적인 공격의 발단이 될 수 있는 게 바로 이 경로 조작 취약점이라는 의미가 된다.
“공격자들이 민감한 데이터를 유출시키기도 하며, 추가 시스템에 치명적인 피해를 입히기도 하고, 피해자의 콘텐츠를 악의적으로 조작함으로써 명성에 손상을 주기도 합니다. 이러한 취약점이 생기는 이유는 간단합니다. 개발사가 사용자의 악의를 간과하는 겁니다. ‘이렇게 쓰라고 만든 우리 소프트웨어를 누가 악의적으로 쓰겠어?’라는 마음이 바탕에 깔려 있으면 공격자들의 입력값 조작에 노출되게 됩니다. 물론 그런 사용자가 많지는 않습니다만, 그 소수의 행위 때문에 큰 피해가 발생하는 법입니다.” CISA의 설명이다.
참고로 경로 조작 취약점은 클라우드 서비스에도 영향을 미친다. 소프트웨어 개발사들은 클라우드 시스템에서도 경로 조작 취약점이 악용되어 각종 위험이 초래될 수 있다는 것을 인지하고, 여러 위험 완화 대책을 조사하여 적용할 필요가 있다. “소프트웨어 개발사들 사이에서 공유되는 지침들 중 클라우드에도 적용할 만한 것들이 있습니다.”
경로 조작 취약점, 어떻게 방지하나?
소프트웨어 개발사들은 제품을 설계하고 개발하는 과정에서부터 이런 경로 조작 취약점을 염두에 두어야 한다고 CISA는 강조한다. “이미 효과적이라고 알려진 완화 조치들이 있습니다. 예를 들어 각 파일에 대한 무작위 식별자를 생성하고, 관련 메타데이터를 별도로 저장하여 데이터베이스 내 파일 이름에 사용자 입력값을 사용하지 못하도록 하는 방법이 있을 수 있죠. 이런 조치가 불가능할 경우 파일 이름에 허용되는 문자 유형을 엄격히 제한할 수도 있습니다. 이를 테면, 알파벳이나 숫자만 가능하도록 하는 식으로요. 또, 데이터베이스에 사용자가 파일을 업로드할 때, 그 파일에 실행 권한이 없도록 하는 것도 중요합니다. OWASP에서는 이미 이러한 지침을 상세하게 마련해 발표하기도 했습니다.(이 지침은 프리미엄 리포트를 통해 조금 더 상세히 설명된다.)”
CISA와 FBI는 소프트웨어 개발사들이 경로 조작 취약점을 비롯해 여러 가지 예방 가능한 취약점들을 - 특히 널리 알려진 것들이라면 더더욱 - 미리부터 제거하는 방법을 철저히 학습할 것을 촉구하는 입장이다. 이는 이미 여러 번 발표된 각종 권고문이나 경고문 등 공공 문건을 통해서도 확인할 수 있다. 특히 CISA의 경우 ‘설계 단계에서부터의 보안(Security by Design)’이라는 개념을 매우 선호하는 것으로 잘 알려져 있다.
설계에서부터 시작하는 보안
설계에서부터 보안이 탑재된 소프트웨어를 개발한다는 건, 개발사가 고객에게 제공하는 소프트웨어가 위험의 통로가 되지 못하도록 하는 것을 의미한다. “사이버 공격자들은 제품에 있는 결함을 악의적으로 활용하려고 언제나 기회를 노리고 있습니다. 결함이 있다는 걸 알게 되면 곧바로 그걸 공략할 방법을 개발하고 공격 도구를 만들죠. 소프트웨어 개발사들도 이러한 상황에 대해 면밀히 알아둘 필요가 있습니다. ‘누가 우리 제품을 악의적으로 쓰겠어?’라는 생각은 요즘 시대 상황과 전혀 맞지 않습니다.” CISA가 강조한다.
그러므로 개발사는 기획 단계에서부터 마무리 이후 출시에 이르기까지 누군가의 악의성을 염두에 두고 일을 진행해야 한다. 그렇게 했을 때 보안 사건을 처리하는 공공과 개인의 비용이 효과적으로 줄어들 수 있다. “보안에 있어서는 선제적 대응이 후속 조치보다 거의 항상 저렴합니다. 이는 소프트웨어 개발사 스스로에게도 적용될 혜택이라고 할 수 있습니다.”
이런 맥락에서 기억해야 할 건 경로 조작 취약점이 2007년부터 ‘용서 받을 수 없는 취약점’이로 불려 왔다는 것이다. 이는 CISA와 FBI도 경고문을 통해 언급한 내용이다. “이미 10여년 전부터 경로 조작 취약점에는 이런 별명이 붙어 왔습니다. 무슨 뜻일까요? 이 취약점에 대한 경고와 완화 대책이 너무 널리 알려져 있기 때문에 이제는 이 취약점을 통한 해킹 공격에 당한다면 당한 사람 책임이라는 의미입니다. 그럼에도 이 취약점이 너무나 만연한 게 현실입니다. 소프트웨어 개발사들이 해킹 공격에 피해를 입었다고는 하지만, 동시에 책임도 엄중히 져야 하는 이유입니다.”
OWASP의 파일 경로 조작 위험성 완화 방법과, CISA가 강조하는 ‘설계에서부터의 보안’의 기본 원칙 세 가지는 이번 주 26일 발간되는 프리미엄 리포트를 통해 보다 상세히 설명됩니다.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>