웹 보안: 당신의 데이터베이스 및 웹 서버를 안전하게 지키기
프리모아_IT기술파트너
·2017. 9. 18. 17:30
웹 보안
: 당신의 데이터베이스 및 웹 서버를 안전하게 지키기
(본 포스팅은 https://en.yeeply.com/blog/database-security-and-how-to-secure-your-web-servers/의 글을 번역 가공한 글입니다.)
안녕하세요! IT아웃소싱 플랫폼 프리모아입니다.
프리모아는 항상 귀하의 프로젝트를 기다리고 있답니다!
그럼 시작해 볼까요?
웹 서버 보안은 온라인상에 존재하는 모든 비즈니스에서 가장 중요한 문제라는 것이
수많은 해킹 공격 사건과 그로 인한 피해로 인해 증명되었습니다.
웹 서버는 민감한 데이터를 관리한다는 사실 때문에 조직의 가장 표적이 되는 분야에 속합니다.
웹 서버를 안전하게 유지하는 것은 웹 응용 프로그램이나 웹 사이트 그리고 그것을 둘러싼 네트워크를 안전하게 유지하는 것만큼이나 중요합니다.
이러한 측면 중 어느 하나라도 잘 안전이 확보되지 않으면 당신의 비즈니스가 위험에 처하게 됩니다.
웹 서버를 안전하게 유지하는 것이
전문가의 전문 지식을 필요로 하는 굉장한 작업 처럼 보일지라도,
불가능하지 않습니다.
공들인 연구를 수행하는 것이 향후 데이터 유출을 막을 수 있습니다.
여러분이 사용하는 운영 체제 또는 웹 서버 소프트웨어와 상관없이, 일반적으로 기본 제공 구성은 일반적으로 안전하지 않습니다.
따라서 여러분의 웹 서버가 안전한지 확인하기 위해 사전 예방 조치를 취하는 것이 필수적입니다.
다음은 웹 서버 보안에 필수적인 몇 가지 작업들입니다.
불필요한 서비스 제거하기
기본 구성 및 시스템 설치에서는 보안을 기대할 수 없습니다.
일반적인 기본 설치에는 웹 서버의 구성에 사용되지 않는 수많은 네트워크 서비스들이 따라 오게 됩니다.
이러한 네트워크 서비스들에는 RAS, 인쇄 서버 서비스, 원격 레지스트리 서비스 등이 포함됩니다.
운영 체제에서 많은 서비스가 돌아가고 있으면 더 많은 포트가 열려 있다는 것을 의미하기 때문에 이는 악의적인 사용자가 악용할 수 있는 더 많은 잠재적 방법들을 초래하게 됩니다.
불필요한 서비스들은 모두 꺼야 합니다.
또한 시스템을 재부팅 할 때 그 서비스들이 자동으로 시작되지 않도록 비활성화해 두어야 합니다.
게다가, 이러한 서비스를 끔으로써 여러분의 서버가 하드웨어 리소스를 확보하게 하여 성능을 향상시킬 수 있습니다.
별도의 개발, 테스팅 또는 상용 서비스 환경 확보
개발자는 상용 서비스용 서버에서 웹 응용 프로그램의 최신 버전을 쉽고 빠르게 개발할 수 있습니다. 따라서 웹 응용 프로그램의 개발 및 테스트는 상용서비스용 서버에서 자주 직접 수행됩니다.
특정 웹 사이트들의 최신 버전은 일반적으로 인터넷에서 이용할 수 있습니다.
예를 들어, /new/, /test/ 또는 다른 하위 디렉토리와 같은 디렉토리들과 같이 공개적으로 이용될 수 없는 일부 콘텐츠에도 동일하게 적용됩니다.
이러한 웹 응용 프로그램들은 일반적으로 예외를 제대로 처리하지 못하고 입력 유효성 검사가 없으며 악의적인 사용자에게 쉽게 발견되어 악용될 수 있는 수많은 취약점들을 가지고 있습니다.
개발자들은 익명의 일반 사용자들이 가질 수 없는 권한을 필요로 하는 웹 응용 프로그램 접근을 제공하는 특정 내부 응용 프로그램들을 빌드합니다.
이 유형의 응용 프로그램들은 개발자들 만 액세스 할 수 있기 때문에 제한이 없습니다.
불행하게도, 상용서비스용 서버를 개발 및 테스트에 사용하는 경우,
악의적인 사용자들이 이러한 응용 프로그램을 발견하여 상용서비스 서버에 접근하여 손상시킬 수 있습니다.
웹 응용 프로그램 개발 및 테스트는 인터넷에 연결되지 않은 서버에서만 수행해야 합니다.
실제 데이터베이스에 대한 링크가 없어야 합니다.
웹 응용 프로그램 콘텐츠 및 서버쪽 스크립팅
로그 및 운영 체제와 같은 시스템 파일은 호스팅 웹 사이트 파일/스크립트들 및 웹 응용 프로그램들과 별도의 드라이브 또는 파티션에 있어야 합니다.
remotedba.com과 같은 숙련된 데이터베이스 관리자들은 해커가 웹 루트 디렉토리에 접근 권한을 얻었을 때, 그들이 다른 취약성을 활용하고 시스템 파일 및 운영체제를 포함한 전체 디스크의 데이터에 대한 액세스 권한을 얻기 위해 그들의 권한을 더욱 확대할 수 있음을 알고 있습니다.
이 시점부터, 해커들은 그들이 선택한 어떠한 운영 체제의 명령이든 지를 실행하여 웹 서버를 완벽하게 제어할 수 있습니다.
사용 권한 및 권한
네트워크 및 파일 서비스들에 대한 서비스 권한은 웹 서버를 보호하는데 중요한 역할을 합니다.
악의적인 사용자가 네트워크 서비스 소프트웨어를 사용하여 웹 서버 엔진을 손상시키는 경우,
네트워크 서비스를 실행하는 계정을 사용하여 작업을 실행할 수 있습니다.
따라서 특정 네트워크 서비스들을 실행하는데 필요한 최소한의 권한을 할당하는 것이 중요합니다.
마찬가지로 익명 사용자들에게 사이트, 웹 응용 프로그램 파일, 데이터 및 데이터베이스에 접근하는데 필요한 최소한의 권한을 할당하는 것이 중요합니다.
정기적으로 모든 웹 보안 패치들을 설치하세요.
완전히 패치된 소프트웨어를 가졌다고 해서 여러분의 서버가 완전히 안전하다는 보장은 없습니다.
그럼에도 불구하고 최신 보안 패치들을 사용하여 실행 중인 여러분의 운영 체제와 소프트웨어를 최신 상태로 유지하는 것이 중요합니다.
악의적인 사용자들이 패치가 적용되지 않은 소프트웨어와 서버들을 악용했기 때문에 너무나 많은 해킹 사고가 발생했습니다.
서버가 모니터링 되고 감사되고 있는지 확인하세요.
이상적으로, 웹 보안 서버에 있는 모든 로그는 별도의 영역에 보관해야 합니다.
운영 체제 로그들, 웹 사이트 액세스 로그들, 네트워크 서비스 로그들 및 데이터베이스 서버 로그들 (예: Oracle, MySQL 및 Microsoft SQL Server)을 자주 확인하고 모니터링 해야 합니다.
여러분 회사의 DBA는 항상 비정상적인 로그 항목이 있는지 살펴봐야 합니다.
로그 파일들은 여전히 무시되는 경향이 있지만, 시도되었거나 성공적인 해킹에 대한 모든 정보를 제공합니다.
만약 이상한 로그 활동이 보고되면 즉시 처리하고 조사하여 무슨 일이 일어나고 있는지 정확하게 판단해야 합니다.
사용자 계정
운영 체제 설치 중에 작성된 사용하지 않는 기본 사용자 계정은 비활성화해야 합니다.
설치 후에 운영 체제에 사용자 계정을 만드는 많은 소프트웨어가 있습니다.
이러한 계정들을 적절히 검사하고 사용 권한에 이루어진 변경을 확인해야 합니다.
이름을 바꾸는 것 외에도, 기본 제공 관리자 계정을 사용하지 않아야 합니다.
Unix/Linux 설치에서 루트 사용자에게도 동일하게 적용됩니다.
웹 서버에 접근하는 관리자는 자신의 계정과 적절한 권한을 가져야 합니다.
적당한 보안 관행의 문제로서, 사용자 계정을 공유해서는 안됩니다.
사용되지 않는 모든 응용 프로그램 확장자들 및 사용되지 않는 모듈을 제거해야 합니다.
기본 Apache 설치는 특별히 필요한 경우가 아니라면 웹 서버 시나리오에서 일반적으로 사용되지 않는 사전 설정된 많은 활성화된 모듈이 있습니다.
그러한 모듈에 대한 대상지정 공격을 방지하려면, 그 해당 모듈들을 사용 안함 상태로 설정해 두어야 합니다.
Microsoft의 웹 서버인 인터넷 정보 서비스 (IIS)도 마찬가지입니다. IIS는 기본적으로 다양한 유형의 응용 프로그램에 서비스를 제공하도록 구성되어 있습니다.
응용 프로그램 확장자 목록에는 웹 응용 프로그램이나 웹 사이트에서 사용할 확장자들만 포함되어야 합니다.
결론 요약
이로서 본 포스팅을 요약하자면, 아래와 같습니다.
-
기본 구성 및 시스템을 설치할 경우에 따라오는 불필요한 서비스를 제거하기.
-
사이트를 개발하거나 리뉴얼 할 때
별도의 개발, 테스팅 또는 상용 서비스 환경 확보하기. -
로그 및 운영 체제와 같은 시스템 파일은
호스팅 웹 사이트 파일/스크립트들 및 웹 응용 프로그램들과 별도의 드라이브 또는 파티션에 보관하기. -
사용 권한 및 권한 설정하기.
-
정기적으로 모든 웹 보안 패치들을 설치하기.
-
서버가 모니터링 되고 감사되고 있는지 확인하기.
-
사용되지 않는 계정들을 적절히 검사하고 확인하며 관리하기.
-
사용되지 않는 모든 응용 프로그램 확장자들 및
사용되지 않는 모듈을 제거하기.
여러분들의 웹 보안에 도움이 되었기를 바라며 이만 포스팅을 마치겠습니다!
웹사이트/ 앱 / 모바일 웹사이트를 만들고 싶으세요?
프리모아를 통해 전문 개발자와 디자이너를 만나보세요!
프리모아는 항상 귀하의 프로젝트를 기다리고 있답니다!
'IT & 비즈니스 > 개발' 카테고리의 다른 글
[개발] 다양한 유형의 웹 애플리케이션 분류 (0) | 2018.04.06 |
---|---|
[개발] 2018년 프로그래밍 언어 랭킹 (0) | 2018.01.24 |
[개발] 구글이 선택한 개발언어 코틀린(Kotlin) (0) | 2017.09.13 |
[개발] IT를 잘 모르는 클라이언트와 미팅하는 개발자 (0) | 2017.07.14 |
[개발] 워드프레스 확장기능 도우미 '플러그인' (1) | 2017.06.30 |