보안의 개념과 정의

⇒ 보안은 안전을 지키는 일

  • 위험이 생기거나 사고가 날 염려없이 편안하고 온전한 상태를 지키는 모든 활동

⇒ 정보 보안

  • 다양한 위협으로부터 보안을 보호하는 것
  • 생산자와 소비자 입장에서 구분해 보았을 때 외부에서 정보가 저장된 시스템을 사용하지 못하게 하거나 유출 시도에 맞서 적절히 보호 및 운영하기 위한 작업과 정보가 내부에서 유출되거나 남용되는 것을막기 위한 두가지 분야

⇒ 보안의 필수 요소

  • 기밀성
    인가되지 않은 사용자 정보를 보지 못하게 하는 모든 작업으로 대표적인 작업이 암호화 작업
  • 무결성
    정확하고 완전한 정보 유지에 필요한 모든 작업을 의미
    누군가가 정보를 고의로 훼손하거나 중간에 특정 이유로 변경이 가해졌을 때 그것을 파악해 잘못된 정보가 전달되거나 유지되지 못하게 하는 것이 무결성
    가장 대표적인 무결성 기술은 MD5, SHA와 같은 해시함수를 사용해서 변경 여부를 파악하는 것
  • 가용성
    정보가 필요할 때 접근을 허락하는 일련의 과정
    보안을 막거나 통제만 하는 것으로 인식을 하는데 정보에 대해 사고날 염려 없이 온전한 상태를 유지하는 것이 정보 보안이므로 어떤 이유에서라도 그 정보를 사용할 수 없는 상황이라면 정보 보안에 실패한 것

⇒ 정보 보안에서는 3요소 이외에 Authenticity(진정성), Accountability(책입성), Non Repudiation(부인 방지), Reliability(신뢰성) 유지를 정보 보안 활동 중 하나로 정의하기도 한다.

⇒ 조직의 지적 자산을 보호하는 절차(기밀성), 인가된 사용자만 정확하고 완전한 정보(무결성)로 필요할 때 접근할 수 있도록 하는(가용성) 일련의 작업

클라우드 자산 관리와 보호

기존 IT와의 차이점

⇒ 클라우드 자산 관리와 보호에서 한가지 차이는 클라우드 환경의 물리적 자산과 보호에 대해서는 일반적으로 걱정할 필요가 없다.

  • 자산 태그, 안티테일링, 슬래브 간 장벽, 데이터 센터 창, 카메라, 기타 물리적 보안과 물리적 자산 추적 통제 배치를 쉽게 아웃소싱 할 수 있다.

⇒ 프로비저닝한 클라우드 자산 구축 프로세스에 IT 그룹이 참여

클라우드 자산 유형

⇒ 컴퓨터 자산

  • 가상 머신
    클라우드 가상 머신이 온프레미스 가상 머신과는 다른데 클라우드 환경에서는 물리적 시스템을 다른 클라우드 고객과 공유

    동일한 물리적 시스템을 사용하는 다른 고객들이 모든 프로세서 시간, 네트워크 대역폭, 스토리지 대역폭을 모두 소진 시킬 수 있다. - 불편한 이웃 문제

    공유 문제에서 발생할 수 있는 위험

    하이퍼비이저 브레이크아웃

    가상 머신 이스케이프로 공격
    가상 머신의 공격자가 하이퍼 바이저를 위반하고 물리적 시스템을 완전히 통제
    하이퍼바이저는 가상 시스템의 입력을 받지 않도록 설계되었기 떄문에 공격하기가 쉽지 않다.
    가상화된 스토리지나 네트워크 인터페이스에서 취약점을 찾아야 한다.
    백채널 공격은 가상 머신 뒤의 인프라스트럭쳐를 공격하는 것

    사이드 채널 공격
    실제 시스템에서 코드를 실행할 때 발생하는 의도적인 부작용을 기반으로 한다.
    동일한 하드웨어에서 실행 중일 때 공격자는 프로세서 명령이나 캐시 액세스타이밍을 유심히 관찰해서 가상 머신의 중요한 정보(암호나 암호화 키)를 추론할 수 있다.
    (스펙터와 멜트다운이 작동하는 방식)

    가상 머신을 관리할 떄 필요한 항목
    운영체제 이름과 버전
    플랫폼이나 미들웨어 소프트웨어 버전과 이름 : 가상 머신 위에 설치한 소프트웨어를 추적
    가상 머신 상의 사용자 지정 애플리케이션 코드
    가상 머신 IP 주소와 가상 머신이 속한 프라이빗 클라우드 네트워크
    운영체제에 접근이 허용된 사용자, 운영체제와 별도로 플랫폼/미들웨어/애플리케이션에 접근이 허용된 사용
    새로운 가상 머신을 생성하려고 복사되는 이미지나 템플릿도 관리

    일부 클라우드 제공자들은 베어메탈(가상화를 사용하지 않고 하드웨어에 운영체제를 직접 설치) 시스템도 제공

  • 컨테이너
    컨테이너는 자신이 호스팅된 가상의 머신의 커널을 사용하며 운영체제와 함께 재공되는 기타 소프트웨어는 없을 수 있다.

    가상 머신을 실행하는 하이퍼바이저는 공격 받는 범위가 적은 반면 모든 컨테이너에서 사용하는 공유 커널은 공격받는 범위가 훤씬 크다.

    민감한 데이터가 데이터가 처리되는 컨테이너와 동일한 서버에 인터넷 사용자가 자신의 코드를 실행할 수 있는 컨테이너가 있으면 문제를 발생 시킬 수 있다.

    컨테이너 분리는 시간이 지남에 따라 있어서 최근에는 seccomp와 같은 기술을 사용하는 시스템 호출을 점점 더 작게 제한할 수 있는 기술이 등장

    기본 컨테이너 모델
    컨테이너는 기술 수행에 필요한 최소 운영체제 구성 요소를 보유
    각 컨테이너는 단일 기능만 수행해야 한다.
    컨테이너는 불변(컨테이너는 일부 다른 구성 요소를 변경할 수 있다. - 스토리지 서비스에 데이터 쓰기, 스토리지는 컨테이너 자체와는 분리되어 운영)
    컨테이너는 자신의 코드를 업데이트 하지 않도록 해야 한다. - 컨테이너를 업데이트 하는 것보다 삭제하고 업데이트 된 코드가 새로운 컨테이너를 만들도록 하는게 좋다.

  • 컨테이너 오케스트레이션 시스템
    컨테이너를 묶어 더 높은 수준의 기능을 수행하고 이렇게 묶은 것을 여러 개 복사하고 해당 복사본에 로드밸런싱을 수행하고 다른 구성 요소 간 통신을 쉽게 제공해주는 시스템

    쿠버네티스 배포에서 주요 자산은 클러스터에 대한 접근을 통제하고 소프트웨어를 최신 상태로 유지하기 위한 것인데 취약점은 쿠버네티스에서 실행 중인 모든 파드를 손상시킬 수 있다.

    쿠버네티스 파드는 하나 이상의 컨테이너를 포함하는데 커맨드라인이나 API를 사용해 파드와 파드를 구성하는 컨테이너를 추적 관리할 수 있어야 한다.

    컨테이너 이미지를 관리해야 한다.

⇒ 서비스형 애플리케이션 플랫폼

  • 서비스형 애플리케이션 플랫폼(Cloud Foundry, AWS의 Elastic Beanstalk 등)을 사용하는 것은 직접 가상 머신을 프로비저닝 하지 않고도 코드를 배포
  • 이러한 서비스는 플랫폼의 일부로 데이터베이스와 같은 많은 자원을 제공
  • 배포는 작성한 코드와 aPaaS에서 프로비저닝 된 데이터베이스로 구성될 수 있는데 데이터베이스를 생성할 때 배포가 시작되고 삭제할 때 중지되지만 실제로 VM이나 컨테이너를 만들어 보관할 필요가 없는데 이는 클라우드 제공자가 수행해야 할 일
  • 운영 중인 컴퓨터, 네트워크, 스토리지 자산을 다른 클라우드 고객으로부터 분리해 유지하는 격리 모델을 고려
  • 배포를 생성할 때 취약점 및 구성 관리를 위해서는 배포 자체와 배포 자체의 종속성 모두를 추적해야 한다.
    기본 컴퓨팅 리소스나 스토리지 리소스를 목록화 할 필요가 없다.

⇒ 서버리스

  • 필요한 경우에만 코드를 실행할 수 있는 방법
  • AWS의 lambda, Azure Functions, Google Cloud Functions, IBM Cloud Functions 등
  • 서비스가 요청되기 전까지 실행되지 않는다.
  • 오랫동안 실행되는 인스턴스가 없기때문에 해당 이미지로부터 생성된 이미지와 인스턴스 두 개를 모두 추적 관리할 필요가 없다.
  • 코드 취약점을 관리하고 기능적 접근만 통제할 수 있도록 배포만 목록화 하면 된다.

⇒ 스토리지 자산

  • 영구적 데이터 저장을 위한 자산

  • 블록 스토리지
    하드 드라이브의 클라우드 버전
    서버에 작은 블록(16KB)으로 데이터를 사용할 수 있게 해준다.
    AWS의 Elastic Block Storgae, Azure의 Virtual Disk, Google의 Persistent Disks 등
    블록 스토리지에서의 보안 문제는 접근 관리로 블록 스토리지에 직접 접근할 수 있는 공격자는 해당 스토리지를 사용하는 서버가 가진 운영체제 수준의 통제를 우회할 수 있다.

  • 파일 스토리지
    데이터를 디렉토리와 파일로 구성
    AWS의 Elastic File System, Azure FIles, Google CLoud Storage FUSE 등
    접근 관리를 해주어야 하는데 파일 시스템 자체는 파일에 대한 접근 통제 목록(ACL - Access Control List)을 제공하지만 운영체제 자체에서 수행된다.

  • 객체 스토리지
    스토리지 측면에서 객체는 객체에 대한 메타데이터가 포함된 바이트 스트림이라는 점에서 Flat File과 유사

    Flat FIle과 차이점
    파일은 디렉토리 내에 디렉토리가 있을 수 있는 디렉토리에 저장되지만 객체는 버킷 내부에 다른 레벨의 구조 없이 모두 함께 버킷에 던져진다.
    객체와 관련된 사용자 지정 메타데이터가 존재할 수 있는데 파일 시스템은 생성자, 생성 시간, 권한과 같은 파일 시스템이 제공하는 메타데이터 유형으로 제한
    객체는 생성 후 변경할 수 없는데 업데이트 하려면 객체를 새 객체로 변경해야 한다.
    객체 스토리지는 객체 스토리지 시스템에서 자체적으로 객체별 접근 통제를 제공

    대부분의 객체 스토리지는 버킷에 대한 높은 수준의 정책과 특정 객체에 대한 개별 ACL과 같은 다양한 접근 통제 계층을 제공

    AWS의 S3, Azure의 Blob Storage, Google Cloud Storage가 대표적인 서비스

  • 이미지
    이미지에 비밀번호 같은 중요한 정보를 저장하지 않아야 한다.
    공격자가 이미지를 들여다보고 자격증명을 꺼내 사용할 수 없도록 이미지에 대한 접근을 통제하는 것이 바람직

  • 클라우드 데이터베이스
    데이터베이스 계층에서 접근 통제를 제공할 수 있고 데이터에 대해서 좀 더 세부적으로 통제 가능

  • Message Queue
    소량의 데이터(256KB)를 다른 구성 요소에 전송할 수 있게 해주는 스토리지
    publisher(게시)/subscriber(구독) 모델로 서로 전송
    개인 식별 가능 정보와 같은 중요한 데이터가 포함 될 수 있기 때문에 메시지 큐에 대한 접근을 보호하는 것은 중요
    이벤트 소싱 패턴을 이용하는 경우 메시지에서 지시를 받는 경우 메시지 큐에 쓰기 권한을 가진 공격자가 원치 않는 작업을 수행하게 만들 수 있다.
    되도록이면 암호화 키나 암호와 같은 시크릿은 메시지 큐를 이용해서 전송되지 않도록 하는 것이 좋다.

  • 구성 스토리지
    많은 경우 클라우드의 배포는 코드와 구성을 통합
    동일한 코드는 대개 애플리케이션의 다른 인스턴스 간에 공유되면 인스턴스는 다른 구성을 사용해 다른 영역이나 지역에 배치
    구성 스토리지를 사용하면 이 구성 정보를 코드와는 별개로 보관할 수 있다.
    HashiCorp Consul이나 AWS 시스템 관리 파라미터 스토어가 있다.

  • 시크릿 구성 스토리지
    다른 시스템에 접근하는데 사용할 수 있는 시크릿 데이터를 보관하도록 특별히 설계된 구성 스토리지의 하위 집합
    코드와 구성을 분리하는 것이 좋은 습관인 것 처럼 시크릿에 대한 접근과 다른 구성 데이터를 분리하는 것도 좋은 방법
    시크릿은 제한된 사람만이 볼 수 있다.
    HashiCorp Vault , Keywhiz, 쿠버네티스 시크릿, AWS 시크릿 매니저 등이 있다.

  • 암호 키 스토리지
    암호 키는 데이터 암호화와 복호화에 사용되는 시크릿의 구체적 유형
    특수 목적 서비스(마스터 키를 노출하지 않고 랩과 언랩 작업을 수행)에 사용하면 많은 이점이 있다.

  • 인증서 스토리지
    사용자의 개인키를 안전하게 저장
    사용 중인 인증서 중 하나가 만료될 때 경고를 해줄 수 있다.

  • 소스코드 스토리지와 배포 파이프라인
    공격자가 배포 중 소스코드나 일부 아티팩트를 수정하지 못하도록 해야 한다.

  • 네트워크 자산
    가상 프라이빗 클라우드와 서브넷
    어떤 서버에 대해 누구를 허용할 것인지에 대한 경계를 그리는 가장 높은 수준의 방법
    VPC와 서브넷은 목록화 해서 잘 관리해야 한다.

  • 콘텐츠 전송 네트워크
    CDN(Content Delivery Network)을 사용하면 로우 레이턴시 이점을 이용해서 글로벌하게 콘텐츠를 배포할 수 있다.
    CDN은 원본을 가지고 있다가 외부에서 요청을 가면 가까운 데이터센터에 캐싱을 해두었다가 다음 요청부터는 가까운 곳에서 다운로드 받도록 해주는 서비스
    CDN 정보는 자산 내에서 민감하지 않지만 CDN에 접근할 수 있는 공격자는 악성 코드, 비트코인 채굴자 또는 DDoS 공격 코드로 콘텐츠에 해를 가할 수 있다.

  • DNS 레코드
    DNS 레코드와 이를 등록해두는데 사용하는 레지스터를 추적해야 한다.
    TLS(Transport Layer Security) 연결은 스푸핑에 대한 보호를 제공하지만 쓰기 때문에 일부 브라우저는 TLS로 기본 설정이 되어있지 않다.
    DNS 레코드 스푸핑은 누군가를 정상 사이트가 아닌 공격자의 사이트로 가게 만들고 그 다음 공격자는 공격자 사이트에 접속한 사람들에게서 자격 증명을 훔치고 정상 사이트에 접속하는 사람들의 데이터를 읽을 수 있고 변조도 가능
    보안 문제 외에도 DNS 도메인 중 하나를 추적 관리하지 않거나 갱신하는 것을 잊는다면 해당 서비스가 중지 된다.

  • TLS 인증서
    TLS 인증서는 암호화 원칙에 따라 적용되는데 웹 사이트를 스푸핑(공격자가 자신의 신원을 위조해서 시스템이나 사용자를 속이는 행위 - IP 스푸핑, ARP 스푸핑, DNS 스푸핑)하는 공격자에 대한 최고의 방어선

    관리해야 하는 이유
    특정한 암호 알고리즘이 취약한 것으로 판명되거나 인증기관에서 보안 문제가 있는 경우 전체 등급의 인증서가 재발급 되어야 한다.
    인증서 갱신을 하지 않으면 서비스가 중단될 수 있다.

  • 로드밸런서, 역방향 프록시, 웹 애플리케이션 방화벽
    트래픽을 목적지에 전송할 수 있도록 DNS 레코드는 목적지 네트워크 자산 중 하나를 가리킨다.
    적절한 접근 통제를 위해 이런 자산들을 목록화해서 잘 관리해야 한다.

ID와 접근 관리

⇒ 개요

  • ID와 IAM(Identity and Access Management - 접근 관리)는 가장 중요한 보안 통제 수단
  • 웹 애플리케이션 관련 위반에서 자격증명의 분실이나 도난은 수년간 공격자들이 가장 많이 사용하는 도구
  • ID와 접근 관리의 차이점
    각각의 개체(사용자, 관리자, 시스템 등)는 ID가 필요하고 이러한 ID를 확인하는 과정을 인증(Authentication)이라고 한다. 접근 관리는 개체가 수행해야 할 작업들만 확실히 수행하는 것으로 개체가 가져야 할 접근 권한을 확인하는 프로세스를 인가(Authorization)

⇒ ID와 접근에 대한 생명주기

  • 대부분 IAM을 인증과 인가를 수행하는 것으로만 착각
  • 실제로는 인증과 인가는 매우 중요하지만 ID 생명주기 전후에 일어나는 다른 일도 존재
  • 요청하는 사람이 ID를 가지고 있는데 이 ID가 어떻게 만들어진 것인가 또는 이 ID를 허용된 사람들 목록에 누가 넣은 것인가 하는 문제 등의 작업을 거쳐야 하는 경우가 있는데 대다수의 조직이 이를 잘 처리하지 못한다.
  • 신분 확인 요청은 관리자에게 전화를 걸거나 메시지를 보냄으로써 수행된다.
    관리자는 신원을 기록하지 않고 승인하고 생성
    소규모 조직에서는 문제가 없지만 누군가 접근을 요청하는 시기, 요청자가 인증된 방법, 새로운 ID, 접근을 승인한 사람을 기록하려면 시스템이 필요한 경우가 많다.
  • 생명주기의 백엔드도 중요
    사용자의 ID와 접근이 여전히 필요한지 자주 자동으로 확인 할 수 있는 시스템이 필요
    그 사람이 회사를 떠났거나 부서를 옮겼을 때 더 이상 접근할 수 없어야 하기 때문
  • IAM 생명 주기
    시작(사용자나 객체가 요청을 만듬) → 요청(ID 생성이나 삭제, 접근 권한 부여, 제거) - 승인을 위해서 발송 → 승인(자동으로 처리되기도 하지만 한 두명이 승인) - 생성, 삭제, 권한부여, 제거 발송 → ID 생성/제거/리소스접근권한부여/제거 - 정상 상태 진입 → 사용(인증과 인가가 발생) - 정의된 주기로 재검증, 조직이동/조직분리 등이 발생할 때 재검증 → 재검증(고용 관계 지속, 계속 필요한지를 검증) - ID 삭제나 권한 제거 요청 → 요청

⇒ 클라우드 자격 증명

  • 대다수의 클라우드 사업자는 클라우드 서비스 접근을 위한 IAM 서비스를 제공
  • 클라우드 제공자가 제공하는 모든 서비스에 접근할 수 있게 하는 ID 접근과 함께 조직 내의 클라우드 관리자 ID를 중앙에서 통합 관리할 수 있게 지원
  • IAM 서비스를 사용하는 것은 관리에 큰 도움을 줄 수 있다.
  • 클라우드 제공자 ID 서비스
    AWS : Amazon IAM
    MS : Azure Active Directory B2C
    GCP : Cloud Identity

⇒ Multi Factor Authentication

  • 멀티 팩터 인증은 비밀번호 강도가 약하거나 도난된 자격증명을 사용해서 비인가 접근을 방지하는 가장 좋은 방법 중 하나
  • 인증 요소
    비밀번호
    접근용 배지나 휴대폰과 같은 것으로 쉽게 복사할 수 있는 데이터가 아니라 복제하기 어려운 물리적인 아이템
    지문이나 홍채와 같은 생체 정보와 같은 것
  • 멀티 팩터 인증은 인증할 때 여러가지 요소를 사용하는데 가장 일반적인 구현은 2단계 인증(Two Factor Authentication)으로 알고 있는 것과 갖고 있는 것을 사용
  • 2단계 인증은 대부분 기본적으로 모든 서비스 접근에 적용돼야 되는 것
    클라우드 환경을 관리한다면 허용되지 않은 관리자가 클라우드 포털이나 API에 접근하려고 하는 것은 매우 위험
    접근 권한이 있는 공격자는 모든 데이터를 손상시키려고 클라우드 포털이나 API를 활용
    클라우드 제공자는 대부분 이를 기본적으로 지원

⇒ 비밀번호와 API 키

  • 비밀번호는 재사용 금지
  • 평판 좋은 비밀번호 관리 도구를 사용해서 비밀번호를 관리
  • 기억할 필요가 없는 비밀번호의 경우는 보안 랜덤 생성기를 이용
  • 반드시 기억해야 하는 비밀번호와 같은 경우 6자로 된 Diceware 비밀번호를 만들고 각 단어 사이에 달러 기호나 쉼표와 같은 알파벳이 아닌 문자를 동일하게 넣는다.

⇒ 공유 ID

⇒ 페더레이션 ID : 서로 다른 2개의 시스템에 ID가 존재할 수 있다는 것으로 각 시스템에 별도 계정을 직접 생성할 필요가 없도록 해당 ID를 서로 연결하는 기술

⇒ Single Sign On(SSO)

  • 페더레이션 ID 개념에 의존하는 일종의 기술
  • 웹 사이트가 사용자의 ID와 암호를 요구하는 대신 사용자를 신뢰할 수 있는 중앙 ID 제공자로 리다이렉션 하는 것

⇒ SAML과 OIDC

  • SAML
    웹 브라우저가 접근하려는 웹 페이지를 가리키면

웹 페이지는 SAML 쿠기가 없어서 로그인할 수 없으니 ID 제공자 웹 페이지로 이동해 받아오라고 한다.

제공자 웹 페이지에서 사용자 이름, 비밀번호, 추가 인증 수단을 이용해서 로그인

암호화 서명 된 XML이 포함된 쿠키를 브라우저 전송하고 리다이렉션

다시 요청을 하면 쿠키가 전송되고 이를 바탕으로 인증

OPENID connect는 AUTH 2.0을 기반으로 등장한 새로운 인증 계층

네트워크 보안

⇒ 개요

  • 수집된 정보를 침해하는 행동을 기술적으로 방어하거나 정보의 송수신 과정에서 생기는 사고를 막기 위한 작업
  • 정보를 가진 시스템을 공격해 유출하거나 사용하지 못하게 하거나 시스템이 동작하지 못하게 해서 정보 서비스를 정상적으로 구동할 수 없게 만드는 행위를 네트워크에서 적절히 막는 것이 네트워크 보안의 1차 목표
  • 정보는 여러가지 서비스를 위해서 한 자리에만 있는 것이 아니라 네트워크를 통해 복제, 이동 되므로 그 유출을 막는 것이 2차 목표
  • 네트워크 보안을 이해하려면 네트워크를 통한 다양한 공격 방식과 그 공격을 네트워크에서 방어하는 장비와 그 구동 방식을 이해해야 한다.
  • 네트워크는 중요한 정보 유출 영역
  • 네트워크가 없으면 정보의 이동이 어려워지기 때문에 네트워크에 연결된 정보 시스템을 공격 대상으로 삼는 것이 일반적이지만 외부 공격자가 네트워크 자체를 공격 대상으로 삼는 경우도 있다.
  • 네트워크를 장악하면 많은 시스템에 더 쉽게 접근할 수 있어 침해 범위를 넓히고 외부 침입자가 원하는 정보가 유출될 가능성이 커진다.
  • 네트워크 보안은 외부 공격에 맞서는 중요한 1차 방어선
  • 시스템과 애플리케이션에 결함이 있거나 취약점이 있는 경우에도 네트워크의 다양한 보안 장비를 활용한다면 외부의 공격을 늦추거나 적절히 방어할 수 있다.

⇒ 네트워크 보안과 관제 필요성

  • 기본적인 보안 시스템 조차 없는 중소기업들은 공격을 받고 있는 것은 아닌지 공격을 받았다면 어떤 경로를 통해 유입되었는지 등 그 상황 자체도 파악할 수 없는 경우가 많다.

  • 정보 보안 사고를 예방하기 위해서는 보안 시스템을 구축한 이후에도 보안 전담인력이 보안 관제를 하여 사전에 위협을 탐지할 수 있어야 하고 정보 보안 사고를 예방하는 활동과 함께 정보 보안 사고 대응 활동을 통해 같은 유형의 공격에 피해를 입지 않도록 대비할 수 있어야 한다.

  • 보안 관제 현황
    국내에서 사이버 보안 대응과 관제를 국가 차원에서 다루게 된 계기는 2003년 1월 25일 인터넷 대란을 겪으면서부터 였는데 국내 최상위 DNS(혜화 전화국 DNS)로 대량의 트래픽을 집중 시켜서 DNS 장애를 유발해서 인터넷 망이 불통된 사건 때문

    국내에서 국가정보원 산하에 국가 사이버 안전을 위한 업무를 담당하는 국가 사이버 안전 센터를 설치해서 국가 공공 분야를 담당하고 군 분야는 국군 사이버 사령부 그리고 민간 분야는 KISA(한국 인터넷 진흥원)에서 담당

  • 보안 관제 유형

    자체 보안 관제 : 자체적으로 보안 전담 조직을 갖추고 관제 시스템을 구축하여 운영하는 관제 방식으로 국가 기관, 통신사, 대기업 등 보안을 중요시 하는 곳이나 내부 네트워크 망을 구성해서 운영하는 곳에서 주로 실시

    원격 보안 관제 : 보안 관제 전문 업체와 계약된 범위 내에서 보안 시스템을 구축하고 원격에서 보안 관제를 위탁해서 운영하는 방식으로 자체적으로 보안 관제를 하기 힘들거나 보안 인력이 없는 일반 기업에서 주로 실시

    파견 보안 관제 : 자체적으로 관제 시스템을 구축하였으나 보안 관제를 할 수 있는 전담 조직이나 보안 인력이 없는 경우 보안 관제 전문 업체에서 보안 전문 인력을 파견 받아 보안 관제를 운영하는 관제 방식

  • 기업 기밀 정보 유출 피해
    보안 관리와 감독이 허술하거나 임직원의 보안 의식이 부족한 경우가 가장 큰 부분인데 한 번 유출된 정보에 대해서 유출 사실을 입증하기가 쉽지 않다.
    주로 퇴직자, 경쟁업체 직원, 협력업체 직원에 의해서 유출되는 경우가 많다.
    보안 강화에 꾸준히 투자하고 구성원에게 보안 교육을 실시하며 수시로 모니터링 하는 것이 중요

  • 개인 정보 유출 피해
    개인정보 취급 시에도 필요한 범위에서 최소한의 개인정보만 처리하거나 비식별화 처리를 반드시 해야하고 법에 따라 개인 정보가 잘 지켜지고 있는지 확인해보도록 해야 한다.

  • 악성 코드로 인한 피해

  • 보안 취약점으로 인한 피해

  • 분산 서비스 공격(DDoS)으로 인한 공격

⇒ 주요 개념

  • 정보 보안 별 네트워크 종류
    외부 네트워크로부터 내부 네트워크를 보호하는 것
    외부로부터 보호받아야 할 네트워크를 Trust Network라고 하고 신뢰할 수 없는 외부 네트워크를 untrust 네트워크로 구분
    내부 네트워크 이지만 신뢰할 수 없는 외부 사용자에게 개방해야 하는 서비스 네트워크인 경우 DMZ(De Militarized Zone) 네트워크라고 부르면 일반적으로 인터넷으로 공개되는 서비스를 이 네트워크에 배치
  • 트래픽 방향과 용도에 따른 네트워크 보안 분야 분류 Internet Secure Gateway
    트러스트 또는 DMZ 네트워크에서 언트러스트 네트워크로의 통제
    인터넷으로 나갈 때는 인터넷에 수 많은 서비스가 있으므로 그에 대한 정보와 패킷을 적절히 인식하고 필터링하는 기능이 필요
    방화벽, SWG(Secure Web Gateway), Web Filter, Application Control, Sandbox 같은 다양한 서비스나 네트워크 장비가 제공 Data Center Secure Gateway
    언트러스트 네트워크에서 트러스트 네트워크로의 통신을 통제
    방화벽, IPS, DCSG, WAF, Anti-DDoS 등의 장비가 사용
    상대적으로 고성능이 필요하고 외부의 직접적인 공격을 막아야하므로 인터넷 관련 정보보다 공격 관련 정보가 더 중요
  • 보안 정책 수립에 따른 분류 White List
    방어에 문제가 없다고 명확히 판단되는 통신만 허용하는 리스트
    인터넷 전체에 대한 화이트 리스트를 만들기 어려우므로 일반적으로 IP 통신 정보에 대해 명확히 아는 경우에 사용
    일반적으로 회사 내부에서 사용하는 방화벽이 명확한 정책에 의해 필요한 서비스만 허용하는 화이트리스트 방식을 주로 사용 Black List
    공격이라고 명확히 판단되거나 문제가 있었던 IP 리스트나 패킷 리스트를 기반으로 데이터베이스(Signature)를 만들고 그 정보를 이용해서 방어하는 형태
    각종 패턴으로 공격을 방어하는 네트워크 장비(IPS, 안티바이러스, WAF)들은 일반적으로 블랙리스트 방어 기법을 제공
    인터넷 어디선가 공격을 당할 때 이것을 분석해 공격 기법을 판단한 후 탐지하도록 간단히 적어 데이터베이스로 생성

⇒ 보안 솔루션

  • 네트워크 구성 DDoS 방어 장비(프로파일링, 프로토콜 취약점, 볼류매트릭) → 방화벽(포트 제어) → IPS(Signature, WORM, 취약점 공격) → 웹 방화벽(SQL 인젝션, 웹 취약점, 웹 셀) → 서버
  • DDoS 방어 장비 DoS(Denial of Service)는 다양한 방법으로 공격 목표에 서비스 부하를 가해 정상적인 서비스를 방해하는 공격 기법 공격 출발지에서 공격하는 것이 일반적인 방법이었는데 이 경우는 비교적 탐지가 쉽고 짧은 시간 안에 탐지만 할 수 있으면 IP 주소 기반으로 충분히 방어 한다. 짧은 시간 안에 공격 성과를 내기 위해 다수의 봇을 이용해 분산 공격을 수행하는 DDoS 공격 기법이 등장 공격의 타입
    • 볼류메트릭 공격 : 대용량의 트래픽을 사용해서 대역폭을 포화시키는 공격

    • 프로토콜 공격 : 3, 4계층 프로토콜 스택의 취약점을 악용해 대상을 액세스 할 수 없도록 하는 공격

    • 애플리케이션 공격 : 7계층 프로토콜 스택의 취약점을 악용하는 공격, 가장 정교한 공격, 가장 까다로운 공격

      클라우드 기반의 DDoS 방어 서비스를 고려해 볼 수 있는데 클라우드 기반 서비스는 DDoS, WAF(Web Application Firewall)과 같은 별도의 보안 장비 없이도 다양한 DDoS 공격을 방어할 수 있는 장점이 있다.

  • 방화벽
    방화벽은 4계층에서 동작하는 패킷 필터링 장비
    계층 정보를 기반으로 정책을 세울 수 있고 해당 정책과 매치되는 패킷이 방화벽을 통과하면 그 패킷을 허용하거나 거부할 수 있다.
    DDoS 방어 장비 바로 뒤에 놓는 네트워크 보안 장비
    다른 보안 장비보다 비교적 간단히 동작하고 성능도 우수
    최근 출시되는 고성능 방화벽은 ASIC이나 FPGA와 같은 전용 칩을 이용해서 가속화하므로 대용량을 요구하는 데이터 센터에서도 문제없이 사용 가능
  • IDS, IPS IDS(Intrusion Detection System - 침입 탐지 시스템) : 침입을 탐지하는 시스템 IPS(Intrusion Prevention System - 침입 방지 시스템) : 침입을 방지하는 시스템 최근에는 이 장비들을 IPS로 통칭
    IDS와 IPS는 사전에 공격 데이터베이스를 제조사나 위협 인텔리전스 서비스 업체로 부터 받고 이후 IDS와 IPS 장비에 인입된 패킷이 보유한 데이터베이스에 해당하는 공격일 때 차단하거나 모니터링 한 후 관리자에게 알람을 보내 공격 신호를 알린다. 전에는 블랙리스트 기반으로 만들었는데 최근에는 화이트리스트 기반도 등장
  • WAF(Web Application Firewall) 웹 서버를 보호하는 전용 보안 장비로 HTTP, HTTPS 처럼 웹 서버에서 동작하는 웹 프로토콜의 공격을 방어 IDS/IPS보다 범용성은 떨어지지만 웹 프로토콜에 대해서는 더 세밀히 방어할 수 있다. 공격 트래픽을 방어만 하지 않고 공격자에게 통보하거나 민감한 데이터가 유출될 때 그 정보만 제거해서 보내줄 수 있다.
  • SandBox 악성 코드를 샌드박스 안에서 실행시켜서 악성 코드 여부를 판별하는 방법을 이용하는 보안 장비
  • NAC 네트워크에 접속하는 장치들을 제어하기 위해서 사용하는 장비
    인가된 사용자만 네트워크에 접속하도록 해준다.
  • IP 제어 고정 IP를 사용하는 경우 IP 정보를 가지고 인가
profile
클라우드로 안정적이게, 자동화로 더 편하게 — 개발자 김준태입니다.

0개의 댓글