Final Project Day1 서비스 조사

쿡쿡·2023년 6월 12일

DevOps(Code States)

목록 보기
10/25

📌 프로젝트 소개

자산 관리 시스템을 도입하게 된다면 이 시스템을 어떻게 운영 및 보안 계획을 수립 할 것인가.

많은 기업들이 각종 시스템과 IT 자산을 효율적으로 관리할 필요성이 커지고 있으며 이를 효과적으로 관리하기 위한 최적의 관리방법으로 EAM(Enterprise Asset Management), ITAM(IT Asset Management) 등 여러가지 관리 시스템을 운용하고 있습니다.

하지만 미흡한 보안 정책 및 절차로 인한 피해사례가 있었으며, 그에 따른 해결방안으로 아래의 기사를 참고하여 중요성을 알게 되었습니다.

“자산 관리 플랫폼으로 공격자 침투 가능성 낮춰야”

국내 주요 기업과 기관을 공격했던 매스스캔 랜섬웨어는 취약점이 있는 노출된 DB 서버를 파괴하면서 피해조직의 서비스를 중단시켰다.
…..
포괄적인 IT자산 인벤토리는 만들고 유지 관리하기 어렵다. 인벤토리 구축을 위한 기존의 많은 방법은 시간이 많이 걸리고 단편적이며 최신 상태를 유지하기 어렵다.
따라서 공격 표면 영역을 정의할 때 데이터 수집 및 상관 관계를 자동화하고, 부담스러운 입력 리소스 투입을 최소화하며, 실시간 결과를 위해 지속적으로 실행할 수 있는 사이버 보안 자산 관리 플랫폼을 사용하고 있는지 확인 할 수 있는 방안을 강구해야 한다.
데이터넷

프로젝트의 목표

  1. 자산 분류 기준에 따라 수립된 정의 및 리소스에 적절한 Tag 설정
    • 자산이 많아지면 관리의 복잡도를 완화하기 위해 각 리소스를 식별할 수 있어야 하고, 그룹화 할 수 있어야 한다.
  2. 정보 자산 점검
    • CCE, CVE 취약점을 점검하고 위협을 제거하는 자동화 기능이 필요하다.
  3. 모니터링 및 알람
    • 자산과 취약점에 대한 Metric과 Log를 수집하고 시각화가 되어야 한다.
    • 실시간 알림일일 점검 결과 보고서가 필요하다.

추가 목표

  • 시스템 전반에 가용성, 내결함성, 확장성, 보안성이 고려된 서비스를 사용
  • CI/CD 파이프라인이 구성
  • 시각화된 모니터링 시스템이 구축


📌 분석

CCE와 CVE는 AWS Config를 이용해 구성된 규칙을 위반하는 경우를 확인,

Amazon Inspector를 이용해 ECR과 EC2의 취약성과 네트워크 노출을 검사하여

AWS Security Hub를 통해 결과를 수집하기로 했다.

모니터링은 Amazon CloudWatch Dashboards와 Grafana 중 고민을 했고 좀더 시각화가 되었다고 생각 한 Grafana로 선택을 했다.

GitHub Action?, AWS의 파이프라인?

CI/CD 파이프 라인은 두 가지 중 결정하지 못했다.



📌 이벤트 스토밍

MSA 방식의 도메인 주도 설계를 위해 이벤트 스토밍을 하였다.
정보 자산의 종류과 자산 분류 기준 태그를 나누었다.



📌 명세서 작성

요구사항들을 보며 구현해야하는 아키텍처의 명세를 작성했다




보안 취약점

정보시스템이나 소프트웨어 상에 존재하는 보안상의 약점을 말하며 기업에서 해킹이나 서비스 장애, 데이터의 유출·변조·삭제 등이 일어난 경우, 이러한 시스템 상의 취약점을 악용하여 피해가 발생하게 된다.


  • CCE (Common Configuration Enumeration)

사용자에게 허용된 권한 이상의 동작을 허용하거나, 범위 이상의 정보 열람·변조·유출 등을 가능하게 하는 시스템 설정 상의 취약점

→ 진단 방법 : 정보시스템 (서버, 네트워크, DBMS, WEB/WAS, PC등)의 설정값을 통하여 진단

→ 조치 여부 : 관리자가 직접 환경 설정값 변경을 통해 자체 개선이 가능


  • CVE (Common Vulnerabilities and Exposures)

컴퓨터 하드웨어 또는 소프트웨어 결함이나 체계, 설계상의 취약점

CVE는 공개적으로 알려진 보안 취약점에 대한 공통 식별자 목록으로, 표준화된 CVE 항목은 서비스 적용 범위를 평가할 수 있는 기준을 제공

CVE는 다음과 같은 규칙으로 만들어진다. → CVE-(연도)-(순서)

→ 진단 방법 : 어플리케이션의 취약점 진단

→ 조치 여부 : 설계상의 취약점이기 때문에 자체 개선이 불가능하여 제조사의 공식 패치에 의존


  • CWE (Common Weakness Enumeration)

다양한 언어 (C, C++, C#, Java, Go, Python) 및 아키텍처, 디자인 설계, 코딩 등의 개발 단계에서 발생가능한 취약점 (소스코드 보안취약점)

주로 거론되는 7대 보안 취약점 (CWE) 아래와 같다.

① 입력 데이터 검증 및 표현 : 입력 값에 대한 검증 누락 또는 부적절한 검증

② 보안 기능 : 보안(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)을 부적절하게 구현 시 발생

③ 시간 및 상태 : 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작 되는 환경에서 시간 및 상태를 부적절하게 관리하여 발생

④ 에러처리 : 에러를 처리하지 않거나, 중요한 정보가 포함 될 때

⑤ 코드 오류 : 인가되지 않은 사용자에게 데이터 노출

⑥ 캡슐화 : 중요한 데이터 또는 기능을 불충분하게 캡슐화 하였을 때

⑦ API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있음

→ 진단 방법 : Web Server (HTML, PHP, JSP, ASP 등) 소스 취약점 진단

→ 조치 여부 : 개발자의 소스 코드 수정을 통하여 자체 개선이 가능

profile
https://www.notion.so/a67850905fb843fc9cdcdb173f888338

0개의 댓글