
프로그래머가 코드로 보안 인프라를 정복하는 시리즈: 비활성화된 보안 기능
오늘날 사이버 보안 위협은 어디에나 존재하며 끊임없이 이어집니다. 우리 삶의 더 많은 영역이 디지털화될수록 사이버 범죄자들이 직면하는 위험은 더욱 커집니다. 안전을 보장할 수 없는 코드가 너무 많고, 개인 데이터는 너무나 가치 있기 때문입니다. 게다가, 프로그램을 배포한 후 공격 표면의 모든 측면을 따라잡고 방어하려는 시도는 거의 불가능합니다.
일부 증상을 완화할 수 있는 방법이 있으며, 현명한 조직이 인프라스트럭처 즉 코드(IaC) 개념을 수용할 때 그중 하나가 명백해집니다. 물론 모든 개발과 마찬가지로 해결해야 할 몇 가지 보안 함정이 존재합니다. 또한 개발자가 애플리케이션 호스팅에 사용되는 핵심 인프라를 생성하는 코드를 연구하고 있기 때문에, 프로세스 각 단계에서 보안 의식이 매우 중요합니다.
그렇다면 클라우드 서버 환경을 처음 접하는 개발자는 어떻게 기술을 향상시키고 학습하며, 보안 의식을 높인 상태에서 구축을 진행할 수 있을까요? 우리는 일반적인 IaC 취약점을 해결하기 위해 다음 Coders Conquer Security 시리즈를 제작했습니다.향후 블로그 글에서는 여러분(개발자)이 조직 내에서 코드로 보안 인프라를 배포하기 시작할 수 있는 단계에 중점을 둘 예정입니다.
시작해 보자.
미국 옛 서부에는 한 편협한 사람이 강도들이 자신의 집을 습격하고 약탈할 것이라고 믿었다는 우화가 전해진다. 이에 대한 대비책으로,그는 초강력 현관문 설치, 모든 창문 막대기 설치, 손이 닿는 곳에 대량의 총기 비치 등 각종 보안 장치에 투자했다. 그러던 어느 날 밤, 그는 잠든 사이 강도를 당했는데, 옆문을 잠그지 않았기 때문이었다. 강도들은 무력화된 보안 장치를 발견하고 재빨리 그 상황을 이용했다.
인프라에서 보안 기능을 비활성화하는 것은 이와 같습니다. 네트워크에 강력한 보안 인프라가 구축되어 있더라도, 특정 요소가 비활성화되어 있다면 아무 소용이 없습니다.
우리가 잠입하기 전에, 한 가지 도전을 제안하겠습니다:
위의 링크를 방문하시면 저희 게임화 교육 플랫폼으로 이동하게 되며, 즉시 비활성화된 보안 기능 취약점을 극복해 볼 수 있습니다. (참고: Kubernetes에서 열리지만, 드롭다운 메뉴를 통해 Docker, CloudFormation, Terraform 및 Ansible 중에서 선택할 수 있습니다).
어떻게 하고 있나요? 아직 할 일이 남아 있다면 계속 읽어보세요:
보안 기능은 다양한 이유로 비활성화될 수 있습니다. 일부 애플리케이션 및 프레임워크의 경우 기본적으로 비활성화되어 있어 실행 전에 먼저 활성화해야 합니다. 관리자는 특정 작업을 더 쉽게 수행하고 자주 차단되거나 제한받지 않도록(예: 공개된 AWS S3 버킷) 특정 보안 기능을 비활성화할 수도 있습니다. 작업이 완료된 후,해당 기능을 다시 활성화하는 것을 잊을 수 있습니다. 또한 향후 작업을 더 쉽게 수행하기 위해 해당 기능을 비활성화 상태로 유지하는 것을 선호할 수도 있습니다.
왜 비활성화된 보안 기능이 그렇게 위험한가
하나 이상의 보안 기능을 비활성화하는 것은 바람직하지 않습니다. 그 이유는 두 가지입니다. 첫째, 보안 기능은 알려진 취약점, 위협 또는 결함을 방지하기 위해 인프라 리소스에 적용됩니다. 이를 비활성화하면 해당 리소스를 보호할 수 없게 됩니다.
공격자는 항상 먼저 쉽게 악용할 수 있는 취약점을 찾으려 시도하며, 심지어 스크립트를 사용해 흔한 취약점을 수정하기도 합니다. 이는 도둑이 길가의 모든 차량을 살펴보며 문이 잠기지 않은 곳이 있는지 확인하는 것과 다를 바 없으며, 창문을 깨는 것보다 훨씬 쉬운 방법입니다. 해커들은 흔한 보안 방어 수단이 비활성화되어 있다는 사실에 놀랄 수도 있습니다. 하지만 이런 상황이 발생하면 그들은 즉시 이를 악용합니다.
둘째, 적절한 보안 설정을 한 후 이를 비활성화하면 허위의 안전감을 조성합니다. 관리자가 누군가 이러한 방어 기능을 비활성화했는지 알지 못한다면, 자신들이 일반적인 위협으로부터 안전하다고 생각할 수 있습니다.
공용 액세스를 차단하는 AWS S3 보안 기능을 공격자가 어떻게 악용할 수 있는지에 대한 예시로 살펴볼 수 있습니다. Amazon S3의 공용 액세스 차단 기능을 통해 계정 관리자 및 저장소 소유자는 Amazon S3 리소스에 대한 공개 액세스를 제한하는 중앙 집중식 제어를 쉽게 설정할 수 있습니다.그러나 일부 관리자는 S3 버킷에 접근하는 데 문제가 발생하면 작업을 신속히 완료하기 위해 공개적으로 접근하기로 결정합니다. 만약 그들이 이 보안 기능을 활성화하는 것을 잊어버린다면, 공격자는 해당 S3 버킷에 저장된 정보에 완전히 접근할 수 있게 되며, 이는 정보 유출뿐만 아니라 데이터 전송 비용으로 인한 추가 비용 발생으로 이어질 수 있습니다.
실제 코드를 비교해 보겠습니다. 다음 CloudFormation 코드 조각을 살펴보세요:
취약점:
기업 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLS: 오류
BlockPublicy: 오류
ignorepublicacls: 오류
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본값 서버 측 암호화:
SSE 알고리즘: "AES256"
안전:
기업용 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLs: true
BlockPublicy: true
ignorePublicACLs:
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본 서버 측 암호화:
SSE 알고리즘: "AES256"
안전 기능 비활성화 방지
비활성화된 보안 기능이 조직에 부정적인 영향을 미치는 것을 방지하는 것은 정책적 문제이자 실무적 문제입니다. 보안 기능을 비활성화할 수 있는 경우는 극히 예외적인 상황으로 제한하는 확고한 정책을 수립해야 합니다. 문제 해결이나 애플리케이션 업데이트를 위해 기능을 일시적으로 비활성화해야 하는 사건은 반드시 기록해야 합니다. 필요한 작업이 완료된 후에는 기능이 완전히 재활성화되었는지 확인해야 합니다.
보안 기능을 영구적으로 비활성화해야만 운영을 간소화할 수 있는 경우, 영향을 받는 데이터에 대해 다른 보호 조치를 마련하여 기본 보호 기능이 없는 상태에서도 해커가 해당 기능에 접근할 수 없도록 해야 합니다. 필요한 보호 기능이 비활성화된 상태라면, 공격자가 잠기지 않은 문을 발견하고 이를 악용하는 것은 시간 문제일 뿐입니다.
더 알아보고, 자신에게 도전하세요:
보안 코드 워리어 블로그 페이지를 방문하여 이 취약점에 대한 자세한 내용을 확인하고, 조직과 고객을 다른 보안 취약점 및 결함으로부터 보호하는 방법을 알아보세요.
이제 이 글을 읽으셨으니, 이 취약점을 발견하고 수정할 준비가 되셨나요? Secure Code Warrior iMac 게임화 보안 챌린지를 시도해 볼 때입니다. 모든 사이버 보안 기술을 지속적으로 연마하고 최신 상태로 유지하세요.
매주 발행되는 시리즈 글로, 상위 8개 '인프라스트럭처 애즈 코드(Infrastructure as Code)' 취약점을 다룹니다. 다음 주에 더 많은 정보를 확인하세요!


공격자는 항상 먼저 쉽게 악용할 수 있는 취약점을 찾으려 시도하며, 심지어 일반적인 취약점을 자동으로 찾아 수정하는 스크립트를 사용할 수도 있습니다. 이는 도둑이 길가에 주차된 모든 차량의 문을 잠갔는지 확인하는 것과 다를 바 없으며, 창문을 깨는 것보다 훨씬 쉬운 방법입니다.
마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.
Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.


오늘날 사이버 보안 위협은 어디에나 존재하며 끊임없이 이어집니다. 우리 삶의 더 많은 영역이 디지털화될수록 사이버 범죄자들이 직면하는 위험은 더욱 커집니다. 안전을 보장할 수 없는 코드가 너무 많고, 개인 데이터는 너무나 가치 있기 때문입니다. 게다가, 프로그램을 배포한 후 공격 표면의 모든 측면을 따라잡고 방어하려는 시도는 거의 불가능합니다.
일부 증상을 완화할 수 있는 방법이 있으며, 현명한 조직이 인프라스트럭처 즉 코드(IaC) 개념을 수용할 때 그중 하나가 명백해집니다. 물론 모든 개발과 마찬가지로 해결해야 할 몇 가지 보안 함정이 존재합니다. 또한 개발자가 애플리케이션 호스팅에 사용되는 핵심 인프라를 생성하는 코드를 연구하고 있기 때문에, 프로세스 각 단계에서 보안 의식이 매우 중요합니다.
그렇다면 클라우드 서버 환경을 처음 접하는 개발자는 어떻게 기술을 향상시키고 학습하며, 보안 의식을 높인 상태에서 구축을 진행할 수 있을까요? 우리는 일반적인 IaC 취약점을 해결하기 위해 다음 Coders Conquer Security 시리즈를 제작했습니다.향후 블로그 글에서는 여러분(개발자)이 조직 내에서 코드로 보안 인프라를 배포하기 시작할 수 있는 단계에 중점을 둘 예정입니다.
시작해 보자.
미국 옛 서부에는 한 편협한 사람이 강도들이 자신의 집을 습격하고 약탈할 것이라고 믿었다는 우화가 전해진다. 이에 대한 대비책으로,그는 초강력 현관문 설치, 모든 창문 막대기 설치, 손이 닿는 곳에 대량의 총기 비치 등 각종 보안 장치에 투자했다. 그러던 어느 날 밤, 그는 잠든 사이 강도를 당했는데, 옆문을 잠그지 않았기 때문이었다. 강도들은 무력화된 보안 장치를 발견하고 재빨리 그 상황을 이용했다.
인프라에서 보안 기능을 비활성화하는 것은 이와 같습니다. 네트워크에 강력한 보안 인프라가 구축되어 있더라도, 특정 요소가 비활성화되어 있다면 아무 소용이 없습니다.
우리가 잠입하기 전에, 한 가지 도전을 제안하겠습니다:
위의 링크를 방문하시면 저희 게임화 교육 플랫폼으로 이동하게 되며, 즉시 비활성화된 보안 기능 취약점을 극복해 볼 수 있습니다. (참고: Kubernetes에서 열리지만, 드롭다운 메뉴를 통해 Docker, CloudFormation, Terraform 및 Ansible 중에서 선택할 수 있습니다).
어떻게 하고 있나요? 아직 할 일이 남아 있다면 계속 읽어보세요:
보안 기능은 다양한 이유로 비활성화될 수 있습니다. 일부 애플리케이션 및 프레임워크의 경우 기본적으로 비활성화되어 있어 실행 전에 먼저 활성화해야 합니다. 관리자는 특정 작업을 더 쉽게 수행하고 자주 차단되거나 제한받지 않도록(예: 공개된 AWS S3 버킷) 특정 보안 기능을 비활성화할 수도 있습니다. 작업이 완료된 후,해당 기능을 다시 활성화하는 것을 잊을 수 있습니다. 또한 향후 작업을 더 쉽게 수행하기 위해 해당 기능을 비활성화 상태로 유지하는 것을 선호할 수도 있습니다.
왜 비활성화된 보안 기능이 그렇게 위험한가
하나 이상의 보안 기능을 비활성화하는 것은 바람직하지 않습니다. 그 이유는 두 가지입니다. 첫째, 보안 기능은 알려진 취약점, 위협 또는 결함을 방지하기 위해 인프라 리소스에 적용됩니다. 이를 비활성화하면 해당 리소스를 보호할 수 없게 됩니다.
공격자는 항상 먼저 쉽게 악용할 수 있는 취약점을 찾으려 시도하며, 심지어 스크립트를 사용해 흔한 취약점을 수정하기도 합니다. 이는 도둑이 길가의 모든 차량을 살펴보며 문이 잠기지 않은 곳이 있는지 확인하는 것과 다를 바 없으며, 창문을 깨는 것보다 훨씬 쉬운 방법입니다. 해커들은 흔한 보안 방어 수단이 비활성화되어 있다는 사실에 놀랄 수도 있습니다. 하지만 이런 상황이 발생하면 그들은 즉시 이를 악용합니다.
둘째, 적절한 보안 설정을 한 후 이를 비활성화하면 허위의 안전감을 조성합니다. 관리자가 누군가 이러한 방어 기능을 비활성화했는지 알지 못한다면, 자신들이 일반적인 위협으로부터 안전하다고 생각할 수 있습니다.
공용 액세스를 차단하는 AWS S3 보안 기능을 공격자가 어떻게 악용할 수 있는지에 대한 예시로 살펴볼 수 있습니다. Amazon S3의 공용 액세스 차단 기능을 통해 계정 관리자 및 저장소 소유자는 Amazon S3 리소스에 대한 공개 액세스를 제한하는 중앙 집중식 제어를 쉽게 설정할 수 있습니다.그러나 일부 관리자는 S3 버킷에 접근하는 데 문제가 발생하면 작업을 신속히 완료하기 위해 공개적으로 접근하기로 결정합니다. 만약 그들이 이 보안 기능을 활성화하는 것을 잊어버린다면, 공격자는 해당 S3 버킷에 저장된 정보에 완전히 접근할 수 있게 되며, 이는 정보 유출뿐만 아니라 데이터 전송 비용으로 인한 추가 비용 발생으로 이어질 수 있습니다.
실제 코드를 비교해 보겠습니다. 다음 CloudFormation 코드 조각을 살펴보세요:
취약점:
기업 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLS: 오류
BlockPublicy: 오류
ignorepublicacls: 오류
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본값 서버 측 암호화:
SSE 알고리즘: "AES256"
안전:
기업용 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLs: true
BlockPublicy: true
ignorePublicACLs:
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본 서버 측 암호화:
SSE 알고리즘: "AES256"
안전 기능 비활성화 방지
비활성화된 보안 기능이 조직에 부정적인 영향을 미치는 것을 방지하는 것은 정책적 문제이자 실무적 문제입니다. 보안 기능을 비활성화할 수 있는 경우는 극히 예외적인 상황으로 제한하는 확고한 정책을 수립해야 합니다. 문제 해결이나 애플리케이션 업데이트를 위해 기능을 일시적으로 비활성화해야 하는 사건은 반드시 기록해야 합니다. 필요한 작업이 완료된 후에는 기능이 완전히 재활성화되었는지 확인해야 합니다.
보안 기능을 영구적으로 비활성화해야만 운영을 간소화할 수 있는 경우, 영향을 받는 데이터에 대해 다른 보호 조치를 마련하여 기본 보호 기능이 없는 상태에서도 해커가 해당 기능에 접근할 수 없도록 해야 합니다. 필요한 보호 기능이 비활성화된 상태라면, 공격자가 잠기지 않은 문을 발견하고 이를 악용하는 것은 시간 문제일 뿐입니다.
더 알아보고, 자신에게 도전하세요:
보안 코드 워리어 블로그 페이지를 방문하여 이 취약점에 대한 자세한 내용을 확인하고, 조직과 고객을 다른 보안 취약점 및 결함으로부터 보호하는 방법을 알아보세요.
이제 이 글을 읽으셨으니, 이 취약점을 발견하고 수정할 준비가 되셨나요? Secure Code Warrior iMac 게임화 보안 챌린지를 시도해 볼 때입니다. 모든 사이버 보안 기술을 지속적으로 연마하고 최신 상태로 유지하세요.
매주 발행되는 시리즈 글로, 상위 8개 '인프라스트럭처 애즈 코드(Infrastructure as Code)' 취약점을 다룹니다. 다음 주에 더 많은 정보를 확인하세요!

오늘날 사이버 보안 위협은 어디에나 존재하며 끊임없이 이어집니다. 우리 삶의 더 많은 영역이 디지털화될수록 사이버 범죄자들이 직면하는 위험은 더욱 커집니다. 안전을 보장할 수 없는 코드가 너무 많고, 개인 데이터는 너무나 가치 있기 때문입니다. 게다가, 프로그램을 배포한 후 공격 표면의 모든 측면을 따라잡고 방어하려는 시도는 거의 불가능합니다.
일부 증상을 완화할 수 있는 방법이 있으며, 현명한 조직이 인프라스트럭처 즉 코드(IaC) 개념을 수용할 때 그중 하나가 명백해집니다. 물론 모든 개발과 마찬가지로 해결해야 할 몇 가지 보안 함정이 존재합니다. 또한 개발자가 애플리케이션 호스팅에 사용되는 핵심 인프라를 생성하는 코드를 연구하고 있기 때문에, 프로세스 각 단계에서 보안 의식이 매우 중요합니다.
그렇다면 클라우드 서버 환경을 처음 접하는 개발자는 어떻게 기술을 향상시키고 학습하며, 보안 의식을 높인 상태에서 구축을 진행할 수 있을까요? 우리는 일반적인 IaC 취약점을 해결하기 위해 다음 Coders Conquer Security 시리즈를 제작했습니다.향후 블로그 글에서는 여러분(개발자)이 조직 내에서 코드로 보안 인프라를 배포하기 시작할 수 있는 단계에 중점을 둘 예정입니다.
시작해 보자.
미국 옛 서부에는 한 편협한 사람이 강도들이 자신의 집을 습격하고 약탈할 것이라고 믿었다는 우화가 전해진다. 이에 대한 대비책으로,그는 초강력 현관문 설치, 모든 창문 막대기 설치, 손이 닿는 곳에 대량의 총기 비치 등 각종 보안 장치에 투자했다. 그러던 어느 날 밤, 그는 잠든 사이 강도를 당했는데, 옆문을 잠그지 않았기 때문이었다. 강도들은 무력화된 보안 장치를 발견하고 재빨리 그 상황을 이용했다.
인프라에서 보안 기능을 비활성화하는 것은 이와 같습니다. 네트워크에 강력한 보안 인프라가 구축되어 있더라도, 특정 요소가 비활성화되어 있다면 아무 소용이 없습니다.
우리가 잠입하기 전에, 한 가지 도전을 제안하겠습니다:
위의 링크를 방문하시면 저희 게임화 교육 플랫폼으로 이동하게 되며, 즉시 비활성화된 보안 기능 취약점을 극복해 볼 수 있습니다. (참고: Kubernetes에서 열리지만, 드롭다운 메뉴를 통해 Docker, CloudFormation, Terraform 및 Ansible 중에서 선택할 수 있습니다).
어떻게 하고 있나요? 아직 할 일이 남아 있다면 계속 읽어보세요:
보안 기능은 다양한 이유로 비활성화될 수 있습니다. 일부 애플리케이션 및 프레임워크의 경우 기본적으로 비활성화되어 있어 실행 전에 먼저 활성화해야 합니다. 관리자는 특정 작업을 더 쉽게 수행하고 자주 차단되거나 제한받지 않도록(예: 공개된 AWS S3 버킷) 특정 보안 기능을 비활성화할 수도 있습니다. 작업이 완료된 후,해당 기능을 다시 활성화하는 것을 잊을 수 있습니다. 또한 향후 작업을 더 쉽게 수행하기 위해 해당 기능을 비활성화 상태로 유지하는 것을 선호할 수도 있습니다.
왜 비활성화된 보안 기능이 그렇게 위험한가
하나 이상의 보안 기능을 비활성화하는 것은 바람직하지 않습니다. 그 이유는 두 가지입니다. 첫째, 보안 기능은 알려진 취약점, 위협 또는 결함을 방지하기 위해 인프라 리소스에 적용됩니다. 이를 비활성화하면 해당 리소스를 보호할 수 없게 됩니다.
공격자는 항상 먼저 쉽게 악용할 수 있는 취약점을 찾으려 시도하며, 심지어 스크립트를 사용해 흔한 취약점을 수정하기도 합니다. 이는 도둑이 길가의 모든 차량을 살펴보며 문이 잠기지 않은 곳이 있는지 확인하는 것과 다를 바 없으며, 창문을 깨는 것보다 훨씬 쉬운 방법입니다. 해커들은 흔한 보안 방어 수단이 비활성화되어 있다는 사실에 놀랄 수도 있습니다. 하지만 이런 상황이 발생하면 그들은 즉시 이를 악용합니다.
둘째, 적절한 보안 설정을 한 후 이를 비활성화하면 허위의 안전감을 조성합니다. 관리자가 누군가 이러한 방어 기능을 비활성화했는지 알지 못한다면, 자신들이 일반적인 위협으로부터 안전하다고 생각할 수 있습니다.
공용 액세스를 차단하는 AWS S3 보안 기능을 공격자가 어떻게 악용할 수 있는지에 대한 예시로 살펴볼 수 있습니다. Amazon S3의 공용 액세스 차단 기능을 통해 계정 관리자 및 저장소 소유자는 Amazon S3 리소스에 대한 공개 액세스를 제한하는 중앙 집중식 제어를 쉽게 설정할 수 있습니다.그러나 일부 관리자는 S3 버킷에 접근하는 데 문제가 발생하면 작업을 신속히 완료하기 위해 공개적으로 접근하기로 결정합니다. 만약 그들이 이 보안 기능을 활성화하는 것을 잊어버린다면, 공격자는 해당 S3 버킷에 저장된 정보에 완전히 접근할 수 있게 되며, 이는 정보 유출뿐만 아니라 데이터 전송 비용으로 인한 추가 비용 발생으로 이어질 수 있습니다.
실제 코드를 비교해 보겠습니다. 다음 CloudFormation 코드 조각을 살펴보세요:
취약점:
기업 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLS: 오류
BlockPublicy: 오류
ignorepublicacls: 오류
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본값 서버 측 암호화:
SSE 알고리즘: "AES256"
안전:
기업용 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLs: true
BlockPublicy: true
ignorePublicACLs:
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본 서버 측 암호화:
SSE 알고리즘: "AES256"
안전 기능 비활성화 방지
비활성화된 보안 기능이 조직에 부정적인 영향을 미치는 것을 방지하는 것은 정책적 문제이자 실무적 문제입니다. 보안 기능을 비활성화할 수 있는 경우는 극히 예외적인 상황으로 제한하는 확고한 정책을 수립해야 합니다. 문제 해결이나 애플리케이션 업데이트를 위해 기능을 일시적으로 비활성화해야 하는 사건은 반드시 기록해야 합니다. 필요한 작업이 완료된 후에는 기능이 완전히 재활성화되었는지 확인해야 합니다.
보안 기능을 영구적으로 비활성화해야만 운영을 간소화할 수 있는 경우, 영향을 받는 데이터에 대해 다른 보호 조치를 마련하여 기본 보호 기능이 없는 상태에서도 해커가 해당 기능에 접근할 수 없도록 해야 합니다. 필요한 보호 기능이 비활성화된 상태라면, 공격자가 잠기지 않은 문을 발견하고 이를 악용하는 것은 시간 문제일 뿐입니다.
더 알아보고, 자신에게 도전하세요:
보안 코드 워리어 블로그 페이지를 방문하여 이 취약점에 대한 자세한 내용을 확인하고, 조직과 고객을 다른 보안 취약점 및 결함으로부터 보호하는 방법을 알아보세요.
이제 이 글을 읽으셨으니, 이 취약점을 발견하고 수정할 준비가 되셨나요? Secure Code Warrior iMac 게임화 보안 챌린지를 시도해 볼 때입니다. 모든 사이버 보안 기술을 지속적으로 연마하고 최신 상태로 유지하세요.
매주 발행되는 시리즈 글로, 상위 8개 '인프라스트럭처 애즈 코드(Infrastructure as Code)' 취약점을 다룹니다. 다음 주에 더 많은 정보를 확인하세요!

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.
Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.
Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.
오늘날 사이버 보안 위협은 어디에나 존재하며 끊임없이 이어집니다. 우리 삶의 더 많은 영역이 디지털화될수록 사이버 범죄자들이 직면하는 위험은 더욱 커집니다. 안전을 보장할 수 없는 코드가 너무 많고, 개인 데이터는 너무나 가치 있기 때문입니다. 게다가, 프로그램을 배포한 후 공격 표면의 모든 측면을 따라잡고 방어하려는 시도는 거의 불가능합니다.
일부 증상을 완화할 수 있는 방법이 있으며, 현명한 조직이 인프라스트럭처 즉 코드(IaC) 개념을 수용할 때 그중 하나가 명백해집니다. 물론 모든 개발과 마찬가지로 해결해야 할 몇 가지 보안 함정이 존재합니다. 또한 개발자가 애플리케이션 호스팅에 사용되는 핵심 인프라를 생성하는 코드를 연구하고 있기 때문에, 프로세스 각 단계에서 보안 의식이 매우 중요합니다.
그렇다면 클라우드 서버 환경을 처음 접하는 개발자는 어떻게 기술을 향상시키고 학습하며, 보안 의식을 높인 상태에서 구축을 진행할 수 있을까요? 우리는 일반적인 IaC 취약점을 해결하기 위해 다음 Coders Conquer Security 시리즈를 제작했습니다.향후 블로그 글에서는 여러분(개발자)이 조직 내에서 코드로 보안 인프라를 배포하기 시작할 수 있는 단계에 중점을 둘 예정입니다.
시작해 보자.
미국 옛 서부에는 한 편협한 사람이 강도들이 자신의 집을 습격하고 약탈할 것이라고 믿었다는 우화가 전해진다. 이에 대한 대비책으로,그는 초강력 현관문 설치, 모든 창문 막대기 설치, 손이 닿는 곳에 대량의 총기 비치 등 각종 보안 장치에 투자했다. 그러던 어느 날 밤, 그는 잠든 사이 강도를 당했는데, 옆문을 잠그지 않았기 때문이었다. 강도들은 무력화된 보안 장치를 발견하고 재빨리 그 상황을 이용했다.
인프라에서 보안 기능을 비활성화하는 것은 이와 같습니다. 네트워크에 강력한 보안 인프라가 구축되어 있더라도, 특정 요소가 비활성화되어 있다면 아무 소용이 없습니다.
우리가 잠입하기 전에, 한 가지 도전을 제안하겠습니다:
위의 링크를 방문하시면 저희 게임화 교육 플랫폼으로 이동하게 되며, 즉시 비활성화된 보안 기능 취약점을 극복해 볼 수 있습니다. (참고: Kubernetes에서 열리지만, 드롭다운 메뉴를 통해 Docker, CloudFormation, Terraform 및 Ansible 중에서 선택할 수 있습니다).
어떻게 하고 있나요? 아직 할 일이 남아 있다면 계속 읽어보세요:
보안 기능은 다양한 이유로 비활성화될 수 있습니다. 일부 애플리케이션 및 프레임워크의 경우 기본적으로 비활성화되어 있어 실행 전에 먼저 활성화해야 합니다. 관리자는 특정 작업을 더 쉽게 수행하고 자주 차단되거나 제한받지 않도록(예: 공개된 AWS S3 버킷) 특정 보안 기능을 비활성화할 수도 있습니다. 작업이 완료된 후,해당 기능을 다시 활성화하는 것을 잊을 수 있습니다. 또한 향후 작업을 더 쉽게 수행하기 위해 해당 기능을 비활성화 상태로 유지하는 것을 선호할 수도 있습니다.
왜 비활성화된 보안 기능이 그렇게 위험한가
하나 이상의 보안 기능을 비활성화하는 것은 바람직하지 않습니다. 그 이유는 두 가지입니다. 첫째, 보안 기능은 알려진 취약점, 위협 또는 결함을 방지하기 위해 인프라 리소스에 적용됩니다. 이를 비활성화하면 해당 리소스를 보호할 수 없게 됩니다.
공격자는 항상 먼저 쉽게 악용할 수 있는 취약점을 찾으려 시도하며, 심지어 스크립트를 사용해 흔한 취약점을 수정하기도 합니다. 이는 도둑이 길가의 모든 차량을 살펴보며 문이 잠기지 않은 곳이 있는지 확인하는 것과 다를 바 없으며, 창문을 깨는 것보다 훨씬 쉬운 방법입니다. 해커들은 흔한 보안 방어 수단이 비활성화되어 있다는 사실에 놀랄 수도 있습니다. 하지만 이런 상황이 발생하면 그들은 즉시 이를 악용합니다.
둘째, 적절한 보안 설정을 한 후 이를 비활성화하면 허위의 안전감을 조성합니다. 관리자가 누군가 이러한 방어 기능을 비활성화했는지 알지 못한다면, 자신들이 일반적인 위협으로부터 안전하다고 생각할 수 있습니다.
공용 액세스를 차단하는 AWS S3 보안 기능을 공격자가 어떻게 악용할 수 있는지에 대한 예시로 살펴볼 수 있습니다. Amazon S3의 공용 액세스 차단 기능을 통해 계정 관리자 및 저장소 소유자는 Amazon S3 리소스에 대한 공개 액세스를 제한하는 중앙 집중식 제어를 쉽게 설정할 수 있습니다.그러나 일부 관리자는 S3 버킷에 접근하는 데 문제가 발생하면 작업을 신속히 완료하기 위해 공개적으로 접근하기로 결정합니다. 만약 그들이 이 보안 기능을 활성화하는 것을 잊어버린다면, 공격자는 해당 S3 버킷에 저장된 정보에 완전히 접근할 수 있게 되며, 이는 정보 유출뿐만 아니라 데이터 전송 비용으로 인한 추가 비용 발생으로 이어질 수 있습니다.
실제 코드를 비교해 보겠습니다. 다음 CloudFormation 코드 조각을 살펴보세요:
취약점:
기업 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLS: 오류
BlockPublicy: 오류
ignorepublicacls: 오류
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본값 서버 측 암호화:
SSE 알고리즘: "AES256"
안전:
기업용 저장소:
유형: AWS::S3::Bucket
속성:
공개 액세스 블록 구성:
blockPublicACLs: true
BlockPublicy: true
ignorePublicACLs:
restrictPublicBuckets:
버전 관리 구성:
상태: 활성화됨
저장소 암호화:
서버 측 암호화 구성:
- 기본 서버 측 암호화:
SSE 알고리즘: "AES256"
안전 기능 비활성화 방지
비활성화된 보안 기능이 조직에 부정적인 영향을 미치는 것을 방지하는 것은 정책적 문제이자 실무적 문제입니다. 보안 기능을 비활성화할 수 있는 경우는 극히 예외적인 상황으로 제한하는 확고한 정책을 수립해야 합니다. 문제 해결이나 애플리케이션 업데이트를 위해 기능을 일시적으로 비활성화해야 하는 사건은 반드시 기록해야 합니다. 필요한 작업이 완료된 후에는 기능이 완전히 재활성화되었는지 확인해야 합니다.
보안 기능을 영구적으로 비활성화해야만 운영을 간소화할 수 있는 경우, 영향을 받는 데이터에 대해 다른 보호 조치를 마련하여 기본 보호 기능이 없는 상태에서도 해커가 해당 기능에 접근할 수 없도록 해야 합니다. 필요한 보호 기능이 비활성화된 상태라면, 공격자가 잠기지 않은 문을 발견하고 이를 악용하는 것은 시간 문제일 뿐입니다.
더 알아보고, 자신에게 도전하세요:
보안 코드 워리어 블로그 페이지를 방문하여 이 취약점에 대한 자세한 내용을 확인하고, 조직과 고객을 다른 보안 취약점 및 결함으로부터 보호하는 방법을 알아보세요.
이제 이 글을 읽으셨으니, 이 취약점을 발견하고 수정할 준비가 되셨나요? Secure Code Warrior iMac 게임화 보안 챌린지를 시도해 볼 때입니다. 모든 사이버 보안 기술을 지속적으로 연마하고 최신 상태로 유지하세요.
매주 발행되는 시리즈 글로, 상위 8개 '인프라스트럭처 애즈 코드(Infrastructure as Code)' 취약점을 다룹니다. 다음 주에 더 많은 정보를 확인하세요!
목록
마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약다운로드



%20(1).avif)
.avif)
