본문 바로가기
728x90
반응형

시큐어코딩8

적절한 인증없는 중요기능 허용 [안전하지 않은 코드] [안전한 코드] 2019. 10. 1.
신뢰되지 않은 URL 주소로 자동접속 연결 리다이렉트(또는 포워드) 기능이 존재하는 경우, 외부 입력값이 검증, 제한 없이 리다이렉트 또는 포워드 주소로 사용되는 경우 발생 → 의도하지 않은 주소로 리다이렉트(또는 포워드)가 발생 → 공격자가 미리 만들어 놓은 사이트로 접속을 유도하여 사용자 정보를 탈취 = 피싱(phishing) [정상적인 요청] http://www.다음.net/dispatcher.jsp?url=main.jsp ⇒ 사용자에게 http://www.다음.net/main.jsp 화면이 노출 [비정상적인 요청] http://www.다음.net/dispatcher.jsp?url=http://www.그다음.net/main.jsp ⇒ 사용자에게 http://www.그다음.net/main.jsp 화면이 노출 [공격문자열을 생성하여 불특정 다수.. 2019. 10. 1.
경로조작 및 자원삽입 외부 입력값을 검증, 제한하지 않고 서버 자원의 식별자로 사용하는 경우 발생 → 의도하지 않은 자원 생성 및 참조가 발생 → 정상적인 서비스 실행을 방해하거나 시스템 장애를 유발 → 파일 자원인 경우 지정한 경로 밖(=권한 밖)의 파일에 접근이 가능 = 경로조작 [방어기법] 자원 식별자를 미리 정의하고 정의된 범위 내에서 사용할 수 있도록 제한한다. = 화이트 리스트 방식의 입력값 제한 외부 입력값을 내부 처리에 직접 사용하지 않고, 내부에 정의된 값을 맵핑하는 용도로 사용 ⇒ 캡슐화 및 입력값 제한을 동시에 제공 외부 입력값이 파일 경로로 사용되는 경우, 경로 조작 문자열( . .. / \ ) 포함 여부를 확인 후 사용할 수 있도록 한다. 다음 진단결과의 정오탐 여부를 판정하고 판정근거를 기술하시오. .. 2019. 10. 1.
SQL 삽입 외부 입력값에 쿼리 조작 문자열 포함 여부를 확인하지 않고 쿼리문(SQL) 생성 및 실행에 사용하는 경우 발생 → 쿼리문의 구조와 의미가 변형되어서 실행 ⇒ 권한 밖의 데이터에 접근이 가능 ⇒ DBMS 서버의 제어권 탈취 ⇒ 쿼리 실행 결과를 우회한 처리 [대응방안] 정적쿼리를 사용(실행) = PreparedStatement 객체를 사용 = 구조화된 쿼리 실행 = 파라미터화된 쿼리 실행 동적쿼리를 사용해야 하는 경우, 입력값 검증 후 사용 = 쿼리 조작 문자열 포함 여부를 확인 후 사용 애플리케이션에서 사용하는 DB 사용자의 권한을 최소로 부여 → Stored Procedure를 이용한 SQLi 공격 또는 Union-Based SQLi 공격을 완화 오류 메시지에 시스템 정보가 노출되지 않도록 통제 → E.. 2019. 10. 1.
728x90
반응형