- 코드 주입을 통한 OpenSSL 공유 라이브러리의 보안 취약점 공격
- ㆍ 저자명
- 안우현,김형수,Ahn. Woo-Hyun,Kim. Hyung-Su
- ㆍ 간행물명
- 정보과학회논문지. Journal of KIISE. 시스템 및 이론
- ㆍ 권/호정보
- 2010년|37권 4호|pp.226-238 (13 pages)
- ㆍ 발행정보
- 한국정보과학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
OpenSSL은 보안 통신 프로토콜인 SSL을 구현한 공개 소스 기반의 라이브러리이다. 하지만, 이 라이브러리는 리눅스 혹은 유닉스 운영체제에서 공유 라이브러리 형식으로 사용될 때 보안 정보를 쉽게 노출할 수 있다는 취약점이 있다. 본 논문은 이런 취약점을 공격하는 기법을 제안한다. 이 기법은 실행중인 클라이언트 프로그램에 공격 코드를 주입하여 SSL 핸드셰이크 단계에서 보안 취약점을 다음과 같이 공격한다. 첫째, 클라이언트가 서버에게 지원 가능한 암호 알고리즘의 목록을 전송할 때 그 목록의 모든 알고리즘을 임의로 지정한 알고리즘으로 교체한다. 이 교체는 암호 알고리즘의 목록을 수신한 서버로 하여금 지정한 암호 알고리즘을 선택하도록 한다. 둘째, 암복호화에 사용되는 암호 키를 생성 과정에서 가로채고, 그 암호 키를 외부 공격자에게 전송한다. 그 후 외부 공격자는 지정한 암호 알고리즘과 가로챈 암호키를 사용하여 송수신된 암호 데이터를 복호화한다. 제안하는 기법의 실현성을 보이기 위해 본 논문은 리눅스에서 OpenSSL 공유 라이브러리를 사용하는 ftp 클라이언트가 서버로 전송하는 암호화된 로그인(login) 정보를 가로채 복호화하는 실험을 수행하였다.
OpenSSL is an open-source library implementing SSL that is a secure communication protocol. However, the library has a severe vulnerability that its security information can be easily exposed to malicious software when the library is used in a form of shared library on Linux and UNIX operating systems. We propose a scheme to attack the vulnerability of the OpenSSL library. The scheme injects codes into a running client program to execute the following attacks on the vulnerability in a SSL handshake. First, when a client sends a server a list of cryptographic algorithms that the client is willing to support, our scheme replaces all algorithms in the list with a specific algorithm. Such a replacement causes the server to select the specific algorithm. Second, the scheme steals a key for data encryption and decryption when the key is generated. Then the key is sent to an outside attacker. After that, the outside attacker decrypts encrypted data that has been transmitted between the client and the server, using the specified algorithm and the key. To show that our scheme is realizable, we perform an experiment of collecting encrypted login data that an ftp client using the OpenSSL shared library sends its server and then decrypting the login data.