웹마스터 팁

이번일을 계기로 소잃고 외양간 고치는 격이 되어버렸네요 -_-;;
일단은 비누님께도 조언을 얻고, 제가 가진 책, 그리고 다른 해커여러분들의 조언
기타 문서들을 참고하여 원천 봉쇄를 위한 다음 방법을 생각해보게 되었습니다.

### 기타 웹공격에 대비한 passwd 유출방지

1. /etc/passwd 의 그룹유권을 www daemon 이 구동되는 권한을 user의 그룹으로 바꾼후
2. 퍼미션을 604 를 주어서 그룹에 속한사용자는 passwd 를 읽을수 없도록 한다.

이것은 apache(www 데몬)을 활용한 기타 파일열어보기에서도 passwd 의 유출을 삼가할수
있다. 중요한 것들의 소유권을 일일히 지정해야함.

일단 가장 기초적인 보안으로는

- 안전을 위해 시스템 패스워드 체계는 MD5,Shadow 를 사용한다 (pwconv 와 setup 에서 지정)
(대부분의 시스템은 기본적으로 shadow 를 쓰기때문에 큰 염려는 없지만.. 혹시나 하는 마음에^^

### php 를 이용할경우 base_dir 을 설정해 버림으로써 가상의 chroot 효과를 낸다

1. Virtual Host 설정파일을 연다.
2. php_admin_value open_basedir /home/USERID 를 추가한다.
3. 데몬을 리스타팅한다.

문제점은 /home/USERID 이외의 것을 로딩하지 못하는 것입니다.
일단은 저도 이방법으로 테스트중이지만 큰 문제점은 발견하지 못했습니다.

게시판에서 타 사이트의 그림을 로딩하거나 include 문에서 다른 사이트를 로딩하는것도
잘 됩니다.

문제점 발견하면 리포팅 바랍니다.

### chroot 를 이용한다

비추천입니다. 소스를 전부 패치해줘야하고.. 웹호스팅엔 적절치 않습니다.

### 프로그램 제작시 파일을 로딩하는 부분에서는 꼭 meta charactor 체크를 한다.

제로보드가 대표적인 경우입니다. 파일을 읽어오는부분에서 어느 case 에서나 파일을 로딩
하게 되는 경우기 때문입니다. 프로그램 제작당시부터 보안을 생각하면 될것같습니다.

뭐.. 그외방법은 잘 생각나지 않습니다. 저정도면 해결될것같네요.
2번째 방법을 일단 추천합니다.