사내 교육 시, 교육 받았던 내용에 대해서 간단히 정리한 내용임.
> 주의사항 2편
입력값 검증 부분
SQL Injection
정의/원인
- SQL문 Code Injection 기술로 악의적인 SQL문 주입하여 비정상적인 동작 유도 (ex OR 1=1)
- 입력데이터에 대한 유효성 검증을 하지 않고 DB쿼리 일부로 사용하는 경우
대응방안
- 정적 쿼리를 사용하여, 쿼리문 구조 변경 방지
- 특수문자 및 키워드 필터링 처리
- 500 에러를 통한 오류정보 노출 방지
XSS
정의/원인
- 악의적인 스크립트가 웹사이트에 주입되어 공격하는 취약점
- 외부에서 입력된 값, 외부에서 입력된 정보를 갖고 있는 DB를 사용하여 동적페이지 생성 시 악의적인 스크립트를 응답의 일부로 사용하여 발생
1) Reflective XSS
ㅇ 악성 스크립트가 포함된 URL을 클라이언트가 실행시키게 유도하여 정보 탈취 혹은 피싱/광고 사이트로 이동 유도
2) Stored XSS
ㅇ 공격자가 웹애플리케이션 데이터베이스에 악성스크립트를 저장 (EX 게시판/댓글)
ㅇ 위의 악성스크립트가 저장되어 있는 해당 데이터베이스의 정보를 열람하는 사용자 누구나 희생자가 됨(지속성)
대응방안
- 입력 값에 대해 정규식을 이용
- 서버로 들어오는 모든 요청에 대해 XSS 필터적용
- 출력 값에 대해 HTML인코딩 및 XSS 필터 적용
파일 업로드
정의/원인
- 업로드 되는 파일에 대해 안전성 검사하지 않고, 파일 업로드 허용한 경우 발생(웹셀, 악성 JSP파일, 키로거 등이 업로드 됨)
대응방안
- 업로드 되는 파일의 크기, 개수를 제한하고 White List 기바의 파일종류 제어
- 업로드 파일을 외부에서 접근할 수 없는 경로에 저장
- 업로드 파일의 저장 경로/파일명을 외부에서 추측할 수 없는 문자열로 변경 저장
- 업로드 된 경로와 파일에 대해 실행권한 제어
파일 다운로드
정의/원인
- 파일 다운로드 시, 서버측 부주의(경로, 타입체크 미흡) 시 발생하는 취약점
- 파일 다운로드 경로 등 입력 값을 조작하여 시스템 보호자원(passwd, hosts 등)에 공격자가 접근
대응방안
- 다운로드 하는 파일의 확장자를 White List 기반으로 제어하여 다운로드 시도되는 파일에 대해 검증
- 파일을 다운로드 받을 수 있는 디렉토리를 특정 디렉토리로 구성/한정 및 다른 디렉터리 접근 권한 제한
- 사용자가 입력 값 혹은 다운로드 경로에 대해 상위 디렉터리로 이동할 수 있는 문자(../, ..\등) 제거 필터 적용
- Index, 파일명, 파일저장경로 등을 DB에 저장한 뒤, Index 기반의 파일 다운로드 및 요청사항 확인 후 다운로드 등
'IT > IT Project Management' 카테고리의 다른 글
IT :: 개발 시 보안 관련하여 주의해야할 사항2 (시큐어코딩/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 |