1. 입력 데이터 검증 및 표현의 개요
- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
- 입력 데이터로 인해 발생하는 문제를 예방하기 위해서는 소프트웨어 개발의 구현 단계에서
2. 입력 데이터 검증 및 표현의 보안 약점
- 입력 데이터 검증 및 표현과 관련된 점검을 수행하지 않은 경우 SQL 삽입, 자원 삽입, 크로스사이트 스크립팅, 운영체제 명령어 삽입 등의 공격에 취약해짐
- 보안 약점의 종류
- SQL 삽입
- 웹 응용 프로그램에서 SQL을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점
- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있음
- 동적 쿼리 : 질의어 코드를 문자열 변수에 넣어 조건에 따라 질의를 동적으로 변경하며 처리하는 방식을 의미
- 경로 조작 및 자원 삽입
- 데이터 입출력 경로를 조직하여 서버 자원을 수정, 삭제할 수 있는 보안 약점
- 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지할 수 있음
- 경로 순회 : 경로를 탐색할 때 사용하는 '/', '\', '..'등의 기호를 악용하여 허가되지 않은 파일에 접근하는 방식
- 크로스사이트 스크립팅
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
- 스크립트 : 소프트웨어를 수행하는데 필요한 처리 절차가 기록된 텍스트로, 대표적인 스크립트 파일의 확장자에는 asp, jsp, php 등이 있음
- HTML 태그을 제한하거나 스크립트에 삽입되지 않도록 '<', '>', '&' 등의 문자를 다른 문자로 치환함으로써 방지할 수 있음
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
- 운영체제 명령어 삽입
- 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
- 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지할 수 있음
- 위험한 형식 파일 업로드
- 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점
- 업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지 가능
- 신뢰되지 않는 URL 주소로 자동접속 연결
- 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
- 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있음
- 메모리 버퍼 오버플로
- 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
- 프로그램의 오작동을 유발시키거나 악의적인 코드를 실행시켜 공격자가 프로그램을 통제할 수 있는 권한을 획득하게 함
- 메모리 버퍼를 사용할 경우 적절한 버퍼의 크기를 설정, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으로써 방지할 수 있음
- SQL 삽입
'Study > EIP' 카테고리의 다른 글
[정보처리기사 필기] 요구사항 확인 - 001. 소프트웨어 생명 주기 (0) | 2025.01.18 |
---|---|
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 148. 보안 기능 (2) | 2025.01.17 |
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 146. 세션 통제 (0) | 2025.01.17 |
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 145. Secure SDLC (0) | 2025.01.17 |
[정보처리기사 필기] IT프로젝트 정보시스템 구축 관리 - 144. 교착상태 (0) | 2025.01.17 |