본문 바로가기
보안/보안공부

Python_시큐어코딩_가이드

by 보안매크로 2023. 6. 17.
728x90

XML - 인터넷 웹페이지를 만드는 HTML을 획기적으로 개선하여 만든 언어

LDAP(Lightweight Directory Access - TCP/IP위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다.

CSRF(Cross Site Request Forgery) - 특정 사용자를 대상으로 하지 않고, 불특정 다수를 대상으로 로그인된 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 하게 만드는 공격이다.

서버사이드 요청 위조 - 적절한 검증 절차를 거치지 않은 사용자가 입력값을 내부 서버간의 요청에 사용해 악의적인 행위가 발생할 수 있는 보안약점이다.

HTTP 응답분할 - HTTP 요청 내의 파라미터(Parameter)가 HTTP 응답 헤더에 포함되어 사용자에게 다시 전달될 때, 입력값에 CR(Carriage Return)이나 LF(Line Feed)와 같은 개행문자가 존재하면 HTTP 응답이 2개 이상으로 분리될 수 있다. 이 경우 공격자는 개행문자를 이용해 첫 번째 응답을 종료 시키고, 두 번째 응답에 악의적인 코드를 주입해 XSS 및 캐시훼손(Cache Poisoning) 공격 등을 수행할 수 있다

정수형 오버플로우 - 정수형 오버플로우는 정수형 크기가 고정된 상태에서 변수가 저장할 수 있는 범위를 넘어선 값을 저장하려 할 때 실제 저장되는 값이 의도치 않게 아주 작은 수 또는 음수가 되어 프로그램이 예기치 않게 동작하게 되는 취약점이다. 특히 반복문 제어, 메모리 할당, 메모리 복사 등을 위한 조건으로 사용자가 제공하는 입력값을 사용하고 그 과정에서 정수형 오버플로우가 발생하는 경우 보안상 문제를 유발할 수 있다.

보안기능 결정에 사용되는 부적절한 입력값 - 응용 프로그램이 외부 입력값에 대한 신뢰를 전제로 보호 메커니즘을 사용하는 경우 공격자가 입력값을 조작 할 수 있다면 보호 메커니즘을 우회할 수 있게 된다. 개발자들이 흔히 쿠키, 환경변수 또는 히든필드와 같은 입력값이 조작될 수 없다고 가정하지만 공격자는 다양한 방법을 통해 이러한 입력값들을 변경할 수 있고 조작된 내용은 탐지되지 않을 수 있다. 인증이나 인가와 같은 보안 결정이 이런 입력값(쿠키, 환경변수, 히든필드 등)에 기반을 두어 수행되는 경우 공격자는 입력값을 조작해 응용프로그램의 보안을 우회할 수 있다. 따라서 충분한 암호화, 무결성 체크를 수행하고 이와 같은 메커니즘이 없는 경우엔 외부 사용자에 의한 입력값을 신뢰해서는 안 된다.

포맷 스트링 삽입 - 외부로부터 입력된 값을 검증하지 않고 입·출력 함수의 포맷 문자열로 그대로 사용하는 경우 발생할 수 있는 보안약점이다. 공격자는 포맷 문자열을 이용해 취약한 프로세스를 공격하거나 메모리 내용을 읽고 쓸 수 있다. 이를 통해 취약한 프로세스의 권한을 취득해 임의의 코드를 실행 할 수 있다.

하드코드 - 데이터를 코드 내부에 직접 입력하는 것.

728x90