주요정보통신기반 시설 가이드 23

LDAP 인젝션이란?

LDAP 인젝션 (LDAP Injection) 개념 사용자 입력 값에 LDAP 구문을 입력하였을 떄 웹 기반 응용 프로그램을 악용하는데 사용되는 공격입니다. LDAP : Lightweight Directory Access Protocol의 약자로, 디렉토리 서비스를 제공하기 위한 프로토콜입니다. 이전 디렉토리 서비스 표준인 X.500의 DAP과 다르게 OSI 계층 전체가 아닌 TCP/IP위에서 운용됩니다. 발생 원인 사용자 입력 값에 대한 적절한 필터링 및 유효성 검증을 하지 않아 발생하는 취약점입니다. 공격 성공 시 승인되지 않은 쿼리에 권한을 부여하고, LDAP 트리 내의 내용 수정이나 임의의 명령 실행이 가능해집니다. 위험한 이유 공격자가 LDAP 인젝션 공격에 성공하게 된다면 LDAP 서버내의 있..

포맷 스트링이란?

포맷 스트링 (Format string) 개념 C언어로 만든 프로그램 중 입력 값을 조작하여 프로그램의 메모리 위치를 반환 받아 메모리 주소를 변조하는 취약점입니다. 발생 원인 이 취약점은 프로그램에 입력된 문자열 데이터가 명령으로 해석될 떄 발생합니다. printf등의 함수에서 발생되는 취약점으로 공격자는 코드를 실행하거나 메모리 일부를 읽을 수 있습니다. 프로그래머가 아래와 같이 작성하였으면 안전한 코드입니다. printf('%s',argv[1]); 그러나 아래와 같이 작성하였으면 포맷 스트링에 취약한 코드입니다. printf(argv[1]); 위험한 이유 위와 같은 코드가 위험한 이유는 만약 사용자가 %s%s%s%s%s%s라는 값을 입력하면 모든 %s를 문자열에 대한 포인터로 해석해 잘못된 주소로 ..

버퍼 오버플로우 공격이란?

버퍼 오버플로우 공격 (Buffer overflow) 개념 버퍼의 용량을 초과하여 인접한 메모리 위치를 덮어쓸 때 발생하는 취약점입니다. (버퍼 : 데이터를 한 장소에서 다른 장소로 이동하는 동안 임시로 저장하는 데 사용되는 물리적 메모리 저장영역) 발생 원인 사용자가 입력 가능한 값은 ABCD뿐인데 문자열 길이를 제한하지 않아 ABCDE를 입력되었을 경우 발생하는 취약점으로 기존의 데이터를 덮어쓰는 바람에 오류를 일으켜 실행 프로그램이 비정상적으로 종료되거나 비인가 접근이 발생할 수 있는 취약점입니다. 위험한 이유 공격자는 이 취약점을 이용해 프로그램의 실행 흐름을 조작하여 임의 코드를 실행하거나 중요한 데이터를 손상시킬 수 있습니다. 이 취약점은 널리 알려진 취약점인 만큼 버퍼 오버플로우 관련 코드는..