포럼

39942f54e062086cbfd2370d6656d04c.png

 

위의 도표를 보면 PHP 5.3은 작년 8월부터 지원이 중단된 것이 맞습니다. 지원이 중단된다는 것은 PHP 개발팀에서 버그수정 및 보안패치 제공이 중단된다는 뜻이죠. 단지 이것만 보면 당장이라도 PHP 5.3을 사용하면 해킹당할 것 같은 느낌이 들죠?

 

그러나 오픈소스 프로젝트의 "지원 중단"이라는 것은 생각보다 복잡한 개념입니다. 여전히 PHP 5.3을 사용하는 웹호스팅 때문에 불안하시다면, 이 글을 꼼꼼히 읽으셔서 더이상 불필요한 불안감에 시달리지 않으시기 바랍니다.

 

우리는 흔히 "지원 중단"이라고 하면 작년 이맘때쯤 윈도우 XP의 지원이 중단되었을 때의 패닉상황을 떠올립니다. 그러나 윈도우 XP는 상용 소프트웨어였습니다. 오픈소스가 아니었죠. 버그나 보안 취약점은 누구나 찾을 수 있지만, 그걸 패치할 수 있는 회사는 MS뿐입니다. MS 이외의 회사나 개인이 윈도우 XP를 패치하겠다고 나선다면 저작권법에 저촉되는 것은 물론이고... 소스도 없이 어떻게 패치를 했다는 건지, 오히려 바이러스를 넣은 게 아닌지 의심할 수도 있죠.

 

(게다가 MS에서는 윈도우 7~8.1을 더 팔기 위해 XP의 위험을 과장해서 광고했어요. 그래 놓고는 정작 심각한 취약점이 발견되자 지원 중단을 잠깐 중단하고 서둘러 패치를 배포했음 ㅋㅋ)

 

PHP와 같은 오픈소스 프로젝트의 "지원 중단"은 다릅니다. 소스도 공개되어 있고 누구든지 변경하여 재배포할 권리가 있기 때문에, 원래 개발자들이 더이상 패치를 해주지 않겠다고 선언하더라도 다른 사람이 패치하여 재배포하면 그만입니다.

 

PHP 5.3 지원은 2020년까지!

 

현재 제가 알기로 PHP 5.3에 대한 "거의 공식적인" 버그수정과 보안패치 지원을 해 주는 곳은 두 군데가 있습니다.

 

1. 레드햇 (레드햇 리눅스 개발사, 무료버전으로 CentOS가 있음)

2. 캐노니컬 (우분투 리눅스 개발사)

 

제가 관리하는 서버 중에 우분투 12.04를 사용하는 것이 하나 있습니다. 기본으로 설치된 PHP 버전은 5.3.10입니다. 엄청 오래된 버전이죠? 5.3.11~5.3.29 버전에서 고쳐진 보안 취약점이 한두 개가 아닌데, 당장이라도 해킹당할 것 같죠? 천만의 말씀입니다. 변경 내역을 보면 5.3.11~5.3.29 버전에 포함된 보안패치를 모두 backport하여 적용한 것은 물론, 지난 8월 공식적인 지원 중단 후에도 네 차례에 걸쳐 13개의 보안 취약점을 패치한 것을 알 수 있습니다. 요 며칠 전에도 보안패치가 나온 것 같네요.

 

우분투 12.04는 2017년 4월까지 지원되는 OS입니다. 그 때까지는 기본으로 포함된 PHP 버전에 대해 자체적으로 보안패치를 제공하기로 약속이 되어 있습니다. 그래서 저도 당분간은 이 서버를 업그레이드할 계획이 없습니다. (다른 서버들은 우분투 14.04 = PHP 5.5.9를 사용합니다 ^^)

 

레드햇에서 개발한 소스를 그대로 사용하는 CentOS 리눅스 배포판도 마찬가지입니다. 레드햇은 최소 10년간 버그 수정과 보안패치를 책임져 주는 것으로 유명하죠. PHP 5.3.3을 기본으로 제공하는 CentOS 6.x 버전은 2020년 11월까지 지원될 예정입니다. 그 때까지는 별 문제 없이 PHP 5.3.3을 쓸 수 있다는 뜻이죠. 최신 버전의 성능 향상이나 다양한 기능을 활용할 수는 없겠지만, 최소한 보안에 대한 걱정은 하지 않아도 됩니다.

 

게다가 이 모든 것들이 다 오픈소스이기 때문에, 꼭 우분투나 CentOS를 사용하지 않더라도 거기서 배포하는 보안패치를 직접 적용하여 관리할 수 있습니다. PHP 5.3.29라고 다 똑같은 5.3.29가 아닙니다. 지원이 중단된 공식 버전을 그대로 사용하는 서버도 있고, 별도로 패치를 적용한 서버도 있어요. 버전 번호만 봐서는 구분하기가 힘듭니다.

 

(버전 번호를 그대로 유지하는 이유는 안정성과 신뢰성을 위해서입니다. 다들 제멋대로 패치를 적용하고 "나는 5.3.30, 너는 5.3.31" 이렇게 해버리면 혼란스럽잖아요.)

 

왜 이런 현상이 발생하나?

 

공식 지원은 끊겼는데 다른 회사에서 몇 년간 계속 버그 수정과 보안패치를 지원해 주는 것은 오픈소스 생태계에서는 흔한 일입니다. 상용 소프트웨어처럼 저작권이나 사용권 계약에 묶여서 100% 제작사에만 의지하지 않아도 되기 때문이지요. XE도 예전에 1.4 버전 지원이 끊겼을 때 몇몇 분들이 Xzet이라는 이름으로 한동안 보안패치 지원을 계속해 주신 일이 있어요.

 

개발자들은 가능하면 많은 사용자들이 최신 버전을 써주기를 원합니다. 많은 노력을 기울여서 새 버전을 개발했는데 여전히 대부분의 사람들은 예전 버전을 쓰고 있다면 허탈하잖아요. 상당 부분이 자원봉사로 이루어지는 오픈소스의 특성상, 오래된 버전을 몇 년이고 계속 지원해 줄 여력이 되지 않는다는 점도 이해해 주어야겠고요.

 

반면, 레드햇이나 캐노니컬처럼 대규모 고객들을 유치하고 싶어하는 회사들은 안정성을 가장 중요하게 여기는 대규모 고객들의 입맛에 맞춰줄 필요가 있습니다. "PHP 지원됩니까?" "네, 지금은 지원되는데 내년에 공식적인 지원이 끊기면 저희도 어쩔 수 없어요." 이래갖고 어떻게 수십억, 수백억원짜리 고객을 유치할 수 있겠어요? 그래서 이런 회사들은 공식적인 지원이 끊기든 말든 자기네가 알아서 버그를 수정하고 보안패치를 작성합니다. 대규모 고객이 아닌 일반 사용자들도 덩달아 그 덕을 보는 거고요.

 

빠른 변화를 추구하는 개발자 커뮤니티와 실용성을 추구하는 기업들이 함께 있기 때문에 오픈소스는 변화와 안정 사이에서 항상 절묘한 균형을 유지할 수 있습니다. 어느 한 쪽만 있다면 난리가 나겠죠.

 

그렇다면 웹호스팅은?

 

PHP 버전보다는 얼마나 꼬박꼬박 보안패치가 이루어지고 있느냐가 더 중요합니다. 아무리 PHP 5.5, 5.6 버전이 설치되어 있더라도 보안패치가 몇 달씩 밀렸다면, 차라리 최근에 패치된 PHP 5.3보다 못하거든요.

 

웹호스팅사 입장에서도 당장 5.3을 벗어나기 어려운 이유가 있습니다. register_globals, magic_quotes_gpc 등 오래된 기능들이 PHP 5.4에서 한꺼번에 정리해고당하는 바람에, 많은 고객이 서버를 공유하는 웹호스팅 환경에서 5.4 이상 버전을 사용하려면 상당히 많은 변화가 필요하거든요. 최신 버전을 원하는 고객들을 위해 서버를 별도로 운영해야 하는데, 최신 버전을 원하는 고객 수가 충분하지 않다면 서버 한 대를 채울 수 없어서 오히려 손해를 보겠죠.

 

만약 웹호스팅사가 아직도 PHP 5.2 이하 버전을 쓰고 있다면 벌떼같이 달려들어서 업그레이드를 요구하세요. 가능하면 5.5 이상으로 업그레이드해 달라고 요청해 보세요. 그러나 5.3에서 더 업그레이드하기 어렵다고 하면 그냥 두세요. 국내외 대부분의 웹호스팅 업체들은 CentOS를 사용합니다. 2020년까지는 보안 걱정 없다는 얘기죠. 그런데 괜히 보안이 어쩌고 하면서 업그레이드를 요구하면 "뭘 모르는 고객"으로 오해받기 딱 좋습니다.

 

웹호스팅사에 뭔가를 요구하려면 정확한 정보를 바탕으로 요구해야 합니다. 예: "PHP 5.3.29 이후 발견된 보안 취약점도 그때그때 패치하고 계신가요? 패치가 곤란하다면 해당 취약점을 이용한 해킹을 차단하는 별도의 조치(예: 어플리케이션 방화벽)라도 하고 계시겠지요?"

 

만약 여기에도 신통찮은 대답이 나온다면 다른 곳으로 옮기세요. 최신 버전의 기능을 쓰고 싶다면 옮기세요. 그러나 단지 PHP 5.3이라는 이유만으로 보안 취약점이 있는 것은 아니니까 안심하세요.

 

 

글쓴이 제목 최종 글
코아 코스튬 XE 개발을 제대로 배울수 있는곳이 있으면 좋겠어요. [1] 2020.03.14 by Garon
행복한고니 재밌네요. -_-a [26] 2011.02.25 by cherryfilter
백성찬 apc, memcache 와 같이 wincache를 사용하는 방법도 강구해주십시오.  
SMaker XE에 프로그램 조각(brick) 개념이 있다면 정말 좋을텐데요.  
어쿠스틱 비회원 상담기능 등이 필요합니다. [1] 2011.02.26 by 라르게덴
친절뺀질이 JQuery fade 효과 버그문의입니다. [1] 2011.02.27 by ForHanbi
어쿠스틱 게시판 확장변수 한줄 입력칸 폭에 옵션을 주실 수 없나요? [1] 2011.02.28 by RainDrop+
BlogJh 로그인 폼에..  
wiley [XE Project Hosting] 프로젝트 가입처리가 정상적이지 않는 듯 합니다. [2] 2011.03.02 by wiley
똥똥 XE서버 해킹 시도로 인한 일부 서비스 사용불가 안내 [27] 2011.03.06 by TT PIC
난다날아 아파치 SSL 문의 [2] 2011.03.07 by 난다날아
Loptz XE 신 템플릿문법에서 .. [1] 2011.03.07 by XE Developers
ForHanbi 게시물 제목 h1 비논리적 구조 아닌가요? [12] 2011.03.08 by ForHanbi
ForHanbi 레이아웃 스킨 압축 파일형태에 대한 질문 [1] 2011.03.08 by 행복한고니
웹 엔진 이 게시글을... 부분의 신고에 procDocumentDeclare [2] 2011.03.10 by B.G.M^^
행복한고니 요즘 하고 있는 거 [9] file 2011.03.10 by k02092000
Hide_D 신 템플릿 문법에선 if else가 안되는데 그 대신 [1] 2011.03.10 by SMaker
씨지 Core의 기본언어팩에 '로그인','로그아웃'같은 기본단어가 없네요. [1] 2011.03.10 by yoorim
銀童 XE 의 가장큰 병목현상은 파일 I/O 관련 부분이 아닐까요? [2] 2011.03.11 by 銀童
999 속도 문제에 대해 토론해 봅시다. [6] 2011.03.11 by cjsound