조직에서 사용자를 인증하고 권한을 부여하며, 웹 트래픽을 보호하고, 타사 위험을 완화하며, DDoS 공격과 봇 등을 차단하는 등의 작업을 수행하기 위해 조직이 취해야 할 10가지 중요한 조치를 포함한 이 웹사이트 보안 체크리스트를 준수하세요.
이 글을 읽은 후에 다음을 할 수 있습니다:
글 링크 복사
웹 사이트 보안은 수익, 효율성, 고객 인사이트를 위해 웹 애플리케이션에 의존하는 모든 조직에 매우 중요합니다. 중요한 데이터를 수집하여 저장하거나 핵심 인프라 및 서비스를 제공하는 웹 사이트를 보유한 조직은 복잡성, 규모, 출처 면에서 다양한 공격에 특히 취약합니다.
웹 애플리케이션 보안은 인터넷 위협 환경과 규제 환경이 계속해서 변화하고 있기 때문에 매우 광범위하고 끊임없이 진화하는 분야입니다. 예를 들어, 이 체크리스트는 웹 사이트를 보호하는 방법에 중점을 두고 있지만, 대기업의 경우 API 및 AI 지원 애플리케이션(점점 더 웹 사이트에 통합되는 요소)을 보호하는 것이 점점 더 중요해지고 있습니다.
그러나 모든 규모와 모든 산업의 공개 웹 사이트는 기술적 통제, 접근 제어, 사용자 관리에 관한 '매우 기본적인' 조치를 통해 이점을 얻을 수 있습니다. 이를 위해 이 웹 사이트 보안 가이드는 다음 10가지 권장 사항을 다룹니다.권장 사항: 비밀번호만 사용하는 인증 방식 대신 2단계 인증(2FA) 사용
항공사가 승객의 신원을 확인한 후 탑승을 허용하듯이, 조직도 웹 애플리케이션을 구동하는 디지털 시스템에 로그인하는 사람의 신원을 확인해야 합니다.
개인의 신원을 확인하여 무단 접근을 방지하는 프로세스를 인증이라고 합니다. 인증은 특정 특성, 즉 '인증 요소'를 디지털 기록과 대조하여 신원을 확인합니다.
가장 일반적인 인증 요소는 다음과 같습니다.
첫 번째 방식의 문제는 비밀번호가 공격자에게 추측하거나 자주 추측되거나 도난당할 수 있다는 것입니다. 피싱, 경로상 공격, 무차별 대입 공격, 비밀번호 재사용이 보편화되면서 공격자가 도난당한 로그인 자격 증명을 수집하는 것이 더 쉬워졌습니다.
이러한 이유로 조직은 계정에 대해 2단계 인증(2FA)을 구현해야 합니다. 2FA는 최소 두 가지 이상의 별도 인증 형식을 요구하므로 하나만 사용하는 인증보다 효과적입니다. 2FA도 공격자가 완전히 뚫지 못하는 것은 아니지만, 비밀번호만 사용하는 인증 방식에 비해 훨씬 더 어렵고 비용이 많이 듭니다.
권장 사항: 권한 있는 사용자에게만 역할 기반 권한 설정
사용자의 신원이 확인되었다고 해서 그들이 모든 것을 관리할 수 있는 것은 아닙니다. 권한 부여는 인증된 사용자가 무엇을 볼 수 있고 수행할 수 있는지를 결정하는 데 도움이 됩니다(예: 이들의 권한).
예를 들어 ‘슈퍼 관리자’는 모든 설정과 페이지를 편집할 권한이 있는 유일한 사용자일 수 있지만, ‘읽기 전용’ 사용자는 사이트의 분석 데이터만 볼 수 있고 다른 것은 볼 수 없을 수 있습니다.
조직이 확장됨에 따라 웹 팀이 담당하는 역할도 증가합니다. 예를 들어 프론트엔드 개발자, 백엔드 개발자, 보안 분석가, 보고 분석가, 웹 디자이너, 콘텐츠 편집자 등 다양한 역할이 생길 수 있습니다. 따라서 역할 기반 권한을 정기적으로 감사하고 업데이트하는 것이 중요합니다.
권장 사항: 자동으로 관리되는 SSL/TLS 연결 설정
로그인 자격 증명, 연락처 정보, 신용카드 정보, 건강 정보 등 중요한 데이터를 수집하고 전송하는 모든 웹 사이트에는 HTTPS가 필요합니다. HTTPS는 웹 사이트에서 네트워크를 스누핑하는 사람이 쉽게 볼 수 있는 방식으로 정보를 브로드캐스트하는 것을 방지합니다.
HTTPS는 TLS(Transport Layer Security)라는 프로토콜을 통해 작동하며, 이전 버전은 SSL(Secure Sockets Layer)로 알려져 있습니다.
웹 사이트와 애플리케이션이 안전한 연결을 구축할 수 있도록 하는 자동 관리 SSL/ TLS 인증서를 제공하는 서비스를 찾아보세요.
TLS는 개인정보 보호와 데이터 보안의 통신 중추입니다. 이를 통해 사용자는 신용카드 정보나 기타 개인정보 및 중요한 정보를 노출시키지 않고 비공개로 인터넷을 탐색할 수 있습니다.
SSL/TLS를 통해 클라이언트(예: 브라우저)는 연결된 서버의 진위와 무결성을 확인하고, 암호화를 통해 정보를 교환할 수 있습니다. 이는 결과적으로 경로상 공격을 방지하고 특정 데이터 규제 준수 요구 사항을 충족하는 데 도움이 됩니다.
또한 TLS를 사용하면 대기 시간을 최소화하여 웹 페이지 로드 시간을 단축할 수 있고, 검색 엔진은 암호화를 사용하지 않는 웹 사이트의 순위를 낮추는 경향이 있습니다.
각 SSL/TLS 인증서는 고정된 만료 날짜가 있으며, 이러한 인증서의 유효 기간은 시간이 지나면서 단축되었습니다. 인증서가 만료되면 방문자의 브라우저와 같은 클라이언트에서는 보안 연결을 설정할 수 없다고 판단하여 경고나 오류가 발생합니다. 인증서 갱신을 놓치면 웹 사이트의 검색 엔진 순위가 낮아질 수 있지만, 일부 서비스는 자동 갱신 기능을 제공합니다.
권장 사항: DNS 암호화로 사용자 브라우징을 안전하고 비공개로 유지
웹 사이트의 콘텐츠는 기술적으로 www.example.com과 같은 URL에 있지 않고, 192.0.2.1과 같은 고유 IP 주소에 존재합니다. URL을 기계가 이해할 수 있는 IP 주소로 변환하는 과정을 도메인 이름 시스템(DNS) 조회라고 합니다. DNS 레코드는 특정 도메인과 연관된 IP 주소를 알려주는 인터넷의 지침입니다.
그러나 기본적으로 DNS 쿼리 및 응답은 일반 텍스트(UDP)로 전송되므로 네트워크, ISP, 전송을 모니터링하고 있을 수 있는 기타 사용자가 읽을 수 있습니다. 이는 보안과 개인정보 보호에 큰 영향을 미칠 수 있습니다. DNS 쿼리가 비공개가 아니라면 정부가 인터넷을 검열하고 공격자가 사용자의 온라인 활동을 추적하기가 더 쉽습니다.
무료 DNS 확인자를 사용하여 DNS 트래픽을 암호화하는 다음 옵션 중 하나를 선택하세요.
권장 사항: 목적에 맞게 구축된 DNS 보안을 사용하여 DNS 시스템의 일부 제한 사항 해결
DNS 시스템 자체는 보안을 염두에 두고 설계되지 않았으며 몇 가지 설계상의 한계가 있습니다. 예를 들어, DNS는 DNS 레코드가 어디서 왔는지 자동으로 보장하지 않으며, 주어진 주소를 아무 질문 없이 받아들입니다. 따라서 DNS 서버는 도메인 스푸핑, DoS(서비스 거부) 공격 등에 취약할 수 있습니다.
DNS 보안(DNSSEC)은 DNS의 설계 결함 중 일부를 해결하는 데 도움이 됩니다. 예를 들어, DNSSEC는 기존의 DNS 레코드에 암호화 서명을 추가하여 안전한 도메인 이름 시스템을 만듭니다. 관련 서명을 점검하여 조직은 요청한 DNS 레코드가 허위가 아닌 신뢰할 수 있는 이름 서버에서 온 것인지 확인할 수 있습니다.
일부 DNS 확인자에는 이미 DNSSEC가 통합되어 있습니다. 또한, 콘텐츠 필터링(맬웨어 및 스팸을 배포하는 것으로 알려진 사이트를 차단하는 기능)과 봇넷 방어(알려진 봇넷과의 통신을 차단하는 기능) 등의 기능을 제공할 수 있는 DNS 확인자를 찾아보세요. 이러한 보안 DNS 확인자 중 다수는 무료로 사용할 수 있으며 라우터 설정을 한 번 변경하는 것으로 활성화할 수 있습니다.
권장 사항: 공격자가 서버를 더 찾기 더 어렵게 설정
공격자가 조직 서버의 원본 IP(실제 웹 애플리케이션 리소스가 호스팅되는 위치)를 찾으면, 해당 서버로 직접 트래픽을 보내거나 공격을 가할 수 있습니다.
이미 사용 중인 DNS 확인자에 따라 다음방법을 적용하면 원본 IP를 숨기는 데 도움이 될 수 있습니다.
권장 사항: 상시 활성화된 DDoS 완화 및 레이트 리미팅 구현
분산 서비스 거부(DDoS) 공격은 최악의 경우 웹 사이트나 전체 네트워크를 장기간 오프라인 상태로 만들 수 있습니다.
DDoS 공격은 보통 한 명의 공격자가 다수의 컴퓨터나 장치로 하여금 동시에 웹 사이트나 온라인 서비스에 접속하도록 할 때 일어납니다. 이러한 악의적인 공격의 목적은 리소스를 오프라인으로 전환하여 사용하지 못하게 하는 것입니다.
웹 애플리케이션에 대한 가장 흔한 공격 유형은 애플리케이션 계층 DDoS 공격이며, 공격의 규모와 빈도는 점점 더 정교해지고 있습니다.
다음과 같은 필수 DDoS 방지 도구가 있는지 찾아보세요.
종합적인 DDoS 위협 방어는 조직의 규모, 네트워크 아키텍처, 기타 요인에 따라 달라질 수 있는 여러 가지 방법에 의존하기도 합니다. DDoS 공격을 방지하는 방법에 대해 자세히 알아보세요.
권장 사항: 클라이언트 측 위험을 해결하기 위한 도구 찾기
웹 개발에서 ‘클라이언트 측’은 웹 애플리케이션에서 클라이언트(최종 사용자 장치)에 표시되거나 발생하는 모든 것을 의미합니다. 여기에는 텍스트, 이미지, 나머지 UI 등 사용자에게 표시되는 내용과 애플리케이션이 웹 사이트 사용자의 브라우저 내에서 수행하는 모든 작업이 포함됩니다.
대부분의 클라이언트 측 이벤트는 웹 방문자의 브라우저에 JavaScript와 같은 기타 타사 코드를 로드해야 합니다. 하지만 공격자들은 이러한 의존성을 악용하려고 합니다(예: Magecart 스타일 공격). 이로 인해 방문자는 맬웨어, 신용카드 데이터 도난, 암호화폐 마이닝 등 다양한 위험에 노출됩니다.
쿠키 또한 클라이언트 측 위험을 동반합니다. 예를 들어, 공격자는 쿠키를 악용하여 쿠키 변조에 웹사이트 방문자를 노출시키고, 이로 인해 계정 탈취 또는 결제 사기가 발생할 수 있습니다. 하지만 웹 사이트 관리자, 개발자, 규제 준수 팀 구성원은 자신의 웹 사이트에서 어떤 쿠키를 사용하고 있는지조차 알지 못하는 경우가 많습니다.
타사 스크립트 및 쿠키로 인한 위험을 줄이려면 다음과 같은 서비스를 구현하세요.
권장 사항: 악성 봇 트래픽 사전 식별 및 완화
일부 봇은 권한 있는 검색 엔진 크롤러와 같이 필요한 서비스를 수행하는 “좋은” 봇입니다. 하지만 제어하지 않으면 파괴적이고 유해한 다른 봇도 있습니다.
온라인으로 물리적인 상품이나 서비스를 판매하는 조직은 특히 봇 트래픽에 취약합니다. 과도한 봇 트래픽은 다음과 같은 문제를 초래할 수 있습니다.
다음과 같은 봇 관리 서비스를 찾아보세요.
권장 사항: 데이터 기반 의사 결정으로 웹 보안 개선
실행 가능한 데이터가 있는 분석과 로그는 웹 성능 및 보안을 지속적으로 개선하는 데 중요합니다.
예를 들어, 로그 및 애플리케이션 보안 대시보드에서는 다음과 같은 인사이트를 제공할 수 있습니다.
웹 트래픽 분석에 대한 가시성은 지속적인 위험 평가의 핵심 구성 요소입니다. 이를 통해 조직은 애플리케이션 성능을 개선하는 방법과 보안 투자를 강화할 부문에 대해 더 많은 정보를 기반으로 결정을 내릴 수 있습니다.
Cloudflare의 클라우드 연결성은 조직의 웹 애플리케이션과 API를 연결하고 보호하기 위한 통합 서비스 제품군을 통해 웹 애플리케이션 보안과 전송을 간소화합니다.
이러한 서비스에는 DDoS 방어, 업계를 선도하는 웹 애플리케이션 방화벽(WAF), 봇 관리, 클라이언트 측 보안, API 게이트웨이, 무료 공용 DNS 확인자, 무료 SSL/TLS 인증서, 포괄적인 웹 성능 및 보안 분석 등이 포함됩니다.
https://www.cloudflare.com/ko-kr/plans/에서 웹 사이트의 필요에 맞는 서비스를 확인하세요.