독립적인 해킹이 여러 개 있을 수 있으므로 하나의 취약점을 찾아서 해결할 수 있더라도 다른 취약점을 계속 검색하는 것이 좋습니다. 스팸 발송자가 웹사이트를 해킹하는 방법에 관해 읽어본 후 조사를 시작합니다.
전화를 걸고 받기 위해 필요한 사항은 다음과 같습니다.
- 사이트의 서버(웹, 데이터베이스, 파일)에 대한 셸 또는 터미널 관리자 액세스
- 셸 또는 터미널 명령어에 대한 지식
- PHP 또는 자바스크립트 등의 코드에 대한 이해
- 두 개의 바이러스 백신 스캐너를 실행하는 기능
다음 작업
사이트가 해킹당할 수 있는 일반적인 여러 방법을 다룹니다. 이러한 방법 중 하나가 사이트에 적용되거나 적어도 추가적인 가능성에 대해 알릴 수 있을 것입니다.
취약점 스캐너는 바이러스 백신 스캐너와 다릅니다. 취약점 스캐너는 훨씬 더 침투성이 강할 수 있으며 사이트에 원치 않는 피해를 입힐 가능성이 큽니다. 스캐너를 실행하기 전에 사이트 백업과 같은 모든 지침을 따르세요.
잠재적 취약점{Potential-vulnerabilities}
조사할 만한 취약점은 다음과 같습니다.
바이러스에 감염된 관리자의 컴퓨터
바이러스에 감염된 관리자의 컴퓨터에 해커가 스파이웨어를 설치하여 사이트 관리자의 키 입력을 기록했을 수 있습니다.
- 관리자의 시스템에 바이러스가 있는지 확인합니다. 관리자가 사이트에 로그인할 때 사용한 모든 컴퓨터에서 잘 알려진 여러 바이러스 백신 (AV) 스캐너를 실행하는 것이 좋습니다. 새로운 멀웨어 감염은 끊임없이 스캐너를 회피하도록 설계되므로 이 방법은 완벽한 바이러스 감지 방법이 아닙니다. 여러 스캐너를 실행하면 거짓양성을 피할 수 있고 취약점이 존재하는지 확인하기 위한 더 많은 데이터 포인트를 제공할 수 있습니다. 또한 안전을 위해
웹 서버와 사이트를 업데이트하거나 사이트에 게시하는 데 사용되는 모든 기기를
검사하는 것이 좋습니다.
- AV 스캐너가 스파이웨어, 바이러스, 트로이 목마 또는 기타 의심스러운 프로그램을 감지하면 사이트의 서버 로그를 조사하여 감염된 컴퓨터를 소유한 관리자의 활동이 있는지 확인합니다.
- 해커가 로그 파일을 변경했을 수 있습니다. 그렇지 않은 경우 로그 파일의 의심스러운 명령어와 관리자의 사용자 이름을 연결하는 것은 관리자 시스템의 바이러스로 인해 사이트가 취약해졌다는 추가 증거입니다.
너무 쉽거나 재사용되는 비밀번호
취약한 비밀번호는 해커가 쉽게 발견할 수 있으므로 서버에 직접 액세스할 수 있습니다. 안전한 비밀번호는 문자와 숫자, 구두점의 조합을 사용하며 사전에 나오는 단어나 비속어는 사용하지 않습니다. 비밀번호는 한 개의 애플리케이션에만 사용해야 하며 웹 전체에서 다시 사용할 수 없습니다. 비밀번호를 재사용하면 해커가 다른 곳에서 사용할 수 있는 로그인 및 비밀번호를 찾기 위해 한 애플리케이션에서 보안 침해를 한 번만 수행하면 됩니다.
서버 로그에서 관리자에 대한 여러 로그인 시도 또는 관리자의 예기치 않은 명령어 실행과 같은 원치 않는 활동이 있는지 확인합니다. 의심스러운 활동이 발생한 시기를 기록해 두세요. 해킹이 처음 발생한 시점을 알면 백업이 아직 안전한지 판단할 수 있기 때문입니다.
오래된 소프트웨어
서버에 운영체제, 콘텐츠 관리 시스템, 블로그 플랫폼, 애플리케이션, 플러그인, 기타 사이트에서 사용하는 소프트웨어의 최신 버전이 설치되어 있는지 확인합니다.
- 웹 검색을 통해 설치된 모든 소프트웨어를 조사하여 버전에 보안 권고가 포함되어 있는지 확인합니다. 그렇다면 오래된 소프트웨어로 인해 사이트가 취약해질 가능성이 있습니다.
- 오래된 소프트웨어가 이러한 특정 취약점 문제를 일으키는지와 관계없이 항상 서버 소프트웨어를 최신 상태로 유지하는 것이 좋습니다.
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>
- 열린 리디렉션으로 인해 사이트가 악용된 경우 Search Console의 메시지에서 원하지 않는 도착 페이지로 연결되는 열린 리디렉션이 포함된 예시 URL을 제공했음을 확인했을 수 있습니다.
- 향후 열린 리디렉션을 방지하려면 다음을 확인하세요.
- 소프트웨어에서 '열린 리디렉션 허용'이 기본적으로 사용 설정되어 있는지 여부
- 코드가 도메인 외부 리디렉션을 금지할 수 있는지 여부
- 올바르게 해싱된 URL과 올바른 암호화 서명으로만 리디렉션할 수 있도록 리디렉션에 서명할 수 있는지 여부입니다.
SQL 삽입
SQL 삽입은 해커가 데이터베이스가 실행하는 사용자 입력 필드에 악의적인 명령어를 추가할 수 있을 때 발생합니다. SQL 삽입은 데이터베이스의 레코드를 원치 않는 스팸 또는 멀웨어 콘텐츠로 업데이트하거나 해커를 위해 귀중한 데이터를 덤프하여 출력합니다. 사이트에서 데이터베이스를 사용하는 경우, 특히 멀웨어에 감염된 경우 사이트가 SQL 삽입으로 손상되었을 수 있습니다.
- 데이터베이스 서버에 로그인하고 데이터베이스에서 의심스러운 콘텐츠(예: 현재 iframe 또는 스크립트를 표시하는 일반 텍스트 입력란)를 찾습니다.
- 의심스러운 값의 경우 사용자 입력이 검증되고 제대로 이스케이프 처리되었는지 또는 코드로 실행될 수 없도록 강력하게 입력되었는지 확인합니다. 데이터베이스를 처리하기 전에 사용자 입력을 확인하지 않으면 SQL 삽입이 사이트의 근본 원인인 취약점이 될 수 있습니다.