사내 교육 시, 교육 받았던 내용에 대해서 간단히 정리한 내용임.
> 주의사항 1편
접근 제어 및 권한 관리
부적절한 인증/인가
정의/원인
- 인증(신원 식별)과 인가(자원 권한 확인)가 제대로 진행되지 않아 발생하는 취약점
- 접근 불가능한 시스템 자원, 권한 없는 메뉴, 결제 금액 변조 등 수행 가능
대응방안
- ACL(Access Control List)을 이용하여 권한에 따라 적절한 기능 사용
- 서버측에서 권한 체크
- 파라미터 최소화 및 세션 활용
- 중요 정보는 암호화
- 최종 단계에서 인증 및 권한 체크
-(결제 금액 등은 클라이언트 사용된 값이 아닌 서버측 값을 사용, 클라이언트 값 사용하려면 서버측에서 크로즈 검증)
쿠키 및 세션 관리
정의/원인
- 세션ID를 탈취하여, 공격자가 해당 세션ID를 사용하여 해당 시스템 서비스 사용 (세션 하이재킹)
- 쿠키 정보를 변조하여, 권한 상승을 통해 허용되지 않는 기능 접근 (권한 상승)
대응방안
- 추측 가능한 세션ID 생성 => WAS에서 생성하는 세션관리 기능활용
- 세션ID 훔치기 => XSS 취약점 제거 / 세션ID는 로그인마다 갱신 / 쿠키에 setScure, setHttpOnly 설정 / 세션ID와 로그인 IP주소 비교
- 세션ID 고정 => 세션ID는 (재)로그인한 후에, 세션ID값을 재할당(변경)하도록 한다 (로그인 이후 세션ID 계속 사용한다면 공격자가 악용가능)
- 세션관리정책 미비 => 로그아웃 시 세션 무효화 / 세션 타임아웃 기준 설정 / 다른 세션간 데이터 공유 금지
- 쿠키를 통한 정보 노출 => 중요/민감 정보를 쿠키에 저장하지 않는다
- 쿠키 변조 방지 => 인증 등 주요방식은 세션 방식을 사용하며, 쿠키 값을 암호화하여 변조 방지
- 그외 => 서버측에서 반드시 권한체크 로직 수행 / 단계별 인증 시 최종 단계 체크 / 과도한 시도시 계정 잠금 / 기능잠금 등 적용
정보노출 (오류메시지)
정의/원인
- 개발자가 생성된 오류메시지(ex printStackTrace())에 시스템 정보, 프로그램 구조 같은 민감정보 노출
대응방안
- 에러 메시지에 대해서 간단한 에러 상태, 문자열을 정의하여 지정된 로그파일에 로깅
- (사용자가 보는 페이지에는 간단한 에러내용만 출력, 시스템 버젼 등 노출방지)
- 에러 발생의 경우 공통의 하나 에러페이지에 표시하도록 함
정보노출 (시스템정보, 패스워드 등)
정의/원인
- HTML 소스 상에 IP/테이블정보/연동로직설명 등 주요 정보가 하드코딩/주석형태로 노출
- HTML 헤더에 버전 정보 등이 노출되거나 서버 requset/response 주요 정보가 노출
대응방안
- html 소스코드 .js파일에 주요 정보 삭제
- 디버깅 목적의 주석 삭제
- HTML헤더 등에 시스템 정보 노출 삭제
불필요한 METHOD
정의/원인
- PUT/DELETE 등의 허용되는 경우 악의적인 사용자가 인증 없이 파일업로드/삭제 등의 공격 가능
- HTML 헤더에 버전 정보 등이 노출되거나 서버 requset/response 주요 정보가 노출
대응방안
- GET/POST를 제외한 불필요한 메소드 제외 (환경설정에서)
- PUT/DELETE 등이 필요하다면, 접근 폴더 등에 대한 권한제어 등을 비롯한 추가 조치 필요
'IT > IT Project Management' 카테고리의 다른 글
IT :: 개발 시 보안 관련하여 주의해야할 사항1 (시큐어코딩/Secure Coding) (0) | 2020.07.27 |
---|---|
IT용어 :: Dedi Sever(데디서버, Dedicated Server) (0) | 2020.01.07 |
IT용어 :: WSDL(Web Services Description Language) (0) | 2020.01.07 |
IT용어 :: CAPEX & OPEX (0) | 2019.01.17 |