01DEFINITION
한 줄로 말하면
본체는 최신인데 플러그인과 테마가 몇 년 전 버전에 멈춰 있는 경우가 흔합니다. 공격은 가장 약한 부품을 지나갑니다. 쓰지 않는 확장은 비활성화가 아니라 삭제해야 하고, 남긴 것은 업데이트 주기를 정해 두어야 합니다.
02RISK
없으면 무슨 일이 생기나
침해의 다수는 본체가 아니라 확장에서 시작합니다. 게시판이나 쇼핑몰 본체는 관리자가 신경 써서 올려 두지만, 몇 년 전에 한 번 깔고 잊은 슬라이더나 폼 플러그인은 그대로 남습니다. 공격하는 쪽은 그 사실을 알고 있어서, 널리 쓰이는 확장의 알려진 취약점을 대량으로 훑는 방식으로 대상을 찾습니다.
버전이 주소에 노출되면 그 탐색이 훨씬 쉬워집니다. 어떤 확장을 쓰는지, 어느 판인지가 페이지 소스만 보면 나오기 때문에, 공격자는 시도해 볼 필요도 없이 대상을 추릴 수 있습니다. 노출 자체가 취약점은 아니지만, 취약한 대상을 찾는 비용을 우리가 대신 낮춰 주는 셈입니다.
쓰지 않는 확장을 비활성화만 해 두는 것도 같은 문제를 남깁니다. 비활성 상태여도 파일은 서버에 그대로 있고, 그 파일에 직접 접근하는 방식의 공격에는 활성 여부가 상관없는 경우가 있습니다. 목록에서 꺼 두는 것과 서버에서 지우는 것은 다른 조치입니다.
03CHECK IT YOURSELF
직접 확인하는 방법
아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.
-
01
자산 주소에 붙은 버전 문자열을 뽑는다
페이지 소스에서 스크립트와 스타일 주소를 훑으면 어떤 부품을 쓰는지, 버전이 노출되는지가 한 번에 보입니다.
$ curl -s https://example.com/ \ | grep -oE '(src|href)="[^"]*(plugin|theme|module|extension)[^"]*"' \ | grep -oE '[^"]*' | grep -iE 'ver=|v=|version=' | sort -u
-
02
설치된 목록과 마지막 갱신일을 관리자 화면에서 본다
주소에서 보이는 것은 일부입니다. 실제 목록은 관리자 화면에 있고, 여기서 각 확장의 최신 판과 우리 판을 비교하셔야 합니다.
-
03
쓰지 않는 확장을 가려낸다
한 해 동안 아무도 손대지 않은 기능이 있다면 대개 안 쓰는 것입니다. 지우기 전에 어느 화면에서 그 기능이 쓰이는지 검색해 확인하시면 안전합니다.
04HOW TO FIX
고치는 방법
서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.
캐시 갱신 때문에 붙이는 값이라면 버전 대신 파일 수정 시각의 해시를 쓰면 목적은 그대로이고 부품 정보는 나가지 않습니다. 다만 이것은 노출을 줄이는 조치이지 취약점을 고치는 조치가 아닙니다.
<link rel="stylesheet" href="/theme/app.css?v=a3f19c2">
꺼 두어도 파일은 남습니다. 목록에서 지우고 서버에서 실제로 없어졌는지 확인하시는 데까지가 한 벌입니다.
한 번 몰아서 올리는 방식은 다음 해에 같은 상태로 돌아옵니다. 분기에 한 번처럼 주기를 정하고, 올리기 전에 백업을 두는 절차를 같이 정해 두시는 편이 실제로 지켜집니다.
제작자가 손을 뗀 확장은 취약점이 발견돼도 고쳐지지 않습니다. 사용 중인 것 가운데 마지막 배포가 몇 년 전인 것이 있다면 대체재를 찾아 두시는 편이 낫습니다.
05FAQ
자주 묻는 질문
버전만 숨기면 안전해지나요
- 아닙니다. 노출을 줄이면 자동화된 탐색의 표적이 될 확률은 낮아지지만, 취약한 판을 쓰고 있다는 사실은 그대로입니다. 숨기는 것은 시간을 버는 조치이고, 실제 조치는 갱신과 삭제입니다.
업데이트하면 사이트가 깨질까 걱정됩니다
- 실제로 자주 있는 일이라 백업과 확인 절차를 함께 두셔야 합니다. 가능하면 복사본에서 먼저 올려 보고 주요 화면을 눌러 본 뒤 본 서버에 적용하시는 순서가 안전합니다. 깨질까 봐 미루는 동안 쌓이는 위험이 더 크다는 점도 함께 보셔야 합니다.
본체만 최신이면 되지 않나요
- 공격은 가장 약한 부품을 지나갑니다. 본체가 최신이어도 몇 년 전 판의 확장이 하나 남아 있으면 그쪽이 입구가 됩니다. 부품까지 포함해서 봐야 하는 이유입니다.
주소에 버전이 안 보이는데 통과인가요
- 이 항목의 판정 기준으로는 통과입니다. 다만 그것이 최신이라는 뜻은 아닙니다. 자산을 합쳐서 내보내거나 경로를 바꾼 경우에도 같은 결과가 나오므로, 실제 버전 확인은 관리자 화면에서 하셔야 합니다.
RELATED
같이 보시면 좋은 항목
GET STARTED
내 사이트는
이 항목을 통과할까요
주소만 넣으시면 이 항목을 포함해 39가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.