본문 바로가기
정보보안

개발 보안 안내서, 쿠키 Cookie

by 나석정 2022. 8. 17.
반응형

 

 

 

 

 

 

개발 보안 관리 개요

 

개발 보안 관리에 대하여 알아보도록 하겠습니다. 웹 어플리케이션을 개발할 경우 사전 작업이 필요합니다. 서비스에 사용하는 웹 서버 및 웹 어플리케이션 서버의 환경 설정에 대한 보안 강화 안내서라인을 만들고 이를 준수하도록 하여야 합니다.

 

개발 보안 안내서

 

개발 보안 안내서에 들어갈 내용은 다음과 같습니다. 사용자에게 전달된 값(Hidden Form 필드, 파라미터)을 재사용할 경우 신뢰해서는 안 됩니다. 최종 통제 메커니즘은 반드시 서버에서 수행되어야 합니다. 자바 스크립트, VB 스크립트 등을 사용하여 클라이언트 측에서 입력값을 검증하는 것은 쉽게 우회될 가능성이 높습니다. 따라서 서버에서 최종 점검하는 작업이 반드시 필요합니다. 또 서버의 부하를 줄이기 위하여 1차적으로 클라이언트 측에서 점검할 수 있으나 이는 보안 통제 수단으로 사용할 수 없습니다. 1차 검증을 클라이언트 측에서 하고 2차 검증을 섯버 측에서 할 수 있도록 효율적으로 개발하여야 합니다. 클라이언트에게 주요 정보를 전달하지 않아야합니다. 클라이언트에서 실행되는 컴포넌트에 중요 정보를 하드 코딩해서는 안됩니다. 쿠키(Cookie)에 중요 정보를 전달할 경우 암호화해서 사용해야 합니다. 중요 정보 전송 시에는 POST 메소드 및 SSL(HTTPS)를 적용합니다. 사용자로부터 중요 정보를 받을 때 GET 메소드를 사용하면 URL상에 정보가 그대로 노출되기 때문에 POST 메소드를 사용해야 합니다. 그 중요도에 따라서 SSL(HTTPS)을 사용한 암호화 통신을 적용해야 합니다. 중요한 트랜잭션이 일어나는 프로세스에 사용자의 비밀번호를 재확인합니다. 사용자 정보 변경 등 중요한 트랜잭션이 발생하는 경우에는 사용자 비밀번호를 재확인하는 절차를 추가하여 불법적인 위장으로 인한 피해를 예방합니다. 중요 정보를 보여주는 페이지는 캐쉬를 사용하지 못하도록 설정합니다. 중요 정보를 보여주는 화면에 no-cache설정을 하지 않는다면 로그아웃을 한 이후에도 뒤로가기 버튼을 사용하여 해당 내용을 볼 수 있는 위험이 존재합니다. no-cache 설정은 브라우저나 프락시 서버로 하여금 해당 페이지 요청 시마다 캐시된 페이지를 사용하지 말고 매번 서버로부터 새롭게 전송받아 사용하도록 알리는 설정입니다. 이를 위하여 HTML HEAD부분에 아래 내용을 추가해야 합니다.

<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">

<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">

적절한 방법으로 암호화를 해주는 것도 중요합니다. 자체 개발한 암호화 알고리즘 사용을 지양하며, 공인된 암호화 알고리즘(AES, 3DES)을 사용하는 것을 고려해야 한다. 암호화키를 사용하지 않은 알고리즘은 암호화 알고리즘이 아니라, 단순 인코딩 알고리즘으로 기밀성을 보장할 수 없습니다. 암호화키는 소스코드에 하드코딩 되어서는 안되며, 제한된 사람만이 접근 가능하도록 해야 합니다. 마지막으로 각 언어에서 제공하는 보안 수단을 충분히 이해한 후 사용해야 합니다.

 

쿠키/세션

 

쿠키방식은 웹 어플리케이션 운영 시 사용되는 사용자 인증 방식 중에 하나입니다. 클라이언트 측에 저장되어 변조 위험에 노출되어 있습니다. 이런 취약점을 갖고 있는 쿠키에 중요 정보가 포함되어 있으면 공격자가 사용자의 중요한 정보를 변조하거나 획득할 수 있는 위험이 있으므로 웹 어플리케이션 운영 시 가급적 쿠키 방식 대신 세션 방식을 사용하는 것을 권장하며 부득이하게 쿠키를 사용해야 할 경우 암호화를 적용해야 합니다. 세션 방식은 접속자별로 세션을 생성하여 사용자의 정보를 각각 지정할 수 있는 객체로써 페이지의 접근을 허가 또는 금지하거나 사용자 별 정보를 저장할 때 많이 사용됩니다. 클라이언트의 자원을 사용하는 쿠키보다 서버의 자원을 사용하는 세션이 보안성 측면에서 우수하므로 웹 어플리케이션 개선, 구축 시 세션방식을 사용하는 것이 권장됩니다.

반응형

댓글