코드 시리즈로 보안 인프라를 정복 코더: 보안 잘못 구성 - 부적절한 권한

게시일: 2020년 6월 8일
작성자: 마티아스 마두, Ph.
사례 연구

코드 시리즈로 보안 인프라를 정복 코더: 보안 잘못 구성 - 부적절한 권한

게시일: 2020년 6월 8일
작성자: 마티아스 마두, Ph.
리소스 보기
리소스 보기

요즘 사이버 보안에 대한 위협은 유비쿼터스이며 끊임없는 위협입니다. 프로그램이 배포된 후에도 따라잡으려고 노력하는 것이 거의 불가능해졌습니다. 대신, 날카로운 조직은 인프라 개념을 코드로 받아들이고 있으며, 개발자는 여전히 만들어지는 동안 안전한 응용 프로그램을 만드는 데 기여합니다. 이 계열은 보안을 준비하는 것이므로 개발자가 자신의 조직에서 보안 인프라를 코드로 배포하기 위해 취할 수 있는 단계를 이해할 수 있습니다.

보안 오수, 특히 부적절한 권한의 다양성은 개발자가 작업을 수행하기 위해 새 사용자를 만들거나 응용 프로그램에 대한 권한을 도구로 부여할 때마다 가장 자주 발생합니다. 예를 들어 데이터베이스에서 정보를 수집하기 위해 이 작업을 수행할 수 있습니다. 그러나 새 사용자에 대한 권한이 너무 높게 설정되거나 현재 작업에 대해 기본적으로 구성되지 않으면 코드에 심각한 취약점이 발생할 수 있습니다.

우리가 그것에 들어가기 전에, 왜 지금 당신의 능력을 테스트하지? 몇 가지 부적절한 권한 취약점을 찾아 수정해 보십시오.

어떻게 하셨나요? 좀 더 깊이 파고 들어 봅시다.

사용자 또는 응용 프로그램에 전체 권한을 부여하거나 새 사용자가 수행할 수 있어야 하는 것과 제한된 동작을 정의하는 데 방해가 되지 않는 것은 새 코드를 제자리에 배치하는 가장 빠른 방법입니다. 그리고 모든 것이 완벽하게 잘 되면 응용 프로그램은 해당 권한을 사용하여 할당된 작업을 수행합니다. 위험은 해커가이 프로세스를 발견 한 다음 해당 사용자를 손상시킬 것입니다. 사용자가 특정 응용 프로그램에 대한 특정 기능을 수행하도록 만들어졌지만 손상된 경우 공격자가 다른 응용 프로그램, 데이터 또는 네트워크를 위험에 빠뜨릴 수 있습니다.

보안 오디구성은 어떻게 악용됩니까?

위험을 시각화하려면 Docker 클라우드 환경 내에서 공통 작업이 코딩되는 방법을 살펴보겠습니다. 개발자가 Prometheus MySQL 수출 서비스를 사용하여 데이터베이스에서 정보를 수집하고 있다고 가정해 보겠습니다. 이를 허용하는 가장 쉬운 방법은 수출업체에 데이터베이스에 액세스할 수 있는 권한을 부여하는 것입니다. 따라서 코드는 다음과 같은 것일 수 있습니다.

mysql에서:최신
복사 ./스크립트/create_users.sh/docker-엔트리포인트-initdb.d/
사용자 999
$EXPORTER_암호로 식별된 사용자 exporter@%를 만듭니다.
*.* 모든 것을 exporter@%로 부여합니다.
performance_schema.* 에서 exporter@%로 선택하도록 부여합니다.

이것은 확실히 수출이 작업을 수행 할 수 있도록 만들 것입니다. 그러나 권한이 정의되지 않았기 때문에 수출업체는 실제로 거의 모든 작업을 수행할 수 있습니다. 분명히, 수출 자체는 프로그래밍 된 행동 이외의 행동하지 않을 것입니다. 그러나 공격자가 수출 서비스를 손상시킬 수 있다면 어떻게 될까요? 이 경우 전체 권한이 부여되었기 때문에 공격자는 SQL 서비스에서 모든 종류의 승인되지 않은 작업을 수행할 수 있습니다.

부적절한 권한 보호 및 제거

여기에서 다시, 우리는 코드로 인프라의 개념을 켭니다. 보안이 생성되는 대로 응용 프로그램에 보안을 코딩하는 경우 사이버 보안과 관련하여 네트워크는 항상 훨씬 더 나은 전반적인 기반을 유지하게 됩니다.

위의 Docker 예제에서 개발자가 Prometheus MySQL 프로비컨더가 데이터베이스를 쿼리할 수 있도록 하려면 이를 허용해야 할 작업을 정의하여 보다 안전하게 수행할 수 있습니다. 이 것의 좋은 예는 다음과 같은 것입니다.


mysql에서:최신
복사 ./스크립트/create_users.sh/docker-엔트리포인트-initdb.d/
사용자 999
$EXPORTER_암호로 식별된 사용자 exporter@%를 만듭니다.
부여 프로세스, 복제 클라이언트 *.* ~ exporter@%;
performance_schema.* 에서 exporter@%로 선택하도록 부여합니다.

이 경우 Prometheus MySQL 프로비셀 서비스에 대해 구성된 MySQL 사용자는 MySQL 서비스에 대한 제한된 권한만 있습니다. 특히 프로세스 및 복제 클라이언트 권한만 허용됩니다. 이렇게 하면 악의적인 사용자가 손상된 Prometheus MySQL 수출 서비스를 이용하지 못하게 됩니다.

코드 수준에서 권한을 제한하면 사용자와 응용 프로그램에 작업에 대한 충분한 권한만 갖도록 할 수 있습니다. 이를 통해 네트워크를 보호하고 인프라 개념을 코드로 수용하는 데 큰 역할을 할 수 있습니다.

체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 또한, Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

리소스 보기
리소스 보기

저자

마티아스 마두, Ph.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

코드 시리즈로 보안 인프라를 정복 코더: 보안 잘못 구성 - 부적절한 권한

게시일: 2020년 6월 8일
마티아스 마두, Ph.

요즘 사이버 보안에 대한 위협은 유비쿼터스이며 끊임없는 위협입니다. 프로그램이 배포된 후에도 따라잡으려고 노력하는 것이 거의 불가능해졌습니다. 대신, 날카로운 조직은 인프라 개념을 코드로 받아들이고 있으며, 개발자는 여전히 만들어지는 동안 안전한 응용 프로그램을 만드는 데 기여합니다. 이 계열은 보안을 준비하는 것이므로 개발자가 자신의 조직에서 보안 인프라를 코드로 배포하기 위해 취할 수 있는 단계를 이해할 수 있습니다.

보안 오수, 특히 부적절한 권한의 다양성은 개발자가 작업을 수행하기 위해 새 사용자를 만들거나 응용 프로그램에 대한 권한을 도구로 부여할 때마다 가장 자주 발생합니다. 예를 들어 데이터베이스에서 정보를 수집하기 위해 이 작업을 수행할 수 있습니다. 그러나 새 사용자에 대한 권한이 너무 높게 설정되거나 현재 작업에 대해 기본적으로 구성되지 않으면 코드에 심각한 취약점이 발생할 수 있습니다.

우리가 그것에 들어가기 전에, 왜 지금 당신의 능력을 테스트하지? 몇 가지 부적절한 권한 취약점을 찾아 수정해 보십시오.

어떻게 하셨나요? 좀 더 깊이 파고 들어 봅시다.

사용자 또는 응용 프로그램에 전체 권한을 부여하거나 새 사용자가 수행할 수 있어야 하는 것과 제한된 동작을 정의하는 데 방해가 되지 않는 것은 새 코드를 제자리에 배치하는 가장 빠른 방법입니다. 그리고 모든 것이 완벽하게 잘 되면 응용 프로그램은 해당 권한을 사용하여 할당된 작업을 수행합니다. 위험은 해커가이 프로세스를 발견 한 다음 해당 사용자를 손상시킬 것입니다. 사용자가 특정 응용 프로그램에 대한 특정 기능을 수행하도록 만들어졌지만 손상된 경우 공격자가 다른 응용 프로그램, 데이터 또는 네트워크를 위험에 빠뜨릴 수 있습니다.

보안 오디구성은 어떻게 악용됩니까?

위험을 시각화하려면 Docker 클라우드 환경 내에서 공통 작업이 코딩되는 방법을 살펴보겠습니다. 개발자가 Prometheus MySQL 수출 서비스를 사용하여 데이터베이스에서 정보를 수집하고 있다고 가정해 보겠습니다. 이를 허용하는 가장 쉬운 방법은 수출업체에 데이터베이스에 액세스할 수 있는 권한을 부여하는 것입니다. 따라서 코드는 다음과 같은 것일 수 있습니다.

mysql에서:최신
복사 ./스크립트/create_users.sh/docker-엔트리포인트-initdb.d/
사용자 999
$EXPORTER_암호로 식별된 사용자 exporter@%를 만듭니다.
*.* 모든 것을 exporter@%로 부여합니다.
performance_schema.* 에서 exporter@%로 선택하도록 부여합니다.

이것은 확실히 수출이 작업을 수행 할 수 있도록 만들 것입니다. 그러나 권한이 정의되지 않았기 때문에 수출업체는 실제로 거의 모든 작업을 수행할 수 있습니다. 분명히, 수출 자체는 프로그래밍 된 행동 이외의 행동하지 않을 것입니다. 그러나 공격자가 수출 서비스를 손상시킬 수 있다면 어떻게 될까요? 이 경우 전체 권한이 부여되었기 때문에 공격자는 SQL 서비스에서 모든 종류의 승인되지 않은 작업을 수행할 수 있습니다.

부적절한 권한 보호 및 제거

여기에서 다시, 우리는 코드로 인프라의 개념을 켭니다. 보안이 생성되는 대로 응용 프로그램에 보안을 코딩하는 경우 사이버 보안과 관련하여 네트워크는 항상 훨씬 더 나은 전반적인 기반을 유지하게 됩니다.

위의 Docker 예제에서 개발자가 Prometheus MySQL 프로비컨더가 데이터베이스를 쿼리할 수 있도록 하려면 이를 허용해야 할 작업을 정의하여 보다 안전하게 수행할 수 있습니다. 이 것의 좋은 예는 다음과 같은 것입니다.


mysql에서:최신
복사 ./스크립트/create_users.sh/docker-엔트리포인트-initdb.d/
사용자 999
$EXPORTER_암호로 식별된 사용자 exporter@%를 만듭니다.
부여 프로세스, 복제 클라이언트 *.* ~ exporter@%;
performance_schema.* 에서 exporter@%로 선택하도록 부여합니다.

이 경우 Prometheus MySQL 프로비셀 서비스에 대해 구성된 MySQL 사용자는 MySQL 서비스에 대한 제한된 권한만 있습니다. 특히 프로세스 및 복제 클라이언트 권한만 허용됩니다. 이렇게 하면 악의적인 사용자가 손상된 Prometheus MySQL 수출 서비스를 이용하지 못하게 됩니다.

코드 수준에서 권한을 제한하면 사용자와 응용 프로그램에 작업에 대한 충분한 권한만 갖도록 할 수 있습니다. 이를 통해 네트워크를 보호하고 인프라 개념을 코드로 수용하는 데 큰 역할을 할 수 있습니다.

체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 또한, Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

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

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