메인 콘텐츠로 건너뛰기
블로그보안서버 보안 소개

서버 보안 소개

서버 보안 소개.

이 게시물은 Cloud Computing 기초 시리즈의 마지막 편입니다. Cloud Computing 을 수강하여 실력을 더 쌓으세요. 인증 과정.

개발 라이프사이클에서 가장 중요한 측면 중 하나는 웹 앱을 실행하는 호스팅 환경을 보호하는 방법을 이해하는 것입니다. 저희 서버는 웹 앱을 배포할 때마다 특정 포트를 통해 외부 시스템으로부터 들어오는 연결을 허용합니다. 서버 포트는 들어오고 나가는 네트워크 트래픽을 식별합니다.

서버 취약점을 이해하려면 통신이 이루어지는 위치에 대해 생각해야 합니다.

위의 예시에서:

  1. 일반적으로 웹 브라우저인 클라이언트(왼쪽)가 서버에 HTTP 요청을 보냅니다.
  2. 서버는 HTTP 요청을 수신하고 이를 처리합니다.
  3. 도메인 이름은 일반적으로 도메인 네임 등록기관에서 관리하는 하나 이상의 도메인 네임 서버에 대해 쿼리됩니다. 
  4. 서버는 요청된 콘텐츠를 검색하거나 생성하여 클라이언트에 HTTP 응답을 다시 보냅니다.
  5. 클라이언트는 응답을 수신하고 콘텐츠를 렌더링합니다.

이 과정에서 특정 경우에는 서버 구성의 취약점을 악용하려는 악의적인 컴퓨터에서 서버에 연결할 수 있습니다. 서버가 악용될 수 있는 이유는 여러 가지가 있습니다.

몇 가지 일반적인 서버 공격에 대해 살펴보겠습니다.

분산 서비스 거부 공격(DDoS)

분산 서비스 거부(DDoS) 공격에서 공격자는 HTTP 요청의 폭주로 표적 서버에 과부하를 일으키려고 시도합니다. 이를 HTTP 폭주 공격이라고도 합니다. HTTP 요청이 있을 때마다 저희 서버는 요청에 응답해야 한다는 점을 기억하세요. 서버에 동시에 들어오는 요청을 처리할 수 있는 리소스 용량이 부족하면 웹 서버가 멈추거나 다운됩니다. 이후 이어지는 각 HTTP 요청은 실패하여 웹 서버에 연결할 수 없게 됩니다. 

DDoS 공격은 일반적으로 봇넷을 통해 수행됩니다. 봇넷은 멀웨어라고도 하는 악성 소프트웨어에 감염된 디바이스의 네트워크로, 대상 컴퓨터에 HTTP 요청을 대량으로 발생시키도록 특별히 설계되었습니다.

위의 그림은 HTTP 플러드 공격의 작동 방식을 간략하게 보여줍니다. 오른쪽에는 클라이언트가 서버에 요청을 하고 있지만 여러 봇이 서버에 요청을 하여 서버의 리소스를 소모하고 있기 때문에 클라이언트가 서버에 연결할 수 없습니다.

디렉토리 탐색

디렉터리 탐색은 일반적으로 잘못 구성된 서버를 대상으로 하는 또 다른 일반적인 익스플로잇입니다. 모든 웹 파일은 웹 루트 디렉토리에서 직접 제공됩니다. HTTP 웹 요청을 통해 서버에 연결하는 사용자는 디렉터리 구조의 상위 폴더에서 파일을 탐색하거나 실행할 수 없이 웹 루트 디렉터리에서 특정 파일에만 액세스할 수 있어야 합니다. 이 경우 공격자가 중요한 시스템 및 구성 파일에 액세스하여 서버에 혼란을 일으킬 수 있습니다.

위 이미지는 이 공격의 작동 방식을 보여줍니다. 공격자는 시스템 또는 구성 파일의 디렉토리 경로가 포함된 수정된 URL을 사용하여 악성 HTTP 요청을 제출합니다. 서버는 요청을 처리하고 잘못된 서버 구성 또는 애플리케이션 설계로 인해 시스템 파일을 검색하여 그 내용 또는 소스 코드를 표시할 수 있습니다.

무차별 대입 공격

사전 공격 또는 계정 탈취라고도 하는 무차별 대입 공격은 악의적인 에이전트가 서버의 제한된 액세스 지점에 진입하려고 시도하는 매우 일반적인 공격 중 하나입니다. 이 제한된 액세스 지점은 일반적으로 서버의 루트 계정 또는 루트 권한이 있는 다른 계정입니다. 공격자는 멀웨어를 사용하여 사전 단어를 기반으로 자동 생성된 비밀번호와 사용자 아이디 조합으로 수많은 로그인 시도를 자동으로 제출합니다.

위 그림은 이 공격이 어떻게 작동하는지 보여줍니다. 왼쪽에서 공격자는 멀웨어를 사용하여 단어 목록에서 생성된 로그인 시도를 반복해서 제출합니다. 올바른 조합이 발견되면 공격자는 서버에 대한 액세스 권한을 얻게 됩니다. 무차별 암호 대입 공격은 서버가 SSH 키 인증만 사용하는 경우에도 매우 효과적일 수 있습니다.

서버 보안 유지

다음은 서버를 구성하고 보안을 유지할 때 고려해야 할 몇 가지 모범 사례입니다:

  • 최신 보안 패치와 업데이트를 통해 운영 체제와 소프트웨어를 최신 상태로 유지하세요.
  • 불필요한 서비스나 포트를 비활성화하거나 차단하여 공격 표면을 최소화하세요.
  • 권한이 있는 사용자만 서버에 연결하고 상호 작용할 수 있도록 허용하여 서버에 대한 액세스를 제한하세요.
  • SSL 또는 TLS와 같은 암호화 프로토콜을 사용하여 네트워크 트래픽을 보호하세요.
  • 강력한 백업 및 재해 복구 계획을 수립하여 데이터 손실과 다운타임을 최소화하세요.
  • 강력한 비밀번호와 다단계 인증을 구현하여 무단 액세스로부터 보호하세요.
  • 방화벽을 사용하여 수신 및 발신 네트워크 트래픽을 제어합니다.
  • 서버 로그와 네트워크 트래픽을 모니터링하여 의심스러운 활동이 있는지 확인하세요.
  • 침입 탐지 및 방지 시스템을 사용하여 공격을 식별하고 방지하세요.
  • 파일 시스템 권한 및 액세스 제어와 같은 보안 조치를 구현하여 민감한 데이터에 대한 무단 액세스로부터 보호하세요.

클라우드 컴퓨팅 입문( Cloud Computing ) 자격증 과정을 수강하여 클라우드 컴퓨팅에서 성공할 수 있는 기술을 쌓으세요.


내용

댓글 남기기

이메일 주소는 게시되지 않습니다. 필수 필드가 표시됩니다 *