Ultari NEO

릴리스 기록

어떤 판이 언제 나갔고 무엇이 바뀌었는지 그대로 적습니다. 목록은 실제 게시 기록에서 나옵니다.

web 2026-10-23

보안 점검 안내 페이지 확장 — 「보안 헤더」·「열린 디렉터리」 점검 글 추가(전 언어)

  • 보안 헤더 점검 — 응답 헤더만 읽어 HSTS·CSP·X-Frame-Options·Referrer-Policy 같은 기본 방어가 켜졌는지, 서버·버전을 흘리는 머리글이 있는지 짚는 안내 글을 열두 개 언어로 추가했습니다. 공격 요청은 보내지 않습니다.
  • 열린 디렉터리 점검 — 디렉터리 인덱싱이 켜져 백업·업로드·설정 폴더가 통째로 보이는지 밖에서 읽어 점검하는 안내 글을 추가했습니다. 목록만 읽고 파일 내용은 가져오지 않습니다.
  • 검색 입구를 넓혔습니다 — 두 글 모두 `/check` 모음과 사이트맵·IndexNow 에 자동으로 올라가고, 각 글은 주제 하나 × 언어 하나로 내용이 다릅니다. 모든 길은 소유권을 확인한 뒤 돌리는 `/sites` 점검으로 이어집니다.
web 2026-10-23

내 사이트 「매일 외부 감시 + 메일 알림」 — 업무용 라이선스 기능

  • 매일 자동으로 — 인증한 내 사이트에 A-Z 웹 점검을 하루 한 번 다시 돌리고, 지난번에 없던 주의·위험이 보이면 계정 메일로 알립니다. 같은 문제는 다시 보내지 않아 메일이 소음이 되지 않습니다.
  • 책임의 한계를 먼저 — 켜기 전에 「밖에서 보이는 것만 보는 참고용이며, 알림이 없다고 안전한 것은 아니고, 보안 관리 책임은 운영자에게 있다」(이용약관 9절)에 동의해야 합니다. 알림 메일마다 같은 내용을 붙입니다.
  • 요금 — 업무용 라이선스 기능입니다(한 번씩 돌리는 점검은 개인 계정 무료 그대로). 라이선스가 끝나면 감시를 멈추고 한 번 알려 드립니다. 끄기는 언제든 /sites 에서.
web 2026-10-23

내 사이트 「A-Z 웹 점검」 — AI 방어·해킹 흔적·메일 위조 방지까지, 인증 방법도 넓혔습니다

  • AI 방어 — 페이지·스크립트에 박힌 AI API 키(값은 가져오지 않음), 인증 없이 열린 AI 모델 API(Ollama·OpenAI 호환), 공개 MCP 엔드포인트, robots.txt 의 AI 크롤러 규칙을 봅니다.
  • 해킹 흔적 — 첫 화면에 숨긴 도박·성인 스팸 링크, 브라우저 채굴 스크립트, 난독화 스크립트, 숨긴 외부 iframe 을 짚습니다.
  • 더 넓은 점검 — 백업·DB 덤프·phpMyAdmin·디렉터리 목록 노출, http→https 전환, 쿠키 보호 표시, 옛 jQuery, 메일 위조 방지(SPF·DMARC). 결과는 7개 묶음으로 나눠 보여 줍니다.
  • 인증 방법 추가 — 코드를 못 고치는 사이트 빌더도 홈페이지 <head> 의 사이트 제목·SEO 설명·HTML 주석에 인증 문구를 잠시 넣어 소유권을 확인할 수 있습니다. 본문(게시글·댓글)의 문구는 방문자도 쓸 수 있어 인정하지 않습니다.
  • 요금 — 개인 계정은 무료, 업무용 계정은 업무용 라이선스가 있어야 합니다.
web 2026-10-22

내 사이트 「웹 취약점 점검」 — PHP2Shell·TLS 인증서·서버·WordPress 판 대조

  • 「내 사이트」에 웹 취약점 점검이 생겼습니다. 소유권을 확인한 내 사이트만, 공격 요청 없이 읽기만 해서 봅니다(10분에 3번).
  • PHP2Shell(CVE-2026-109618·109619) — 밖에서 보이는 PHP 판 번호를 수정판(8.5.12·8.4.27·8.3.36·8.2.35)과 대조합니다. 판 번호를 숨긴 서버는 「안전」이 아니라 「못 봄」으로 적습니다.
  • TLS 인증서·암호화 규격 — 인증서 만료·신뢰할 수 없는 발급처·이름 불일치·14일 안 만료를 짚고, 옛 규격(TLS 1.0·1.1)을 아직 받아 주는지 봅니다. 접속 인사만 하고 끊습니다.
  • 서버 소프트웨어·WordPress 판 — nginx·Apache·IIS·WordPress 판을 공개 자료(endoflife.date·WordPress.org·CISA KEV)와 대조해 지원 종료·실제 공격에 쓰인 취약점·최신판 여부를 알려 줍니다. 자료는 12시간마다 새로 받습니다.
  • 새는 파일 — `.env`·`.git`·phpinfo·서버 상태 화면이 열려 있는지 봅니다. `.env` 가 열려 있어도 값은 가져오지 않습니다.
build 103 2026-10-19

설정에 「프로젝트팀포유의 다른 프로그램」 — 같은 팀의 다른 프로그램·앱·게임으로 가는 길

  • 설정 화면에 울타리 NEO 를 만든 팀(프로젝트팀포유)의 다른 프로그램·앱·게임을 소개하는 줄이 생겼습니다. 「둘러보기」를 누르면 평소 쓰시는 브라우저로 projectteamforyou.com 이 열립니다. 주소는 고정이며, 누르기 전에는 아무 데도 접속하지 않습니다.
  • 검사·판정·조치에는 바뀐 것이 없습니다.
build 102 2026-10-18

보안 점검 반영 — 관리자 권한 실행·격리함·라이선스의 빈틈을 막았습니다

  • 관리자 권한으로 실행해도 가짜 시스템 명령에 속지 않습니다. 검사 중 쓰는 `reg`·`ipconfig`·`chcp` 같은 Windows 명령을 이름으로 부르던 자리가 남아 있어, 프로그램이 있는 폴더(예: 다운로드 폴더)에 같은 이름의 파일이 심어져 있으면 그 파일이 관리자 권한으로 실행될 수 있었습니다. 이제 전부 System32 의 정확한 경로로만 부릅니다.
  • 격리함을 악용할 수 없습니다. 격리함 폴더가 다른 폴더로 연결돼 있으면 연결만 끊고 작업하지 않으며, 기록 없는 파일은 목록에 보이지 않습니다(「비우기」가 엉뚱한 폴더를 지우지 않게). Windows·Program Files·ProgramData 아래로는 격리함 화면에서 바로 복원하지 않고, 관리자 기록과 대조하는 「되돌리기」로만 되살립니다.
  • 「갱신·구매」 단추가 Windows 표준 방식으로 브라우저를 엽니다. 빌드 101 은 백신이 의심하는 모양의 명령으로 열었습니다.
  • 라이선스 판정을 더 단단하게 했습니다. 저장된 판정은 그 키에 묶이고, 시계를 되돌리거나 파일을 고쳐도 업무용으로 바뀌지 않습니다. 이미 키가 있는데 다른 키를 붙여 넣으면 먼저 묻고, 새 키가 유효할 때만 바꿉니다.
  • 네트워크 경로(`\\서버\…`)는 「위치 열기」·「지문」으로 열지 않습니다. 접속만으로 Windows 로그인 정보가 상대 서버로 갈 수 있기 때문입니다.
  • 통신 라이브러리(rustls)를 보안 수정판으로 올렸습니다.
build 100 2026-10-15

PC 에도 「문자 검사」 — 받은 문자를 붙여 넣으면 12개 언어 수법과 링크의 진짜 주소를 함께 봅니다 + 웹 로그 경로 위장 정규화

  • 도구 화면에 「문자 검사」가 생겼습니다. 받은 문자·메신저·메일 본문을 통째로 붙여 넣으면, 안드로이드판과 같은 판정 엔진이 한국어·영어·일본어·중국어 등 12개 언어의 택배·과태료·환급·가족 사칭·투자·알바 수법을 찾고, 본문 속 링크마다 진짜 주소와 이유를 보여 줍니다. 앱 어디서든 문장을 Ctrl+V 하면 바로 검사합니다. 판정은 이 PC 안에서만 하고 본문은 저장하지 않습니다.
  • QR 코드 내용도 판정합니다. 화면 캡처한 QR 이 주소가 아닌 글(계좌 안내·결제 문구 등)이면, 지금까지는 글자를 그대로 보여 주기만 했습니다. 이제 QR 판정(목적지를 감춘 링크는 미끼 문구 없이도 「주의」)을 거쳐 보여 줍니다.
  • 웹 로그 판정이 경로 위장에 속지 않습니다. 공격 도구는 `//blog/wp-includes/…`·`/%2eenv`·`/static/../.env` 처럼 같은 경로를 다르게 써서 탐지를 비껴갑니다(우리 서버가 하루 동안 받은 탐침 34건 중 18건이 슬래시를 겹쳐 썼습니다). 이제 겹친 슬래시를 접고, 퍼센트 인코딩을 한 번 풀고, `.`·`..` 조각을 푼 뒤 판정합니다. 특히 관리 구역에 닿았는지(2xx) 판정이 `//admin`·`/%61dmin` 으로 비껴가던 빈틈을 막았습니다. 화면과 증거에는 원래 경로를 그대로 보여 줍니다.
  • 빌드 99 의 판정은 공개 데이터로 다시 쟀습니다 — 정상 문자 4,827건 오탐 0%, 정상 주소 1,886건 오탐 0.4%로 빌드 98 과 같습니다(새 규칙이 오탐을 늘리지 않았습니다).
build 99 2026-10-14

「국가 흉내」 주소와 해외 택배·은행 사칭 링크를 찾습니다 + 안드로이드 1.2.1: 문자 검사 12개 언어

  • 「국가 흉내」 주소를 찾습니다. `track-jp.com`·`gov-de.com`·`delivery-kr.com` 처럼 아무나 등록하는 .com·.net 에 「낱말-국가코드」를 붙여 그 나라 택배사·관공서처럼 꾸민 주소를 「주의」로 알립니다. 진짜 기관·업체는 국가 도메인(.jp·.de·.co.kr)이나 자기 이름을 씁니다. `sign-in`·`plug-in` 처럼 영어 낱말과 겹치는 꼴은 보지 않습니다. Windows 판에서는 「링크 검사」와 내려받은 파일의 출처 검사에 함께 쓰입니다.
  • 해외 택배·쇼핑·은행 사칭 링크를 더 잡습니다. 야마토·사가와·라쿠텐·Correos·La Poste·Santander·Sberbank·Flipkart·Shopee·Aramex 등의 이름을 하이픈으로 붙이고 「track·reward·claim」 같은 미끼 낱말을 단 서브도메인(`yamato-track.남의도메인.com`)을 사칭으로 봅니다. 브랜드 이름만 있고 미끼 낱말이 없으면(앱 내려받기 사이트 꼴) 올리지 않습니다.
  • 안드로이드 1.2.1 — 의심 문자 검사가 12개 언어를 읽습니다. 지금까지 미끼 사전(택배·과태료·환급·가족·알바·당첨…)이 한국어·영어뿐이라 일본어·중국어·스페인어·프랑스어·독일어·포르투갈어·러시아어·힌디어·인도네시아어·아랍어 스미싱을 놓쳤습니다. 가족 사칭은 「엄마·아빠」 같은 호칭이 아니라 「폰 고장·번호 바뀜」 꼴만 보고, 해외 택배사·쇼핑몰 자기 도메인의 진짜 배송 안내와 각 언어의 「무료 배송」 광고는 걸지 않습니다.
  • 이 판은 매주 자동으로 도는 레드팀 시험(12개 언어 가짜 스미싱·정상 문자를 만들어 제품과 같은 판정 코드에 넣어 보는 시험)의 첫 결과에서 나왔습니다. 따로 만든 시험 묶음에서 빌드 98 의 판정은 해외 스미싱 30건 중 8건을 잡았고, 이번 판은 30건을 모두 잡았으며 정상 문자 36건은 하나도 잘못 잡지 않았습니다. 판정은 지금처럼 전부 기기 안에서 합니다.
build 98 2026-10-14

가짜 지갑 확장 탐지 + Hikvision 카메라 명령 실행 결함(CVE-2021-36260) 대조

  • 가짜 지갑 확장을 찾습니다. 2026년 10월 Firefox 에서 Rabby·OKX 지갑을 흉내 낸 확장 16개가 지갑을 가져올 때 복구 문구와 개인키를 빼 갔습니다. 공격자는 확장 ID·이름을 계속 바꾸므로 차단 목록으로는 놓칩니다. 그래서 반대로, 이름에 지갑 브랜드(MetaMask·Rabby·OKX·Phantom·Coinbase Wallet·Trust Wallet)를 달았는데 각 스토어에서 확인한 공식 확장 ID 가 아닌 것을 「유명 확장 이름 흉내」로 알립니다. OKX·Rabby·Coinbase·Trust 는 Firefox 공식 확장이 없어서, Firefox 에서 그 이름을 단 확장은 전부 공식이 아닙니다. Chrome·Firefox 만 봅니다 — Edge·Whale 은 스토어 ID 가 달라 확인한 목록이 없어 사칭이라 하지 않습니다.
  • Hikvision 카메라·NVR 결함을 대조합니다. 로그인 없이 기기 명령을 실행할 수 있는 2021년 공개 결함(CVE-2021-36260, 미국 CISA 악용 목록 등재)을 봇넷이 지금도 찾아다닙니다. 같은 네트워크에 Hikvision 카메라가 보이면 펌웨어 확인·포트포워딩 끄기를 안내합니다. 펌웨어 판은 밖에서 확인하지 못하므로 「확인 필요」로만 표시합니다.
  • 이번 판의 두 규칙은 매주 자동으로 도는 위협 동향 조사에서 「빈칸」으로 나온 사건을 사람이 확인해 반영한 것입니다.
build 97 2026-10-14

빌딩·냉난방 규약 BACnet 까지 찾습니다 + AI 기기가 자리 비운 사이 움직였는지 실측

  • BACnet 설비를 찾습니다. 빌딩·매장의 냉난방·냉장·조명을 묶는 표준 규약 BACnet 은 UDP 47808 을 써서, TCP 로 포트를 두드리는 기존 점검으로는 보이지 않았습니다(빌드 96 에서는 「못 봄」). 이제 네트워크에서 확인된 기기에만 표준 장치 찾기 요청(Who-Is)을 한 번 보내고, 「I-Am」으로 답한 기기를 설비 제어기로 표시합니다. 이 요청은 설정을 읽거나 바꾸지 않는 읽기 전용이고, 방송하지 않아 이웃 세대로 새지 않습니다. 인터넷에 열려 있으면 「위험」입니다.
  • AI 기기가 자리 비운 사이 움직였는지 실측합니다. 미끼 포트를 켜 두면, 집 안 기기가 이 PC 에 접속을 시도한 그 순간 사용자가 자리를 비운 상태였는지(마지막 입력 후 15분 이상)를 함께 기록합니다. 자리를 비운 사이 접속을 시도한 AI·IoT 기기는 「자리 비운 사이 활동」으로 알립니다. 밤에 켜져 있었다는 것만으로는 활동이라 하지 않습니다 — 관측한 것만 말합니다.
build 96 2026-10-14

AI 시대 가전·설비 해킹 대응 — 냉장·냉난방 설비 제어기 노출, 가전의 AI 연산 점거 흔적을 찾습니다

  • 냉장·냉난방 설비 제어기를 찾습니다. 2026년 10월 프랑스 등 유럽 대형마트 수백 곳의 냉장·냉동 설비가 원격으로 50℃까지 설정돼 식품이 폐기되고 일부에서 연기·화재가 났습니다. 홈·매장 네트워크 점검이 이제 설비 제어 규약(Modbus 502 · EtherNet/IP 44818 · Niagara Fox 1911 등)을 연 기기를 「설비 제어기」로 분류하고, 인증 없이 설정값이 바뀔 수 있다는 점과 함께 할 일(인터넷 노출 제거, 최신 펌웨어, 기본 비밀번호 변경, VPN 원격 관리, 계산대·사무 PC 와 망 분리)을 알려 줍니다. 이런 포트가 공유기 UPnP 로 인터넷에 열려 있으면 「위험」입니다.
  • 사고가 난 바로 그 장비와 대조합니다. Danfoss 냉장 관리 장비(AK-SM 800A 계열)가 보이면 공개된 인증 우회·원격 코드 실행 취약점과 패치 판(R4.3.1)을 알려 줍니다. 펌웨어 판은 밖에서 확인하지 못하므로 「확인 필요」로만 표시합니다.
  • 가전이 AI 연산 노드로 점거된 흔적을 찾습니다. 저사양 가전 여러 대를 묶어 AI 모델을 돌릴 수 있고 AI 가 가전에 스스로를 복제할 수 있다는 연구가 공개됐습니다. TV·셋톱박스·로봇청소기·스피커·소형 IoT·프린터·카메라·월패드가 분산 AI 연산 포트(llama.cpp RPC 50052 · exo 52415 · PyTorch 29500 · Ollama 11434)를 열고 있으면 「위험」으로 알리고 인터넷 차단·초기화·펌웨어 갱신을 권합니다. PC 에서 직접 띄운 AI 는 점거로 보지 않습니다.
  • 설비 제어기도 망 분리 권고에 넣었습니다. 카메라·AI 기기·월패드와 함께, PC 와 같은 네트워크에 있는 설비 제어기를 게스트(IoT) 네트워크로 옮기라고 권합니다. 울타리가 공유기나 설비를 대신 끊지는 않습니다.
build 95 2026-10-10

빌드 94 안정성 패치 + 피싱 링크 판정 강화 — 유니코드 출처 주소에서 검사가 멈추던 문제, 탐지 21% → 43%

  • 검사가 멈추던 문제를 고쳤습니다. 빌드 94 에서 새로 넣은 다운로드 출처의 국제화 도메인 표시가, 출처 기록에 `한글도메인.kr` 처럼 유니코드 글자 그대로 적힌 주소를 만나면 글자 중간을 잘라 검사를 멈출 수 있었습니다. 이제 글자 경계를 지켜 읽고, 그런 주소도 그대로 판정합니다. Chrome·Edge 로 받은 파일은 보통 영문(퓨니코드)으로 기록돼 영향이 드뭅니다.
  • 피싱 링크 판정을 강화했습니다. 서브도메인에 다른 사이트 이름을 숨긴 주소(`이름.com.남의도메인.com`), 하이픈으로 붙인 브랜드 서브도메인 + 로그인 미끼, 털린 사이트 안의 피싱 키트 경로(이메일이 박힌 주소·무작위 폴더·다른 사이트 이름 폴더), 무료 호스팅·동적 DNS 의 일회용 주소를 새로 봅니다. 공개 피싱 URL 데이터셋의 따로 떼어 둔 시험 묶음에서 탐지(위험+주의)가 21.2% → 42.8% 로 올랐고 정상 주소 오탐은 0.42% 그대로입니다. 한 문자 체계로만 된 국제화 도메인(예: 한글 도메인)은 「위험」에서 「주의」로 낮췄습니다. 진짜 PayPal 기부 링크가 주의로 뜨던 오탐도 고쳤습니다.
  • 안드로이드 앱 소개를 랜딩에 더했습니다. 사기 앱 찾기, 의심 문자 검사, 공용 Wi‑Fi·네트워크 점검, 권한 지도·앱 행동, 정리, 보이스피싱 긴급 점검을 12개 언어로 소개합니다.
build 94 2026-10-10

다운로드 출처의 진짜 주소(퓨니코드·경유 주소) + 자리 비운 사이 클립보드 보호 · 안드로이드 1.1: 공용 Wi‑Fi 점검·권한 지도·긴급 점검

  • 가짜 글자로 만든 주소를 드러냅니다. 실행 파일을 받은 주소가 `xn--` 로 시작하는 국제화 도메인이면 사람이 읽는 글자를 함께 보여 줍니다. 라틴 문자 사이에 생김새가 같은 키릴·그리스 문자를 섞은 「유사 문자 도메인」(예: 키릴 а 로 쓴 аpple.com)은 의심 신호로 알립니다 — 확정 근거가 아니라 신호로 표시합니다.
  • 어디를 거쳐 받았는지 보여 줍니다. 파일을 받기 전에 보던 페이지와 실제로 받은 주소가 서로 다른 사이트면 「경유한 주소」로 둘 다 적습니다. 그 사이의 중간 이동 경로는 Windows 가 기록하지 않아 보지 못했다고 함께 적습니다.
  • 자리를 비운 사이에는 클립보드를 건드리지 않습니다. 예약(자동) 검사 때는 지갑 주소 바꿔치기 시험을 하지 않고, 결과에는 「깨끗함」이 아니라 「못 봄(예약 검사)」으로 남깁니다. 사람이 검사를 누를 때만 시험합니다.
  • 안드로이드 1.1.0. 공용 Wi‑Fi·네트워크 점검(비밀번호 없는 Wi‑Fi, 몰래 설정된 프록시, HTTPS 를 풀어 볼 수 있는 사용자 인증서, 낯선 DNS, 무선 디버깅), 카메라·마이크·위치 등을 쓸 수 있는 앱을 한눈에 보는 권한 지도, 사용 기록 접근을 허락하면 몰래 데이터를 보내는 앱을 보여 주는 앱 행동, 감시앱(스파이앱)·VPN 앱·개발용 서명·루팅 흔적 탐지, 안 쓰는 앱·큰 캐시·「잠자는 권한」을 찾아 주는 정리(클리너 — 지우기는 사용자가 직접), 보안 점수와 보고서 공유, 수상한 전화 직후의 「긴급 점검」(112·금융감독원 1332)을 더했습니다. 여전히 인터넷 권한이 없습니다.
build 93 2026-10-09

전 영역 A–Z 점검 — 조용히 놓치던 탐지와 화면 버그를 한꺼번에 고쳤습니다

  • 놓치던 것을 이제 봅니다. OneDrive 백업으로 옮겨진 바탕화면·다른 드라이브로 옮긴 다운로드 폴더도 실제 위치를 찾아 검사합니다. 경로에 공백이 있는 COM 하이재킹 DLL(사용자 이름에 띄어쓰기가 있는 경우 등)을 잘려 읽던 문제, 같은 파일에 다른 경고가 함께 뜨면 다운로드 출처 근거가 사라지던 문제, 검사와 검사 사이에 일어난 DNS 터널링을 버리던 문제를 고쳤습니다.
  • 「못 봄」을 「이상 없음」으로 말하지 않습니다. PowerShell 이 막히거나 결과를 읽지 못한 숨은 자리·지속성·클립보드 검사는 이제 결과에 「확인하지 못함」으로 적습니다. 끌어다 놓은 파일 몇 개나 실시간 경보만으로 PC 전체 점수를 매기지 않습니다.
  • 오탐을 줄였습니다. test.xyz 를 toss 사칭으로, data.top 을 daum 사칭으로 보던 짧은 브랜드 오탐, 영어 문자의 courtesy·determining 같은 낱말 속 미끼 오탐, 「주문번호 1234 5678」을 전화번호로 보던 오탐을 고쳤습니다. 띄어 쓴 해외 번호(+82 2 1234 5678)로 전화를 유도하는 해외결제 사칭 문자는 새로 잡습니다.
  • 안전 장치를 바로잡았습니다. 클리퍼 시험용 이더리움 미끼 주소가 실제로 유효한 주소였던 것을 체크섬이 틀린 주소로 바꿨고, 시험 중 사용자가 복사한 내용은 덮어쓰지 않습니다. 격리할 때 큰 파일(디스크 이미지 등)을 메모리에 통째로 읽지 않습니다. 잘린 웹 로그 줄에서 분석이 멈추던 문제도 고쳤습니다.
  • 화면. 검색·정렬·실시간 경보 때 사용자가 해제한 체크가 기본값으로 되살아나던 문제(적용 시 원치 않는 조치가 실행될 수 있었음), 오프라인일 때 「업데이트 확인 중」에 멈추던 문제를 고쳤습니다. 위협 종류(확인됨/의심) 표시, 월패드 등 기기 종류 이름, 경보 다시 보기, 모든 조치·모듈의 설명, 자동(Windows) 언어, 화면 낭독기 라벨을 더했습니다.
build 92 2026-10-08

다운로드 출처 검사 + 피싱 링크 판정 강화 — 공개 데이터셋으로 정확도를 재고 고쳤습니다

  • 수상한 곳에서 받은 실행 파일을 찾습니다. 다운로드·바탕화면에서 최근 30일 안에 받은 실행 파일·스크립트·디스크 이미지·바로가기만 골라, Windows 가 붙여 둔 출처 기록(받은 주소)을 피싱 판정 엔진으로 봅니다. 가짜 로그인 도메인·무료 호스팅·IP 주소 같은 곳에서 받았으면 「주의」로 알리고 격리를 제안합니다(기본 선택 아님, 되돌릴 수 있음). 주소는 이 PC 밖으로 나가지 않습니다.
  • HTML 스머글링을 찾습니다. 메일로 받은 HTML 첨부를 열었을 때 웹 페이지의 스크립트가 브라우저 안에서 실행 파일·ISO 를 만들어 떨어뜨리는 수법입니다. 출처가 서버가 아니라 blob:·data: 로 남은 실행 파일을 알립니다. 웹 앱에서 내보낸 압축·문서는 흔해서 보지 않습니다.
  • 링크 검사가 브랜드와 상관없는 피싱도 봅니다. 도메인 이름 자체가 「로그인·인증·잠금 해제」인 주소, 털린 사이트 폴더 안의 피싱 키트 경로(워드프레스 폴더의 로그인 페이지, 받는 사람 이메일을 미리 채운 링크), 무료 호스팅 위의 로그인 페이지, 남의 사이트 폴더 이름으로만 있는 outlook·paypal 같은 서비스 이름을 새로 봅니다. 공개 피싱 URL 데이터셋(CC BY 4.0)의 따로 떼어 둔 시험 묶음에서 탐지율이 14.0% → 21.2% 로 오르고 정상 주소 오탐은 0.6% → 0.4% 로 내려갔습니다.
  • 오탐 버그를 고쳤습니다. google.co.in·google.com.hk 처럼 국가별 2단계 도메인의 진짜 사이트를 「브랜드가 서브도메인에만 있다」며 위험으로 표시하던 문제입니다.
build 91 2026-10-06

백신이 지나치는 숨은 자리 6곳 — 로그인 화면 백도어·COM 하이재킹·Office 시작·LSA·DNS 터널링·지갑 주소 바꿔치기

  • 로그인 화면 백도어를 기본 검사에서 봅니다. 접근성 프로그램(Shift 5번·접근성 버튼)에 디버거를 걸어 비밀번호 없이 관리자 명령창을 여는 고전적 뒷문, 그리고 프로그램이 꺼질 때마다 다른 프로그램을 띄우는 SilentProcessExit 를 찾습니다. 예전에는 기본 꺼짐인 「레지스트리 위생」에서만 보였습니다.
  • COM 하이재킹과 Office 시작 지속성을 찾습니다. 기계 전체에 등록된 부품을 사용자 설정이 다른 파일로 덮은 경우(사용자 폴더·서명 없음일 때 강하게), 엑셀 XLSTART·워드 STARTUP 폴더의 파일, 정상 용도가 없는 「Office test」 키, 사용자 폴더의 엑셀 자동 추가 기능을 봅니다. 신뢰 게시자가 서명한 파일(OneDrive 등)은 넘어갑니다.
  • SYSTEM 권한의 희귀 지속성까지 봅니다. 로그인 처리(LSA 인증·보안·알림 패키지)·인쇄 모니터·netsh 도우미·BootExecute·Active Setup·AppInit_DLLs·AppCertDlls 에서 기본 목록에 없는 것만 보여 줍니다. 잘못 지우면 로그인·인쇄가 깨질 수 있어 자동 조치 없이 정확한 수동 절차만 적습니다.
  • DNS 터널링과 지갑 주소 바꿔치기를 찾습니다. 한 프로그램이 10분 동안 길고 무작위한 서브도메인을 수십 개 이상 묻는 흐름(데이터를 DNS 에 실어 내보내는 모양, CDN·백신 조회는 제외)을 보고, 체크섬이 틀린 미끼 지갑 주소를 클립보드에 잠깐 올려 다른 주소로 바뀌는지 직접 시험합니다 — 바뀌면 「확인」입니다. 원래 클립보드는 바로 되돌리고, 그림·서식이 있으면 시험하지 않습니다.
build 90 2026-10-04

AI 자동 공격이 정찰에서 침입으로 넘어가는 순간을 한 줄로 잡습니다 · 공격 도구 이름표

  • AI 자율 침투 도구의 「단계 이동」을 찾습니다. 같은 출발지가 경로를 대량으로 두드리거나(정찰) SQL 인젝션·경로 조작을 시험한 뒤(시험), 30분 안에 로그인 제출(침입 시도)이나 개인 데이터·비밀 경로의 정상 응답(데이터 접근)으로 넘어가면 한 줄로 묶어 보여 줍니다. 세 단계 이상을 10분 안에 밟으면 「자동화 속도」로, 데이터 접근까지 갔으면 따로 표시합니다. 2026년 가을 국내 금융권 유출 보도에서 지목된 「AI 자율 침투 콘솔」이 남기는 흐름입니다.
  • 공격·점검 도구 이름표를 셉니다. sqlmap·nuclei·ffuf·nikto 같은 도구가 기본 설정에서 UA 에 적는 이름을 찾습니다. 바꿀 수 있는 이름이라 자기 신고로만 다루고, 운영자가 직접 맡긴 점검일 수 있다고 함께 적습니다. 도구 이름 목록은 탐지 데이터라 프로그램 안에 평문으로 두지 않습니다.
  • 못 보는 것은 못 본다고 적습니다. 시각이 없는 로그는 순서를 몰라 단계 이동을 「못 봄」으로 두고, 출발지를 매 단계 바꾸는 공격은 빌드 89의 분산 로그인 대입 판정이 맡습니다. 두 판정 모두 「주의」이며, 확정은 「내 사이트」의 미끼(카나리)만 냅니다. 요약에는 IP 원문을 남기지 않습니다.
  • 웹 「내 사이트」에 미끼 고객번호·경로·API 키·로그인 아이디(닿으면 확정), 외부 노출 지도(인증서 기록 속 내부용 호스트의 로그인 화면 노출), 유출 비밀번호 거절 코드 조각이 생겼고, 홈페이지에 국내 금융권 사례로 본 공격 4단계 섹션과 사례 분석 글을 더했습니다.
build 89 2026-10-02

웹 로그에서 출발지를 나눈 로그인 대입과 고객번호를 바꿔 가며 조회한 흔적을 찾습니다

  • 출발지를 나눠 들어온 로그인 대입(크리덴셜 스터핑)을 찾습니다. 지금까지는 한 출발지가 로그인을 몰아서 두드리는 것만 잡았습니다. 이제 로그인·본인 확인·OTP·비밀번호 재설정 주소로 들어온 제출을 모아, 수십~수백 곳의 출발지가 한 곳당 몇 번씩만 두드리는 모양(IP 기준 차단을 피하는 수법)과 대량의 로그인 실패를 짚습니다. 10분 안에 몰린 최다 건수, 속도 제한(429)이 동작했는지, 실패를 거듭한 뒤 성공 응답을 받은 출발지가 있는지도 함께 적습니다.
  • 고객·회원 번호를 바꿔 가며 조회한 흔적을 찾습니다. 한 출발지가 같은 꼴의 주소(예: <code>/api/customer/{id}</code>, <code>?custNo=</code>)에서 번호만 바꿔 정상 응답을 받아 간 경우입니다. 본인 확인을 건너뛴 조회나 남의 번호를 넣어 보는 공격(IDOR)이 로그에 남기는 모양이고, 번호가 1씩 늘어나는 순차 대입이면 따로 표시합니다. 상품·글 번호처럼 공개된 것은 세지 않습니다.
  • 못 보는 것은 못 본다고 적습니다. 로그인 실패를 200·302 화면으로 돌려주는 서비스는 로그만으로 성공과 실패를 구분할 수 없어 「못 봄」으로 적고, 상담원·관리자의 업무 조회와 공격은 로그로 구별되지 않아 「위험」이 아니라 「주의」로 둡니다. 본인 확인 단계를 건너뛴 것 자체는 서비스의 흐름을 모르면 판정할 수 없어 추측해서 경보를 내지 않습니다.
  • IP 와 고객번호 원문은 남기지 않습니다. 요약에는 건수·출발지 수·주소 꼴만 들어가고, 로그는 PC 밖으로 나가지 않습니다.
  • 홈페이지 「정보유출 대비」에 금융·공공·쇼핑몰 운영자를 위한 항목을, 보안 가이드에 「AI 자동화 공격과 내부용 시스템 유출」 글을 더했습니다.
build 88 2026-10-02

내 웹서버 로그에서 SQL 인젝션 시도를 찾습니다 · 은행 등 금융권 정보유출 대비 안내를 늘렸습니다

  • 웹서버를 운영한다면, 접근 로그에서 SQL 인젝션 시도를 셉니다. 「내 사이트 탐침」이 지금까지는 경로만 보고 .env·백업 파일·관리 도구를 노린 요청을 셌는데, 이제 질의 문자열(<code>?id=</code> 뒤)까지 읽어 UNION SELECT, 항상 참 조건(' OR 1=1), 시간 지연(SLEEP·BENCHMARK), DB 구조 탐색(information_schema·xp_cmdshell), 오류 메시지로 빼내기를 찾습니다. URL 인코딩·이중 인코딩·주석으로 공백을 대신하는 우회도 풀어서 봅니다.
  • 서버가 오류(5xx)로 답한 시도는 따로 짚습니다. 공격 문자열이 DB 까지 가서 문법 오류를 냈을 때의 전형적인 모양이라, 그 경로가 입력을 쿼리에 그대로 이어 붙이는지 확인할 이유가 됩니다. 다만 로그만으로는 실제로 뚫렸는지 알 수 없어 「위험」이 아니라 「주의」로 적고, 무엇을 확인하고 고칠지(파라미터 바인딩·오류 메시지 숨기기·웹방화벽 규칙)를 함께 안내합니다.
  • 질의 문자열은 판정에만 쓰고 남기지 않습니다. 정상 요청의 검색어에는 개인 정보가 들어 있을 수 있어서, 요약에는 건수와 노린 경로만 남습니다. 로그에 질의 문자열이 없으면(IIS 의 cs-uri-query 열이 꺼진 경우 등) 「없음」이 아니라 「못 봄」으로 적습니다.
  • 홈페이지에 「정보유출 대비」 소개와 보안 가이드 24편(서비스 유출 대응, 금융사 고객정보 유출 경로 포함)을 더했습니다.
build 87 2026-10-01

「왜 데이터가 나가는가」를 영어로도 답합니다 · 침해 대응 계획이 두 가지를 더 짚습니다

  • 나가는 연결의 「왜」가 영어 화면에서도 보입니다. 이 제품의 존재 이유인 「어떤 프로그램이 왜 데이터를 보내는가」 판정이, 영어 화면에서는 분류 한 줄과 「한국어 상세를 보세요」뿐이었습니다. 이제 판정 엔진이 한국어와 같은 자리에서 같은 사실로 영어 문장을 함께 만들어, 요약과 확인할 점(처음 본 조합·자리 비운 사이 업로드·서명 불일치·DNS 변조 등)을 영어로 그대로 보여 줍니다.
  • 「근거 보기」도 영어로 나옵니다. 예약 작업·서비스·커널 드라이버·원격 제어 도구·브라우저 바로가기·확장·Windows 개인정보 설정·오탐 방지 완화 사유가 영어 화면에서 한국어로 나오던 것을 고쳤습니다. 예약 작업과 서비스, 바로가기 항목은 영어 상세문에도 한국어 근거가 섞여 있었습니다. 영어판이 없는 예전 기록은 한국어 문장을 숨기고 코드값만 보여 줍니다.
  • 침해 대응 계획이 원인 프로그램이 접속한 집 안 기기를 짚습니다. 확정된 침해가 있을 때, 그 원인 프로그램 자신이 집 안 기기의 파일 공유·원격 접속 포트에 붙어 있었다면 그 기기들을 이름 붙여 점검하라고 알립니다. PC 전체의 연결이 아니라 원인 프로그램의 연결만 보므로, 탐색기가 NAS 에 붙어 있는 평범한 연결은 끼어들지 않습니다.
  • 지금 꺼져 있는 방어를 다시 켜는 단계가 계획에 들어갑니다. 같은 검사에서 Defender 실시간 보호나 Windows 방화벽이 꺼져 있다고 확인되면 복구 단계에 「다시 켜기」를 넣습니다. 누가 껐는지는 이 검사로 알 수 없으므로 「침해가 껐다」고 단정하지 않습니다.
  • 홈페이지의 「정보 유출 감시」·「바이러스·랜섬웨어」 소개를 12개 언어로 고쳐, 「왜」 보내는지와 대응 순서까지 본다는 내용을 더했습니다.
build 86 2026-09-30

영어 화면에서 한국어가 사라졌습니다 · VS Code 설정 속 AI 도구까지 봅니다

  • 영어로 쓰시는 분도 이제 모든 판정의 이유를 영어로 봅니다. 지난 판까지 나가는 연결·집 안 기기·랜섬웨어·AI 기기·Wi‑Fi·알려진 취약 사례·공유기 무결성·가짜 AP·UPnP·내부망 공격·좀비 PC·카메라/마이크 사용 판정은 영어 화면에서 「See detail」 한 줄이나 한국어 문장이 그대로 나왔습니다. 판정을 만드는 자리에서 한국어와 영어 문장을 함께 만들도록 바꿔, 둘이 어긋나지 않게 했습니다. 알려진 취약 사례 36건의 설명·조치, 위험 포트 설명도 모두 영어로 옮겼습니다.
  • 자기보호 경보도 영어로 이유를 말합니다. 울타리 자신이 변조됐거나 신고 채널이 막혔을 때 뜨는 최고 경보가, 영어 화면에서는 이유 없이 「See detail」 만 보였습니다.
  • VS Code 설정 파일 속 AI 도구(MCP)를 읽습니다. 지금까지는 VS Code 의 mcp.json 만 봤는데, 사용자 settings.json 의 mcp.servers, Insiders 판, 프로필마다 있는 설정, 그리고 <b>받은 저장소의 .vscode/settings.json</b> 에 든 도구까지 봅니다. 저장소를 받으면 함께 들어와 편집기가 열 때 실행할 수 있는 자리이기 때문입니다. 이 파일은 편집기 설정 전체와 주석이 함께 들어 있어, 우리가 다시 쓰면 사용자 설정이 망가질 수 있으므로 「제거」 단추는 달지 않고 위치와 내용만 알려 드립니다.
  • 홈페이지 AI 보호 소개에 VS Code·Zed 설정과 받은 저장소의 설정까지 본다는 내용을 12개 언어로 더했습니다.
build 85 2026-09-30

만들어 두고 한 번도 돌지 않던 판정 5개를 켰습니다 · 프록시 자동 설정(PAC) 악용 탐지 · Zed 설정 읽기 · 영어 화면 정리

  • 있는 줄 알았던 판정이 실제로는 한 번도 돌지 않았습니다. 판단 규칙과 시험까지 있었지만 검사가 부르지 않던 것들을 이었습니다. 이제 <b>공유기 주소를 다른 기기가 함께 쓰는 정황</b>(통신 가로채기, ARP)과 <b>카메라·스마트홈 기기가 이 PC 의 공유 폴더·원격 접속을 두드리는 것</b>(기기 간 확산)을 알립니다. 복합기의 「스캔해서 공유 폴더에 저장」, NAS 백업, TV 의 공유 폴더 재생처럼 정상적인 접속은 제외했고, 종류를 모르는 기기는 단정하지 않습니다. Wi‑Fi 중계기 뒤에서 생기는 모양도 공격으로 부르지 않습니다.
  • 울타리가 저장한 비교 기준 파일이 울타리 밖에서 바뀌면 알립니다. 설정·확장 변화 감시가 쓰는 기준을 누가 몰래 고쳐 변화를 감추는 것을 막기 위한 경보선입니다. 같은 권한의 프로그램은 기록까지 함께 고칠 수 있으므로 「막는 장치」가 아니라 「알아채는 장치」라고 적어 둡니다. 망 분리 권고는 이미 더 정교한 쪽이 돌고 있어, 쓰이지 않던 중복 규칙은 지웠습니다.
  • 프록시 자동 설정(PAC) 악용을 찾습니다. 광고·정보 탈취 악성코드는 PC 의 자동 프록시 설정에 스크립트를 걸어 <b>은행·로그인·가상자산 사이트로 가는 통신만</b> 자기 서버로 돌립니다. 사용자·PC 전체·정책 설정 네 곳과 WinHTTP·WPAD 를 보고, PC 안에 있는 PAC 파일은 내용까지 읽습니다(실행하지 않습니다). 그런 표적형 스크립트는 위험으로, 로컬 파일·루프백·공인 IP·난독화는 주의로 알리며, 회사·학교가 관리하는 PC 의 정책 설정은 참고로만 보여 줍니다. 해제는 백업 후 실행하고 되돌릴 수 있습니다.
  • Zed·VS Code 설정 파일을 제대로 읽습니다. 이 편집기들의 설정은 주석과 끝 쉼표를 허용하는데, 지금까지는 읽다가 실패해 <b>아무것도 없는 것처럼</b> 넘어갔습니다. 이제 주석을 걷어 내고 읽으며, 그래도 못 읽으면 「못 봄」으로 적습니다. 큰 설정 파일도 건너뛰지 않고, 프로젝트 폴더의 .zed/settings.json 도 봅니다.
  • 영어 화면에 한국어가 섞이지 않게 했습니다. 건너뛴 항목과 「못 봄」 사유, 홈 네트워크 변화, 공유기 설정, 대응 계획, 정리·브라우저·쿠키·설치 프로그램 설명이 영어로 나옵니다. 일부 기기·네트워크 판정의 상세 문구는 아직 한국어만 있어, 다음 판에서 이어서 옮깁니다.
  • 홈페이지: 결제·오류 창이 열리면 초점이 창 안으로 들어가 Tab 이 밖으로 새지 않고, Esc 로 닫으면 원래 자리로 돌아갑니다(라이선스 키는 그대로 남습니다). 휴대폰에서는 단추·링크의 누르는 자리를 44px 이상으로 넓혔습니다. winget 으로 설치할 때 가리키는 판은 옛 빌드 정리에서 지우지 않습니다.
build 84 2026-09-29

못 본 것은 「못 봄」이라고 말합니다 · 정의 팩 조치의 내용까지 확인합니다 · 배포 과정 잠금 강화

  • 검사가 읽어 오지 못한 것을 「이상 없음」으로 보이지 않습니다. Windows 보호 태세·백업·로그온 기록·프로세스 목록·루트 인증서·로컬 계정·Defender 탐지 이력·휴지통을 읽는 명령이 실패하거나 아무것도 돌려주지 않으면, 지금까지는 찾은 것이 없으니 깨끗하다고 보였습니다. 이제 그 항목을 <b>「못 봄 — 이유」</b>로 적고, 그 판은 초록 「안전」 대신 「일부 항목을 보지 못했습니다」로 보여 주며, 지난 검사와 비교할 때 보지 못한 항목을 「해결됨」으로 세지 않습니다.
  • 서버에서 받은 정의 팩의 조치를 종류만이 아니라 내용까지 확인합니다. 방화벽 차단은 사용자 폴더의 절대 경로이고 Windows·울타리 자신의 보호 파일이 아닐 때만, 주소 차단은 공인 IPv4 한 개일 때만, 브라우저 확장 제거는 확장 ID 형식일 때만 받습니다. 프로세스 종료는 정의 팩에서 아예 받지 않습니다. 서명된 팩이라도 한 겹 더 막아 둡니다.
  • 조치 자체도 더 조심합니다. 확장 ID 에 경로 문자(..·\·/)가 섞이면 확장 폴더 밖을 건드리지 않도록 거부하고, 대상 프로그램 이름을 모르는 프로세스는 PID 만으로 끝내지 않습니다(그 사이 다른 프로그램이 같은 번호를 받았을 수 있습니다). 공유기(UPnP) 응답은 1MB·10초를 넘으면 버립니다.
  • 배포 과정을 잠갔습니다. 서명 라이브러리 판과 해시를 고정하고, 만든 파일이 서명돼 있는지뿐 아니라 <b>서명자가 정확히 PROJECTTEAMFORYOU 인지</b>, 설치 파일 안의 본체까지 확인합니다. 이미 게시한 빌드 번호로는 다시 배포하지 않습니다 — 다시 만들면 해시가 달라져 이미 받은 분의 자기보호 대조가 어긋나기 때문입니다.
  • 이번 주 서버 변경: 원격 센서 로그의 IP 를 /24 대역+해시로 가명 처리(기존 기록 포함)하고 개인정보 처리방침(12개 언어)에 적었습니다. 좌석 수 동시 등록 경합, 결제 취소 알림의 상태 재확인, 비밀번호 해시를 별도 스레드로, 관리자 토큰을 주소창(?token=)으로 받지 않기, 주문 조회 응답 통일을 고쳤습니다.
  • 홈페이지 자주 묻는 질문 「화면이 켜짐·조치함이라고 하면 정말 그런가요」 답변(12개 언어)에 「못 봄」 표시를 더했습니다.
build 83 2026-09-29

검사가 겹쳐도 결과를 잃지 않습니다 · 일부만 된 조치는 그렇다고 말합니다 · 화면 낭독기 지원

  • 예약된 자율 검사와 직접 누른 검사가 겹쳐 돌던 문제를 고쳤습니다. 두 검사가 서로를 모른 채 동시에 돌며 결과를 덮어쓰고, 화면은 진행이 멈추거나 「이미 진행 중」 오류로 끝났습니다. 이제 한 번에 하나만 돌고, 이미 도는 검사가 있으면 오류 대신 <b>그 검사에 연결해</b> 끝나면 결과를 보여 드립니다. 검사 중에 창을 새로 열어도(F5 등) 진행에 다시 붙습니다. 직접 검사하는 중에 예약 검사 시간이 되면 이번 차례는 건너뛰고 다음에 따라잡습니다.
  • 일부만 된 조치를 초록색 「처리했습니다」로 보여 주지 않습니다. 건너뛴 것이 있으면 주의색으로 「n건 처리, m건은 실행하지 못함」을, 하나도 안 됐으면 「실행하지 못했습니다 — 아무것도 바꾸지 않았습니다」를 보여 주고, 결과 표에는 알아보기 어려운 ID 대신 항목 이름을 적습니다.
  • 화면 낭독기로도 쓸 수 있습니다. 설정 스위치마다 제목과 설명을 잇고, 결과의 선택 칸에 「조치 대상으로 선택: 항목 이름」을 붙였습니다. 검사 진행 막대는 진행률을 읽어 주고, 긴급 경보 창이 뜨면 초점이 창 안으로 옮겨져 바로 읽히며 Tab 이 창 밖으로 새지 않고, 닫으면 원래 자리로 돌아갑니다.
  • 홈페이지 자주 묻는 질문 「화면이 켜짐·조치함이라고 하면 정말 그런가요」 답변(12개 언어)에 일부만 된 경우의 표시와 화면 낭독기 지원을 더했습니다.
build 82 2026-09-29

화면이 실제로 된 것만 말합니다 · 원격 제어 도구를 더 알아봅니다 · AI 권한 예산에 프로젝트 설정 포함

  • 이번 판은 「화면이 사실과 다르게 말하던 곳」 네 군데를 고쳤습니다. 보안 프로그램에서 가장 나쁜 실패는 지켜지지 않는데 지켜지는 줄 알게 만드는 것입니다.
  • 경보에서 「조치」를 눌렀을 때 실제 결과를 봅니다. 지금까지는 결과를 확인하지 않고 「조치를 실행했습니다」라고 말하며 경보까지 내렸습니다. 백업이 실패하거나 권한이 없어 한 건도 실행되지 않은 경우에도 경보가 사라졌습니다. 이제 실행된 것이 없으면 <b>「실행하지 못했습니다」와 그 이유</b>를 보여 주고 경보를 그대로 둡니다. 다시 누를 수도 있습니다.
  • SKYNET(자동 차단)이 규칙 0건인데 「켜짐」으로 보이던 문제를 고쳤습니다. 관리자 권한인지를 설정 스위치로 판단해, 스위치만 켜진 일반 권한 실행에서도 「걸 수 있음」으로 보였고 실제로는 방화벽 규칙이 하나도 걸리지 않았습니다. 이제 <b>실제 실행 권한</b>으로 확인하고, 규칙을 하나도 걸지 못하면 켜지 않은 채 이유를 알려 드립니다.
  • 파일만 끌어다 놓은 상태에서 A등급을 주지 않습니다. 전체 검사 전에 파일 몇 개를 끌어다 놓으면 빈 결과가 「검사 완료·안전(A)」으로 보였습니다. 이제 그 상태에서는 등급을 매기지 않고 「끌어다 놓은 파일만 검사했습니다」라고 적습니다. 설정 저장이 실패하면 화면만 바뀐 채 넘어가던 것도, 이제 알리고 저장된 값으로 되돌립니다.
  • 원격 제어 도구를 더 알아봅니다. SuperOps·PDQ Connect·Level·SimpleHelp·SyncroLive·Zoho Assist·RemotePC·MeshCentral Assistant 와 ScreenConnect 클라이언트를 더했습니다. <b>제조사 문서나 공개 목록(LOLRMM)에서 확인한 실행 파일 이름만</b> 넣었고, 흔한 이름(예: level.exe)은 설치 경로까지 맞을 때만 알립니다. 국내 게임사 프로그램과 이름이 같은 NinjaOne 구성 요소 하나는 오탐을 막기 위해 일부러 넣지 않았습니다.
  • AI 권한 예산 카드가 프로젝트 폴더 설정까지 셉니다. 지난 판부터 검사는 저장소 안의 MCP 설정(.mcp.json 등)을 보고 있었지만, AI 화면의 권한 예산 카드에는 빠져 있었습니다. 이제 함께 세고, 그중 몇 개가 받은 저장소에서 왔는지 따로 보여 줍니다.
  • 홈페이지 자주 묻는 질문에 「화면이 켜짐·조치함이라고 하면 정말 그런가요」를 12개 언어로 더했습니다.
build 81 2026-09-29

울타리 자신이 공격 통로가 되지 않게 · 로그인 쿠키 탈취와 가짜 AI 설치 파일을 찾습니다 · AI 코딩 에이전트 훅 감시

  • 이번 판은 세 갈래입니다. 울타리 자신이 공격 통로가 될 수 있던 자리 네 곳을 막았고, 요즘 가장 흔한 공격 여섯 가지를 새로 찾으며, 개인정보처리방침의 약속과 실제 동작을 맞췄습니다.
  • 자동 업데이트의 바꿔치기를 막았습니다. 받은 설치 파일을 누구나 쓸 수 있는 임시 폴더에 두고 확인한 뒤 실행했기 때문에, 일반 권한 악성코드가 확인과 실행 사이에 파일을 바꾸거나 옆에 DLL 을 심으면 우리가 띄운 설치가 그것을 실행해 줄 수 있었습니다. 이제 관리자 권한일 때는 <b>관리자만 쓸 수 있는 폴더</b>에, 아니면 매번 새로 만든 빈 폴더에 두고, 쓰기·삭제를 막은 채 설치를 띄울 때까지 쥐고 있으며, 잠근 뒤 한 번 더 해시를 대조합니다. 서명자 이름도 「포함」이 아니라 정확히 PROJECTTEAMFORYOU 여야 합니다.
  • 옛 업데이트 정보를 계속 내주는 동결 공격을 알아챕니다. 업데이트 정보의 서명은 게시 때 한 번 만들어져 영원히 유효했습니다. 누군가 예전의 정상 응답을 계속 내주면 사용자는 보안 패치가 나온 줄 몰랐습니다. 이제 서버가 응답할 때마다 발행·만료 시각을 새로 서명하고, 앱은 그 서명이 맞고 기한 안일 때만 「최신입니다」라고 말합니다. 아니면 「최신인지 확인하지 못했습니다」라고 사실대로 적습니다.
  • 관리자 권한 명령을 속여 실행하게 하는 길을 막았습니다. 설치 프로그램 목록을 세 레지스트리 위치에서 한 덩어리로 읽어 줄 머리로 출처를 정했기 때문에, 일반 권한 프로그램이 자기 값 안에 줄바꿈과 가짜 시스템 경로 줄을 넣으면 시스템 프로그램처럼 보일 수 있었습니다. 이제 위치마다 따로 읽고 출처는 <b>우리가 조회한 위치</b>가 정합니다. 릴리스 과정에서 빌드 번호를 건너뛰면 게시 중인 직전 판을 지울 수 있던 정리 규칙도 고쳤습니다.
  • 새 탐지: 로그인 쿠키 탈취. 쿠키 파일을 직접 풀기 어려워지자 정보 탈취 악성코드는 브라우저를 화면 없이 원격 조종 포트로 몰래 띄워 브라우저에게 쿠키를 달라고 합니다. 울타리는 그 브라우저를 <b>누가 띄웠는지</b> 봅니다. 개발 도구(Node·Python·VS Code)는 조용히 두고, 스크립트나 사용자 폴더의 이름 모를 프로그램이면 알립니다. 끄기는 화면 없는 인스턴스만 제안하고, 쿠키가 이미 나갔는지는 PC 안에서 볼 수 없다고 적은 뒤 모든 기기 로그아웃을 안내합니다.
  • 새 탐지: 가짜 AI 앱 설치 파일. ChatGPT·Claude·Gemini 같은 이름을 단 설치 파일이 제작사 서명 없이 있으면 알리고, Windows 가 파일에 기록해 둔 <b>받은 주소</b>를 함께 보여 줍니다(주소의 토큰은 지웁니다). 공식 Windows 설치 파일이 없는 서비스는 그렇다고 적습니다. 비공식 클라이언트도 있으므로 주의 등급까지만 올리고 격리는 기본 선택하지 않습니다.
  • 새 탐지: AI 코딩 에이전트 훅과 프로젝트 MCP 설정. Claude Code·Cursor 는 도구를 쓰기 전후에 명령(훅)을 자동으로 실행합니다. 받은 저장소 안의 설정에 그런 명령이 심겨 있으면 폴더를 여는 것만으로 실행됩니다. 인터넷에서 받아 바로 실행하는 명령, 인코딩된 PowerShell, SSH 키·.env 같은 비밀을 밖으로 보내는 명령은 확정 근거로, 붙여넣기·터널 주소나 날 IP 는 의심 신호로 보여 줍니다. 포매터·린터 같은 평범한 훅은 조용히 둡니다. 프로젝트 폴더의 MCP 서버 설정도 사용자 설정과 같은 기준으로 봅니다.
  • 원격 제어 도구와 무차별 대입. 원격 제어 목록에 NinjaOne·Syncro·ITarian·GoTo Resolve·Action1·SimpleHelp·Splashtop 을 더했고, 서로 다른 원격 도구가 여러 개 설치된 「예비 출입구」 모양을 알려 줍니다. RDP 무차별 대입은 이제 가장 많이 시도한 <b>공인 IP 한 곳을 방화벽으로 막는 조치</b>를 제안합니다(되돌리기 가능). 집 안 기기나, 같은 주소에서 로그인에 성공한 적이 있는 경우(본인일 수 있음)는 막지 않습니다.
  • Windows 보호 태세에 세 가지를 더했습니다. 보안 부팅(부트킷 방어), 스마트 앱 컨트롤, 공격 표면 축소(ASR) 규칙입니다. ASR 은 오탐이 거의 없는 두 규칙(LSASS 비밀번호 탈취 차단·취약 서명 드라이버 차단)을 켜는 명령과 끄는 방법을 함께 적었고, 다른 백신이 검사를 맡고 있으면 말하지 않습니다.
  • 계정을 직접 지울 수 있습니다. 개인정보처리방침은 계정 삭제를 약속했는데 그 길이 없었습니다. 이제 「내 계정」 화면에서 비밀번호를 다시 입력하면(구글 계정은 10분 안에 다시 로그인하면) 계정·모든 기기의 로그인·「내 사이트」 기록이 한 번에 지워집니다. 법으로 5년 보관해야 하는 결제·세금계산서 기록은 이메일을 되돌릴 수 없는 값으로 바꿔 <b>연결을 끊은 뒤</b> 남기고, 5년이 지나면 서버가 자동으로 파기합니다. 무엇을 남겼는지는 삭제 완료 화면에 그대로 보여 드립니다. 사용 기간이 남은 상업용 라이선스가 있으면 돈과 권리를 함께 잃지 않도록 화면에서는 막고 환불 안내로 연결합니다.
  • 개인정보처리방침(12개 언어)을 실제와 맞췄습니다. 파기 절차와 방법 절을 새로 넣었고, 한국어판에만 있던 신고·상담 기관을 모든 언어에 같게 적었습니다(개인정보침해신고센터 118·개인정보분쟁조정위원회 1833-6972·대검찰청 1301·경찰청 182). 로그인 쿠키 속성도 실제 값(SameSite=Lax)으로 고쳤습니다. 사이트를 지우면 그 사이트의 방문 기록도 함께 지우고, 예전에 남아 있던 것은 매일 정리합니다.
  • 「내 계정」·「내 사이트」·MCP 점검 화면이 눌러도 반응하지 않던 문제를 고쳤습니다. 보안 정책(CSP)을 강화하면서 이 세 화면의 스크립트에 허용 표시가 빠져 브라우저가 스크립트를 막고 있었습니다. 로그인·가입도 이 화면에서 하므로 영향이 컸습니다 — 죄송합니다. 같은 일이 다시 생기지 않게 스크립트가 있는 모든 화면을 검사하는 테스트를 더했습니다. 게시 직후에는 구글로 로그인해도 다시 로그인 화면으로 돌아오는 문제가 드러났습니다 — 로그인 응답이 쿠키 두 개를 보내는데 뒤의 것이 세션 쿠키를 덮어쓰고 있었습니다. 서버에서 바로 고쳤습니다(앱 업데이트 필요 없음).
  • 홈페이지 자주 묻는 질문에 「로그인 쿠키를 훔쳐 가는 악성코드도 찾나요」와 「보안 프로그램 자체가 공격 통로가 되지는 않나요」를 12개 언어로 더했습니다.
build 80 2026-09-28

되돌리기가 앱을 다시 켜도, 여러 번 조치해도 남습니다 · 옛 판 업데이트를 위조로 부르지 않습니다

  • 지난 판에 「아직 못 한 것」으로 적어 둔 세 가지를 이번 판에서 했습니다. 되돌리기 기록을 디스크에 남기는 일, 같은 자리의 백업이 서로 덮어쓰던 문제, 관리자가 이전 판으로 되돌린 업데이트를 위조로 알리던 문제입니다.
  • 되돌리기가 앱을 다시 켜도 남습니다. 지금까지는 마지막 조치 한 번분만, 앱이 켜져 있는 동안만 되돌릴 수 있었습니다. 재부팅이나 업데이트 한 번이면 앞의 조치는 백업이 디스크에 있어도 닿을 길이 없었습니다. 이제 최근 20번까지 가장 최근 것부터 차례로 되돌립니다. 되돌릴 기록이 있으면 앱을 켤 때 「되돌리기」 버튼이 바로 켜집니다.
  • 그 기록을 다른 프로그램이 지어낼 수 없게 했습니다. 되돌리기는 관리자 권한으로 파일을 원 자리에 쓰고 레지스트리를 되살립니다. 기록이 아무나 쓸 수 있는 곳에 있으면 악성코드가 기록을 지어내 두고 사용자가 버튼을 누르기를 기다리면 됩니다 — 저희가 그 대신 관리자 권한으로 일을 해 주게 됩니다. 그래서 관리자 권한으로 한 조치의 기록은 <b>관리자만 쓸 수 있는 폴더</b>에 두고, 읽을 때마다 소유자와 권한을 다시 확인합니다. 일반 권한으로 한 조치의 기록은 일반 권한일 때만 되돌리고, 거기에 관리자 권한이 필요한 항목이 섞여 있으면 지어낸 것으로 보고 빼며 그 사실을 보여 드립니다. 그 폴더를 누가 먼저 만들어 두거나 다른 곳으로 이어 두었다면 쓰지 않습니다.
  • 백업이 서로 덮어쓰지 않습니다. 같은 레지스트리 키에서 값 여러 개를 지우거나 같은 파일을 두 번 고치면, 두 번째 백업이 첫 번째 자리를 덮어써 원래 상태가 사라질 수 있었습니다. 이제 조치마다 백업이 따로 남고, 되돌리기는 조치의 역순으로 원래 상태까지 돌아갑니다.
  • 되돌릴 때 백업을 다시 확인합니다. 백업 파일이 백업 폴더 안에 있는지, 기록한 지문(SHA-256)과 같은지 봅니다. 레지스트리 백업은 <b>그 키 밖을 건드리는 내용이 한 줄이라도 있으면</b> 가져오지 않습니다. 격리한 파일을 복원할 때도 격리할 때 남긴 지문과 크기를 대조해, 격리함 안에서 파일이 바꿔치기됐으면 복원하지 않습니다.
  • 옛 판 업데이트를 「위조」로 부르지 않습니다. 서버가 문제가 있는 판을 내리고 직전 판을 다시 게시하면, 이미 새 판을 받은 PC 는 그 업데이트를 거절합니다(옛 판으로 내려가지 않는 것이 맞습니다). 그런데 그 거절을 자기보호가 「위조 업데이트」 긴급 경보로 올려, 모든 설치본에서 경보가 울릴 수 있었습니다. 이제 긴급 경보는 <b>서명이 맞지 않거나 믿을 수 없는 키로 서명된 경우</b>에만 냅니다. 업데이트 화면도 두 경우를 나눠, 서버가 지금보다 낮은 판을 내주고 있는 것인지 서명이 맞지 않는 것인지 그대로 적습니다.
  • 홈페이지 자주 묻는 질문의 되돌리기 답변(12개 언어)에 재시작 뒤에도 되돌릴 수 있다는 것과 권한별로 기록을 나눠 보관하는 이유를 더했습니다.
build 79 2026-09-28

끊으면 안 되는 기기는 끊지 않습니다 · 가짜 인증 화면이 붙여넣게 한 명령을 찾습니다 · 오탐 여섯 가지를 없앴습니다

  • 이번 판은 스무 갈래로 나눠 제품 전체를 다시 읽고 나온 결과입니다. 죽어 있는 탐지, 멀쩡한 프로그램을 잡는 오탐, 되돌리기, 입력 신뢰 경계, 개인정보 약속, 배포 과정, 최신 위협까지 각각 따로 봤고, 코드로 확인된 것만 고쳤습니다. 가장 무거운 것부터 적습니다.
  • 카메라와 월패드는 이제 어떤 버튼으로도 끊기지 않습니다. 「전체 차단」을 누르면 집 안 기기를 공유기에서 떼어 내는데, 지금까지는 CCTV·도어벨·월패드도 함께 끊겼습니다. 이상 징후를 느껴 그 버튼을 누르는 순간이 곧 침입이 진행 중인 순간일 수 있습니다 — 그때 <b>녹화가 멈추고 화재·가스 경보가 끊기면</b> 안 됩니다. 「취침 시간 차단」도 같은 이유로 막았습니다(심야는 침입이 가장 잦은 시간입니다). 경고는 그대로 보여 드리고, 정말 끊어야 한다면 공유기 화면에서 직접 하시도록 안내합니다. 제조사 서버만 허용하는 「연결 제한」은 녹화를 끊지 않으므로 그대로 쓸 수 있습니다.
  • 「검사하고 바로 처리」가 저희가 일부러 보류한 조치까지 실행하던 것을 고쳤습니다. 위험 등급이라도 근거가 의심 수준이거나 되돌리기 어려운 조치(대응 계획의 네트워크 격리, 금융 보안 모듈 제거 등)는 기본 선택하지 않도록 만들어 두었는데, 버튼이 「위험이면 전부」로 다시 골라 담고 있었습니다. 이제 엔진이 고른 것만 실행합니다. 검사가 실패하면 예전 결과로 조치하지도 않습니다.
  • 새 탐지: 붙여넣기 실행(ClickFix). 요즘 가장 흔한 감염 경로입니다. 가짜 CAPTCHA·가짜 오류 화면이 「사람인지 확인하려면 Win+R 을 누르고 붙여넣으세요」라고 시키고, 클립보드에는 이미 명령이 들어 있습니다. 사용자가 직접 실행하니 다운로드 경고도 없습니다. 울타리는 실행 창과 PowerShell 기록에 남은 흔적에서 <b>실행 도구가 인터넷에서 받아 곧바로 실행하는 명령</b>이나 <b>「로봇이 아닙니다」 같은 미끼 문구가 붙은 명령</b>을 찾아 보여 드립니다. 개발자가 흔히 치는 설치 명령은 조용히 둡니다. 기록에 섞인 토큰은 가려서 보여 주고, 원문은 저장하지 않습니다.
  • 새 탐지 두 가지 더. 바로가기(.lnk) 인자 앞에 공백을 수백 개 채워 속성 창에서 명령을 숨기는 수법, 그리고 Defender 가 검사하지 않도록 드라이브 전체·다운로드 폴더·실행 파일 확장자를 빼 둔 설정입니다. 악성코드가 Defender 를 끄는 대신 자기 자리만 이렇게 빼 두는 경우가 많습니다. 흔한 게임·개발 폴더 제외는 참고로만 모아 보여 드립니다. 취약한 판으로 보는 기준도 올렸습니다 — WinRAR 은 7.13 미만(CVE-2025-8088), 취약 드라이버에 ThrottleStop 옛 판과 국내 게임에 흔한 XIGNCODE3 드라이버를 더했습니다.
  • 오탐 여섯 가지를 없앴습니다. ① 매일 자동 검사를 켜 두면 OneDrive·메신저처럼 늘 붙어 있는 프로그램이 전부 「규칙적으로 접속하는 콜백」으로 보였습니다 — 저희가 잰 간격이 그 프로그램의 주기가 아니라 <b>저희 검사 주기</b>였습니다. 이 방식으로는 볼 수 없는 것이라 말하지 않습니다. ② 회사 프록시를 이름으로 적어 둔 PC 가 「위험」으로 뜨고 프록시 초기화가 기본 선택돼 회사 인터넷이 끊길 수 있었습니다. ③ VS Code·Cursor 확장과 게임 MOD 가 전부 「주의」로 떴습니다. ④ Adobe 처럼 설치 프로그램이 넣어 준 스토어 확장이 「끼워팔기」로 보였습니다. ⑤ 사용자 이름이 한글인 PC 에서 자기보호가 매번 「자리를 빼앗겼다」고 헛경보를 냈고, ⑥ 한국어 Windows 에서 성공한 되돌리기가 실패로 보고됐습니다.
  • 숨을 자리를 줄였습니다. `svchost.exe` 같은 시스템 파일 이름만 빌려 사용자 폴더에 앉은 파일이, 이름 때문에 보호 목록에 들어가 격리도 차단도 거부되고 있었습니다. 이제 이름이 아니라 <b>실제 Windows 폴더에 있는지</b>로 봅니다. 시스템 폴더 허용 목록도 경로 중간에서 폴더 이름만 흉내 내면 통과하던 것을 드라이브 루트 기준으로 고정했습니다. 저희가 부르는 시스템 도구는 이제 전부 System32 의 절대 경로로 실행합니다.
  • 개인정보 약속과 실제를 맞췄습니다. 판단이 애매한 파일의 지문(SHA-256)·서명자 이름을 보내 오탐을 줄이는 기능이 기본으로 켜진 체크인에 묶여 있었습니다. 동의 화면은 「숫자만 보낸다」고 했으니 약속과 어긋났습니다. 이제 <b>익명 통계를 직접 켜신 경우에만</b> 보내고, 설정 설명과 개인정보처리방침(12개 언어)에 그대로 적었습니다. 방침이 약속한 「익명 통계 180일 뒤 자동 삭제」도 실제로는 도는 곳이 없었습니다 — 이제 서버가 하루 한 번 지웁니다.
  • 처음 켜면 Windows 언어를 따릅니다. 동의 화면은 12개 언어로 떴는데 그 다음 화면은 한국어였습니다. 이제 언어를 고른 적이 없으면 Windows 표시 언어가 한국어일 때만 한국어, 아니면 영어로 시작합니다. 되돌리기 결과는 세 화면 모두 실패한 항목을 이유와 함께 보여 주고, 같은 기록을 두 번 되돌리지 않습니다.
  • 아직 못 한 것도 적어 둡니다. 되돌리기 기록은 여전히 마지막 한 번분만, 앱이 켜져 있는 동안만 남습니다(파일에 남기면 그 파일을 바꿔치기해 관리자 권한으로 무언가를 되돌리게 만들 수 있어서, 무결성 보호와 함께 다음 판에서 합니다). 같은 레지스트리 키에서 값 여러 개를 지우면 앞의 백업이 덮어써지는 문제, 확장 코드만 바뀐 갱신을 보지 못하는 한계도 남아 있습니다.
  • 홈페이지는 10개 언어에서 빠져 있던 문구(업데이트 소식 제목·안내 링크)를 채웠고, 일본어·중국어 본문에 섞여 있던 한글, 프랑스어 생략 부호, 이미지 설명이 화면 낭독기에서 깨지던 문제, 키보드로 언어를 고를 때 페이지가 바로 넘어가던 문제를 고쳤습니다.
build 78 2026-09-22

직접 깔아 주신 것들을 봅니다 — 확장·플러그인·게임 MOD 가 설치 뒤에 바뀌지 않았는지, 그리고 광고 차단기를 오탐하던 것을 고쳤습니다

  • 이번 판은 지금까지 아무도 보지 않던 통로 하나를 엽니다 — 사용자가 스스로 「추가」를 눌러 들여놓은 코드입니다. 브라우저 확장, 편집기·AI 코딩 플러그인, 게임 MOD, 그리고 확장이 부를 수 있는 로컬 프로그램(네이티브 연결 호스트) 네 가지입니다. 백신도 저희도 이것들을 통과시켜 왔습니다. 사용자가 동의했다는 이유로요.
  • 그런데 이 경로의 사고는 전부 같은 모양입니다. <b>설치할 때는 정말로 멀쩡했습니다.</b> 심사를 통과했고, 하는 일도 광고를 지우거나 색을 골라 주는 것이었습니다. 나중에 바뀌었습니다 — 개발자 계정이 피싱으로 넘어가거나, 확장이 통째로 팔리거나, 스토어 밖 주소에서 새 코드가 내려왔습니다. 그리고 <b>그 순간 이미 모든 권한을 갖고 있었습니다.</b> 사용자는 작년에 한 번 동의했고, 그 뒤로 아무도 다시 묻지 않았습니다.
  • 그래서 이 점검은 「이 확장이 악성입니까」를 묻지 않습니다. 저희는 그걸 알 수 없고, 안다고 우기면 멀쩡한 개발자의 확장에 딱지를 붙이게 됩니다. 대신 실제로 볼 수 있는 셋만 봅니다 — <b>무엇을 할 수 있게 선언돼 있나(능력), 어디서 왔고 앞으로 코드를 어디서 받나(출처), 그리고 어제와 무엇이 달라졌나(변화).</b>
  • 셋 중 <b>변화가 핵심</b>입니다. 사고가 난 확장들은 「스토어에서 받았나」로 하나도 걸러지지 않았습니다 — 전부 스토어에서 받은 것이고, 전부 서명이 유효했고, 「인증됨」 딱지와 별점까지 정상이었습니다. 이 컴퓨터에서 실제로 볼 수 있는 것은 <b>판과 판 사이의 차이</b> 하나뿐입니다. 그래서 확장 목록을 저장해 두고, 갱신되면서 권한이 늘었는지 · 페이지에 손대는 범위가 넓어졌는지 · 갱신 주소가 심사받지 않는 곳으로 옮겨갔는지를 봅니다. 설치할 때 동의한 범위를 넘어서면 그때 알려 드립니다.
  • AI 를 쓰실 때를 특히 신경 썼습니다. 화면에 떠 있는 AI 대화는 페이지 안에서 도는 확장에게 그대로 읽힙니다 — 주고받은 내용도, 붙여 넣은 문서도, 실수로 적은 API 키도요. 그래서 확장이 AI 대화 서비스·인터넷 뱅킹·가상자산 거래소·웹메일·계정 로그인 화면을 <b>콕 집어 겨냥하고 있는지</b>를 따로 봅니다. 모든 사이트에서 도는 것(광고 차단기가 그렇습니다)과, 그 화면만 노리고 들어오는 것은 다른 이야기입니다. 페이지 자신의 코드와 같은 자리에서 도는 경우는 한 단계 더 올립니다 — 그 자리에서는 내용이 서버로 가기 전에 가로챌 수 있습니다.
  • 권한 목록이 없는 것들은 「안전」이 아니라 「제한 없음」입니다. 편집기 플러그인·게임 MOD·네이티브 연결 호스트에는 브라우저 확장 같은 권한 목록이 아예 없습니다. 없어서 안전한 것이 아니라, 설치되는 순간 <b>사용자 권한 전부</b>를 갖기 때문입니다. 화면에 그렇게 적습니다. 다만 저희가 대신 지우지는 않습니다 — 편집기 확장은 편집기에서, MOD 는 격리(되돌릴 수 있습니다)로 다룹니다.
  • 설치 기록 자체가 위조된 경우도 봅니다. 브라우저 설정 파일에는 무결성 표시가 붙지만, 그 서명 키가 브라우저 안에 공개된 값이라 악성코드가 다시 계산해 넣을 수 있습니다. 그래서 그 표시는 「건드려졌다」만 말할 수 있고 「괜찮다」는 말하지 못합니다 — 맞다고 안전하다 적지 않습니다. 대신 스토어가 함께 넣어 주는 서명 해시 목록은 위조 설치에 <b>애초에 없습니다.</b> 스토어에서 받았다고 기록돼 있는데 그게 없으면, 기록이 위조된 것입니다.
  • 「조직에서 관리하는 브라우저입니다」가 집 컴퓨터에 떠 있으면 그건 회사가 아닙니다. 기업용 강제설치 정책을 쓰면 사용자가 브라우저 화면에서 확장을 지울 수 없게 됩니다 — 검색 하이재커들이 오래전부터 쓰는 수법입니다. 다만 회사 노트북에서는 지극히 정상이라, <b>이 PC 가 조직 관리 대상인지 먼저 확인한 뒤에만</b> 알려 드립니다. 이 전제를 빼면 업무용으로 쓰시는 분들이 전원 헛경보를 봅니다.
  • 오탐 하나를 고쳤습니다. 이건 저희 잘못이었습니다. 지난 판까지 「넓은 권한 + 민감한 기능」이라는 조건 하나로 주의를 띄웠는데, <b>그 조건을 광고 차단기가 정확히 만족합니다.</b> uBlock Origin 을 쓰시는 분은 전부 이 경고를 보셨을 겁니다. 원인은 저희가 세 가지를 한 칸에 넣어 둔 것이었습니다 — 요즘 광고 차단기가 쓰는 방식은 규칙을 미리 적어 두면 브라우저가 대신 적용하는 것이라 <b>확장은 오가는 요청을 볼 수 없습니다.</b> 차단은 하되 훔쳐보지는 못하는데, 요청 내용을 그대로 받아 가는 옛 방식과 같이 세고 있었습니다. 이제 셋을 구분합니다. 비밀번호 관리자처럼 모든 로그인 화면에 손을 대야 하는 확장도 마찬가지로, 그것이 본업이면 발견으로 만들지 않습니다.
  • 경고가 한 번 틀리면 다음 경고도 안 읽힙니다. 그래서 이 점검의 기본값은 <b>조용한 쪽</b>입니다. 스토어에서 받아 오래 써 온 확장은 권한이 넓어도 그냥 두고, <b>같은 권한이 갑자기 늘어났을 때</b>만 말합니다. 조치도 기본 선택하지 않습니다 — 사용자가 동의해 설치하신 것이고, 없애는 결정도 사용자 것입니다. 확장을 내리면 폴더는 백업되고 언제든 되돌릴 수 있습니다.
  • 못 보는 것은 못 본다고 적습니다. 확장 코드를 읽어 악성 여부를 판정하지는 않습니다 — 난독화된 수 MB 짜리 코드를 정적 분석해 「악성」이라 단정하는 것은 저희가 할 수 있는 일이 아니고, 틀리면 남의 제품에 대한 명예훼손입니다. 복사한 가상자산 주소를 바꿔치기하는 수법은 <b>권한을 하나도 선언하지 않고도</b> 되기 때문에 권한 목록으로는 영원히 잡히지 않습니다. MOD 로더가 게임 안에 무엇을 넣는지도 보지 않습니다 — 그걸 보려면 남의 프로그램 안에 끼어들어야 하는데, 그건 저희가 <b>탐지하는 쪽</b>의 행동입니다. 이 한계들은 프로그램 안에도 적어 뒀습니다.
  • 홈페이지에는 확장·플러그인·MOD 점검이 무엇을 보고 무엇을 보지 않는지 12개 언어로 더했습니다.
build 77 2026-09-21

로그인하면 자동으로 켜집니다 · 오탐을 막으려 넣었던 보정이 탐지까지 함께 끄고 있던 세 군데를 되살렸습니다

  • 먼저 동작이 하나 바뀝니다. 이제 Windows 에 로그인하면 울타리가 스스로 켜집니다. 창은 뜨지 않고 트레이에 조용히 올라와 자율 감시와 실시간 감시를 잇습니다. 지금까지는 창을 닫아도 트레이에 남아 감시가 계속 돌았지만, 재부팅한 다음에는 사용자가 직접 켜 줄 때까지 아무도 보지 않았습니다. 매일 켜는 사람은 드물기 때문에, 감시를 약속한 제품이 사실상 약속을 지키지 못하고 있었습니다.
  • 등록은 작업 관리자 「시작 앱」 목록에 그대로 보이는 자리에 합니다. 예약 작업이나 서비스로 넣으면 더 끈질기게 남지만 사용자 눈에 덜 보이고 끄기도 어렵습니다 — 우리가 탐지하는 행동을 우리가 하지 않겠다는 원칙이 그쪽을 막습니다. 그래서 작업 관리자에서 끄시면 울타리는 다시 켜지 않습니다. Windows 는 그때 등록을 지우는 대신 「껐다」는 표시를 남기는데, 울타리는 그 표시를 읽고 사용자의 뜻으로 받아들입니다. 설정의 「로그인할 때 자동으로 시작」에서도 언제든 끌 수 있고, 동의 화면을 지나기 전에는 등록하지 않습니다.
  • 이 자리가 생기면서 자기보호 점검이 하나 살아났습니다. 울타리의 자동시작 항목이 다른 프로그램을 실행하도록 바뀌면 그것은 우리 자리를 빼앗긴 것이므로 침해로 올립니다. 다만 항목이 그냥 없어진 것은 침해로 부르지 않습니다 — 청소 도구를 돌렸거나 새로 설치한 것일 수 있으니, 조용히 다시 넣기만 합니다. 이 구분이 없으면 청소 도구를 한 번 돌릴 때마다 전면 경보가 뜹니다.
  • 지난 판(76)은 「정상인데 뜨는 것」을 실제 자료로 사냥했습니다. 이번 판은 그 반대편을 팠습니다 — <b>오탐을 막으려고 넣은 보정이 탐지까지 함께 꺼 버린 자리</b>가 있는지. 세 군데 있었습니다. 조용한 것이 안전하다는 뜻은 아니었습니다.
  • 첫째, 「비밀번호 없는 계정」 경고가 한 번도 뜨지 않고 있었습니다. Microsoft 계정·회사 계정은 비밀번호를 컴퓨터 밖에서 확인하기 때문에 Windows 안에서는 「비밀번호 필요 없음」으로 보입니다. 그 헛경보를 막으려고 「비밀번호를 설정한 기록이 있으면 넘어간다」는 보정을 넣어 뒀는데, 빈 비밀번호로 만든 계정에도 그 기록이 남습니다. 그래서 침입자가 남기는 전형적인 재진입 통로가 보정에 함께 걸려 사라졌습니다. 이제는 계정이 <b>어디서 인증되는지</b>(로컬·회사·Microsoft)를 직접 읽어 가릅니다 — 근사값으로 대신하지 않습니다.
  • 둘째, 기본 Administrator 계정에 비밀번호가 걸려 있지 않아도 「켜져 있습니다」라는 주의 한 줄로 끝났습니다. 그 둘이 겹치면 이름이 고정된 계정에 비밀번호 없이 들어올 수 있다는 뜻입니다. 이제 위험으로 올립니다.
  • 셋째, 실행 가로채기(IFEO) 점검에서 <b>우리가 만든 면제 목록이 오히려 통로</b>가 되어 있었습니다. Process Explorer 같은 정상 도구가 이 방식을 쓰기 때문에 이름을 면제해 뒀는데, 위치를 보지 않고 이름만 대조했습니다. 임시 폴더에 같은 이름으로 파일을 두면 그 뒤에 숨을 수 있었습니다. 이제는 정상 설치 위치이거나 서명이 유효할 때만 넘어가고, 그렇지 않으면 근거의 세기만큼 등급을 붙여 <b>반드시 보여 줍니다</b>. 압축만 풀어 쓰시는 분들의 정상 도구는 서명으로 그대로 통과합니다.
  • 회사·학교가 관리하는 PC 판정도 고쳤습니다. 관리 여부를 네트워크 이름 설정값으로 짐작하고 있었는데, 그 값은 관리 여부와 별개입니다(공유기가 내려주기도 합니다). 그래서 방향이 두 가지로 틀렸습니다 — 집 PC 를 회사 PC 로 오인해 <b>진짜 애드웨어가 걸어 둔 작업관리자 잠금을 「회사 정책일 수 있다」며 참고로 낮춰</b> 보여 주고 있었고, 반대로 이름을 따로 지정한 회사 PC 는 관리 중이 아닌 것으로 봤습니다. 이제 Windows 에 직접 묻습니다(도메인 가입·Entra 가입·회사 계정 연결).
  • 회사 PC 에서 이름이 겹쳐 생기던 오탐도 같이 고쳤습니다. 관리자 목록에 회사 계정이 들어 있으면 앞의 조직 이름을 떼고 보던 탓에, 우연히 같은 이름을 쓰는 <b>이 컴퓨터의 로컬 계정</b>이 관리자로 표시됐습니다. 이제 이 컴퓨터 것만 셉니다.
  • 이번에 고친 것은 전부 시험으로 박아 뒀습니다. 특히 「탐지가 죽었는지」를 확인하는 시험을 함께 넣었습니다 — 오탐이 0건인 것과 판정기가 꺼져 있는 것은 화면에서 똑같아 보이기 때문에, 그 둘을 구분하는 시험이 없으면 다음에도 같은 일이 납니다. 홈페이지 자주 묻는 질문에는 회사·학교 PC 에서 경고가 뜰 때 무엇을 뜻하는지 12개 언어로 더했습니다.
  • 홈페이지 손질도 함께 했습니다. 아주 좁은 화면(320~360px, 아이폰 SE 1세대급)에서 맨 위 안내 띠가 3줄로 불어나 첫 화면을 먹고 있었습니다. 주 문장만 작게 하면 아래 보조줄과 크기가 같아져 두 줄이 한 덩이로 보이므로, 두 줄을 같이 한 단씩 내리고 좌우 여백을 줄여 크기 대비를 지킨 채 2줄로 맞췄습니다(띠 높이 101px → 73px).
  • 흔한 폰 크기(390px)에서는 문제가 다른 데 있었습니다. 스페인어·프랑스어·독일어·포르투갈어·러시아어 안내 문구가 3~4줄로 늘어져 있었는데, 재어 보니 줄 나눌 자리를 바꿔서는 절대 줄지 않았습니다 — 글이 두 줄에 담기에 그냥 길었습니다. 그래서 뜻을 그대로 둔 채 문장을 짧게 다듬었습니다. 한국어 문구는 원래 짧아 그대로입니다. 12개 언어를 320·360·390·414px 에서 다시 재어, 인도네시아어(낱말이 길어 어떻게 다듬어도 줄지 않습니다)를 뺀 11개 언어가 2줄에 들어갑니다. 390px 기준 12개 언어의 줄 수 합계가 31에서 25로 줄었습니다. 앞으로 번역이 다시 길어지면 자동 검사가 막습니다.
build 76 2026-09-19

정상인데 뜨는 것을 실제 자료로 찾아 고쳤습니다 — 그리고 같은 자료를 시험으로 박았습니다

  • 보안 프로그램이 정상을 위험이라고 부르면, 사용자는 다음부터 경고를 안 봅니다. 그래서 이번 판은 새 기능 대신 정상인데 뜨는 것을 찾는 데 썼습니다. 추측이 아니라 실제 자료를 판정기에 그대로 먹였습니다 — 실제 운영 서버의 접근 로그 1만 줄, numpy·scikit-learn·PyTorch 가 실제로 만든 모델 파일 26개, 실제 문서 파일, 컴퓨터 안의 실제 실행 파일 6천 개, 국내 은행·포털·관공서의 실제 주소 73개, 공개 DNS 리졸버 목록 875개, 공개 AI 봇 등록부 175종.
  • 가장 아팠던 것부터 적습니다. 날짜가 붙은 정상 배포 파일(예: `프로그램-20240201.tar.gz`)이 서버에서 내려갈 때 「비밀 파일이 유출됐다(위험)」로 떴습니다. 이름에 날짜가 있다고 백업이 아닙니다 — 이제 이름이 날짜뿐일 때만 백업으로 봅니다. 문서에 예시로 적힌 `hf_xxxxxxxx…` 자리표시자를 「토큰이 평문으로 남았다」고 부르던 것도 고쳤습니다.
  • 가장 부끄러웠던 것도 적습니다. AdGuard·NextDNS·Mullvad·SK브로드밴드 같은 정상 DNS 서버를 쓰는 분들께 울타리가 「DNS 변조」라고 단정하고 있었습니다. 판정이 실제로 아는 것은 「우리 목록에 없는 서버」까지인데 화면에는 변조라고 적혀 있었습니다. 12개 언어 전부 「낯선 DNS 서버」로 바꾸고, 아는 리졸버 목록을 12개에서 55개로 넓혔습니다(국내 3사 포함).
  • 그 밖에 고친 것: 정품 설치 DVD 의 `autorun.inf`(오피스·드라이버 CD 가 오른쪽 클릭 메뉴를 붙이는 표준 방식)를 USB 웜으로 보던 것, FileZilla 서버(1.x 가 현행)를 클라이언트 기준과 비교해 구버전이라 하던 것, 그리고 AI 크롤러 이름을 128종 더 알아보게 한 것(공개 등록부를 그대로 쓰지 않고 실제 브라우저 UA 와 대조해, 검색 크롤러나 링크 미리보기까지 AI 로 부르지 않도록 걸러 넣었습니다).
  • 반대 방향도 함께 봤습니다. 오탐을 줄이다 판정기를 죽이면 그게 더 나쁩니다. 그래서 일부러 악성으로 만든 대조군을 같이 돌렸습니다 — 로드될 때 명령을 실행하는 모델 파일 7개, 자동 실행·외부 프로그램 호출이 든 문서 4개, 국내 사칭 주소 6개, 텔넷이 열린 카메라·DVR 3대, 시작 페이지를 바꾼 브라우저 4건, USB 웜 2종. 전부 그대로 잡힙니다. 오히려 사칭 주소 두 가지(`nid-naver.com` 꼴, `브랜드-인증.도메인` 꼴)를 놓치고 있던 것을 이번에 찾아 고쳤습니다.
  • 실측 결과는 이렇습니다. 접근 로그 1만 줄에서 헛경보 0건(뜬 35건은 전부 진짜 워드프레스 탐침이었습니다), 실제 모델 파일 26개 0건, 실제 문서 0건, 실행 파일 6천 개 0건, 주소 2,888개 0건, 설치 프로그램 686개 0건, 집 안 기기 25대 0건. 그리고 이 자료들을 전부 자동 시험으로 저장소에 박아 뒀습니다 — 다음에 누군가 판정을 넓히다 같은 헛경보를 되살리면 그 자리에서 막힙니다.
  • 홈페이지에는 같은 팀이 만든 origma.app 소개를 더했습니다. 울타리가 「내 PC 와 내 사이트」를 본다면, origma 는 「내게 도착한 파일」이 AI 가 만든 것인지·어디서 왔는지·손댄 흔적이 있는지를 봅니다. 울타리가 파일을 그쪽으로 자동으로 보내는 일은 없습니다 — 올리는 것은 사용자입니다.
build 75 2026-09-18

AI 장악 방어 해자(垓字) — 내 사이트에 AI 에이전트가 머물며 무엇을 하는지 봅니다, 그리고 실제로 열렸는지(장악·침해 신호)

  • AI 에이전트들만 모여 서로 글과 답글을 주고받는 게시판이 실제로 등장했고, Hugging Face 같은 공개 허브에서는 악성 pickle 모델이 여러 차례 적발됐습니다. 그 에이전트들은 당신의 사이트에도 같은 손으로 드나듭니다. 이번 판은 요청을 출발지별 시간 흐름으로 묶어 「봇이 글·댓글을 올렸다(2xx 관측)」「봇 여럿이 같은 시간대에 올렸다(봇 토론)」「로그인·가입 폭주」「세션을 달고 관리 구역에 들어갔다(장악 의심)」「체류(30분·30건)」「긁기(경로 100개)」를 판정합니다. 앱은 이 PC 의 웹서버 로그(IIS·nginx·Apache)에서 시각까지 읽어 그 자리에서 판정하고, 홈페이지 「내 사이트」는 센서 이벤트로 같은 판정을 냅니다 — 같은 함수입니다.
  • 대응은 운영자의 손으로 합니다. 판정이 나오면 robots.txt 줄(부탁이지 벽이 아님), Cloudflare WAF 식과 nginx 조각(그 요청자의 쓰기만 막고 읽기는 둠), 로그인·가입 속도 제한 식을 만들어 드립니다. 울타리는 사이트를 건드리지 않고, 요약에 IP 원문을 남기지 않으며, 에이전트 이름은 UA 자기 신고라고 그대로 적습니다. 센서(Cloudflare Worker)는 이제 쓰기 요청과 AI 크롤러 UA 의 요청도 보고합니다 — 쿠키 값은 보내지 않고 있었는지만 보냅니다. 옛 센서를 쓰고 계시면 「내 사이트」에서 코드를 다시 붙여 주세요.
  • build 74 의 「내 사이트 탐침」은 오류로 끝난 요청(스캔)만 셌습니다. 스캔당하는 것은 인터넷의 모든 서버가 겪는 일이라, 그것만으로는 무엇을 해야 할지 알 수 없었습니다. 이제 실제로 열린 것을 따로 봅니다. 비밀·저장소·백업 파일이 200 으로 내려갔으면 「침해」, 관리 구역(admin·wp-admin·API 관리 경로)에 브라우저 꼴이 아닌 요청자가 2xx 로 들어갔으면 「장악 의심」, 한 출발지가 20건 넘게 찌르면 「폭주」입니다.
  • 「장악 의심」이라 부르는 이유를 그대로 적습니다. 요청자 부류(AI 크롤러·서명 주장·스크립트)는 상대의 자기 신고이고, 관리 경로가 2xx 를 돌려줬다는 것이 로그인 성공의 증명은 아닙니다. 그래서 화면에 「관리자 로그인 기록을 직접 확인하세요」라고 적고, 울타리는 차단하지 않습니다. 이 판정은 앱의 로컬 로그, 홈페이지의 센서·Cloudflare 이벤트 세 곳에서 같은 함수로 이뤄집니다.
  • AI 모델 공급망 점검에 numpy .npy 를 더했습니다. dtype 이 object 인 .npy 는 안에 pickle 이 있어 allow_pickle=True 로 여는 순간 실행됩니다. 헤더를 읽어 object 일 때만 안을 보고, 보통의 숫자 배열은 조용히 지나갑니다.
  • 홈페이지 쪽: 「내 사이트」 화면이 12개 언어로, 한글·일본어 도메인(IDN)도 등록되며, MCP 검수는 인증을 요구하는 서버를 「MCP 아님」이 아니라 「인증 필요」로 구분합니다. 릴리스 워크플로의 정리 단계 버그도 고쳐 이번 판부터 GitHub 릴리스 페이지가 정상 생성됩니다.
build 74 2026-09-18

내려받은 AI 모델이 로드될 때 명령을 실행하는지 봅니다 — 그리고 내 사이트를 찌르는 AI 탐침을 그 자리에서 판정합니다

  • 허깅페이스 허브에서 실제로 있었던 일 세 가지를 이 PC 에서 봅니다. 첫째, PyTorch 의 기본 저장 형식(.pt·.bin·.ckpt)은 pickle 이라 「데이터」가 아니라 「실행 스트림」입니다 — os.system 을 가리키는 한 줄이면 모델을 여는 순간 명령이 돕니다. 울타리는 그 스트림에서 무엇을 import 하는지만 뽑아, 정상 모델이 참조할 이유가 없는 것(os·subprocess·eval 등)을 가리키면 위험으로 적습니다. 검사기를 피하려고 일부러 깨뜨린 pickle 도 앞부분은 읽습니다. 압축돼 못 읽으면 「안전」이 아니라 「못 봄」이라 적습니다.
  • 둘째, hf_ 로 시작하는 허브 토큰이 .env·노트북·설정·환경변수에 평문으로 남아 있으면 위치를 알려 줍니다. 값은 읽지도 표시하지도 않습니다 — 어디 있는지만 압니다. 셋째, 유명 조직 이름을 한두 글자 바꾼 저장소(meta-Ilama 처럼 l 과 I 를 바꾼 것 포함)에서 받은 모델과, 모델과 함께 내려온 파이썬 코드를 로드 때 실행하게 하는 설정(trust_remote_code)을 경고합니다. 자동으로 지우는 것은 없습니다 — 수 GB 모델의 삭제는 여러분의 결정입니다.
  • 「내 사이트 탐침」이 앱에 들어왔습니다. 이 PC 에서 IIS·nginx·Apache 를 운영한다면 그 접근 로그의 꼬리를 읽어, 홈페이지 서버와 똑같은 분류기로 .env·.git·관리 도구·백업 파일을 노린 요청을 그 자리에서 셉니다. 로그는 PC 밖으로 나가지 않고 IP 원문은 요약에 없습니다. 비밀 경로가 실제로 200 으로 내려간 경우만 「위험」입니다 — 스캔당하는 것은 흔한 일이지만 그건 사고이기 때문입니다.
  • 홈페이지 쪽도 같이 넓혔습니다. 「내 사이트」 소유권을 DNS TXT 로도 증명할 수 있고(홈페이지를 못 고치는 정적 호스팅·CDN 뒤 사이트용), 사이트가 Cloudflare 뒤에 있으면 읽기 전용 API 토큰으로 코드 배포 없이 최근 24시간 오류 응답을 읽어 같은 범주로 보여 줍니다. 그 토큰은 서버 키로 봉인해 저장하고 응답에 절대 싣지 않으며 언제든 해제할 수 있습니다. MCP 검수 도구는 12개 언어로 답합니다.
build 73 2026-09-17

랜섬웨어에 걸렸을 때, 어디서 복구할지 알려 줍니다

  • 확정된 침해가 나오면 울타리는 봉쇄 → 확산 차단 → 복구 순서로 대응 계획을 만듭니다. 그 마지막 단계에서 지금까지는 누구에게나 「복구할 정상 백업·복원지점이 없습니다」라고 적었습니다. 섀도 복사본이 세 벌 있고 파일 히스토리가 켜진 PC 에게도 그랬습니다.
  • 백업 태세는 이미 보고 있었는데(섀도 복사본·파일 히스토리·클라우드 동기화) 그 관측을 대응 계획에 넘겨주지 않았기 때문입니다. 이제 넘깁니다 — 복구처가 있으면 이름을 적어 주고, 못 봤으면 그대로 「없습니다」라고 적습니다. 그 문장이 참일 때만 나갑니다.
  • 시스템 복원(System Restore)은 일부러 복구처에 넣지 않았습니다. 그것은 시스템 파일과 레지스트리를 되돌리지 문서를 되살리지 않습니다. 랜섬웨어 피해자에게 복구처라고 내밀면 돌아오지 않을 파일을 기다리게 됩니다.
  • 관리자 권한이 없으면 섀도 복사본은 볼 수 없습니다. 그때는 못 봤다고 적지, 없다고 적지 않습니다.