습관제작소

Web(5-8) 본문

5. SQL 인젝션 (상)

점검내용

  • 웹페이지 내 SQL 인젝션 취약점 존재 여부 점검

점검목적

  • 대화형 웹 사이트에 비정상적인 사용자 입력 값 허용을 차단하여 악의적인 데이터베이스 접근 및 조작을 방지하기 위함

보안위협

  • 해당 취약점이 존재하는 경우 비정상적인 SQL 쿼리로 DBMS 및 데이터를 열람하거나 조작 가능하므로 사용자의 입력 값에 대한 필터링을 구현하여야 함

판단기준

  • 양호 : 임의로 작성성된 SQL 쿼리 입력에 대한 검증이 이루어지는 경우
  • 취약 : 임의로 작성된 SQL 쿼리 입력에 대한 검증이 이루어지지 않는 경우

조치방법

  • 소스코드에 SQL 쿼리를 입력 값으로 받는 함수나 코드를 사용할 경우, 임의의 SQL 쿼리 입력에 대한 검증 로직을 구현하여 서버에 검증되지 않는 SQL 쿼리 요청 시 에러 페이지가 아닌 정상 페이지가 반환되도록 필터링 처리하고 웹 방화벽에 SQL 인젝션 관련 룰셋을 적용하여 SQL 인젝션 공격을 차단함

보안설정방법

  • SQL 쿼리에 사용되는 문자열의 유효성을 검증하는 로직 구현
  • 아래와 값은 특수 문자를 사용자 입력값으로 지정 금지 (아래 문자들은 해당 데이터베이스에 따라 달라질 수 있습니다)
    ' -> 문자 데이터 구분기호
    ; -> 쿼리 구분 기호
    --, # -> 해당라인 주석 구분 기호
    /* */ -> *와 */사이 구문 주석
  • DYnamic SQL 구문 사용을 지양하며 파라미터에 문자열 검사 필수적용
  • 시스템에서 제공하는 에러 메시지 및 DBMS에서 제공하는 에러 코드가 노출되지 않도록 예외처리
  • 웹 방화벽에 인젝션 공격 관련

6. SSI 인젝션 (상)

점검내용

  • 웹페이지 내 SSI 인젝션 공격 가능성 점검

점검목적

  • 적절한 입력 값 검증 절차를 마련하여 악의적인 파일을 include 시키지 못하도록 하여 북법적인 데이터 접근을 차단하기 위함

보안위협

  • 해당 취약점이 존재할 경우 웹 서버 상에 있는 파일을 include 시켜 명령문이 실행되게 함으로 불법적으로 데이터에 접근할 수 있음
  • 공통 SSI 구현은 외부의 파일을 Include 할 수 있는 명령어를 제공하며, 웹 서버의 CGI 환경 변수를 설정하고 출력할 수 있고, 외부의 CGI 환경 변수를 설정하고 출력할 수 있고, 외부의 CGI 스크립트나 시스템 명령어들을 실행할 수 있으므로 사용자 입력 값에 대한 검증 로직을 추가로 구현하여야 함.

판단기준

  • 양호 : 사용자 입력 값에 대한 검증이 이루어지는 경우
  • 취약 : 사용자 입력 값에 대한 검증이 이루어지지 않는 경우

보안설정방법

  • 사용자 입력으로 사용 가능한 무자들을 정해놓음
  • 정해진 문자들을 제외한 나머지 모든 문자들을 필터링 함
  • 필터링 해야하는 대상은 GET 질의 문자열, POST 데이터, 쿠키, URL 그리고 일반적으로 브라우저와 웹 서버가 주고 받는 모든 데이터를 포함하며, 아래는 특수문자에 대한 Entity 형태를 표시한 것임
    변경 전 < , > , “ , ( , ) , # , &
    변경 후 < , > , " , &#40 , &#41 , &#35 , &amp
  • 웹 서버의 SSI 기능을 사용하지 않거나, 웹 방화벽에 특수문자를 필터링하도록 룰셋 적용

7. XPath 인젝션

점검내용

  • 웹페이지 내 조작된 XPath 쿼리 공격 가능성 점검

점검목적

  • XPath 쿼리에 대한 적절한 필터링을 적용하여 웹 사이트의 로직 손상 및 특정 데이터 추출을 차단하기 위함

보안위협

  • 해당 취약점이 존재할 경우 프로그래머가 의도하지 않았던 문자열을 전달하여 쿼리문의 의미를 왜곡시키거나 그 구조를 변경하고 임의의 쿼리를 실행하여 인가되지 않는 데이터를 열람할 수 있으므로 적절한 필터링 로직 구현이 필요함

판단기준

  • 양호 : 쿼리 입력 값에 대해 검증이 이루어지는 경우
  • 취약 : 궈리 입력 값에 대해 검증이 이루어지지 않는 경우

쿼리 입력 값에 대해 검증 로직 추가 구현

  • 쿼리 입력 값에 대해 검증 로직 추가 구현

보안설정방법

  • XPath 쿼리에 사용자가 값을 입력할 수 있는 경우, 엄격한 입력 값 검증을 통해 필요 문자만을 받아들이기게 함 ( ) = ` [ ] : . * / 등 XPath 쿼리를 파괴하는 특수문자는 입력하지 못하게 하여야 하며, 특정 특수문자만을 필터링하는 것이 아닌 허용된 문자 이외의 모든 입력을 허용하지 않아야 함

8. 디렉터리 인덱싱

점검내용

  • 웹 서버 내 디렉터리 인덱싱 취약점 존재 여부 점검

점검목적

  • 디렉터리 인덱싱 취약점을 제거하여 특정 디렉터리 내 불필요한 파일 정보의 노출을 차단

보안위협

  • 해당 취약점이 존재할 경우 브라우저를 통해 특정 디렉터리 내 파일 리스트를 노출하여 응용시스템의 구조를 외부에 허용할 수 있고, 민감한 정보가 포함된 설정 파일 등이 노출될 경우 보안상 심각한 위험을 초래할 수 있음

판단기준

  • 양호 : 디렉터리 파일 리스트가 노출되지 않는 경우
  • 취약 : 디렉터리 파일 리스트가 노출되는 경우

보안설정방법

  • 웹 서버 환경설정에서 디렉터리 인덱싱 기능 제거

'Security > 주요정보통신기반시설 기술적 취약점 분석 평가 방법' 카테고리의 다른 글

Web(9-10)  (0) 2023.09.18
Web(1-4)  (0) 2023.09.18
Comments