메인 콘텐츠로 건너뛰기
블로그보안느슨한 입술은 웹사이트도 침몰시킬 수 있습니다.

느슨한 입술은 웹사이트도 침몰시킬 수 있습니다.

웹사이트 주소의 보안 잠금 기호에 마우스 커서가 가까이 있는 각진 브라우저 창 그림. "느슨한 입술도 웹사이트를 침몰시킬 수 있습니다"라는 텍스트가 표시되어 있으며 "침몰"과 "웹사이트"라는 단어가 굵은 글씨로 강조 표시되어 있습니다.

웹사이트를 안전하게 보호한다고 하면 흔히 복잡한 방화벽, 다계층 방어, 강력한 암호화를 떠올리기 마련입니다. 하지만 때로는 보안 체인의 약한 고리가 그렇게 명확하지 않을 수도 있습니다. 잘못된 설정이나 노출된 버전 번호처럼 간단한 것일 수도 있습니다. 느슨한 구성 설정도 웹사이트의 보안을 위협할 수 있습니다. 이 블로그에서는 기술 스택에 노출된 버전 번호가 어떻게 심각한 취약점으로 이어질 수 있는지, 그리고 보안을 강화하기 위해 무엇을 할 수 있는지에 대해 자세히 설명합니다.

실제 예시: 노출된 PHP 버전

정기적인 보안 평가 중에 웹사이트의 서버 구성에서 오래된 PHP 버전이 공개적으로 광고되고 있는 것을 발견했습니다. 이는 하지 말아야 할 행동의 대표적인 예입니다. Wappalyzer와 같은 도구를 사용하여 한 눈에 PHP 버전이 8.2.19라는 것을 알 수 있었습니다. 표면적으로는 사소한 실수처럼 보일 수 있지만 그 영향은 심각할 수 있습니다.

이 특정 버전의 PHP에는 몇 가지 중요한 취약점이 연결되어 있습니다. 가장 우려되는 취약점 중 하나는 공격자가 원격으로 임의의 코드를 실행할 수 있는 CVE-2024-4577입니다. 다시 말해, 이 버전의 PHP를 사용한다는 사실을 공개하는 것만으로도 웹사이트는 정문에 "해커 환영" 표지판을 붙이는 것과 마찬가지입니다.

이 버전과 관련된 취약점에 대한 자세한 내용은 Tenable의 분석을 참조하세요.

노출된 버전 번호가 중요한 이유는 무엇인가요?

CMS, 서버, 스크립팅 언어 등 모든 기술 스택에는 라이프사이클이 있습니다. 취약점을 패치하고 성능을 개선하기 위해 정기적으로 새 버전이 출시됩니다. 그러나 웹사이트가 실행 중인 정확한 버전을 노출하면 공격자는 각 버전에 대해 알려진 취약점을 쉽게 상호 참조하고 그에 따라 공격을 맞춤화할 수 있습니다. 이를 사이버 공급망 공격이라고 하며, 공격자는 조직의 기술 스택 내에서 특정 소프트웨어 버전을 표적으로 삼아 전반적인 보안을 손상시킵니다.

실용적인 해결 방법: 느슨한 입술을 팽팽한 입술로 바꾸기

그렇다면 웹사이트가 이 중요한 정보를 유출하지 않도록 하려면 어떻게 해야 할까요? 우선, 서버 구성을 검토하고 민감한 정보가 전 세계로 전송되고 있지 않은지 확인하세요. 가장 흔한 위반 사항 중 하나를 빠르게 수정하는 방법을 살펴보겠습니다: PHP.

  1. 나의 php.ini 구성 파일. 이 파일은 PHP의 많은 설정을 제어하며 종종 다음에서 찾을 수 있습니다. /usr/local/lib/php.ini.
  2. 회선 찾기 라는 문구가 표시됩니다:
    expose_php = On  
  3. 설정 변경 에:
    expose_php = Off  
  4. HTTP 서비스를 다시 시작하여 변경 사항을 적용합니다.

이 작은 조정으로 서버가 PHP 버전을 브로드캐스트하지 못하도록 효과적으로 방지할 수 있습니다. 간단한 수정이지만 공격 표면을 크게 줄일 수 있습니다.

버전 난독화 그 이상: 포괄적인 LAMP 스택 보안

버전 번호를 난독화하는 것은 훌륭한 첫 단계이지만 진정한 보안을 위해서는 전체적인 접근 방식이 필요합니다. LAMP 스택(Linux, Apache, MySQL, PHP)을 실행하는 경우 공격자가 다른 진입 지점을 찾지 못하도록 각 구성 요소를 보호해야 합니다. 즉, 구성을 강화하고, 권한을 관리하고, 방화벽 및 침입 탐지 시스템과 같은 도구를 구현해야 합니다.

예를 들어, MySQL 설치를 잠그면 민감한 데이터를 손상시킬 수 있는 데이터베이스 공격을 방지할 수 있습니다. 마찬가지로 Apache 에서 적절한 파일 권한을 설정하고 사용하지 않는 모듈을 비활성화하면 공격자가 침입할 수 있는 방법을 찾더라도 공격자의 접근 범위를 제한할 수 있습니다.

또 다른 방법은 웹 애플리케이션 방화벽과 같은 방화벽을 구현하여 서버에 대한 트래픽을 제어하고, Fail2Ban을 사용하여 무차별 강제 로그인의 흔적이 보이는 IP 주소를 자동으로 차단하는 것입니다.

정기 감사 및 모범 사례

LAMP 스택 보안은 일회성 작업이 아닙니다. Lynis 또는 MySQL 보안 도구와 같은 도구를 사용하여 정기적으로 감사하면 구성의 취약점을 파악하고 새로운 위협에 대해 스택의 복원력을 유지할 수 있습니다. 즉, 시스템 검사를 실행하고, 로그를 분석하고, 구성에 잠재적인 취약점이 있는지 지속적으로 테스트해야 합니다.

웹사이트를 보호하는 것은 단순히 버전 번호를 숨기는 것 이상의 의미가 있습니다. 노출된 버전은 일반적인 취약점이지만, 이는 퍼즐의 한 조각에 불과합니다. LAMP 스택을 완벽하게 보호하려면 구성 관리, 액세스 제어 및 지속적인 모니터링을 다루는 포괄적인 접근 방식을 취해야 합니다.

SSH 잠금부터 MySQL 권한 강화, Apache에 대한 고급 보안 규칙 구현까지 LAMP 스택의 각 부분 보안에 대해 자세히 알아보려면 LAMP 스택 보안에 대한 전체 가이드를 확인하세요. 이 가이드는 단계별 지침과 고급 기술을 제공하여 서버를 처음부터 보호하고 웹 애플리케이션의 견고하고 안전한 기반을 보장합니다.

내용

댓글 남기기

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