리소스 강화를 위한 권장 사항

이 Azure Well-Architected Framework 보안 검사 목록 권장 사항에 적용됩니다.

SE:08 불필요한 노출 영역을 줄이고 구성을 강화하여 공격자 비용을 증가시켜 모든 워크로드 구성 요소를 강화합니다.

이 가이드에서는 워크로드 내에서 지역화된 컨트롤을 개발하고 반복되는 공격을 견딜 수 있도록 유지 관리하여 리소스를 강화하기 위한 권장 사항을 설명합니다.

보안 강화는 의도적인 자기 보존 연습입니다. 목표는 공격 표면을 줄이고다른 영역에서 공격자의 비용을 증가시켜 악의적인 행위자가 취약성을 악용할 기회를 제한하는 것입니다. 워크로드를 보호하려면 보안 모범 사례 및 구성을 구현합니다.

보안 강화는 진화하는 위협과 취약성에 대한 지속적인 모니터링 및 적응이 필요한 지속적인 프로세스입니다.

정의

용어 정의
보안 강화 불필요한 리소스를 제거하거나 구성을 조정하여 공격 노출 영역을 줄이는 방법입니다.
PAW(권한 있는 액세스 워크스테이션) 중요한 작업을 수행하는 데 사용하는 전용 및 보안 머신으로, 손상 위험을 줄입니다.
SAW(보안 관리 워크스테이션) 중요한 영향 계정에서 사용되는 특수 PAW입니다.
노출 영역 취약성이 포함된 워크로드의 논리적 공간입니다.

주요 디자인 전략

보안 강화는 리소스 또는 프로세스와 관계없이 구성 요소 수준에서 제어를 강화하는 고도로 지역화된 연습입니다. 각 구성 요소의 보안을 강화하면 워크로드의 집계 보안 보증이 향상됩니다.

보안 강화는 워크로드의 기능을 고려하지 않으며 위협을 감지하거나 자동화된 검사를 수행하지 않습니다. 보안 강화는 보안 위반 가정 및 심층 방어 정신으로 구성 튜닝에 중점을 둡니다. 목표는 공격자가 시스템을 제어하기 어렵게 만드는 것입니다. 강화는 워크로드 또는 해당 작업의 의도된 유틸리티를 변경해서는 안 됩니다.

강화 프로세스의 첫 번째 단계는 모든 하드웨어, 소프트웨어 및 데이터 자산의 포괄적인 인벤토리를 수집하는 것입니다. 새 자산을 추가하고 서비스 해제된 자산을 제거하여 재고 레코드를 최신 상태로 유지합니다. 인벤토리의 모든 자산에 대해 다음 모범 사례를 고려합니다.

  • 공간을 줄입니다. 불필요한 노출 영역을 제거하거나 scope 줄입니다. 패치되지 않은 소프트웨어 익스플로잇 및 무차별 암호 대입 공격과 같은 간편한 대상 또는 저렴하고 잘 설정된 공격 벡터를 제거합니다. 프로덕션 배포 전에 원본 트리에서 ID, 빌드 구성 요소 및 기타 필수가 아닌 자산을 클린 합니다.

  • 구성을 미세 조정합니다. 나머지 노출 영역을 평가하고 조입니다. 리소스가 강화되면 공격자가 사용하는 시도 및 테스트된 메서드가 더 이상 성공하지 않습니다. 공격자가 고급 또는 테스트되지 않은 공격 방법을 획득하고 사용하도록 강제하여 비용이 증가합니다.

  • 방어를 유지합니다. 지속적인 위협 탐지를 수행하여 보호 조치를 유지하여 시간이 지남에 따라 강화 작업이 신뢰할 수 있도록 합니다.

또한 다음 요인을 고려합니다.

신뢰할 수 있는 원본입니다. 강화 연습의 일부에는 소프트웨어 공급망이 포함됩니다. 이 지침에서는 모든 구성 요소가 신뢰할 수 있는 원본에서 가져온다고 가정합니다. organization 타사 공급업체에서 조달한 소프트웨어를 승인해야 합니다. 이 승인은 운영 체제, 이미지 및 기타 타사 도구의 원본에 적용됩니다. 신뢰할 수 있는 리소스가 없으면 보안 강화는 신뢰할 수 없는 원본에 대한 보안 보증의 무한 드레이닝이 될 수 있습니다.

공급망의 보안에 대한 권장 사항은 개발 수명 주기를 보호하기 위한 권장 사항을 참조하세요.

훈련. 강화는 특수 기술입니다. 그것은 조직적이며 높은 수준의 역량이 필요합니다. 구성 요소의 기능과 변경 내용이 구성 요소에 미치는 영향을 이해해야 합니다. 팀 구성원은 업계 전문가와 플랫폼의 지침을 파악하여 불확실한 출처와 지침을 구분할 수 있어야 합니다. 보안 인식 문화를 만드는 데 팀 구성원을 교육합니다. 팀이 보안 모범 사례에 능숙하고, 잠재적 위협을 인식하고, 인시던트 후 회고를 통해 학습하는지 확인합니다.

설명서. 강화 요구 사항, 의사 결정 및 정의된 메서드를 문서화하고 게시합니다. 투명성을 위해 이러한 요구 사항 의 예외 또는 편차도 문서화 합니다.

강화는 번거로울 수 있지만 문서화해야 하는 중요한 보안 연습입니다. 먼저 핵심 구성 요소를 강화한 다음 자동화된 프로세스 및 인간 프로세스와 같은 다른 영역으로 확장하여 잠재적인 격차를 강화합니다. 변경에 대해 세심하게 알아봅니다. 예를 들어 기본값 변경은 시스템의 안정성에 영향을 줄 수 없으므로 기본 설정을 사용하지 않도록 설정하는 데 필요한 단계가 있습니다. 대체 구성이 기본값과 같더라도 정의해야 합니다. 다음 섹션에서는 강화를 위한 일반적인 대상에 대해 설명합니다. 워크로드의 주요 디자인 영역을 평가하고 주요 전략을 따라 구성 요소 수준에서 강화합니다.

네트워킹

네트워크를 세그먼트로 분할 하여 중요한 자산과 중요한 데이터를 덜 안전한 자산으로부터 격리하여 공격자의 횡적 이동을 줄입니다. 해당 세그먼트에서 기본값으로 거부 방법을 적용합니다. 허용 목록에 대한 액세스 권한이 정당화된 경우에만 추가합니다.

적극적으로 사용되지 않는 포트 및 프로토콜을 사용하지 않도록 설정합니다. 예를 들어 Azure App Service FTP를 통해 배포할 필요가 없는 경우 사용하지 않도록 설정할 수 있습니다. 또는 내부 네트워크를 통해 관리 작업을 수행하는 경우 인터넷에서 관리 액세스를 사용하지 않도록 설정할 수 있습니다.

레거시 프로토콜을 제거하거나 사용하지 않도록 설정합니다. 공격자는 이전 버전을 사용하는 시스템을 악용합니다. Azure 검색 서비스를 사용하여 로그를 검토하고 프로토콜 사용량을 확인합니다. 시스템의 기능을 방해할 수 있으므로 프로토콜을 제거하기 어려울 수 있습니다. 구현 전에 모든 변경 내용을 테스트하여 운영 중단의 위험을 완화합니다.

PIP(공용 IP) 주소는 액세스하기 쉽고 전 세계에 광범위한 도달 범위를 가지므로 고위험 자산으로 취급합니다. 노출을 줄이려면 워크로드에 대한 불필요한 인터넷 액세스를 제거합니다. Azure Front Door와 같은 Microsoft 서비스에서 제공하는 공유 공용 IP 주소를 사용합니다. 이러한 서비스는 인터넷에 연결되도록 설계되었으며 허용되지 않는 프로토콜에 대한 액세스를 차단합니다. 이러한 많은 서비스는 네트워크 에지에서 들어오는 요청에 대한 초기 검사를 수행합니다. 전용 PIP를 사용하면 보안 측면을 관리하고, 포트를 허용 또는 차단하고, 들어오는 요청을 검사하여 유효성을 확인해야 합니다.

인터넷 연결 애플리케이션의 경우 잘못된 트래픽을 필터링할 수 있는 계층 7 서비스를 추가하여 액세스를 제한 합니다. 분산 DDoS(서비스 거부) 보호를 적용하고, 웹 애플리케이션 방화벽을 사용하고, 트래픽이 애플리케이션 계층에 도달하기 전에 에지에서 보호를 제공하는 네이티브 서비스를 살펴봅니다.

DNS(도메인 이름 시스템) 강화는 또 다른 네트워크 보안 사례입니다. DNS 인프라가 안전한지 확인하려면 신뢰할 수 있는 DNS 확인자를 사용하는 것이 좋습니다. DNS 확인자에서 정보의 유효성을 검사하고 추가 보안 계층을 제공하려면 가능하면 매우 중요한 DNS 영역에 DNS 보안 프로토콜을 사용합니다. DNS 캐시 중독, DDoS 공격 및 증폭 공격과 같은 공격을 방지하려면 쿼리 속도 제한, 응답 속도 제한 및 DNS 쿠키와 같은 다른 DNS 관련 보안 제어를 탐색합니다.

ID

사용되지 않는 계정 또는 기본 계정을 제거합니다. 사용하지 않는 인증 및 권한 부여 방법을 사용하지 않도록 설정합니다.

레거시 인증 방법은 벡터를 자주 공격하기 때문에 사용하지 않도록 설정합니다. 이전 프로토콜에는 계정 잠금과 같은 공격 카운터 조치가 없는 경우가 많습니다. idP(ID 공급자)에 대한 인증 요구 사항(예: Microsoft Entra ID)을 외부화합니다.

중복 ID를 만드는 대신 페더레이션을 선호합니다. ID가 손상된 경우 중앙에서 관리되는 경우 액세스를 취소하는 것이 더 쉽습니다.

향상된 인증 및 권한 부여를 위한 플랫폼 기능을 이해합니다. 다단계 인증, 암호 없는 인증, 조건부 액세스 및 ID를 확인하기 위해 제공하는 Microsoft Entra ID 기타 기능을 활용하여 액세스 제어를 강화합니다. 로그인 이벤트와 관련하여 추가 보호를 추가하고 공격자가 요청할 수 있는 scope 줄일 수 있습니다.

가능한 경우 자격 증명 없이 관리 ID 및 워크로드 ID를 사용합니다. 자격 증명이 유출될 수 있습니다. 자세한 내용은 애플리케이션 비밀을 보호하기 위한 권장 사항을 참조하세요.

관리 프로세스에 최소 권한 접근 방식을 사용합니다. 불필요한 역할 할당을 제거하고 정기적인 Microsoft Entra 액세스 검토를 수행합니다. 역할 할당 설명을 사용하여 감사에 중요한 근거의 종이 흔적을 유지합니다.

클라우드 리소스

네트워킹 및 ID에 대한 이전 강화 권장 사항은 개별 클라우드 서비스에 적용됩니다. 네트워킹의 경우 서비스 수준 방화벽에 특별한 주의를 기울이고 인바운드 규칙을 평가합니다.

다른 구성 요소가 포함할 수 있는 사용되지 않는 기능 또는 기능(예: 사용되지 않는 데이터 평면 액세스 및 제품 기능)을 검색하고 사용하지 않도록 설정합니다. 예를 들어 App Service FTP 배포, 원격 디버깅 및 기타 기능을 제공하는 Kudu를 지원합니다. 이러한 기능이 필요하지 않은 경우 해제합니다.

항상 Azure 로드맵 및 워크로드 로드맵을 따라가세요. Azure 서비스에서 제공하는 패치 및 버전 관리 업데이트를 적용합니다. 플랫폼 제공 업데이트를 허용하고 자동화된 업데이트 채널을 구독합니다.

위험: 클라우드 리소스에는 허용 허용에 대한 요구 사항이 있거나 지원되는 것으로 간주되도록 문서화된 구성에서 실행해야 하는 경우가 많습니다. 아웃바운드 트래픽을 적극적으로 차단하는 것과 같은 일부 강화 기술로 인해 서비스가 정상적으로 작동하더라도 서비스가 지원되는 구성을 벗어나게 될 수 있습니다. 플랫폼에서 각 클라우드 리소스의 런타임 요구 사항을 이해하여 해당 리소스에 대한 지원을 유지하도록 합니다.

애플리케이션

애플리케이션에서 실수로 정보가 누출될 수 있는 영역을 평가합니다. 예를 들어 사용자 정보를 검색하는 API가 있다고 가정합니다. 요청에 유효한 사용자 ID가 있을 수 있으며 애플리케이션에서 403 오류를 반환합니다. 그러나 잘못된 고객 ID를 사용하면 요청이 404 오류를 반환합니다. 그러면 사용자 ID에 대한 정보가 효과적으로 유출됩니다.

더 미묘한 경우가 있을 수 있습니다. 예를 들어 유효한 사용자 ID가 있는 응답 대기 시간은 잘못된 고객 ID보다 높습니다.

다음 영역에서 애플리케이션 강화를 구현하는 것이 좋습니다.

  • 입력 유효성 검사 및 삭제: 모든 사용자 입력의 유효성을 검사하고 삭제하여 SQL 삽입 및 XSS(사이트 간 스크립팅)와 같은 삽입 공격을 방지합니다. 입력 유효성 검사 라이브러리 및 프레임워크를 사용하여 입력 삭제를 자동화합니다.

  • 세션 관리: 보안 세션 관리 기술을 사용하여 도난 또는 세션 고정 공격으로부터 세션 식별자 및 토큰을 보호합니다. 세션 시간 제한을 구현하고 중요한 작업에 대한 재인증을 적용합니다.

  • 오류 관리: 사용자 지정 오류 처리를 구현하여 공격자에게 중요한 정보를 노출하는 것을 최소화합니다. 오류를 안전하게 기록하고 이러한 로그에서 의심스러운 활동을 모니터링합니다.

  • HTTP 보안 헤더: CSP(콘텐츠 보안 정책), X-Content-Type-Options 및 X-Frame-Options와 같은 HTTP 응답에서 보안 헤더를 활용하여 일반적인 웹 취약성을 완화합니다.

  • API 보안: 적절한 인증 및 권한 부여 메커니즘을 사용하여 API를 보호합니다. 보안을 강화하려면 API 엔드포인트에 대한 속도 제한, 요청 유효성 검사 및 액세스 제어를 구현합니다.

애플리케이션을 개발하고 유지 관리할 때 보안 코딩 사례를 따릅니다. 정기적으로 코드 검토를 수행하고 애플리케이션에서 취약성을 검사합니다. 자세한 내용은 개발 수명 주기를 보호하기 위한 권장 사항을 참조하세요.

관리 작업

또한 다른 비 런타임 리소스를 강화합니다. 예를 들어 모든 자산의 인벤토리를 가져와서 파이프라인에서 사용하지 않는 자산을 제거하여 빌드 작업 공간을 줄 입니다. 그런 다음 신뢰할 수 있는 원본에서 게시한 작업을 끌어오고 유효성이 검사된 태스크만 실행합니다.

Microsoft 호스팅 또는 자체 호스팅 빌드 에이전트가 필요한지 확인합니다. 자체 호스팅 빌드 에이전트는 추가 관리가 필요하며 강화되어야 합니다.

가시성 관점에서 잠재적 위반 에 대한 로그를 검토하는 프로세스를 구현 합니다. 액세스 로그에 따라 액세스 제어 규칙을 정기적으로 검토하고 업데이트합니다. 중앙 팀과 협력하여 SIEM(보안 정보 이벤트 관리) 및 SOAR(보안 오케스트레이션 자동화 응답) 로그를 분석하여 변칙을 검색합니다.

권한 있는 관리 작업을 위해 PAW 또는 SAW를 요구하는 것이 좋습니다. PAW 및 SAW는 상당한 보안 이점을 제공하는 강화된 물리적 디바이스이지만 구현하려면 신중한 계획 및 관리가 필요합니다. 자세한 내용은 권한 있는 액세스 스토리의 일부로 디바이스 보안을 참조하세요.

Azure 촉진

클라우드용 Microsoft Defender 다음과 같은 몇 가지 강화 기능을 제공합니다.

CIS(인터넷 보안 센터)는 Azure Marketplace 강화된 이미지를 제공합니다.

Azure VM Image Builder를 사용하여 강화된 OS 이미지에 대해 반복 가능한 프로세스를 빌드할 수 있습니다. Common Base Linux-Mariner 보안 표준 및 업계 인증을 따르는 Microsoft에서 개발한 강화된 Linux 배포판입니다. Azure 인프라 제품과 함께 사용하여 워크로드 구현을 빌드할 수 있습니다.

예제

다음 절차는 운영 체제를 강화하는 방법의 예입니다.

  1. 공간을 줄입니다. 이미지에서 불필요한 구성 요소를 제거합니다. 필요한 항목만 설치합니다.

  2. 구성을 미세 조정합니다. 사용하지 않는 계정을 사용하지 않도록 설정합니다. 운영 체제의 기본 구성에는 보안 그룹에 연결된 추가 계정이 있습니다. 이러한 계정을 사용하지 않는 경우 시스템에서 사용하지 않도록 설정하거나 제거합니다. 추가 ID는 서버에 액세스하는 데 사용할 수 있는 위협 벡터입니다.

    파일 시스템에 대한 불필요한 액세스를 사용하지 않도록 설정합니다. 파일 시스템을 암호화하고 ID 및 네트워킹에 대한 액세스 제어를 미세 조정합니다.

    필요한 것만 실행합니다. 기본적으로 실행되는 애플리케이션 및 서비스를 차단합니다. 워크로드 기능에 필요한 애플리케이션 및 서비스만 승인합니다.

  3. 방어를 유지합니다. 알려진 취약성을 완화하기 위해 운영 체제 구성 요소를 최신 보안 업데이트 및 패치로 정기적으로 업데이트합니다.

CIS 벤치마크

보안 검사 목록

전체 권장 사항 집합을 참조하세요.