ClickCease 적절한 사람들이 오픈 소스 코드를 살펴보고 있나요? |tuxcare.com

인기 뉴스레터 구독하기

4,500명 이상의 Linux 및 오픈소스 전문가와 함께하세요!

한 달에 두 번. 스팸이 없습니다.

오픈 소스 코드는 공개되어 있지만 적절한 사람들이 이를 보고 있나요?

2021 년 5 월 17 일 TuxCare 홍보팀

오픈 소스 코드와 오픈 소스 소프트웨어의 고유한 보안에 대한 인식은 다양하지만, 이러한 인식은 중요합니다.

한편으로는 오픈 소스 코드가 덜 안전하다고 보는 시각도 있습니다. 결국, 오픈 소스 코드는 평판이 좋은 영리 공급업체가 작성한 코드에 비해 보안에 대한 상업적 인센티브가 적습니다.

반면에 오픈 소스 코드가 더 안전하다는 견해가 있는데, 이는 오픈 소스 코드가 면밀히 검토될 수 있기 때문입니다. 이러한 개방성이 상업적 인센티브보다 더 중요하다는 주장입니다. 더 많은 사람들이 오픈소스 코드를 살펴본다면 오픈소스 코드의 결함을 더 쉽게 식별할 수 있을 것입니다.

이 글에서는 오픈 소스 코드의 '개방성'과 이를 통해 얻을 수 있는 보안상의 이점에 대해 자세히 살펴보고, 이를 제대로 활용하지 못하는 경우가 종종 있습니다. 또한, 실제로는 너무 많은 잘못된 사람들이 오픈 소스 코드를 면밀히 조사하여 기회를 노리고 있고, 너무 적은 수의 올바른 사람들이 보안 결함을 찾아 수정하기 위해 노력하고 있다는 관점도 살펴볼 것입니다.

 

콘텐츠:

1. 오픈 소스 코드는 몇 가지 보안 이점을 제공합니다.
2. 기업은 오픈소스에 의존하지만 보안을 당연하게 여긴다...
3. 더 나쁜 것은, 잘못된 사람들이 오픈 소스 코드를 보고 있다는 것입니다.
4. "좋은" 조사가 있지만...
5. 인센티브와 인식

 

오픈 소스 코드는 몇 가지 보안상의 이점을 제공합니다.

 

첫째, 오픈 소스 코드가 비공개 소스 코드에 비해 더 안전하다고 인식되는 데에는 타당한 이유가 있습니다. 특정 상황에서 오픈 소스 코드가 보안상의 이점을 제공할 수 있는 이유를 강조하는 합리적인 논거가 있습니다.

오픈 소스 코드는 공개되어 있고 면밀히 조사할 수 있기 때문에 더 많은 시선이 코드를 주시한다는 것이 일반적인 생각입니다. 코드가 널리 사용되는 경우 보안 결함이 있는지 더 면밀히 검사해야 합니다. 따라서 결함이 더 빨리 발견되고 수정되므로 코드가 더 안전해야 합니다. 소규모 프로젝트, 코드 라이브러리 또는 고도로 전문화된 코드에서 사용되는 코드의 경우에는 그렇지 않을 수 있습니다.

오픈 소스 코드의 두 번째 보안 장점은 오픈 소스 코드를 사용하는 기업은 결함이 위험해지기 전에 더 신속하게 결함을 수정할 수 있다는 점입니다. 독점 코드에 대한 광범위한 테스트를 거쳐야 하는 상용 공급업체에 의존하는 것보다 훨씬 더 빠르게 결함을 수정할 수 있습니다.

이 두 가지 주장을 따로 떼어놓고 보면 오픈소스 코드가 보안상 유리하기 때문에 더 나은 선택이라는 인상을 줄 수 있지만, 이는 몇 가지 핵심 사항을 놓친 관점입니다.

 

 

오픈 소스에 의존하지만 보안을 당연시하는 기업들...

 

거의 모든 기업이 오픈 소스 코드를 대규모로 배포합니다. Red Hat Enterprise Linux와 같은 제품을 사용하여 명시적으로 배포하거나, 상업적으로 라이선스가 부여된 폐쇄형 소프트웨어에도 오픈소스가 포함되어 있으므로 암묵적으로 배포할 수 있습니다.

시놉시스의 2020년 분석에 따르면 보고서에서 감사한 코드베이스의 99%에 오픈 소스 코드가 포함되어 있었습니다. 또한 감사 대상 코드의 91%가 4년 이상 업데이트되지 않은 오픈 소스 코드를 포함하고 있을 정도로 코드의 대부분이 오래된 것으로 나타났습니다.

기본적으로 회사에서 오픈 소스 솔루션을 명시적으로 배포하는지 여부는 중요하지 않으며, 오픈 소스 코드는 매우 널리 퍼져 있으므로 위협을 심각하게 받아들여야 합니다.

안타깝게도 기업들은 오픈소스 보안을 당연하게 여기는 경우가 많습니다. 오픈 소스 코드가 워크로드를 얼마나 많이 지원하는지 인식하지 못하거나 오픈 소스 코드의 보안 이점을 인식하지 못하기 때문일 수 있습니다.

이는 매우 위험한 접근 방식이며, 주요 서비스를 제공하는 대기업이 오픈 소스 코드의 결함으로 인해 피해를 입은 사례는 무수히 많습니다. 가장 대표적인 사례 중 하나는 1억 4,700만 명 이상의 개인 금융 기록이 노출된 2017년에 발생한 Equifax 유출 사고입니다.

에퀴팩스 유출 사건의 경우 해커들은 에퀴팩스 웹사이트 포털에서 사용하는 프레임워크인 Apache Struts 2의 취약한 코드를 악용했습니다. 이 회사는 보안 침해를 인지하는 데 6주가 걸렸고, 이로 인해 매우 많은 양의 데이터가 도난당했습니다. Equifax는 금전적 보상뿐만 아니라 대중의 비난으로 인해 막대한 비용을 지불해야 했습니다.

이퀴팩스의 사례는 결코 독특한 것이 아닙니다. 문제의 일부는 개발자가 다양한 오픈 소스 기능을 애플리케이션에 쉽고 빠르게 도입한다는 사실에 있습니다. 대규모 기능 덩어리부터 개별 라이브러리까지.

이들은 구성 요소에 대한 면밀한 조사 없이, 그리고 종종 구성 요소를 카탈로그화하지 않고 그렇게 합니다. 그 결과 기업들은 자사의 기술 솔루션이 어떤 오픈 소스 코드에 의존하고 있는지 거의 알지 못합니다. 하지만 오픈 소스 코드가 거의 모든 곳에 숨어 있을 것이라는 것은 거의 확실합니다.

 

 

 

더 큰 문제는 잘못된 사람들이 오픈 소스 코드를 보고 있다는 것입니다.

 

악의적인 공격자를 포함하여 누구나 오픈 소스 코드를 검토할 수 있습니다. 오픈 소스 코드가 널리 퍼져 있기 때문에 악의적인 공격자는 악용할 수 있는 결함을 찾으려는 동기를 갖게 됩니다.

범죄자들은 시스템을 해킹하여 귀중한 정보를 훔치거나 회사에 몸값을 요구하는 등 단순히 금전적 이득을 노리는 경우도 있습니다. 지능형 지속 위협(APT) 팀부터 국가 행위자까지 다양한 그룹은 보안 취약점을 악용하여 실현할 수 있는 특정 목표를 가지고 있습니다.

널리 사용되는 오픈 소스 코드에서 결함을 발견하면 이러한 공격자는 보안이 잘 갖춰진 시스템에 침입하는 데 필요한 도구를 얻게 됩니다. 때때로 악의적인 공격자는 오픈소스 코드 사용자나 오픈소스 커뮤니티가 이러한 결함을 발견하기 훨씬 전에 오픈소스 코드의 결함을 식별합니다.

즉, 이러한 보안 취약점은 해커의 손에 있지만 패치와 수정은 아직 제공되지 않습니다. 이는 범죄자와 국가가 필요한 패치와 수정 사항이 공개되기 전에 오픈 소스 코드의 결함을 악용할 수 있는 기회를 제공합니다.

 

 

 

"좋은" 조사가 있지만...

 

오픈소스 커뮤니티가 결함을 무시하거나 코드가 어디에 사용되는지 잊어버리고 부주의하게 코드를 작성하는 것은 아닙니다. 하지만 일부 보고서에 따르면 310억 줄에 달하는 방대한 양의 오픈 소스 코드가 사용되고 있기 때문에 코드의 오류를 철저하게 검사하는 것은 거의 불가능합니다.

실제로 오픈 소스 코드가 코드베이스에 추가된 지 수십 년이 지난 후에 오픈 소스 코드의 오래된 결함이 발견되는 경우가 종종 있습니다.

2021년 4월에 공개된 최근 발견된 libcurl 버그를 예로 들어보겠습니다. 기본 코드가 2000년 8월에 코드베이스에 추가되었기 때문에 이 취약점이 공개되기까지 20년이 넘게 걸렸습니다. 지난 수십 년 동안 어떤 악의적인 공격자가 이 취약점에 대한 지식을 가지고 있었고, 이 지식으로 무엇을 했는지 알 수 있는 방법은 없습니다.

마찬가지로, 널리 알려진 하트블리드 익스플로잇의 배후에 있는 버그는 코드가 원래 OpenSSL 라이브러리에 포함된 지 15년이 지난 후에 발견되었습니다. 다시 말하지만, 이 취약점이 세상에 알려지기 전에 누가 이 취약점에 대해 알고 있었는지 알 수 있는 방법은 없습니다.

이는 선량한 사람들이 오픈 소스 코드를 살펴보는 데 충분한 시간을 할애하지 않는다는 사실로 귀결됩니다. 예, 오픈 소스 코드를 보호하기 위한 노력이 있습니다. 하지만 이러한 노력은 악용 가능한 결함을 찾기 위해 체계적으로 코드를 검사하는 악의적인 공격자들과는 비교할 수 없는 수준입니다.

 

 

 

인센티브 및 인지도

 

오픈 소스 코드의 취약점을 찾는 것에 대한 인센티브 문제는 오픈 소스 커뮤니티, 보안 전문가, 오픈 소스 코드에 크게 의존하는 공급업체에 잘 알려져 있습니다. 따라서 오픈소스 개발자가 코드의 오류를 발견하도록 장려하기 위해 고안된 프로그램이 있습니다.

예를 들어, EU의 버그 바운티 프로그램은 특정 오픈소스 프로젝트에서 취약점을 발견한 개발자에게 최대 25,000유로를 제공합니다. Linux 재단도 2020년 무료 오픈소스 기여자 설문조사에서 여러 가지 권장 사항을 발표했는데, 그 중 일부는 오픈소스 개발자들이 보안 문제를 해결하는 것이 영혼을 파괴하는 일이라고 생각하는 것으로 밝혀졌기 때문입니다.

하지만 인센티브만으로는 범죄자, 위협 행위자, 오픈소스 커뮤니티 간의 동기 부여 격차를 해소할 수 없습니다. 그렇기 때문에 인식이 중요합니다.

기업 사용자의 경우, 첫 번째 단계는 오픈 소스 코드가 어디에나 존재한다는 사실을 인정하는 것입니다. 독점 코드를 사용하는 상용 공급업체의 소프트웨어를 구입하는 것은 해당 코드가 오픈 소스 라이브러리와 같은 오픈 소스 코드에 의존하고 있을 가능성이 높기 때문에 보험이 되지 않습니다. 예, 상용 공급업체는 코드 보안에 더 큰 인센티브를 가지고 있지만 실제로는 독점 코드와 오픈 소스 코드 모두 취약한 상태로 남아있을 것입니다.

또 다른 핵심 단계는 대응력을 유지하는 것입니다. 오픈 소스 코드에서 결함이 발견되면 일반적으로 패치 또는 다른 완화 방법이 신속하게 뒤따릅니다. 기업은 신속하고 철저하게 패치를 적용해야 하며, 이것이 어려운 경우 중단 없이 작업을 수행하는 실시간 자동 패치 도구를 사용하는 것을 고려하세요.

마지막으로, 기업 보안은 항상 보안 태세에 관한 것입니다. 진행 중인 공격을 신속하게 완화하는 것과 6개월 후에 공개적으로 사과하는 것의 차이를 만들 수 있습니다. 오픈 소스 코드에 대한 공개적인 조사에 대해 광범위하게 가정하는 것은 보안 운영에 결코 도움이 되지 않습니다.

결론적으로, 오픈 소스 코드가 폐쇄형 상용 독점 코드보다 더 안전하다거나 덜 안전하다고 단정적으로 말하기는 어렵습니다. 논쟁은 그보다 더 복잡합니다. 독점적인 비공개 소스 코드에서도 수많은 결함이 보고되고 있습니다. 단순히 코드가 공개되어 있다고 해서 더 안전하다고 가정하지 마세요. 그 자체로는 아무것도 보장하지 않습니다. 코드 보안을 위해서는 소스에 대한 접근뿐 아니라 상당한 노력과 적절한 인센티브, 기술적 노하우가 필요합니다.

오픈 소스 코드는 개방적인 특성으로 인해 신속하게 패치가 적용되고 보안성이 높은 경우가 많다는 점을 기업은 인지해야 합니다. 하지만 반대로 오픈 소스 코드는 수십 년 동안 눈에 잘 띄지 않는 곳에 취약점을 숨길 수도 있습니다.

계속 읽어보세요: 오픈 소스: 오픈 코드로 엔터프라이즈급 보안을 구현하시나요?

Kernel 재부팅, 시스템 다운타임 또는 예정된 유지 보수 기간 없이 취약성 패치를 자동화하고 싶으신가요?

TuxCare로 라이브 패치에 대해 알아보기

TuxCare 게스트 작가 되기

시작하기

메일

가입

4,500

Linux & 오픈 소스
전문가!


뉴스레터 구독하기