Missed the action at the 2018 Chrome Dev Summit? Catch up with our playlist on the Google Chrome Developers channel on YouTube. Watch now.

취약성 확인

독자적인 해킹이 동시에 여러곳에서 발생할 수 있으므로 취약성 하나를 찾아 해결할 수 있다고 해도 다른 취약성이 있는지 확인하는 것이 좋습니다. 스팸 발송자가 웹사이트를 해킹하는 방법에 관해 읽어본 후 취약성이 있는지 확인하세요.

필요 사항:

  • 사이트의 서버(웹, 데이터베이스, 파일)에 대한 셸/터미널 관리자 액세스 권한
  • 셸/터미널 명령에 대한 지식
  • PHP 또는 자바스크립트 등의 코드에 대한 이해
  • 두 개의 바이러스 백신 실행 가능

다음 작업:

사이트가 해킹당할 수 있는 일반적인 여러 방법을 다룹니다. 이러한 취약성 중 하나가 사이트에 적용되거나 추가 가능성에 대한 새로운 정보를 줄 것입니다.

취약성 스캐너바이러스 백신 스캐너와 다릅니다. 취약성 스캐너는 훨씬 더 침투성이 강할 수 있으며 사이트에 원치 않는 피해를 입힐 가능성이 큽니다. 스캐너를 실행하기 전에 사이트 백업 등 모든 지침을 따르시기 바랍니다.

조사할 만한 취약성은 다음과 같습니다.

1. 바이러스에 감염된 관리자의 컴퓨터

바이러스에 감염된 관리자의 컴퓨터에 해커가 스파이웨어를 설치하여 사이트 관리자의 키 입력 내용을 기록했을 수 있습니다.

  • 관리자의 시스템에 바이러스가 있는지 확인합니다. 관리자가 사이트에 로그인하기 위해 사용하는 모든 컴퓨터에서 잘 알려진 여러 바이러스 백신 스캐너 또는 AV 스캐너를 실행하는 것이 좋습니다. 새로운 멀웨어 감염은 끊임없이 스캐너를 회피하도록 설계되므로 이 작업은 확실한 바이러스 탐색 방법이 아닙니다. AV 스캐너는 잘못된 탐지를 보고할 수 있으므로 여러 스캐너를 실행하면 취약성의 존재 여부를 판단할 만한 많은 데이터 요소를 제공할 수 있습니다. 또한 안전을 위해 웹 서버 및 사이트 업데이트 또는 게시에 사용되는 모든 기기를 검색하는 것이 좋습니다.
    • AV 스캐너가 스파이웨어, 바이러스, 트로이 목마 또는 모든 의심스러운 프로그램을 감지하는 경우 사이트의 서버 로그를 조사하여 감염된 컴퓨터를 소유한 관리자의 작업을 확인합니다.
    • 해커가 로그 파일을 변경했을 수 있습니다. 그렇지 않은 경우 로그 파일의 의심스러운 명령과 연관된 관리자의 사용자 이름은 관리자의 시스템에 있는 바이러스가 사이트를 취약하게 만들었다는 추가 증거가 됩니다.

2. 너무 쉽거나 재사용되는 비밀번호

쉬운 비밀번호는 해커가 상대적으로 알아내기 쉬울 수 있으며 서버로의 직접적인 액세스를 제공합니다. 안전한 비밀번호는 문자와 숫자, 문장 부호의 조합으로서 사전에서 찾을 수 있는 단어나 비속어가 아니어야 합니다. 비밀번호는 한 가지 애플리케이션에만 사용해야 하며 웹 전체에서 다시 사용하면 안 됩니다. 비밀번호를 재사용하면 해커가 단 하나의 애플리케이션 보안만 파괴해도 로그인 및 비밀번호를 알아낸 다음 다른 곳에서 이를 다시 사용할 수 있습니다.

  • 서버 로그에서 관리자에 대한 여러 로그인 시도 또는 관리자의 예기치 않은 명령 실행 등 원치 않는 활동이 있는지 확인합니다. 의심스러운 활동이 발생한 시기를 적어둡니다. 해킹이 처음 발생한 시기를 알면 백업이 아직 안전한지 판단할 수 있기 때문입니다.

3. 오래된 소프트웨어

서버에 운영체제, 콘텐츠 관리 시스템, 블로그 플랫폼, 애플리케이션, 플러그인 등의 최신 버전을 설치했는지 확인합니다.

  • 설치된 모든 소프트웨어를 웹 검색을 통해 조사하여 설치된 버전에 보안 권고가 포함되어 있는지 확인합니다. 포함되어 있다면 오래된 소프트웨어로 인해 사이트가 취약해질 가능성이 높습니다.
  • 오래된 소프트웨어로 인해 현재 취약성 문제가 발생한 것이 아니더라도 항상 서버 소프트웨어를 최신 상태로 유지하는 것이 좋습니다.

4. 열린 리디렉션 및 SQL 삽입 등 관대한 코딩 관행

  • 열린 리디렉션
  • 열린 리디렉션은 사용자가 사이트의 유용한 파일 또는 웹페이지에 도달할 수 있도록 URL 구조에서 다른 URL 추가를 허용하도록 코딩됩니다. 예:

    http://example.com/page.php?url=http://example.com/good-file.pdf
    해커는 다음과 같이 스팸 또는 멀웨어 페이지를 사이트의 열린 리디렉션에 추가하여 열린 리디렉션을 악용할 수 있습니다.
    http://example.com/page.php?url=<malware-attack-site>

    • 열린 리디렉션으로 인해 사이트가 악용된 경우, 원치 않는 페이지로의 열린 리디렉션이 포함된 예제 URL을 제공하는 Search Console 메시지를 통해 알림을 받을 수 있습니다.
    • 이후에 열린 리디렉션을 차단하려면 소프트웨어에 기본적으로 '열린 리디렉션 허용'이 사용 설정되어 있는지, 코드에서 오프 도메인 리디렉션을 금지할 수 있는지 또는 올바로 해싱된 URL 및 암호화 서명이 된 URL만 리디렉션될 수 있도록 리디렉션에 서명할 수 있는지 확인합니다.
  • SQL 삽입
  • SQL 삽입은 데이터베이스에서 실행한 사용자 입력란에 해커가 불법 명령을 추가할 수 있는 경우 발생합니다. SQL 삽입은 데이터베이스의 레코드를 원치 않는 스팸 또는 멀웨어 콘텐츠로 업데이트하거나 해커를 위해 귀중한 데이터를 덤프하여 출력합니다. 사이트에서 데이터베이스를 사용하고 특히 SQL 삽입 멀웨어 유형으로 감염된 경우 사이트가 SQL 삽입으로 해킹되었을 수 있습니다.

    • 데이터베이스 서버로 로그인하고 데이터베이스에서 의심스러운 콘텐츠를 찾습니다(예: 일반 입력란이었는데 현재 iframe 또는 스크립트를 표시하는 경우).
    • 의심스러운 값의 경우 사용자 입력이 확인되고 올바로 이스케이프 처리되었는지 또는 코드로 실행되지 못하도록 강력하게 입력되었는지 확인합니다. 데이터베이스를 처리하기 전에 사용자 입력을 확인하지 않으면 SQL 삽입이 사이트 취약성의 근본 원인이 될 수 있습니다.

다음 단계

다음 단계는 사이트 정리 및 유지관리입니다.