가용성을 보호하는 디자인

완료됨
강력한 보안 제어를 사용하여 보안 인시던트가 발생할 경우 시스템 및 워크로드의 가동 중지 및 저하를 방지하거나 최소화합니다. 인시던트 발생 중과 시스템이 복구된 후에도 데이터 무결성을 유지해야 합니다.

가용성 아키텍처 선택과 보안 아키텍처 선택의 균형을 맞춰야 합니다. 시스템은 사용자가 데이터에 액세스하고 데이터에 액세스할 수 있도록 가용성을 보장해야 합니다. 보안 관점에서, 사용자는 허용된 액세스 범위 내에서 작업해야 하며, 데이터는 신뢰할 수 있어야 합니다. 보안 제어는 악의적인 행위자를 차단해야 하지만, 합법적인 사용자가 시스템과 데이터에 액세스하는 것을 차단해서는 안 됩니다.

예제 시나리오

Contoso Concierge는 미국 내 50개 이상의 호텔 브랜드에서 사용되는 호텔 관리 소프트웨어 시스템을 운영합니다. 예약, 고객 체크 인을 담당하고, 고객 서비스와 하우스키핑 담당자의 배치를 추적합니다. 이는 미국 내 2개 지역에서 운영되는 클라우드 기반 시스템입니다. 대부분 가상 머신 확장 집합에서 호스트됩니다. 호텔의 클라이언트는 브라우저를 기반으로 합니다.

강력한 보안을 통해 안정성 강화

보안 제어 및 디자인 패턴을 사용하여 공격과 코드 결함으로 인해 리소스가 소진되고 액세스가 차단되는 것을 방지합니다.

이러한 방식을 채택하면 DDoS(분산 서비스 거부) 공격과 같은 악의적인 행위로 인해 시스템이 가동 중지 시간을 겪지 않도록 하는 데 도움이 됩니다.

Contoso의 과제

  • 워크로드 팀과 워크로드 관련자들은 많은 호텔 투숙객이 출장 및 휴가 여행을 위해 이 시스템에 의존하기 때문에 이 시스템의 안정성을 매우 중요하게 생각합니다. 이는 호텔 사업 운영에 반드시 필요합니다.
  • 이 팀은 높은 안정성을 유지하기 위해 안전한 배포 사례를 통한 애플리케이션 업데이트를 안정적으로 릴리스하는 것을 비롯하여 기능적, 비기능적 요구 사항을 테스트하는 데 상당한 리소스를 투자했습니다.
  • 안정성에 많은 포커스를 맞춘 반면, 팀에서는 보안에 그다지 관심을 기울이지 않았습니다. 최근에 공격자가 악용하여 많은 호텔의 전체 시스템을 중단시키는 코드 결함이 포함된 업데이트가 릴리스되었습니다. 이 공격으로 어느 날 저녁 한 지역의 애플리케이션 서버가 4시간 이상 마비되어 고객과 호텔 투숙객에게 문제가 발생했습니다.
  • 공격자는 Contoso 애플리케이션 서버를 사용해 지역 스토리지 계정으로 요청을 프록시하여 미리 생성된 폴리오 정보를 수신했습니다. 지나치게 큰 악성 폴리오가 생성되어 애플리케이션 서버가 메모리에 로드되는 동안 애플리케이션 서버의 리소스를 모두 사용시켰고, 클라이언트 다시 시도로 인해 문제가 모든 애플리케이션 서버로 분산되었습니다.

접근 방식 및 결과 적용

  • 팀에서는 폴리오 요청 흐름에서 애플리케이션 서버를 제거하는 디자인 패턴을 살펴보고 대신 발레 키 방식을 선택했습니다. 이렇게 해도 문제가 해결되지는 않지만 영향이 격리되었을 것입니다.
  • 또한, 입력 내용의 유효성을 검사하기 위해 시스템에 더 많은 입력 유효성 검사 기능을 추가했는데, 이는 앞으로 이와 같은 악의적인 시도를 방지하는 데 도움이 될 것입니다.
  • 이제 입력 삭제과 강화된 디자인을 통해 한 가지 형식의 위험이 완화되었습니다.

적극적으로 공격 벡터 제한

애플리케이션 코드, 네트워킹 프로토콜, ID 시스템, 맬웨어 보호 및 기타 영역의 취약성을 악용하는 공격 벡터에 대한 예방 조치를 구현합니다.

지속적으로 코드 스캐너를 구현하고, 최신 보안 패치를 적용하고, 소프트웨어를 업데이트하고, 효과적인 맬웨어 방지 프로그램을 통해 시스템을 보호합니다. 그렇게 하면 공격 표면을 줄여 비즈니스 연속성을 보장하는 데 도움이 됩니다.

Contoso의 과제

  • 시스템을 호스팅하는 데 사용된 VM은 최신 Ubuntu OS가 설치된 Azure Marketplace 이미지입니다. VM에 대한 부트스트래핑 프로세스는 몇 가지 인증서를 설정하고, 일부 SSH 구성을 조정하고, 애플리케이션 코드를 설치하지만, 맬웨어 방지 도구는 사용되지 않습니다.
  • Azure Application Gateway가 솔루션의 전면에 등장하지만 인터넷 게이트웨이로만 사용되며 WAF(웹 애플리케이션 방화벽) 기능은 현재 사용하도록 설정되어 있지 않습니다.
  • 이러한 두 가지 구성 선택 사항 모두 코드의 취약성이나 의도치 않은 맬웨어 설치로부터 컴퓨팅 환경을 보호하지 못합니다.

접근 방식 및 결과 적용

  • Contoso의 보안 팀과 협의한 후 가상 머신은 이제 엔터프라이즈에서 관리하는 바이러스 백신 솔루션에 등록되었습니다.
  • 또한 팀은 게이트웨이 수준에서 SQL 주입 시도 등 알려진 위험한 요청을 제거하여 애플리케이션 코드를 보호하는 데 도움이 되는 WAF 기능을 사용하도록 설정하고 조정하기로 결정합니다.
  • 이제 애플리케이션과 애플리케이션 플랫폼에는 시스템 가용성에 영향을 줄 수 있는 익스플로잇을 방지하기 위한 심층 방어 기능이 추가되었습니다.

복구 전략 확보

보안 제어 및 백업 빈도를 포함하여 기본 환경에서와 동일한 수준의 보안 엄격성을 복구 리소스 및 프로세스에 적용합니다.

재해 복구에는 보존된 안전한 시스템 상태가 있어야 합니다. 그렇다면 안전한 보조 시스템이나 위치로 장애 조치(failover)를 취하고 위협을 발생시키지 않는 백업을 복원할 수 있습니다.

잘 설계된 프로세스는 보안 인시던트로 인해 복구 프로세스가 방해받는 것을 방지할 수 있습니다. 손상된 백업 데이터나 해독할 수 없는 암호화된 데이터는 복구 속도를 늦출 수 있습니다.

Contoso의 과제

  • 이 시스템은 여러 지역에서 활발하게 작동하지만, 팀에서는 최악의 상황에서도 비즈니스 연속성을 복원할 수 있도록 재해 복구 계획을 마련했습니다.
  • 이 계획의 일부에는 미국 내 세 번째 지역으로 백업을 배송하는 것이 포함됩니다.
  • 안타깝게도 백업은 자주 모니터링되지 않고 보안 제어가 비교적 느슨한 시스템에 저장되었습니다. 훈련 중에 모든 백업이 맬웨어에 감염되었다는 사실을 알게 되었습니다. 만약 그 당시에 실제 재난이 닥쳤다면, 성공적으로 복구할 수 없었을 것입니다.

접근 방식 및 결과 적용

  • 팀에서는 백업 위치를 보호하기 위해 시간과 활동을 투자했고, 데이터를 보호하기 위해 네트워크 및 ID 제어를 추가했습니다. 이제 변조를 방지하기 위해 백업은 변경이 불가능한 스토리지에도 저장됩니다.
  • 팀에서는 보안 제어를 검토한 결과 복구 프로세스 중에 애플리케이션이 일정 시간 동안 WAF 없이 실행된다는 것을 발견했습니다. 이러한 차이를 좁히기 위해 작업 순서를 변경합니다.
  • 이제 팀은 시스템의 백업 및 복구 프로세스가 더 이상 악용하기 쉬운 공격 벡터가 아니라는 확신을 갖게 되었습니다.

지식 점검

1.

Contoso는 시스템을 마비시키는 공격에 대응하기 위해 보안 제어 기능을 어떻게 사용했나요?

2.

공격 벡터를 제한하는 데 사용할 수 있는 예방 조치의 예는 무엇인가요?

3.

True 또는 False: 복구 환경에서 실행할 때는 프로덕션 환경에 비해 보안 태세가 느슨해도 괜찮습니다.