코코야이야기
사용자 식별 방법 1. 세션: 서버에서 관리하는 정보를 이용하여 사용자를 식별하는 방법. 일반적으로 로그인 시 사용자의 아이디와 패스워드를 인증받아 세션을 생성하고, 세션 ID를 쿠키에 저장. 2. 쿠키: 클라이언트에 저장되는 정보를 이용하여 사용자를 식별하는 방법. 사용자의 브라우저에 쿠키가 저장되며, 서버에서는 클라이언트의 쿠키값을 이용하여 사용자를 식별. 3. 토큰: 사용자 인증 정보를 담고 있는 문자열로, 서버와 클라이언트 간에 인증 정보를 주고받을 때 사용. 일반적으로 로그인 시 서버에서 토큰을 생성하여 클라이언트에 전달하고, 이후에는 클라이언트에서 서버로 요청을 보낼 때 토큰을 함께 전달하여 인증을 수행. 4. 핑거프린트: 브라우저의 고유한 정보를 이용하여 사용자를 식별하는 방법. 브라우저의 ..
* 취약점명 - Insecure Randomness * Math.random - 매우 예측하기 쉬운 알고리즘을 사용하여 만들어진 난수로, 보안적으로 안전하지 않음 - 내부적으로 seed 값을 생성하며, 이 값을 직접 지정할 수 없음 - 이 알고리즘은 시드 값이 변경되지 않는 한 항상 같은 순서의 난수 시퀀스를 생성하며, 같은 난수가 연속해서 발생할수 있으며 이론적으로 모든 값이 동일한 확률로 발생할 가능성이 있음 - 시드 값이 알려진 경우 다음에 생성될 난수를 예측할 수 있을 뿐만 아니라, 악의적인 사용자는 예측 가능한 난수 시퀀스를 생성하여 암호화된 데이터를 해독할 수 있음 * Math.random - seed 동적 생성 - Math.random() 함수로 발생하는 같은 난수 시퀀스를 완전히 제거할 수..
[시큐어코딩] 접근제어 * 파라미터 - 사용자가 서버에 요청을 보낼 때 서버에게 전달해야 하는 값을 가지고 있는 변수 - 서버에게 전달되는 파라미터 값을 사용자가 임의적으로 변경하는 것을 "파라미터 변조"라고 함 * 파라미터 변조 사고의 원인 - 사용자의 요청에 대해 서버 애플리케이션에서 적절한 접근제어가 구현되어 있지 않아 발생함 * 파라미터 변조 사고의 대책 - 클라이언트로부터 요청되는 값(GET/POST 파라미터, 쿠키 메모리값 등)은 언제든지 조작될 수 있기 때문에 외부 입력값을 신뢰하지 말고, 반드시 검증을 수행하는 기능을 구현해야 함 * 파라미터 변조 4가지 진단 1) 진단 1 "파라미터 조작을 통해 허가되지 않은 작업이 실행되는가?" - 공격자가 작업 요청이 어떤 방식으로 요청되는지를 체크해..
[시큐어코딩] 쿠키 및 세션관리 1. 쿠키 (Cookie) - Statless 프로토콜인 HTTP 통신 시 서버가 사용자 정보를 유지하기위해 생성해서 응답 헤더에 붙여 클라이언트에게 전송하는 정보 - 쿠키 정보는 사용자 PC의 메모리 또는 파일에 저장되고, 해당 사이트에 요청을 전송할 때 이름=값 형식으로 효청 헤더에 포함되어 서버에 전달됨 * 제약사항 - 브라우저당 최대 300개 각 호스트마다 최대 20개까지 사용가능 - 크기는 최대 4KB까지 가능(브라우저마다 다름) * 용도 - 세션 관리를 위한 세션 토큰 저장 - 클라이언트 관리에 필요한 정보, 팝업창 제한 설정과 같은 임시데이터 관리 - 제공 정보의 커스터마이징을 위한 사용자 취향 등 저장 세션쿠키 (Session Cookie) 영구쿠기 (Per..
[시큐어코딩] 계정 및 인증관리 인증관리 인가관리 설명 허락된 사용자만 시스템을 사용하도록 하기 위한 제약 권한을 가진 사용자만 시스템을 사용하도록 하는 제약 취약점의 원인 패스워드 관리 정책이나 로그인 관리 정책 부재 - 사용자의 요청에 대해 권한 체크 부재 - 부적절한 권한 체크 * 계정관리 패스워드 선택 정책 - 패스워드로 사용되는 문자열에 대한 정책 정의 방법 - 사용자들이 안전한 문자열을 패스워드로 선택하는 것을 강제하는 시스템이 구축되어야 함 패스워드 관리 정책 - 문자열 선택 정책 - 패스워드 관리 정책 - 초기 패스워드 변경 정책 - 사용자 패스워드 분실 처리 정책 * 패스워드 선택 정책 5가지 진단 1) 진단 1 "패스워드에 문자열 정책이 적용되어 있는가?" - 회원가입 시 입력되는 패스..