# Monitor

내 사이트가 쓰는 소프트웨어의 새로운 보안 문제를 쉬운 말로 보고, 각 문제에 대해 무엇을 해야 하는지 알려 줍니다.

인기 소프트웨어에서는 매일 새로운 보안 문제가 발견됩니다. Monitor는 내 사이트를 만드는 데 쓰인 소프트웨어에 영향을 주는 문제를 지켜보고, 무엇을 해야 하는지 쉬운 말로 알려 줍니다.

## 문제의 출처

Lockpick은 하루 종일 다음 공개 출처를 읽습니다.

* **OSV.dev**, 오픈 소스 패키지의 보안 문제를 담은 공개 데이터베이스입니다. **GitHub Advisory Database**가 검토한 모든 문제가 포함되며, Lockpick은 JavaScript(npm)와 Python(PyPI) 패키지에 대해 악성 패키지 보고서를 포함한 전체 사본을 유지하고 매시간 갱신합니다.
* **GitHub Advisory Database** 자체. Monitor가 따르는 소프트웨어에 대해 매시간 빠르게 확인하므로, OSV.dev가 복사하기 전에도 새로운 문제가 나타납니다.
* 미국 사이버 보안 기관인 CISA의 **Known Exploited Vulnerabilities** 목록. 이 목록의 문제는 공격자가 이미 사용하고 있으므로 **현재 악용 중**으로 표시됩니다.
* FIRST의 **EPSS**. 각 문제가 앞으로 30일 안에 악용될 가능성을 매일 예측합니다. 상위 5%에 드는 문제는 **곧 악용될 가능성이 높음**으로 표시됩니다.
* Lockpick에서 켜 둔 경우 WordPress 코어에 대한 **Wordfence Intelligence**. 이 문제들에는 Wordfence의 저작권 고지와 이용 약관 링크가 붙습니다.
* **Zero Day Initiative**가 발표한 권고. 그 ID, 제목, 심각도 점수를 사용합니다.
* **National Vulnerability Database**. 다른 출처가 심각도 점수를 주지 않을 때만 심각도 점수를 가져옵니다.

스캔만으로 Monitor는 Next.js, React, WordPress, Supabase, Clerk, Stripe, Firebase, Auth0, Sentry, Vue, Shopify, Wix, Squarespace, Webflow, Framer을(를) 따릅니다. [패키지 버전을 보내면](#affects-you-send-your-package-versions) 그 안의 모든 JavaScript 및 Python 패키지를 확인합니다.

## 문제가 내 사이트와 맞춰지는 방법

사이트마다 가장 최근 스캔에서 무엇으로 만들어졌는지, 예를 들어 Next.js나 WordPress인지 보여 줍니다. Monitor는 영향을 받는 소프트웨어로 만들어진 모든 사이트에 대해 문제를 나열합니다.

스캔은 기술은 볼 수 있지만, 보통 사이트가 어떤 버전을 쓰는지는 볼 수 없습니다. 그래서 Monitor는 문제가 **내게 영향이 있을 수 있다고** 말하며, 사이트가 취약하다고 말하지는 않습니다. 사이트가 이미 수정된 릴리스를 쓰고 있다면 바꿀 것은 없습니다.

## 영향 있음: 패키지 버전 보내기

정확한 답을 원하면, 사이트 코드가 사용하는 패키지 이름과 버전을 보내세요. 그러면 Lockpick이 실제로 쓰는 버전에 대해 각 문제를 확인하고, 일치하면 **영향 있음**과 함께 그것을 고치는 릴리스를 표시합니다. 이는 영향이 있을 수 있다고만 표시된 모든 항목보다 위에 나옵니다. 이미 내 버전에서 안전한 문제는 목록에서 빠지지만, 스캔은 여전히 그 기술을 볼 수 있습니다.

패키지 이름과 정확한 버전만 보내며, 코드, 파일 경로, 해시, 비공개 레지스트리 주소는 절대 보내지 않습니다. Lockpick은 `package-lock.json`, `npm-shrinkwrap.json`, `pnpm-lock.yaml`, `yarn.lock`, `requirements.txt`(고정된 줄), `poetry.lock`을 읽습니다.

* 터미널에서 프로젝트 폴더로 가서 `npx lockpicks deps <site>`를 실행하세요. 정확히 무엇이 전송될지 보려면 `--dry-run`을, Lockpick에서 목록을 지우려면 `--forget`을 추가하세요.
* 프로젝트 폴더에서 Pulse를 시작하거나 다시 검사할 때, CLI는 버전을 보낼지 한 번 묻고 그 답을 그 폴더에 대해 기억합니다. `--lockfile`은 그 스캔에 대해서만 보내고, `--no-lockfile`은 건너뜁니다.
* 코딩 에이전트는 내가 요청했거나 동의한 뒤 `lockpick_send_dependencies`를 호출할 때만 보냅니다.

보낼 때마다 이전 목록을 대체하므로, 업그레이드 후에는 다시 보내세요. 그러면 수정된 문제가 사라집니다. Pulse나 Deep이 실시간 사이트에서도 본 문제는 **실시간 사이트에서 확인됨**으로 표시됩니다. 보내려면 사이트 관리를 허용하는 키(`lockpick login --sites`)와 그 사이트에 대한 관리 권한이 필요합니다.

## Monitor 페이지 읽기

앱 사이드바에서 **Monitor**를 여세요. 페이지 상단에는 Monitor가 내 사이트 전반에서 몇 가지 기술을 따르고 있는지, 이번 주에 몇 개의 문제가 발표되었는지, 그중 몇 개가 나에게 영향이 있을 수 있는지, 그리고 패키지 버전을 보낸 뒤에는 몇 개가 영향을 준다는지 표시됩니다.

목록에 무엇을 보여 줄지는 다섯 가지 보기 중에서 고릅니다. 사이트를 등록하면 Monitor는 **내 사이트용**으로 열립니다.

* **내 사이트용**은 내 사이트가 쓰는 소프트웨어의 문제를 나열합니다. 내가 보낸 버전에 영향을 주는 문제가 먼저 나오고, 그다음 가장 긴급한 것이 옵니다. 즉 현재 악용 중, 그다음 곧 악용될 가능성이 높음, 그다음 심각도순입니다. 처리됨으로 표시하지 않은 사이트에서, 최근 90일 안에 발표되었거나 현재 악용 중인 문제에는 **내게 영향이 있을 수 있음** 표시가 붙습니다.
* **최신**은 Monitor가 읽은 모든 문제를 최신순으로 보여 줍니다. 내 사이트가 그 소프트웨어를 쓰는지 여부는 상관없습니다.
* **악용**은 공격자가 이미 사용하고 있는 문제만 나열합니다.
* **팔로잉**은 사이트에 대해 내가 따르기로 고른 기술의 문제를 나열합니다. 팔로잉은 이 목록에 추가할 뿐, 긴급 이메일은 보내지 않습니다.
* **보안 업데이트**는 최근 보안 뉴스를 나열하며, 각 제목은 전체 기사로 연결됩니다.

고유 ID, 제목, 패키지 이름으로 검색할 수 있습니다. **필터**로 언어나 플랫폼, 유형(취약점 또는 악성 패키지 보고서), 심각도, 그리고 얼마나 과거까지 볼지 목록을 좁힐 수 있습니다. 페이지 하단의 **출처 범위**에는 Monitor가 각 출처에서 마지막으로 정보를 받은 시각이 표시됩니다.

## 대시보드에서 보기

대시보드 상단에는 같은 문제가 요약되어 나옵니다.

* **내 사이트용**은 최대 다섯 개의 문제를 나열합니다. 내가 보낸 버전에 영향을 주는 것이 먼저이고, 그다음 나에게 영향이 있을 수 있는 것이며, 가장 긴급한 것부터 나옵니다. 각 항목은 Monitor에서 열립니다.
* **지금 일어나는 일**은 내 사이트가 쓰는 소프트웨어에 관한 최근 보안 뉴스를 보여 줍니다. Node.js와 React의 보안 글, Vercel, Cloudflare, Netlify, BleepingComputer, The Hacker News에서 가져오며, CISA가 방금 현재 악용 중으로 나열한 문제도 포함됩니다. 각 제목에는 출처, 제목, 짧은 요약이 표시되며, 출처 사이트의 전체 기사로 연결됩니다. Lockpick은 기사를 복사하지 않습니다.

두 가지 모두 모든 요금제에서 사용할 수 있습니다.

## 사이트별로 지금 관련 있는 것

사이트의 **개요**는 **지금 관련 있음**으로 시작합니다. 그 사이트에 중요한 문제들이며, 각각 태그와 그 근거가 함께 표시됩니다.

* **영향 있음**: 내가 보낸 패키지 버전이 영향을 받습니다. 버전과 그것을 고치는 릴리스가 표시됩니다.
* **영향이 있을 수 있음**: 스캔이 소프트웨어는 봤지만 버전은 보지 못했습니다.
* **실시간 확인됨**: Pulse나 Deep 스캔이 실제 사이트에서 영향을 받는 구성 요소를 찾았습니다.
* **현재 악용 중**: 공격자가 이미 사용하고 있습니다.
* **수정됨**: 새 스캔에서 더 이상 찾지 못했거나, 수정된 버전을 담은 목록을 보냈습니다.

태그는 새 스캔에서 문제가 더 이상 보이지 않거나, 업그레이드된 목록을 보내면 저절로 사라지며, 이 띠에는 각 태그가 언제 나타났고 사라졌는지에 대한 짧은 기록이 남습니다. 사이트 목록에는 사이트마다 관련 문제가 몇 개인지 표시되고, 알려진 문제와 연결된 문제 항목은 카드에 그 문제 이름을 표시하며, **수정할 항목**에서는 그런 항목만 볼 수 있고, 대시보드의 **내 사이트용**에서는 나에게 영향을 주는 것이나 현재 악용 중인 것만 볼 수 있습니다. 코딩 도우미는 `lockpick_site_status`에서 같은 태그를 읽습니다.

## 각 문제가 알려 주는 것

문제를 열면 다음을 볼 수 있습니다.

* **무슨 일이 있었나**: 쉬운 말로 두 문장;
* **해야 할 일**: 출처가 알려 주는 경우 수정된 릴리스를 명시합니다;
* 그 소프트웨어를 쓰는 **내 사이트**;
* 알려진 경우, 곧 악용될 가능성(EPSS)과 심각도 점수(CVSS);
* 나나 개발자가 자세한 내용을 원하면 ID가 있는 원래 출처.

쉬운 말은 공개 권고 본문만 바탕으로 AI 모델이 작성하며, 내 사이트에 관한 어떤 것도 사용하지 않습니다. 각 답변은 출처와 대조해 확인하며, 답변에 나온 모든 버전 번호도 포함됩니다. 확인에 실패하면 Monitor는 고정된 문구를 대신 사용합니다.

## 고치기

* **AI용 지침 복사**는 코딩 도우미에게 줄 지침을 복사합니다. 코드가 어떤 버전을 쓰는지 확인하고, 영향을 받는다면 업데이트하고, 테스트를 실행한 뒤 결과를 알려 달라는 내용입니다.
* **개발자에게 보내기**는 같은 세부 정보가 담긴 이메일을 엽니다.
* **처리됨으로 표시**는 사이트별로 그 문제가 해결되었다고 기록하며, 그러면 **내게 영향이 있을 수 있음** 목록에서 사라집니다. **실행 취소**는 되돌립니다. 사이트의 항목을 검토할 수 있는 사람은 누구나 표시할 수 있습니다.

## 알림

새 문제가 내 사이트 중 하나에 영향을 줄 수 있으면, 그 사이트의 결과를 볼 수 있는 워크스페이스의 모든 사람이 앱 상단의 **알림 종**으로 받습니다. 그것을 열면 바로 그 문제로 이동합니다. 최근 14일 안에 발표되었거나 현재 악용 중 목록에 새로 추가된 문제만 알림을 보내므로, Monitor를 켠다고 오래된 소식이 쏟아지지는 않습니다.

Monitor는 새 문제를 사이트별로 묶은 **주간 요약**도 이메일로 보냅니다. 첫 문제가 도착한 뒤 약 7일 후에 보냅니다. 내가 보낸 버전에 **영향을 주고**, 현재 악용 중이거나 곧 악용될 가능성이 높은 새 문제는 대신 즉시 모든 요금제에서 이메일로 보냅니다. 모든 이메일에는 할 일이 적혀 있고, Monitor에서 그 문제로 가는 링크가 있습니다. 이 이메일을 끄려면 **설정**을 열고 **알림**에서 **새로운 취약점**을 끄거나, Monitor 이메일의 **수신 거부** 링크를 사용하세요.