DevSecOps: 여전히 새로운 트릭을 수행 하는 오래 된 보안 버그

게시일: 2019년 3월 27일
작성자: 피터 댄히외
사례 연구

DevSecOps: 여전히 새로운 트릭을 수행 하는 오래 된 보안 버그

게시일: 2019년 3월 27일
작성자: 피터 댄히외
리소스 보기
리소스 보기

원래 DevOps.com에 게시.

사이버 보안에서 우리는 종종 사냥꾼과 같습니다. 우리의 눈은 수평선에 단단히 붙어, 다음 브레이크 아웃 취약점을 스캔 (그것을 막을 수있는 올바른 디자인 도구, 기술 및 전술과 함께). 그러나 이러한 미래 지향적 인 초점은 전체 보안 인식을 약화시키고 주변에 존재하는 깊은 위험에 눈을 멀게하고 공격자가 모두 악용하기에 너무 행복할 수있는 놀라운 효과를 가져올 수 있습니다.

저는 종종 현대 사이버 보안을 케블라 갑옷과 비교합니다. 케블라의 미묘한 특성은 고속 탄환과 모든 종류의 현대적이고 강력한 무기를 차단할 수 있습니다. 심지어 착용자가 다소 무적의 느낌을 만들 수 있습니다. 그러나, 비교적 고대 활과 화살 무기 시스템, 처음 약 1000 B.C., 종종 그 보호를 관통 할 수 있습니다. 바위 뒤에서 세계에서 두 번째로 오래된 무기인 날카로운 칼은 케블라가 면 스웨트셔츠를 파쇄하는 것처럼 쉽게 슬라이스할 수 있습니다. 그리고 케블라의 작은 문제는 인간의 신체의 모든 단일 밀리미터를 보호 할 수 없습니다. 공격자가 피해를 입힐 수 있는 틈새를 찾을 수 있다면 소프트웨어에서 작고 악용 가능한 영역과 비슷합니다.

사이버 보안에서 많은 조직은 8세 또는 10세 시스템의 결함에 유사하게 취약하며, 현대 컴퓨팅 용어로 는 골드 시계와 연금을 받을 자격이 있습니다. 그러나 이러한 노인 시스템에 결함이 무해하다고 생각한다면 미래에 한두 번의 죽음의 파란색 화면이 있을 것입니다.

베테랑에 대한 취약점

가장 오래되고 가장 많이 사용되는 JavaScript 라이브러리 중 하나는 이벤트 처리에서 DOM 트리 트래버스 및 조작, 애니메이션 생성에 이르기까지 모든 것을 지원하는 오픈 소스 리소스인 jQuery입니다. 그것은 꽤 주력, 그리고 몇 년 동안 사용 되었습니다. 사람들은 이 시점에서 라이브러리가 너무 확립되어 있으므로 취약점이 제거된 채 완전히 심사되어야 한다고 가정합니다.

슬프게도, 이것은 사실이 아닙니다. 기본적으로 jQuery에 의존하는 대부분의 응용 프로그램은 내부 라이브러리의 인증 지침을 사용합니다. 예를 들어 아파치 서버에서는 .htaccess 파일을 확인하는 것을 의미합니다. 아파치 서버 업데이트에 .htaccess가 포함되어 있는지 확인하기 위해 확인하려는 Pache를 사용하는 프로그램을 디자인하는 개발자는 거의 없습니다. 어쨌든 아파치는 수년 동안 보안의 기반이 되어 온 중요한 구성 요소를 제거한 이유는 무엇입니까?

이상하게 보일 수 있듯이, 아파치가 버전 2.3.9에서 했던 것과 정확히 같습니다. 분명히, 프로그램을 실행하는 데 필요한 때마다 .htaccess 구성 파일을 확인하는 데 너무 많은 일을 둔화했다. 제거하면 전반적인 아파치 성능이 향상되었지만 대부분의 사람들이 알지 못하는 취약점도 발생했습니다. 개발자가 앱이 여전히 .htaccess 파일에 도달 할 수 있는지 확인하는 것을 귀찮게하지 않으면 대부분의 요청은 면밀한 조사없이 허용됩니다.

최근 전문가들은 결함을 발견하고 이를 사용하면 권한이 없는 사용자가 쉘 또는 거의 모든 유형의 코드를 안전한 시스템에서 업로드하고 실행할 수 있다고 지적했습니다. 이로 인해 10월에 CVE-2018-9206으로 지정된 취약점 경보가 생성되었습니다. 그러나 보안 연구원이 결함을 발견 할 수있는 용이성은 전문 해커가 이와 같은 취약점을 검색하는 것이 유일한 목표임을 의미합니다. 결국, 홍보에도 불구하고, 패치와 여파에 초래 된 수정, 비슷한 높은 영향 공격은 몇 주 후 일어났다, 있는 비트 코인 도둑 악성 코드는 매주 수백만에 의해 다운로드 인기있는 NPM lib에 해방되었다.

집사 않았다

jQuery와 마찬가지로 젠킨스는 오픈 소스 제공이며, 그 종류의 가장 인기있는 중 하나입니다. 도움이 되는 하인과 같은 이름으로 Jenkins는 많은 업계의 개발 팀이 자동화 서버로 사용하는 것이 합리적입니다. 젠킨스가 제대로 작동 할 때, 그것은 매우 유용한 도구입니다. 그러나 새로 발견 된 결함, 그리고 하나는 최근에 대규모 정말 대규모 암호화 마이닝 작업을 발견, 젠킨스는 또한 나쁜 사람을 위해 많은 일을하고 있음을 시사.

가장 위험한 젠킨스 취약점 중 하나는 CVE-2017-1000353으로 지정된 Java 직렬화라고 합니다. 그것은 복잡한 공격이지만, 잠시 동안 주변에 있었던 공격입니다. 공격자는 두 개의 요청을 제출해야 합니다. 첫 번째 채널은 처음에 서버에서 거부되는 다운로드를 위한 양방향 채널을 시작합니다. 그러나 두 번째 요청에서는 공격자가 원하는 명령이 포함된 페이로드가 포함된 업로드 채널을 추가하고 페이로드.jar 스크립트를 활용합니다. 두 번째 요청이 전송되면 패치되지 않은 Jenkins 서버에서 통신이 허용됩니다.

패치된 서버에서도 악용이 존재합니다. 예를 들어 Windows 환경에서 Jenkins를 실행할 때 기본적으로 NT AUTHORITY\SYSTEM 계정을 사용하여 사용자에게 권한을 부여합니다. SYSTEM에 Windows 서버에 대한 전체 권한이 부여되므로 위험합니다. 개발자는 권한 계정을 변경할 수 있지만 종종 그렇지 않습니다. 젠킨스가 영원히 주변에 있었다는 사실에 근거하지 않는 그들의 논리는, 그래서 사람들은 어떤 취약점이 오래 전에 패치 된 것으로 파악.

가장 최근에 는 해커가 이러한 노화 젠킨스 취약점을 사용하여 여러 서버를 손상시지정했습니다. 목표는 그들이 찾을 수있는 모든 취약한 젠킨스 인스턴스에 암호 광부 프로그램을 추가하는 것이었습니다. 광부들은 암호화폐에 대한 끊임없는 검색에서 귀중한 컴퓨팅 리소스를 확보했습니다. 지금까지, 그들은 약 발견 10,800 Monero 암호화 동전, 거의의 가치 $3.5 백만.

오래된 것은 다시 새로운 것입니다

이 두 예에서 많은 사람들이 안전하다고 생각하는 플랫폼에서 기회 공격자에 의해 취약점이 악용되고 있습니다. 방어 측면에서, 보안 인식 개발의 부족은 이러한 해커가 오래된 트릭에 새로운 생명을 호흡 할 수 있도록. 그리고 노후화된 취약점을 사용하여 새로운 성공을 거두었음에도 불구하고 많은 조직에서 이러한 악순환을 막을 계획이 없습니다.

뭔가 오래되어 있다고 해서 무해하다는 뜻은 아닙니다. 그리고 일반적인 라이브러리와 리소스가 수년 동안 주변에 있었다고 해서 완전히 안전하다는 것을 의미하지는 않습니다(예: 현재 OWASP 상위 10위 권의 No. 9 항목은 알려진 취약점을 가진 구성 요소 사용에 전념함). 부지런하고 지속적인 보안 교육을 통해서만 우리는 지평선 너머로 들어오는 위험한 위협뿐만 아니라 이미 우리 자신의 뒷마당에 교활하게 정착한 위협으로부터 자신을 보호할 수 있습니다.

리소스 보기
리소스 보기

저자

피터 다뉴

피터 댄히외는 보안 컨설턴트로 12년 이상 경력을 쌓았으며, 조직, 시스템 및 개인의 보안 취약점을 타겟팅하고 평가하는 방법에 대한 공격 기법을 가르치는 SANS의 수석 강사로 8년 이상 활동한 세계적으로 인정받는 보안 전문가입니다. 2016년에는 호주에서 가장 멋진 기술자 중 한 명으로 선정(비즈니스 인사이더)되었고, 올해의 사이버 보안 전문가(AISA - 호주 정보 보안 협회)로 선정되었으며, GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA 자격증을 보유하고 있습니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

DevSecOps: 여전히 새로운 트릭을 수행 하는 오래 된 보안 버그

게시일: 2019년 3월 27일
By 피터 댄히외

원래 DevOps.com에 게시.

사이버 보안에서 우리는 종종 사냥꾼과 같습니다. 우리의 눈은 수평선에 단단히 붙어, 다음 브레이크 아웃 취약점을 스캔 (그것을 막을 수있는 올바른 디자인 도구, 기술 및 전술과 함께). 그러나 이러한 미래 지향적 인 초점은 전체 보안 인식을 약화시키고 주변에 존재하는 깊은 위험에 눈을 멀게하고 공격자가 모두 악용하기에 너무 행복할 수있는 놀라운 효과를 가져올 수 있습니다.

저는 종종 현대 사이버 보안을 케블라 갑옷과 비교합니다. 케블라의 미묘한 특성은 고속 탄환과 모든 종류의 현대적이고 강력한 무기를 차단할 수 있습니다. 심지어 착용자가 다소 무적의 느낌을 만들 수 있습니다. 그러나, 비교적 고대 활과 화살 무기 시스템, 처음 약 1000 B.C., 종종 그 보호를 관통 할 수 있습니다. 바위 뒤에서 세계에서 두 번째로 오래된 무기인 날카로운 칼은 케블라가 면 스웨트셔츠를 파쇄하는 것처럼 쉽게 슬라이스할 수 있습니다. 그리고 케블라의 작은 문제는 인간의 신체의 모든 단일 밀리미터를 보호 할 수 없습니다. 공격자가 피해를 입힐 수 있는 틈새를 찾을 수 있다면 소프트웨어에서 작고 악용 가능한 영역과 비슷합니다.

사이버 보안에서 많은 조직은 8세 또는 10세 시스템의 결함에 유사하게 취약하며, 현대 컴퓨팅 용어로 는 골드 시계와 연금을 받을 자격이 있습니다. 그러나 이러한 노인 시스템에 결함이 무해하다고 생각한다면 미래에 한두 번의 죽음의 파란색 화면이 있을 것입니다.

베테랑에 대한 취약점

가장 오래되고 가장 많이 사용되는 JavaScript 라이브러리 중 하나는 이벤트 처리에서 DOM 트리 트래버스 및 조작, 애니메이션 생성에 이르기까지 모든 것을 지원하는 오픈 소스 리소스인 jQuery입니다. 그것은 꽤 주력, 그리고 몇 년 동안 사용 되었습니다. 사람들은 이 시점에서 라이브러리가 너무 확립되어 있으므로 취약점이 제거된 채 완전히 심사되어야 한다고 가정합니다.

슬프게도, 이것은 사실이 아닙니다. 기본적으로 jQuery에 의존하는 대부분의 응용 프로그램은 내부 라이브러리의 인증 지침을 사용합니다. 예를 들어 아파치 서버에서는 .htaccess 파일을 확인하는 것을 의미합니다. 아파치 서버 업데이트에 .htaccess가 포함되어 있는지 확인하기 위해 확인하려는 Pache를 사용하는 프로그램을 디자인하는 개발자는 거의 없습니다. 어쨌든 아파치는 수년 동안 보안의 기반이 되어 온 중요한 구성 요소를 제거한 이유는 무엇입니까?

이상하게 보일 수 있듯이, 아파치가 버전 2.3.9에서 했던 것과 정확히 같습니다. 분명히, 프로그램을 실행하는 데 필요한 때마다 .htaccess 구성 파일을 확인하는 데 너무 많은 일을 둔화했다. 제거하면 전반적인 아파치 성능이 향상되었지만 대부분의 사람들이 알지 못하는 취약점도 발생했습니다. 개발자가 앱이 여전히 .htaccess 파일에 도달 할 수 있는지 확인하는 것을 귀찮게하지 않으면 대부분의 요청은 면밀한 조사없이 허용됩니다.

최근 전문가들은 결함을 발견하고 이를 사용하면 권한이 없는 사용자가 쉘 또는 거의 모든 유형의 코드를 안전한 시스템에서 업로드하고 실행할 수 있다고 지적했습니다. 이로 인해 10월에 CVE-2018-9206으로 지정된 취약점 경보가 생성되었습니다. 그러나 보안 연구원이 결함을 발견 할 수있는 용이성은 전문 해커가 이와 같은 취약점을 검색하는 것이 유일한 목표임을 의미합니다. 결국, 홍보에도 불구하고, 패치와 여파에 초래 된 수정, 비슷한 높은 영향 공격은 몇 주 후 일어났다, 있는 비트 코인 도둑 악성 코드는 매주 수백만에 의해 다운로드 인기있는 NPM lib에 해방되었다.

집사 않았다

jQuery와 마찬가지로 젠킨스는 오픈 소스 제공이며, 그 종류의 가장 인기있는 중 하나입니다. 도움이 되는 하인과 같은 이름으로 Jenkins는 많은 업계의 개발 팀이 자동화 서버로 사용하는 것이 합리적입니다. 젠킨스가 제대로 작동 할 때, 그것은 매우 유용한 도구입니다. 그러나 새로 발견 된 결함, 그리고 하나는 최근에 대규모 정말 대규모 암호화 마이닝 작업을 발견, 젠킨스는 또한 나쁜 사람을 위해 많은 일을하고 있음을 시사.

가장 위험한 젠킨스 취약점 중 하나는 CVE-2017-1000353으로 지정된 Java 직렬화라고 합니다. 그것은 복잡한 공격이지만, 잠시 동안 주변에 있었던 공격입니다. 공격자는 두 개의 요청을 제출해야 합니다. 첫 번째 채널은 처음에 서버에서 거부되는 다운로드를 위한 양방향 채널을 시작합니다. 그러나 두 번째 요청에서는 공격자가 원하는 명령이 포함된 페이로드가 포함된 업로드 채널을 추가하고 페이로드.jar 스크립트를 활용합니다. 두 번째 요청이 전송되면 패치되지 않은 Jenkins 서버에서 통신이 허용됩니다.

패치된 서버에서도 악용이 존재합니다. 예를 들어 Windows 환경에서 Jenkins를 실행할 때 기본적으로 NT AUTHORITY\SYSTEM 계정을 사용하여 사용자에게 권한을 부여합니다. SYSTEM에 Windows 서버에 대한 전체 권한이 부여되므로 위험합니다. 개발자는 권한 계정을 변경할 수 있지만 종종 그렇지 않습니다. 젠킨스가 영원히 주변에 있었다는 사실에 근거하지 않는 그들의 논리는, 그래서 사람들은 어떤 취약점이 오래 전에 패치 된 것으로 파악.

가장 최근에 는 해커가 이러한 노화 젠킨스 취약점을 사용하여 여러 서버를 손상시지정했습니다. 목표는 그들이 찾을 수있는 모든 취약한 젠킨스 인스턴스에 암호 광부 프로그램을 추가하는 것이었습니다. 광부들은 암호화폐에 대한 끊임없는 검색에서 귀중한 컴퓨팅 리소스를 확보했습니다. 지금까지, 그들은 약 발견 10,800 Monero 암호화 동전, 거의의 가치 $3.5 백만.

오래된 것은 다시 새로운 것입니다

이 두 예에서 많은 사람들이 안전하다고 생각하는 플랫폼에서 기회 공격자에 의해 취약점이 악용되고 있습니다. 방어 측면에서, 보안 인식 개발의 부족은 이러한 해커가 오래된 트릭에 새로운 생명을 호흡 할 수 있도록. 그리고 노후화된 취약점을 사용하여 새로운 성공을 거두었음에도 불구하고 많은 조직에서 이러한 악순환을 막을 계획이 없습니다.

뭔가 오래되어 있다고 해서 무해하다는 뜻은 아닙니다. 그리고 일반적인 라이브러리와 리소스가 수년 동안 주변에 있었다고 해서 완전히 안전하다는 것을 의미하지는 않습니다(예: 현재 OWASP 상위 10위 권의 No. 9 항목은 알려진 취약점을 가진 구성 요소 사용에 전념함). 부지런하고 지속적인 보안 교육을 통해서만 우리는 지평선 너머로 들어오는 위험한 위협뿐만 아니라 이미 우리 자신의 뒷마당에 교활하게 정착한 위협으로부터 자신을 보호할 수 있습니다.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.