본문 바로가기
MAKESITE

점검 항목 · 보안

플러그인 · 테마 취약 버전

본체를 아무리 최신으로 올려도 공격은 가장 오래된 부품을 지나갑니다.

심각도 높음 보안 무료 스캔 판정 항목 /check/plugin-version

01DEFINITION

한 줄로 말하면

본체는 최신인데 플러그인과 테마가 몇 년 전 버전에 멈춰 있는 경우가 흔합니다. 공격은 가장 약한 부품을 지나갑니다. 쓰지 않는 확장은 비활성화가 아니라 삭제해야 하고, 남긴 것은 업데이트 주기를 정해 두어야 합니다.

02RISK

없으면 무슨 일이 생기나

침해의 다수는 본체가 아니라 확장에서 시작합니다. 게시판이나 쇼핑몰 본체는 관리자가 신경 써서 올려 두지만, 몇 년 전에 한 번 깔고 잊은 슬라이더나 폼 플러그인은 그대로 남습니다. 공격하는 쪽은 그 사실을 알고 있어서, 널리 쓰이는 확장의 알려진 취약점을 대량으로 훑는 방식으로 대상을 찾습니다.

버전이 주소에 노출되면 그 탐색이 훨씬 쉬워집니다. 어떤 확장을 쓰는지, 어느 판인지가 페이지 소스만 보면 나오기 때문에, 공격자는 시도해 볼 필요도 없이 대상을 추릴 수 있습니다. 노출 자체가 취약점은 아니지만, 취약한 대상을 찾는 비용을 우리가 대신 낮춰 주는 셈입니다.

쓰지 않는 확장을 비활성화만 해 두는 것도 같은 문제를 남깁니다. 비활성 상태여도 파일은 서버에 그대로 있고, 그 파일에 직접 접근하는 방식의 공격에는 활성 여부가 상관없는 경우가 있습니다. 목록에서 꺼 두는 것과 서버에서 지우는 것은 다른 조치입니다.

03CHECK IT YOURSELF

직접 확인하는 방법

아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.

  1. 01
    자산 주소에 붙은 버전 문자열을 뽑는다

    페이지 소스에서 스크립트와 스타일 주소를 훑으면 어떤 부품을 쓰는지, 버전이 노출되는지가 한 번에 보입니다.

    $ curl -s https://example.com/ \
      | grep -oE '(src|href)="[^"]*(plugin|theme|module|extension)[^"]*"' \
      | grep -oE '[^"]*' | grep -iE 'ver=|v=|version=' | sort -u
  2. 02
    설치된 목록과 마지막 갱신일을 관리자 화면에서 본다

    주소에서 보이는 것은 일부입니다. 실제 목록은 관리자 화면에 있고, 여기서 각 확장의 최신 판과 우리 판을 비교하셔야 합니다.

  3. 03
    쓰지 않는 확장을 가려낸다

    한 해 동안 아무도 손대지 않은 기능이 있다면 대개 안 쓰는 것입니다. 지우기 전에 어느 화면에서 그 기능이 쓰이는지 검색해 확인하시면 안전합니다.

04HOW TO FIX

고치는 방법

서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.

버전 문자열을 주소에서 뗀다

캐시 갱신 때문에 붙이는 값이라면 버전 대신 파일 수정 시각의 해시를 쓰면 목적은 그대로이고 부품 정보는 나가지 않습니다. 다만 이것은 노출을 줄이는 조치이지 취약점을 고치는 조치가 아닙니다.

<link rel="stylesheet" href="/theme/app.css?v=a3f19c2">
안 쓰는 확장은 비활성화가 아니라 삭제한다

꺼 두어도 파일은 남습니다. 목록에서 지우고 서버에서 실제로 없어졌는지 확인하시는 데까지가 한 벌입니다.

갱신 주기를 정해 둔다

한 번 몰아서 올리는 방식은 다음 해에 같은 상태로 돌아옵니다. 분기에 한 번처럼 주기를 정하고, 올리기 전에 백업을 두는 절차를 같이 정해 두시는 편이 실제로 지켜집니다.

더 이상 갱신되지 않는 확장은 교체를 검토한다

제작자가 손을 뗀 확장은 취약점이 발견돼도 고쳐지지 않습니다. 사용 중인 것 가운데 마지막 배포가 몇 년 전인 것이 있다면 대체재를 찾아 두시는 편이 낫습니다.

주의. 저희가 판정하는 것은 자산 주소에서 부품 이름과 버전이 관찰되는지까지입니다. 그 버전에 알려진 취약점이 있는지는 공개 취약점 데이터베이스를 조회해야 알 수 있고 지금은 저희 검사 범위 밖입니다. 그래서 이 항목의 결과는 실패가 아니라 주의로 나가며, 버전 문자열이 안 보인다고 해서 최신이라는 뜻도 아닙니다. 자산을 하나로 합쳐 내보내는 사이트에서는 부품 경로 자체가 관찰되지 않아 해당 없음으로 표시됩니다.

05FAQ

자주 묻는 질문

버전만 숨기면 안전해지나요

아닙니다. 노출을 줄이면 자동화된 탐색의 표적이 될 확률은 낮아지지만, 취약한 판을 쓰고 있다는 사실은 그대로입니다. 숨기는 것은 시간을 버는 조치이고, 실제 조치는 갱신과 삭제입니다.

업데이트하면 사이트가 깨질까 걱정됩니다

실제로 자주 있는 일이라 백업과 확인 절차를 함께 두셔야 합니다. 가능하면 복사본에서 먼저 올려 보고 주요 화면을 눌러 본 뒤 본 서버에 적용하시는 순서가 안전합니다. 깨질까 봐 미루는 동안 쌓이는 위험이 더 크다는 점도 함께 보셔야 합니다.

본체만 최신이면 되지 않나요

공격은 가장 약한 부품을 지나갑니다. 본체가 최신이어도 몇 년 전 판의 확장이 하나 남아 있으면 그쪽이 입구가 됩니다. 부품까지 포함해서 봐야 하는 이유입니다.

주소에 버전이 안 보이는데 통과인가요

이 항목의 판정 기준으로는 통과입니다. 다만 그것이 최신이라는 뜻은 아닙니다. 자산을 합쳐서 내보내거나 경로를 바꾼 경우에도 같은 결과가 나오므로, 실제 버전 확인은 관리자 화면에서 하셔야 합니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

내 사이트는
이 항목을 통과할까요

주소만 넣으시면 이 항목을 포함해 39가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.

무료 스캔 문의하기 로그인