애드센스4



Month of PHP Bugs - 6일차 보안 정보

오늘도 Month of PHP Bugs 에서 2개의 취약점을 추가로 발표했습니다. 취약점의 리스트는 아래 그림과 같습니다.



( 6일차 취약점 리스트 )


12번째 취약점은 PHP 자체의 취약점이 아니라 오픈 소스 웹 방화벽인 mod_security 의 취약점입니다. 그래서 BONUS-12-2007 라고 표현했군요. 예전에 침입탐지시스템(IDS) 우회기법이 발표되었을 때, IDS 가 패킷을 해석하는 방식과 OS 가 패킷을 해석하는 방식이 다른 점을 공략하는 내용이 언급되었는데, 12번째 취약점 역시 마찬가지로군요.

mod_security 는 ASCIIZ 문자열(NULL 로 끝나는 아스키 문자열)이 POST 데이터로 날라오면 이를 문자열로 해석하지만, mod_perl, mod_python, mod_php 등의 스크립트 엔진은 문자열로 다루는게 아니라 단순한 byte 집합으로 다룬다고 합니다. 때문에 ASCIIZ 문자열 뒤에 공격 코드를 붙여서 보내면 mod_security 는 이 공격 데이터를 못보고 그냥 통과시키게 되고, 스크립트 언어는 공격 데이터를 받아들이게 됩니다. 이 원리를 이용한 간단한 공격 방법 예제가 발표 자료에 포함되어 있으니 업무에 참고하시기 바랍니다.

mod_security 2.1.0 최신버전을 포함한 하위 버전이 취약한 것으로 확인되었습니다. PHP 5.2.0 이후 버전을 사용하시는 분들 중에 취약한 mod_security 를 사용하시는 분들은 주의하시는 것이 좋겠습니다.

발표 자료에서도 언급되었듯이 방화벽이던, IDS 던, 웹 방화벽이던 공격을 탐지하는 제품들은 근본적인 한계가 있습니다. 백엔드에 위치한 OS나 웹 서버, 스크립트 엔진은 다양하고 작동 방식이 서로 조금씩 차이나는데 비해, 보안제품은 이런 차이를 모두 반영할 수 없기 때문이죠. '공격 탐지'라는 기술이 가진 근본적인 한계이니 'mod_security 프로젝트가 오픈 소스라 품질이 낮아 그렇다'라는 식으로 이해하시는 분들이 없었으면 합니다(다른 상용 웹 방화벽 역시 여러가지 우회 기법에 취약할 수 밖에 없습니다).

그렇다고 보안 솔루션 무용론에 빠질 필요도 없구요. 어차피 대다수의 스크립트 키드들을 막아내는데는 보안 솔루션이 효과가 있습니다. 일부 소수의 전문적인 해커들은 원래가 막을 수 없는 존재들이구요.

제 아무리 좋은 보안 솔루션을 구축해놨어도 해킹 당했는지 꾸준히 모니터링하고 주의를 게을리하지 말아야 한다는 점 잊지 마세요.

13번째 취약점은 PHP 4의 Ovrimos 라는 확장 모듈이 가진 취약점입니다. 이름이 생소한데 Ovrimos SQL Server 라는 DBMS 를 지원하는 모듈이라는 군요. 해당 모듈이 자료 구조를 처리할 때 별도의 리소스를 할당하고 사용하는게 아니라, 포인터를 이용해 직접 액세스하는 형태로 구현되어 있는데, 이 취약점을 이용해 임의의 명령어 실행까지 가능하다고 합니다. 어차피 해당 모듈을 사용하시는 분들은 거의 없을 것이기 때문에 크게 위험하지는 않을 듯...

참고 자료
1. Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection (1998)
2. Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics
3. IDS Evasion Techniques and Tactics
 

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://swbae.egloos.com/tb/1521981 [도움말]

덧글

댓글 입력 영역


애드센스7