PHP의 오래된 해시 비교 버그 드러나

2015-05-12 18:29
  • 카카오톡
  • 네이버 블로그
  • url

특정 조건 아래서 PHP가 해시 값을 0으로 해석

[보안뉴스 문가용] PHP가 특정 상황에서 해시된 스트링을 다룰 때에 발생하는 취약점 때문에 해커들이 인증 과정을 공격해 암호도 탈취하고 해시 비교와 관련된 다른 기능까지 점령할 수 있다고 화이트햇 시큐리티(WhiteHat Security)에서 발표했다.
 


화이트햇의 부회장인 로버트 핸슨(Robert Hansen)은 이번 사안에 대해 설명하며 PHP 내에서 해시를 비교하기 위해 두 개의 특정 오퍼레이터를 사용하는 웹사이트라면 죄다 취약점에 노출되었다고 보면 된다고 밝혔다.

이번 취약점으로 가장 큰 타격을 받는 건 권한 인증이지만 ‘암호를 잊었을 때’ 기능, 넌스(nonce), 바이너리 확인, 쿠키, 암호 등까지도 악영향의 범위 안에 들어간다. “어디까지 공격받을 수 있는가 하는 문제는 웹 사이트마다 천지차이라 일반화시킬 수가 없습니다.”

해당 취약점은 PHP가 해시 스트링을 다루는 방법에서부터 발생하는데, 특히 “==”나 “!=”라는 비교 오퍼레이터가 주요 원인이다. 이 두 가지 오퍼레이터가 각각 사용될 경우, PHP는 0e로 시작되는 해시 값을 전부 0으로 해석한다.

이게 무슨 말이냐 하면, 두 개의 다른 암호가 해시되고, 해시 값이 둘 다 0e로 시작될 때 PHP는 이 둘을 다 0으로 확인한다는 것이다. 즉 둘의 해시 값이 완전히 다르다고 해도 PHP 자체는 둘을 같은 0으로 본다. 해시 값이 0e로 시작하고 ==나 !=라는 오퍼레이터가 사용되었을 때라는 조건 하에서 말이다. “그러면 스트링 값이 정수로 변하게 됩니다.”

이에 대한 결과는 상당히 심각해질 수 있다. PHP가 해시 값을 0으로 받아들이게끔 조작함으로써 사용자 계정을 탈취하는 게 가능해지기 때문이다. 사실 핸슨에 따르면 이 문제는 새롭게 발견된 게 아니다. 다만 0e로 시작되는 해시 값이 0으로 변환되어 해석되는 예가 드러나지 않았을 뿐이다. 핸슨은 자신의 블로그를 통해 이런 조건에 성립하는 ‘마법의 숫자’들을 공개하기도 했다.

이런 숫자들 및 조합을 찾아내기 위해 핸슨은 10억개가 넘는 해시 정수들을 반복해서 대입했다고 한다. 비효율적이긴 했지만 소득이 분명히 있었고, 그것이 바로 블로그에 공개된 번호들이다. 물론 이 숫자들조차 최대 32개 글자들로 이루어진 해시 알고리즘에만 해당한다.

PHP 기반으로 구축되어 있는 웹 사이트의 관리자들은 ==나 !=를 사용한 해시 비교 코드를 분석하면서 해당 오퍼레이터를 각각 ===나 !==로 교체해봄으로써 문제 확인이 가능하다.
@DARKReading
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


과월호 eBook List 정기구독 신청하기

    • 가시

    • 인콘

    • 엔텍디바이스코리아

    • 이노뎁

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 지인테크

    • 그린아이티코리아

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 비전정보통신

    • 경인씨엔에스

    • 지오멕스소프트

    • 성현시스템

    • 디비시스

    • 다후아테크놀로지코리아

    • 동양유니텍

    • 이앤엠솔루션

    • 세연테크

    • 트루엔

    • 위트콘

    • 투윈스컴

    • 이에스티씨

    • (주)우경정보기술

    • 주식회사 에스카

    • 이오씨

    • 넥스트림

    • 넷앤드

    • 에스지앤

    • 베스핀글로벌

    • 체크막스

    • 프렌트리

    • 신우테크
      팬틸드 / 하우징

    • 에프에스네트워크

    • 앤디코

    • 케이제이테크

    • 알에프코리아

    • 사라다

    • 아이엔아이

    • 포엠아이텍

    • 새눈

    • 창성에이스산업

    • 한국씨텍

    • 태정이엔지

    • 네티마시스템

    • 에이앤티코리아

    • 유투에스알

    • 구네보코리아주식회사

    • (주)일산정밀

    • 이스트컨트롤

    • 에스에스티랩

    • 에이앤티글로벌

    • 주식회사 알씨

    • 현대틸스
      팬틸트 / 카메라

    • 지에스티엔지니어링
      게이트 / 스피드게이트

    • 유에치디프로

    • 두레옵트로닉스

    • 엘림광통신

    • 티에스아이솔루션

    • 포커스에이치앤에스

    • 보문테크닉스

    • 휴젠

    • 메트로게이트
      시큐리티 게이트

    • 글로넥스

    • 신화시스템

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기