포럼
PHP 5.3 지원 중단의 허와 실
2015.04.10 09:56
위의 도표를 보면 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이라는 이유만으로 보안 취약점이 있는 것은 아니니까 안심하세요.
댓글 20
-
BJ람보
2015.04.10 10:03
-
Sosacka
2016.09.09 22:24
A . Crypt 확장자는 주로 인스턴트 메시지를 위한 대중적인 애플리케이션과 결합되고는 했습니다. 현재, 이는 랜섬용 데이터 하이재킹을 갖춘 인터넷 사기의 일반적인 지표가 되었습니다. 랜섬웨어는 컴퓨터 시스템에 저장된 어떤 데이터에 영향을 줍니다. 이는 여러분의 파일의 원본 코드를 수정하는 정교한 경로를 적용합니다. 즉, 이는 정교한 스크램블링 방법으로 데이터를 암호화합니다.
http://soft2secure.co.kr/knowledgebase/crypt
-
기진곰
2015.04.10 10:27
PHP 버전이 5.3.3-38.el6 이런식으로 나온다면 레드햇에서 패치한 버전입니다.
38.el6 = 레드햇 엔터프라이즈(E) 리눅스(L) 버전 6.x에서 배포한 38번째 패치라는 뜻.
-
도라미
2015.04.10 14:37
우분투(캐노미컬)는 PHP 5.3.10-1ubuntu3.17 이런식이더군요.
-
기진곰
2015.04.10 14:47
네, 딱 보면 우분투에서 패치한 티가 나죠? ㅎㅎ
-
로이조52
2015.04.10 10:31
유익한 정보 잘 읽었습니다. 이해가 쉽네요^^
-
착한악마
2015.04.10 14:27
역시 궁금했는데 잘 읽었습니다. 감사합니다.
-
도라미
2015.04.10 16:51
대부분 호스팅사들이 패키지를 사용하지 않고 컴파일해서 쓰던데, 그럼 레드헷이나 캐노미컬이 제공하는 보안패치랑은 거리가 멀지 않나요?
-
기진곰
2015.04.10 16:59
레드햇에서 배포하는 패치를 적용해서 컴파일할 수도 있죠. 자세한 건 호스팅사에 물어보지 않으면 모르지만, 대강 짐작할 수 있는 방법은 있습니다. (예: 버전은 계속 5.3.29인데 phpinfo()에서 "Build Date"가 가끔 바뀐다면 다시 컴파일했다는 뜻...)
사실 직접 컴파일해서 쓴다면 PHP 5.5라도 안심할 수 없어요. 며칠 전에 5.5.23 나왔죠? 5.5.22 이하 버전을 컴파일해서 사용하던 업체들 죄다 보안취약점에 노출되어 있는 겁니다. 아무래도 패키지 설치보다 귀찮은 게 많다 보니, 취약점이 발표되어도 금방 업데이트하는 경우는 드물더군요.
-
IOZ
2015.04.10 18:18
추천합니다. 잘 모르시는 분들은 PHP 5.3의 지원자체가 완전히 중단된 줄 알고 매우 놀라시거나 불필요한 불만을 가지실 수 있다고 생각합니다. 물론 보안문제가 발생했거나 할 가능성이 있는 기능을 서서히 지원중지하는 경향으로 가고있기는 하지만...
또한 PHP 최신 버전일 수록 기존 소스와의 호환, 버전자체의 안정성에 문제가 발생할 가능성이 크고, 여기에 신속하게 대처할 여력이 없는 영세한 호스팅업체나 큰 규모의 시스템에서는 업데이트에 매우 보수적으로 접근할 수밖에 없는 것도 사실입니다.
이런 부분도 확실히 알려서 PHP의 버전이 올라갈 수록 처리속도나 보안 부분의 pros가 있는것은 당연하나 그렇다고 구 버전이 무조건 못써먹을 물건은 아니며, PHP버전의 업그레이드가 만능의 보도라도 되는 것처럼 생각되는 일이 없도록 하는 것이 바람직하다고 생각합니다.
-
gu
2015.04.14 12:02
유익한정보 감사합니다. 저도 처음알게됐네요 ^^;
-
세에
2015.06.12 23:01
많이 배워갑니다. 이런 글이 계속 읽혀져야 되구요!
추천이요~~~
-
또별
2015.06.13 01:04
사용자 입장에서 그것이..보완때문에 골치아픈게 아니라..
개발하시는 분들이 PHP5.4 이상에서 동작하는 모듈 등 프로그램을 개발해놓으니..
그런 프로그램을 사용할려면 php버전을 올려야 하는데..약오르는거죠.
-
기진곰
2015.06.13 10:51
흐흐흐... 최근에 5.4 이상에서 동작하는 모듈 하나 올려놓은 사람으로서 찔리네요.
쓸만한 라이브러리들이 점점 5.4~5.5를 요구하는 추세여서 저도 골치아파요.
-
똑디
2016.09.20 09:53
좋은글이네요..
-
고나리자
2016.10.07 20:15
제 서버는 php7로 세팅해놨는데 좋나요?
-
기진곰
2016.10.07 21:32
https://secure.php.net/supported-versions.php
PHP 7.0은 2018년 12월까지 지원됩니다.
우분투 16.04 LTS 버전에 포함된 PHP 7.0은 2021년 4월까지 지원됩니다.
그 후에는 7.1이나 7.2로 업그레이드하셔야겠지요?
-
Tucker
2017.01.27 21:38
정보 주셔서 감사합니다. 으로 악성 코드에 대한 보호,또한 제안을 읽고 이에 대한 정보를 웹 사이트 http://soft2secure.co.kr/knowledgebase/cerber
-
Phillips
2017.07.18 04:35
친구, 최신 뉴스는 위안이되지 않습니다 : MAC OS 용 악성 코드 http://macsecurity.net/view/107/
-
pachecus
2017.07.25 19:56
이 텍스트에 대한 감사합니다. 그리고 특별는 의견에 감사드립니다!
추천 ! 추천!!