110 likes | 328 Vues
CGI 와 보안. PLUS 오태호. 목차. CGI 란 ? CGI 의 보안상 문제점 CGI 로 인한 보안구멍 유형 CGI 프로그래밍 시 주의점 안전한 웹서버의 운영 방침 AFS 에서의 문제점 AFS 에서의 문제점 해결 방법. CGI 란 ?. 웹 서버 , 웹 브라우저 , 프로그램간의 인터페이스 정적인 HTML 을 보완하기 위해 생김 여러 가지 프로그래밍 언어로 구현 가능 PERL Script 가 많이 사용됨. CGI 의 보안상 문제점. 외부의 사용자가 서버의 프로그램 실행 가능
E N D
CGI와 보안 PLUS 오태호
목차 • CGI란? • CGI의 보안상 문제점 • CGI로 인한 보안구멍 유형 • CGI프로그래밍 시 주의점 • 안전한 웹서버의 운영 방침 • AFS에서의 문제점 • AFS에서의 문제점 해결 방법
CGI란? • 웹 서버, 웹 브라우저, 프로그램간의 인터페이스 • 정적인 HTML을 보완하기 위해 생김 • 여러 가지 프로그래밍 언어로 구현 가능 • PERL Script 가 많이 사용됨
CGI의 보안상 문제점 • 외부의 사용자가 서버의 프로그램 실행 가능 • CGI프로그램이 필요이상으로 많은 권한을 가짐
CGI로 인한 보안구멍 유형 • 쉘 명령어를 실행시킬 때 • 쉘 명령어를 CGI프로그램이 실행시킬 때 원하는 쉘 명령어를 수행하도록 조작 • 버퍼오버플로우 • CGI프로그램도 버퍼오버플로우 공격을 받을 가능성이 있음 • 파일을 열 때 • 파일을 열 때 원하는 파일을 열도록 조작
CGI로 인한 보안구멍 유형 • 환경변수에 의존적인 실행을 할 때 • PATH와 같은 환경변수를 바꿀 가능성이 있음 • 웹서버의 자식프로세스의 권한을 이용 • CGI프로그램으로 웹서버의 자식프로세스의 권한으로 명령어 실행 가능
CGI프로그래밍 시 주의점 • 사용자의 입력을 자세히 검사 • 버퍼오버플로우가 일어나지 않게 • 환경변수에 의존적인 프로그래밍은 금물 • 예) PATH, IFS, . . .
안전한 웹서버의 운영 방침 • Chroot를 이용해서 웹서버를 설치 • 불필요한 파일에 접근하는 것을 막음 • CGI wrapper를 설치 • CGI프로그램의 소유자의 권한으로 프로그램 실행 • CGI프로그램을 컴파일 • CGI프로그램의 소스 유출 방지
안전한 웹서버의 운영 방침 • 웹서버를 root권한으로 실행하지 않음 • 모든 CGI프로그램이 root의 권한으로 실행되기 때문에 아주 위험 • 웹서비스 외 다른 서비스는 하지 않음 • 웹의 보안구멍과 다른 서비스의 보안구멍을 같이 이용해서 공격할 가능성이 있음
AFS에서의 문제점 • CGI wrapper가 AFS에서 정상적으로 작동하지 않음 • 모든 CGI프로그램이 www_adm의 ACL로 실행
AFS에서의 문제점 해결 방법 • 일시적인 해결 방법 • cgi-bin에 www_adm에게 rl로 설정 • data파일이 있는 곳을 www_adm에게 rlw이나 rliw로 설정 • data파일을 절대로 신뢰하지 말 것 • 근본적인 해결 방법 • CGI프로그램이 소유자의 ACL로 실행 • CGI프로그램이 소유자의 홈 밖으로 접근 X