147. 입력 데이터 검증 및 표현

alpaka·2024년 2월 6일
0

정보처리기사

목록 보기
151/161
post-thumbnail

입력 데이터 검증 및 표현의 개요

  • 입력 데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들이다.
  • 입력 데이터로 인해 발생하는 문제를 예방하기 위해서는 소프트웨어 개발의 구현 단계에서 유효성 검증 체계를 갖추고, 검증되지 않은 데이터가 입력되는 경우 이를 처리할 수 있도록 구현해야 한다.
  • 입력 데이터를 처리하는 객체에 지정된 자료형이 올바른지 확인하고, 일관된 언어 셋을 사용하도록 코딩한다.

입력 데이터 검증 및 표현의 보안 약점

  • 입력 데이터 검증 및 표현과 관련된 점검을 수행하지 않은 경우 SQL 삽입, 자원 삽입, 크로스사이트 스크립팅(XSS), 운영체제 명령어 삽입 등의 공격에 취약해진다.
  • SQL 삽입(SQL Injection)
    • 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안약점이다.
    • 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있다.
  • 경로 조작 및 자원 삽입
    • 데이터 입출력 경로를 조작하여 서버 자원을 수정·삭제할 수 있는 보안약점이다.
    • 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용 하여 방지할 수 있다.
  • 크로스사이트 스크립팅(XSS; Cross Site Scripting)
    • 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점이다.
    • HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 '<','>', '&' 등의 문자를 다른 문자로 치환함으로써 방지할 수 있다.
  • 운영체제 명령어 삽입
    • 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안약점이다.
    • 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지할 수 있다.
  • 위험한 형식 파일 업로드
    • 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점이다.
    • 업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지할 수 있다.
  • 신뢰되지 않는 URL 주소로 자동접속 연결
    • 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안약점이다.
    • 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있다.
  • 메모리 버퍼 오버플로
    • 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점이다.
    • 프로그램의 오동작을 유발시키거나, 악의적인 코드를 실행시켜 공격자가 프로그램을 통제할 수 있는 권한을 획득하게 한다.
    • 메모리 버퍼를 사용할 경우 적절한 버퍼의 크기를 설정하고, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으로써 방지할 수 있다.
profile
alpaka의 자격증 공부장

0개의 댓글

관련 채용 정보