255
18
장
안전한 애플리케이션 아키텍처
이러한 점들로부터 애플리케이션의 아키텍처를 올바로 구성하지 않았을 때 발생할 수 있는 위
험에 대해 초기 분석을 할 수 있다. 그로부터 다음과 같은 몇 가지 위험 영역을 도출할 수 있다.
●
인증 및 권한 부여
: 우리는 세션, 로그인, 쿠키를 어떻게 다루는가?
●
개인 정보
: 개인 정보를 별도로 취급하는가? 이러한 데이터를 다룰 때 따라야 할 법률이 있
는가?
●
검색 엔진
: 검색 엔진을 어떻게 구현하는가? 기본 데이터베이스를 단일 진실 공급원으로
삼아 검색할 것인가 아니면 별도의 캐시 데이터베이스를 사용할 것인가?
이러한 위험들 각각은 보안 엔지니어 입장에서 애플리케이션을 더 안전한 방향으로 개발하는
것을 돕는 표면을 제공하는 구현 세부 사항과 관련해 많은 질문을 가져온다.
18.2
인증과 권한 부여
자격 증명을 저장해 게스트와 등록된 사용자에게 서로 다른 사용자 경험을 제공하므로 인증과
권한 부여 시스템을 모두 갖는다는 것을 알 수 있다. 이는 사용자가 로그인할 수 있게 해주어야
하며 사용자에게 허용된 행위를 결정할 때 사용자 등급에 따라 차별성을 두어야 함을 의미한다.
또한 자격 증명을 저장하고 로그인 흐름을 지원하므로 자격 증명이 네트워크를 통해 전송된다
는 것도 알 수 있다. 이러한 자격 증명은 반드시 데이터베이스에 저장되어야 하며 그렇지 않으
면 인증이 올바로 흘러가지 못할 것이다.
그러므로 다음과 같은 위험을 고려해야 한다.
●
전송되는 데이터를 어떻게 다룰 것인가?
●
자격 증명의 저장을 ...