Enjoy our interesting and informative contents.
오랜만입니다!
지난 시간(생각해 보니 꽤 시간이 오래 된 것 같긴 한데….. 가물 가물….)
데이터 베이스 보안에 대한 개략적인 내용을 살펴 보았던 것이 기억 되는데요...쿨럭;
이번에는 웹 서비스 실무에서 어떤 방법으로 보안 적용을 해야 할지에 대해 알아 보도록 하겠습니다.
웹 서비스와 보안① 보러가기
사실 기업체에서 인력 및 장비에 대한 투자 여건이 넉넉하다면
각종 네트워크 및 데이터베이스 보안장비와 인력에 투자하여 더욱 견고한 보안 환경을 구축할 수 있겠으나
중소 개발사 혹은 에이전시에서는 고가의 장비와 인력에 투자가 쉽지는 않은 형편입니다.
따라서, 네트워크 보안에 대한 부분은 서비스를 받고 있는 IDC등의 전문 업체에 아웃소싱을 한다는 전제 하에
웹 서비스 개발 및 운영시에 참고해야 할 내용들을 다루어 보도록 하겠습니다~
※ 먼저 밝혀 드리는 것은 아래 기술될 내용들은 개인적인 경험과 일부 보안관련 서적들을 통해
실무에 적용해 보았던 것들을 위주로 하기에 100% 정답이다 라고 할 수 없음을 사전에 밝혀 둡니다~(찡긋)
1.웹 서버 보안
여기에서의 웹서버는 주로 IIS 혹은 Apache의 세팅에 관련된 내용입니다.
앞서 언급했듯 각종 네트워크 및 장비에 대한 관리는 IDC등의 전문 업체에 아웃소싱을 한다는 전제입니다.
시간과 스크롤 압박을 줄이기 위해 자세한 설명은 스킵할께요~ㅠ
필요한 부분은 구글링 혹은 관련 서적들을 찾아 보시고 직접 테스트를 해보는 것이 좋을 듯 합니다!
- IIS, Apache 설정 시 사이트별 권한 및 MIME-TYPE 설정
특히 MIME-TYPE 설정을 적절히 하게 되면 브라우저로 접근하여 실행 시킬 수 있는 파일을 컨트롤 할 수 있기 때문에
브라우저에서의 악성코드 실행을 어느 정도 제어 할 수 있는 장점이 있습니다.
- IIS, Apache 설정 시 사용하지 않는 사이트 문서 제한
웹 서버에서 index.htm, index.html, index.php, default.asp, default.aspx 등의 웹 문서들이
기본 문서로 설정되어 있는 것을 볼 수 있습니다.
필요치 안은 기본문서들을 삭제 하여 악의적 목적의 다른 파일로 변조되지 않도록 방어 할 수 있습니다.
- 오류 페이지 변경
웹 서버에는 오류 발생시 기본적으로 사용자의 브라우저에 표시하는 오류 메시지들이 내장되어 있습니다.
하지만, 내장된 메시지들을 보게 되면 웹 서비스 오류의 원인이 너무나 자세히 표시되어 있어
악의적 목적으로 오류를 발생하여 해킹에 사용하는 경우가 있습니다.
이를 방지하기 위해 웹 서버에 내장된 오류 메시지들을 특정 페이지로 변경하여 사용자에게 노출될 경우
서버의 오류 메시지가 표시 노출 되지 않도록 할 수 있습니다.
- 업로드 용량 제한
사용자들이 첨부파일 업로드 할 경우 최대 업로드 가능 용량을 제한하여 주는 것이 좋습니다.
서버의 자원 관리 및 불필요한 패킷의 누수를 막을 수 있기 때문입니다.
- 가상 디렉토리의 사용
사용자들이 업로드 하거나, 서비스에 필요하여 사용자들이 다운로드 할 수 있도록 하는 파일들은
웹 서비스 디렉토리가 아닌 별도의 디렉토리를 구성하여 해당 디렉토리를 웹 서비스 시 가상으로 사용할 수 있도록 해주어야 합니다~
아래는 MS에서 제공하는 MSDN 전문입니다.
[가상 디렉터리는 홈 디렉터리에 상주하지 않는 서버 하드 드라이브상의 실제 디렉터리나
다른 컴퓨터의 홈 디렉터리에 대한 이름 또는 별칭입니다.
별칭은 일반적으로 실제 디렉터리 경로보다 짧으므로 사용자들이 입력하기에 좀더 편리합니다.
별칭을 사용하면 사용자가 서버상에서의 실제 파일 위치를 알지 못하므로
해당 정보를 사용하여 파일을 수정할 수 없기 때문에 안전합니다.
또한 별칭을 사용하면 사이트에서 보다 손쉽게 디렉터리를 이동할 수 있습니다.
디렉터리의 URL을 변경하지 말고, 별칭과 실제 디렉터리 위치간 매핑을 변경하십시오.
웹 사이트에 홈 디렉터리 이외의 디렉터리나 다른 컴퓨터에 있는 파일이 포함될 경우에는
이러한 파일들을 포함시킬 가상 디렉터리를 만들어야 합니다.
다른 컴퓨터의 디렉터리를 사용하려면 디렉터리의 UNC(범용 명명 규칙) 이름을 지정하고
액세스 권한에 필요한 사용자 이름과 암호를 제공해야 합니다. ]
- FTP 사용자 권한 및 관리
하나의 웹 서버에 여러 개의 사이트가 서비스되고 그에 따른 관리자가 많을 경우 각각의 사이트에 대한 권한을 두어
각 관리자(사용자)들이 다른 사이트를 침범하지 않도록 관리 해야 합니다.
- 암호화 알고리즘 적용 혹은 암호화 모듈 사용
개발과 유지보수에 필요한 암호화 모듈(각종 데몬 및 DLL들이 있음)을 설치하여 운용 합니다.
이 부분은 개발사 혹은 운영사의 실정에 맞는 암호화 알고리듬 혹은 모듈을 설치 운영 하는 것이 좋으며,
각종 서적 혹은 구글링들을 통해 얻은 방법론을 그대로 사용하지 말고 충분한 테스트 및 마이그레이션 후 사용 하시기를 권장 합니다.
이해하기 쉽게~ 암호화 알고리듬 표를 첨부 합니다.
너무 어렵진 않았나요? 쉽게 정리한다고 했는데..어떨지 모르겠습니다.
내일 이어서 데이터베이스 보안에 대해서 알려드리겠습니다~
다시 돌아옵니다!
뿅!
본 리뷰는 지극히 개인적인 관점과 생각으로 작성된 주관적인 글 입니다
ⓒ 언제나 맑음 with 꼬대리