제로보드 보안 취약점

opt의 이미지

제로보드의 보안 취약점이 발표되었습니다.

http://lists.netsys.com/pipermail/full-disclosure/2004-December/030224.html

버그트랙이나 시큐니아는 일정한 확인 절차를 거치기 때문에, 아마 오늘 저녁이나 내일 오전 중으로 업데이트 될 겁니다.

실제 공격이 발생하기 이전에 빨리 패치 하시기 바랍니다.

p.s.: 영문 권고문 작성 중에 약간의 실수가 있어서, 국문본을 첨부합니다.

File attachments: 
첨부파일 크기
PDF icon zboard2.pdf79.45 KB
opt의 이미지

이상하게.... PDF 파일이 제대로 안보이네요

http://www.webappsecure.com/bbs/stories.php?story=04/12/24/0938137

에서 다운받으실 수 있습니다.

----
LUX ET VERITAS | Just for Fun!

매맞는아이의 이미지

비공식적으로는 예전부터 나돌아다니던 취약점이었는데..
드디어 공식적으로 나오게 되는군요..

이전부터 zero님에게 취약점있다고 패치 부탁한다고 말씀드렸는데..
연락이 없어서 비공식적으로 묻어두고 있었습니다..

큰일이군요..

내가 그린 원 안에서.. 난 서 있겠지.. 언제까지나..

익명 사용자의 이미지

음.. 그런데 우리나라에선 유독 제로보드를
많이 쓰던데 왜 그런건가요?

버려진의 이미지

Anonymous wrote:
음.. 그런데 우리나라에선 유독 제로보드를
많이 쓰던데 왜 그런건가요?

제가 알기로는 스킨 때문에...

한번 점유율이 높아지면 다른 사람들은 따라가기 마련이죠.

shyxu의 이미지

헉....
주위에 제로보드 쓰는 사람들에게 모두 얘기해야겠네요.

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

이은태의 이미지

php5만 해당되나요?

:-)

opt의 이미지

취약점은 총 3가지 입니다.

이 중 위험도가 높은 취약점은 2가지로, 모두 원격지에서 서버에 직접적인 공격이 가능합니다.

1번 취약점은 PHP5에만 해당하고, 2번 취약점은 PHP4에도 해당합니다.

----
LUX ET VERITAS | Just for Fun!

익명 사용자의 이미지

적당히 서버의 전역에서 제로보드파일을 패치할수있도록
스크립트를 수정해봤습니다.

혼자 쓰려다가, 어차피 다른분들도 귀찮게 만들어 쓰실거 같아서,
올리기 귀찮지만, 올려놨습니다.

태그 고치기 귀찮아서, 그냥 주소를 붙입니다.
http://zenky.net/blog2/?no=488

텅날개의 이미지

패치해야겟다.. 근데 저거만 잇나..

ttongfly.net으로 놀러오세용~

랜덤여신의 이미지

흠냐... 제로보드 보안버그가 또 발견되었군요... -.-;
원작자가 패치라도 제때에 해주면 좋을텐데... 바쁘다는 이유로... 쩝...
제가 뭐라고 할 권리는 없지만... 아쉽네요... :(
(차라리 라이센스를 풀던가...)

opt의 이미지

Quote:
최소한 비공식 패치 먼저 발표하고,

어느 정도 패치할 기한을 두고,

취약점을 발표했었으면 어땠을까 라는 안타까움과 함께하는 글입니다.

zenky님의 위와 같은 말씀에 대해 간략히 제 변호를 해보면 다음과 같습니다.

먼저 취약점 정보의 전파에 대해서 말씀드리자면, 국내에는 보안 취약점 정보를 안전하게 공유할 수 있는 인프라가 없습니다. 이 부분에 대한 제 고민은 다음의 글을 보시면 알 수 있습니다.

http://bbs.kldp.org/viewtopic.php?t=47911&highlight=

이와 같은 국내 상황에서 저희 회사 고객, 국내 주요 보안 업체, 일부 IDC, 일부 정부 기관은 사전에 통보를 받았습니다. 이 정도가 한 개인이 최대한 노력해서 정보를 전파할 수 있는 범위입니다.

둘째로, 취약점 정보의 상세 정도에 대해서 말씀드리자면, 저희 회사는 Full-disclosure 를 지향하고 있습니다. Full-disclosure 논쟁은 http://www.schneier.com/crypto-gram-0111.html#1 를 참고하시거나, 구글링을 통해 한때 일어났던 격렬한 논쟁들을 따라가보시는 것도 도움이 될 것입니다.

패치에 대해서는 항상 보수적인 저항집단이 있게 마련입니다. 저도 역시 패치에 대해서 보수적인 입장입니다. 그런 사람들에게 'A라는 제품에 보안 취약점이 있으니 B라는 조치를 취해야 합니다.'라고 이야기하면 '현재 잘돌고 있는 제품에 반드시 그래야 하는가? 그럼 그 취약점으로 인해 어떤 악영향이 일어나는가? 해당 취약점이 우리 제품에도 발생하는지 확인해봤는가?' 와 같은 질문을 하게 됩니다. 상세한 정보 없이는 이런 저항을 무릅쓰고 패치를 설치하도록 설득하는 작업이 손쉬운 작업이 아닙니다.

또한 버그트랙이나 시큐니아에 올라온 취약점은 언젠가 취약점 스캐너에 포함되기 마련입니다. 제가 살펴본 바에 의하면 취약점 스캐너의 취약점 DB는 부정확한 정보를 다수 포함하고 있습니다. 이는 취약점 DB를 작성하는 담당자가 해당 취약점을 정확히 이해하지 못하기 때문입니다. 취약점 발표자가 조금만 신경써주면, 취약점 DB 작성자의 작업이 보다 편해집니다. 결과적으로 취약점 스캐너를 사용해 보안 취약점을 주기적으로 점검하는 회사나 기관은 구매 목적에 걸맞는 혜택을 입을 수 있습니다.

----
LUX ET VERITAS | Just for Fun!

Mins의 이미지

잘 사용되지 않는 오래된 skin 에도 동일한 취약점이 존재합니다.

일례로 zero_vote 의 error.php 의 경우에도 비슷한 injection 취약점을 지니고 있습니다. (과거에 이에 대한 직접적인 취약점 발표가 있었는지는 잘 모르겠고, 패치는 제가 보지 못한듯 하네요)
잘 사용되지 않거나, 또는 덜 유명한? 개인 제작의 스킨들의 경우 무수히 많은 종류가 있기 때문에, 보안 취약점이 공개되기란 더욱 힘들거라 생각되네요. -_-;

저의 생각으로는, 오히려 이러한 취약점 발표가 상당히 늦은감이 있다는 생각이 듭니다. 여기 계신 몇몇 분들은, 이미 취약점 공개 이전에도, 아셨을거라 생각되는 분들이 계시네요. 아는 몇몇 사람들만이, 비공식적인 루트를 통하여 정보공유가 된게 언제인지 모르겠군요.

국내의 보안관계자가 아닌, 외국의 해커 (크래커) 에 의해서 먼저 취약점이 발견되었다면, 오히려 더 큰 문제가 일어났을 겁니다.

서로 눈치만 보고, 발표를 미루거나, 다 알고 있으려니 생각하면 결국 그러한 정보를 알지 못하는 일반 사람들만 피해를 입을거라 생각됩니다. ^^

shyxu의 이미지

심각한 보안문제를 알려주신 opt님께 감사드립니다..

저도 제로보드를 사용하고 있고...
주위에 제로보드를 쓰는 분들이 많은데,
이번 문제는 정말 심각한것 같네요.

최대한 주위에 제로보드 사용하시는 분들에게 빨리 알려야겠습니다.

이 글을 읽으시는 모든분들 얼른 pdf 파일 보시고 주위에 알려주세요 !

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

ydhoney의 이미지

php수난시대..에효효~

shyxu의 이미지

소스를 보다보니 _head.php 에서 13줄 쯤 보면..

// 라이브러리 함수 파일 include
        include $_zb_path."lib.php";

이 부분도 발표된 보안 취약점 3가지 중에 '외부 PHP 소스 실행 취약점'의 문제가 발생할 수 있지 않나 싶군요.
다음과 같이 추가하는게 좋지 않을까 싶습니다..
보니까 $_zb_path이 잘못된 값이 들어왔는지 체크하지 않고
그대로 쓰는게 문제인것 같습니다.;

// 라이브러리 함수 파일 include
        if(eregi("\/\/",$_zb_path)) $_zb_path="";
        include $_zb_path."lib.php";

여기도 권고문에 나온것과 똑같이 이렇게 소스를 수정해봤습니다..
여러 스크립트에서 _head.php 를 include 하니 이것도 수정하는게 좋을것 같네요.

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

익명 사용자의 이미지

shyxu wrote:
소스를 보다보니 _head.php 에서 13줄 쯤 보면..

// 라이브러리 함수 파일 include
        include $_zb_path."lib.php";

shyxu 님의 제로보드는 pl4 까지 패치가 안된 시스템이 아닌가 싶습니다. patch level 4 에선

// 라이브러리 함수 파일 include
    if(eregi(":\/\/",$_zb_path)) $_zb_path="";
    include $_zb_path."lib.php";

로 되어 있습니다.
shyxu의 이미지

Anonymous wrote:
shyxu wrote:
소스를 보다보니 _head.php 에서 13줄 쯤 보면..

// 라이브러리 함수 파일 include
        include $_zb_path."lib.php";

shyxu 님의 제로보드는 pl4 까지 패치가 안된 시스템이 아닌가 싶습니다. patch level 4 에선

// 라이브러리 함수 파일 include
    if(eregi(":\/\/",$_zb_path)) $_zb_path="";
    include $_zb_path."lib.php";

로 되어 있습니다.

헉 그런거였군요 -_-;; 어쩐지;;

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

opt의 이미지

Mins wrote:
잘 사용되지 않는 오래된 skin 에도 동일한 취약점이 존재합니다.

일례로 zero_vote 의 error.php 의 경우에도 비슷한 injection 취약점을 지니고 있습니다. (과거에 이에 대한 직접적인 취약점 발표가 있었는지는 잘 모르겠고, 패치는 제가 보지 못한듯 하네요)

해당 취약점의 최초 발견자가 누구인지 모르겠습니다.
해당 취약점에 대한 공식적인 발표도 아직 안이루어지고 있습니다.
국내 보안 커뮤니티에 zero_vote 스킨의 보안 취약점이 알려진 것이 아마 1년~1년 6개월 쯤인 것 같습니다.

최초 발견자를 모르는 상태에서 취약점이 자꾸 구전되다보니... 이제는 보안 업체 직원들끼리도 "공식적인 발표 할 엄두가 나냐?", "에이, 그거 모르는 사람이 어디 있다고..." 하는 분위기가 되어버렸습니다.

skin/zero_vote/error.php
skin/zero_vote/login.php
skin/zero_vote/setup.php
모두가 취약하고,
<? include "$dir/value.php3"; ?>
라는 부분에서 dir 변수에 대해 remote PHP injection 이 가능합니다.

역시

<?
if(eregi(":\/\/",$dir)) $dir="";
include "$dir/value.php3"; 
?>

로 대체해주면 됩니다.

Santy.C 변종이 해당 취약점을 공격하는 것이기 때문에, 되도록 빨리 조치하는 것이 좋겠습니다.
참고 자료 : http://swbae.egloos.com/851603/

----
LUX ET VERITAS | Just for Fun!

익명 사용자의 이미지

C shell 에서 적용했습니다. bash 에서도 아마 수정없이 실행될 것으로 생각됩니다.

적용법은
cd /home 하신 뒤에 아래 명령을 하나씩 실행하면 됩니다.(계정이 있는 디렉토리가 틀리면 그에 맞춰 이동하시면 됩니다.)
perl 이 깔려 있어야 합니다.

phpschool의 ibin님의 게시물을 참조해서 만들었습니다.
http://www.phpschool.com/bbs2/inc_view.html?id=8643&code=tnt2&start=0&mode=search&field=title&search_name=&operator=and&period=all&category_id=&s_que=%C1%A6%B7%CE%BA%B8%B5%E5

1. outlogin.php의 보안 패치
grep -rl 'file_exist' `find . -name outlogin.php` | xargs -n 1 perl -pi -e 's,if\(\!file_exists\(\$_zb_path\.\"lib\.php\"\)\)\ \{,if\(eregi\(\"\:\\\/\\\/\"\,\$_zb_path\)\)\ \$_zb_path=\"\"\;\n\t\tif\(\!file_exists\(\$_zb_path\.\"lib\.php\"\)\)\ \{,g'

2. include/write.php의 보안 패치
find . -name write.php|grep include | xargs -n 1 perl -pi -e 's,include,if\(eregi\(\"\:\\\/\\\/\"\,\$dir\
)\)\ \$dir=\"\"\;\n\tinclude,g'

3. check_user_id.php 의 보안 패치
find . -name check_user_id.php | xargs -n 1 perl -pi -e 's,trim\(\$user_id\),htmlspecialchars\(trim\(
\$user_id\)\),g'

달파란의 이미지

알고 있는 사람이 꽤 많았는데도 쉬쉬하고 있었고,
그중에 몇몇 취약점은 보고되었음에도 패치발표가 차일피일 미뤄지더니
결국 크게 터져서야 공식패치가 올라오는군요..

공공연한 비밀이 되어서 일부 크래커에게 야금야금 악용당하느니,
이런 취약점과 패치방법들은 KLDP 등을 통해서 널리 알려지고 빨리빨리 패치되는 것이 모두에게 더 이로운 길이라고 생각합니다.

jedi의 이미지

달파란 wrote:
알고 있는 사람이 꽤 많았는데도 쉬쉬하고 있었고,
그중에 몇몇 취약점은 보고되었음에도 패치발표가 차일피일 미뤄지더니
결국 크게 터져서야 공식패치가 올라오는군요..

공공연한 비밀이 되어서 일부 크래커에게 야금야금 악용당하느니,
이런 취약점과 패치방법들은 KLDP 등을 통해서 널리 알려지고 빨리빨리 패치되는 것이 모두에게 더 이로운 길이라고 생각합니다.


www.krcert.or.kr , www.bohonara.or.kr 이런 곳이 있는 이유가 그런 것이겠죠.
하지만 정부 기관이 정상적으로 동작할 것을 기대하기 힘들고 어딘가 하나 생기면 좋겠군요.

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

Mins의 이미지

opt wrote:
skin/zero_vote/error.php
skin/zero_vote/login.php
skin/zero_vote/setup.php
모두가 취약하고,
<? include "$dir/value.php3"; ?>
라는 부분에서 dir 변수에 대해 remote PHP injection 이 가능합니다.

역시

<?
if(eregi(":\/\/",$dir)) $dir="";
include "$dir/value.php3"; 
?>

로 대체해주면 됩니다.

Santy.C 변종이 해당 취약점을 공격하는 것이기 때문에, 되도록 빨리 조치하는 것이 좋겠습니다.
참고 자료 : http://swbae.egloos.com/851603/

위의 패치로는 로컬상의 파일을 불러오는것을 막을수 없습니다.

최근 PHP 의 일부 버전들에서 (php 4.3.6 ~ 4.3.9, 5.0.0 ~ 5.0.2) magic_quotes_gpc 가 On 으로 되어있을 경우,
자동으로 수행되는 addslashes() 가 %00 을 제대로 처리하지 못하는 취약점이 발표된적이 있습니다.

그밖의 취약점들로 인해서, PHP 를 필히 업그레이드 할 필요성이 있긴 하지만, 코드 수준에서의 보안 역시 필요하다고 생각됩니다.

또한 보안을 위해 디폴트로 On 으로 되어있는 magic_quotes_gpc 가 Off 로 되어있을시에는, 손쉽게 공격이 가능하다고 보고있습니다.

때문에 다음과 같은 코드를 사용하는것이 낫다고 봅니다.

<?
if(eregi(":\/\/",$dir) || eregi("\.\.",$dir))  $dir="";
include "/home/dir".$dir."/value.php3";
?>

"/home/dir" 부분은 자신에게 맞게 수정하면 될거 같네요.
급하게 손댄거라 매끄럽지가 않습니다.
_zb_path 와 같은걸로 바꿀수도 있겠네요.

제로님께 이미 메일을 드린 상태이지만, 패치가 나온지 얼마 되지 않은 지금, 어떻게 생각하실지 잘 모르겠네요. ^^

제로님의 결정을 계속 기다릴 생각이었으나, 중복된 패치 삽질을 막고자 미리 올려봅니다.

일차적으로, php 버전을 시급히 업그레이드 하기를 바라며, php.ini 에서 magic_quotes_gpc 를 바꿀수 있지 않다면, .htaccess 에 php_flag magic_quotes_gpc On 의 내용을 삽입하시기 바랍니다.

ps. 생각보다 급작스럽게 공개가된거 같아서 너무 무책임한 감이 있네요.. ㅜ_ㅜ 쩝...

opt의 이미지

제로님의 공식 패치(제로보드 패치레벨 5)가 나왔습니다.

http://www.nzeo.com/bbs/zboard.php?id=cgi_about&no=68

zero_vote 쪽은 조치가 안되어 있는게 아쉽지만...
1년 넘게 패치가 안올라오던 제품의 패치가 나왔다는게 어딥니까?

갑자기 브루스 슈나이어의 말이 생각나네요.
"Once a vulnerability is published, public pressures give vendors a strong incentive to fix the problem quickly. For the most part, this has worked."

공식 패치를 릴리즈하신 제로님께 감사드립니다.

----
LUX ET VERITAS | Just for Fun!

랜덤여신의 이미지

아쉽게도... preg_replace 관련 버그 패치도 아직 없네요...
제로보드 5 나 빨리 나오기를! 8)

익명 사용자의 이미지

해당 취약점의 -1day exploit code를 개발한지.. 2년정도 된 것 같습니다..
한때 자체적으로 Advisory를 구성하여 발표여부를 놓고 고민을 한적이 있었지만..
파급효과가 클 것으로 예상되어 비공개로 했던 기억이 납니다..

제로보드 측에 취약점을 알려줘도 매번 조용할 뿐.. ^^

제가 발견했을 당시.. 국내 보안관련 커뮤니티 및 zeroboard를 사용하는
모든 사이트의 exploit이 가능했습니다.. 물론 다른 개발자에 의해
추가로 제작된 skin 역시 취약한 코드를 바탕으로 하기 때문에
php 파일 하나 하나를 각각 patch 한다는 것은 무리가 있죠.
기본 zero_vote skin 말고도 다른 skin 역시 exploit 적용이 가능합니다.

당시 구글을 이용한 자동스캐너와 local 상에서 스킨 하위 디렉토리에
취약한 코드를 점검해주는 툴을 포함하여 exploit code를 개발했던 기억이 나네요..

언제 발표할지는 여전히 미지수입니다..
아마도 그 시기가 곧 올 것 같군요.. ^^

Mins wrote:
opt wrote:
skin/zero_vote/error.php
skin/zero_vote/login.php
skin/zero_vote/setup.php
모두가 취약하고,
<? include "$dir/value.php3"; ?>
라는 부분에서 dir 변수에 대해 remote PHP injection 이 가능합니다.

역시

<?
if(eregi(":\/\/",$dir)) $dir="";
include "$dir/value.php3"; 
?>

로 대체해주면 됩니다.

Santy.C 변종이 해당 취약점을 공격하는 것이기 때문에, 되도록 빨리 조치하는 것이 좋겠습니다.
참고 자료 : http://swbae.egloos.com/851603/

위의 패치로는 로컬상의 파일을 불러오는것을 막을수 없습니다.

최근 PHP 의 일부 버전들에서 (php 4.3.6 ~ 4.3.9, 5.0.0 ~ 5.0.2) magic_quotes_gpc 가 On 으로 되어있을 경우,
자동으로 수행되는 addslashes() 가 %00 을 제대로 처리하지 못하는 취약점이 발표된적이 있습니다.

그밖의 취약점들로 인해서, PHP 를 필히 업그레이드 할 필요성이 있긴 하지만, 코드 수준에서의 보안 역시 필요하다고 생각됩니다.

또한 보안을 위해 디폴트로 On 으로 되어있는 magic_quotes_gpc 가 Off 로 되어있을시에는, 손쉽게 공격이 가능하다고 보고있습니다.

때문에 다음과 같은 코드를 사용하는것이 낫다고 봅니다.

<?
if(eregi(":\/\/",$dir) || eregi("\.\.",$dir))  $dir="";
include "/home/dir".$dir."/value.php3";
?>

"/home/dir" 부분은 자신에게 맞게 수정하면 될거 같네요.
급하게 손댄거라 매끄럽지가 않습니다.
_zb_path 와 같은걸로 바꿀수도 있겠네요.

제로님께 이미 메일을 드린 상태이지만, 패치가 나온지 얼마 되지 않은 지금, 어떻게 생각하실지 잘 모르겠네요. ^^

제로님의 결정을 계속 기다릴 생각이었으나, 중복된 패치 삽질을 막고자 미리 올려봅니다.

일차적으로, php 버전을 시급히 업그레이드 하기를 바라며, php.ini 에서 magic_quotes_gpc 를 바꿀수 있지 않다면, .htaccess 에 php_flag magic_quotes_gpc On 의 내용을 삽입하시기 바랍니다.

ps. 생각보다 급작스럽게 공개가된거 같아서 너무 무책임한 감이 있네요.. ㅜ_ㅜ 쩝...

익명 사용자의 이미지

제가보기엔 실제로 문제가 일어날수 없는것들만 가지고 큰일난것처럼 난리시네여..

위에 말한거나 이번에 pl 5패치는 실제로 필요없는것들입니다.. 제로보드의 흐름(?)을 잘 살펴보시면 실제로 위에말한 변수들로 공격할수 없다는건 이전에 다른분들에 의해 다 검토된바 있지요..

(login.php를 패치했을때는 강력한거였지만.. 이번 패치는 필요없었던 것..)

opt의 이미지

과연? wrote:
제가보기엔 실제로 문제가 일어날수 없는것들만 가지고 큰일난것처럼 난리시네여..

정보가 늦으신 게 아닌지....?
http://www.zone-h.org/en/defacements/filter/filter_domain=kr/

위의 변조 현황에 나오는 사이트의 90% 이상이 이번에 발표된 제로보드 취약점으로 당한 것입니다. 최근 국내 몇천여개의 홈페이지가 변조되었고, 몇몇 웹 호스팅 업체는 공격 당한 서버에 입주한 모든 고객사 홈페이지가 변조되어 보상요청이 쇄도하고 있습니다.

물론 위의 URL은 kr 도메인만 파악가능한 것이고, net, com, org 를 사용하는 곳은 별도로 파악해야 합니다.

이 정도로 대량의 사이트가 단기간 내에 변조된 적은 국내에서 아직 없었습니다. 1주일 이내에 수천여 사이트가 변조되는 일이 발생했는데도, 실제로 문제가 발생할 수 없는 이론적인 취약점이라니요?

----
LUX ET VERITAS | Just for Fun!

opt의 이미지

과연? wrote:
제로보드의 흐름(?)을 잘 살펴보시면 실제로 위에말한 변수들로 공격할수 없다는건 이전에 다른분들에 의해 다 검토된바 있지요..

검토하셨다는 분은 code security review 부분에서 전문적인 지식을 보유한 사람이 아닌 것 같습니다.

----
LUX ET VERITAS | Just for Fun!

익명 사용자의 이미지

과연?
제로보드에 흐름이 있었나요?
컴퓨터 프로그램이라면 흐름이 있어야 하지만 제로보드는 없는 것으로 보이는데요..

Prentice의 이미지

Flow야 당연히 있겠죠. 아무리 못해도 linear flow요. Flow control을 뜻하신다면 if문이나 || operator(?)도 flow control에 속한다는 쪽에 한표 던지겠습니다.

opt의 이미지

stochastics oscillator wrote:
과연?
제로보드에 흐름이 있었나요?
컴퓨터 프로그램이라면 흐름이 있어야 하지만 제로보드는 없는 것으로 보이는데요..

다른 사람의 실수나 부족한 부분을 지적하기는 쉽습니다.
그러나 그런 지적을 받을만한 무엇인가를 만드는 것은 매우 어려운 작업입니다.

제로보드에 대해 비판하시는 분들의 목소리를 많이 들을수 있는데, 이런 비판 중 일부는 타당한 부분이 있습니다. 그러나 제로보드가 전적으로 무용한 프로그램인 것처럼 비난하는 것은 올바른 태도가 아닙니다.

'왜 그 부족한 프로그램이 한국에서 지배적인 쉐어를 차지하고 있는가?'에 대해 생각해볼 필요가 있습니다.

----
LUX ET VERITAS | Just for Fun!

익명 사용자의 이미지

위의 제로보드의 흐름상 문제가 없다는 얘기는 php 의 register_global 변수가 off되어있을때 얘기이네요.. 다른분들에 의해 다 검토되었다는것도 php버전이 4.2.0이후 즉 register_global 변수가 default로 off로 설정되었을때를 전제로 했던 것으로 압니다..

이경우 get 이나 post변수가 자동으로 전역변수로 설정되지 않기 때문에 제로보드에서 _head.php와 lib.php ( extract가 실행되는곳) 가 include되고 난 이후에야 get 이나 post변수가 전역변수로 설정되지요.. 패치가 된곳은 두 화일이 include되기 전의 문제이기 때문에 register_global 변수가 off되어있을때는 이를 이용해서 공격할수 없습니다만, 많은 웹사이트가 php버전이 4.2.0이전이라 공격의 대상이 된듯합니다.

lifthrasiir의 이미지

opt wrote:
stochastics oscillator wrote:
과연?
제로보드에 흐름이 있었나요?
컴퓨터 프로그램이라면 흐름이 있어야 하지만 제로보드는 없는 것으로 보이는데요..

다른 사람의 실수나 부족한 부분을 지적하기는 쉽습니다.
그러나 그런 지적을 받을만한 무엇인가를 만드는 것은 매우 어려운 작업입니다.

제로보드에 대해 비판하시는 분들의 목소리를 많이 들을수 있는데, 이런 비판 중 일부는 타당한 부분이 있습니다. 그러나 제로보드가 전적으로 무용한 프로그램인 것처럼 비난하는 것은 올바른 태도가 아닙니다.

'왜 그 부족한 프로그램이 한국에서 지배적인 쉐어를 차지하고 있는가?'에 대해 생각해볼 필요가 있습니다.

당연히 무용한 프로그램은 아닙니다. 확실히 개인 사용자가 설치형 게시판을 쉽게 쓸 수 있도록 한 1등 공신(?)인 것은 사실이겠지요. 이 점은 높이 평가해야 겠지만, 그렇게 처음 나와서 상당한 점유율을 확보하고 있는 상태에서 잇따라 발견되는 (사실 공개되지만 않았지 알려진 버그는 꽤나 많은 걸로 알고 있습니다. 저 자신도 하나 발견한 적이 있고요.) 버그들을 그대로 방치한다는 것은 말이 안 되지 않습니까?

물론 개발자가 바쁠 수 있다는 건 충분히 인정합니다. 하지만 엔지오 버그 리포트 게시판이 1년 넘게 거의 방치되어 있고, 버그 리포트를 올리는 사람들이 "왜 이 많은 버그들을 그냥 냅두고 있는가"라고 불평하는데도 패치를 올릴 수 없다면 라이센스를 완화하거나 발견자가 패치를 제공한 것이라도 일단 적용해가지고 공지하는 게 도리가 아닐까요. 그렇지 않는 이상, 지금 우리나라에서 제로보드를 사용하는 대부분의 사이트들은 그런 잠재적인 공격에 노출되어 있을 수 밖에 없습니다.

그리고, 제로보드의 점유율이 그렇게 높은 것은 그 부류의 프로그램들 중에서 제로보드가 가장 먼저 나왔고 가장 먼저 사용자들이 필요한 기능을 제공했기 때문입니다. (그렇게 해서 많은 사용자 층과 resource들 -- 스킨 등등 -- 을 확보했기 때문이기도 하고요) 하지만 지금은 더 이상 그렇지 않죠. 프로그램의 성능, 편의성과 점유율은 항상 비례 관계가 아니라는 것은 당연한 사실 아닌가요?

제가 아는 어떤 분께서는 이런 말씀을 하시더군요. 제가 이 말에 완전히 동조하는 것은 아닙니다만, (확실히 과격한 표현이기는 하지요) 충분히 곱씹어 볼 만한 말임에는 틀림 없습니다.

Quote:
제로보드가 처음 나왔을 때는 참 좋았어요. 코멘트 기능을 보급하고 쪽지 기능에... 개인 레벨로 내려 오기 힘들었던 기술을 편하게 만들어 줬다는 건 높이 평가해 줄 수 있습니다.
문제는 그 다음인데... 그 때로부터 시간이 흘러 흘러서 다른 공개 게시판들이 빛을 못 보고 사라지게 해 놓고 정작 제로보드 자신은 업데이트가 안 된다니... 기업이었으면 진작에 소보원 시찰 감입니다.

- 토끼군

익명 사용자의 이미지

전 제로보드에 나쁜감정도 좋은 감정도 없습니다.(왜냐! 안쓰니까요.)

그렇지만, 제로보드의 대처방식은 다른 사람들에게 공개소스,오픈소스에 대한
안좋은 인식이 들게 될까 우려됩니다.

정확히 따지면 오픈이라고 할 수 없겠지만, 대부분의 사람은 그렇게 인식할 것입니다.

그런데, 제로보드가 보안상허점과, 지원미비 등은 나쁜인식들을 하게 될 듯 합니다.
(제로보드에 대한 권리를 포기하지 않은 이상)

요근래 php 버그로 인한 사이트 해킹의 상당수가 제로보드가 포함이 된것으로 압니다만, 알고 있는 사람들은 그렇다고 하더라도, 모르는 사람이 보기에는 어떨까요?

익명 사용자의 이미지

php에서 register_global변수가 불완전한 php프로그램들의 많은 보안 위험을 초래한다는 이유로 off로 기본값이 바뀐것은 php 4.2가 발표되었을때, 즉 2002년 8월의 이야기입니다. 호스팅회사들이 이러한 보안을 위한 사항들에 민감하게 반응해야 하지만, 일부프로그램들에 작은 호환성 문제들이 발생한다는 이유로 (문제생기면 귀찮으므로) register_global을 on으로 유지한 회사들이 꽤 많더군요.

register_global을 off로 했으면 대부분의 이번 제로보드 해킹을 막을수 있었습니다. 이런면에서 많은 호스팅회사들이나 보안경고에 게으른 보안회사들도 책임이 없다고 할수없겠죠.

익명 사용자의 이미지

호스팅 wrote:
php에서 register_global변수가 불완전한 php프로그램들의 많은 보안 위험을 초래한다는 이유로 off로 기본값이 바뀐것은 php 4.2가 발표되었을때, 즉 2002년 8월의 이야기입니다. 호스팅회사들이 이러한 보안을 위한 사항들에 민감하게 반응해야 하지만, 일부프로그램들에 작은 호환성 문제들이 발생한다는 이유로 (문제생기면 귀찮으므로) register_global을 on으로 유지한 회사들이 꽤 많더군요.

register_global을 off로 했으면 대부분의 이번 제로보드 해킹을 막을수 있었습니다. 이런면에서 많은 호스팅회사들이나 보안경고에 게으른 보안회사들도 책임이 없다고 할수없겠죠.

PmWiki라는 위키엔진은 아래와 같은 방식으로 register_globals의 기능을 기본적으로 무력화시키고 있습니다.

<?php if (!defined('PmWiki')) exit();

와 같은 식으로 모든 스크립트에 넣고,

메인 스크립트에

if (ini_get('register_globals')) {
  foreach($_REQUEST as $k=>$v) { unset(${$k}); }
}
define('PmWiki',1);

즉, 조금만 신경쓰면 register_globals가 On/Off에 무관하게 안전하게 만들 수 있습니다.

익명 사용자의 이미지

Anonymous wrote:

즉, 조금만 신경쓰면 register_globals가 On/Off에 무관하게 안전하게 만들 수 있습니다.

신경써서 만들어진 프로그램들이야 문제가 없겠지만, 신경많이 안쓰고 만들어진 프로그램들이 많은게 문제이지요.