서버를 열어두면 바로 시작되는 공격들
서버를 인터넷에 열면 몇 분 안에 스캔이 시작됩니다. 유명하지 않아도 상관없습니다. 자동으로 돌아다니는 봇이기 때문입니다.
실제로 들어오는 요청들
이 요청들은 하루에도 수천 건 들어옵니다. 대부분 404로 끝나지만, 하나라도 열려 있으면 그 즉시 문제가 됩니다.
| 요청 | 노리는 것 |
|---|---|
/.env | 환경변수 파일에 든 키·비밀번호 |
/.git/HEAD, /.git/config | 소스코드와 커밋 이력 |
/.aws/credentials | 클라우드 접근 키 |
/wp-login.php | 워드프레스 관리자 로그인 |
/phpmyadmin | DB 관리 도구 |
최소한 이것만은
- 웹 루트에 설정 파일을 두지 않기 —
.env는 반드시 밖에 - 저장소 디렉터리 노출 차단 —
.git이 웹에서 보이면 소스가 통째로 털립니다 - SSH 비밀번호 로그인 끄기 — 키 인증만
- 관리자 경로 제한 — IP 제한이나 추가 인증
- 기본 페이지 노출 금지 — 설정 안 된 도메인이 기본 화면을 보여주면 표적이 됩니다
키가 노출됐을 때
가장 중요한 것은 속도입니다. 노출을 인지하는 즉시 해당 키를 폐기하고 재발급해야 합니다.
저장소 이력에 한 번 올라간 키는 커밋을 지워도 남아 있을 수 있습니다. 무조건 재발급이 원칙입니다.
공개 저장소를 스캔해 키를 찾는 봇이 상시 돌고 있습니다. 올린 지 몇 분 만에 악용된 사례가 많습니다.
쓰지 않는 도메인도 정리하세요
도메인이 서버를 가리키는데 설정이 없으면 기본 페이지가 노출됩니다. 이건 “여기 관리 안 되는 서버가 있다”는 신호가 됩니다.
쓰지 않는 도메인은 리다이렉트를 걸거나 DNS를 내려두는 편이 안전합니다.
공개 저장소에 키를 올렸을 때 실제로 일어나는 일
공개 저장소를 실시간으로 스캔하는 봇이 상시 돌고 있습니다. 커밋 후 수 분 내에 키가 사용되는 사례가 보고되어 왔습니다.
특히 클라우드 키가 노출되면 암호화폐 채굴에 쓰이는 경우가 많고, 요금이 순식간에 불어납니다.
- 노출을 인지하면 즉시 키를 폐기합니다
- 새 키를 발급하고 권한을 최소화합니다
- 클라우드라면 사용 내역을 확인합니다
- 커밋 이력에서 제거하되, 이미 노출된 키는 반드시 폐기합니다
커밋을 지웠으니 괜찮다고 생각하면 안 됩니다. 이미 복제된 뒤일 수 있습니다. 폐기가 유일한 해결입니다.
SSH 설정 최소 기준
| 항목 | 권장 설정 | 이유 |
|---|---|---|
| 비밀번호 로그인 | 비활성화 | 무차별 대입 차단 |
| root 직접 로그인 | 비활성화 | 표적이 명확해짐 |
| 키 인증 | 사용 | 사실상 표준 |
| 포트 | 변경(선택) | 자동 스캔 감소 |
| 접속 IP 제한 | 가능하면 적용 | 가장 확실 |
포트 변경은 보안 그 자체는 아니지만 로그를 깨끗하게 유지하는 데 도움이 됩니다.
웹 루트에 있으면 안 되는 것
백업 파일을 웹 루트에 두는 실수가 특히 흔합니다. .bak이나 .old 확장자는 스캔 봇이 반드시 시도합니다.
.env,config.php등 설정 파일.git디렉터리- 백업 파일 —
index.html.bak,db.sql - 업로드 원본 — 직접 접근 가능하면 위험
- 개발용 테스트 페이지
업로드 기능이 있다면
- 확장자 화이트리스트 — 허용할 것만 명시
- 실행 권한 제거 — 업로드 디렉터리에서 스크립트 실행 차단
- 파일명 변경 — 원본 이름을 그대로 쓰지 않기
- 용량 제한
- 웹 루트 밖에 저장하고 프로그램을 통해 제공
업로드 취약점은 서버 장악으로 이어질 수 있는 가장 위험한 유형입니다. 이미지 업로드 기능 하나가 전체를 뚫는 통로가 됩니다.
관리자 페이지는 특별 취급
가장 많이 공격받는 곳입니다. /admin, /wp-admin 같은 예측 가능한 경로는 하루에도 수백 번 시도됩니다.
- 경로를 예측 불가능하게
- IP 제한 — 가능하면 가장 확실
- 2단계 인증
- 로그인 실패 제한
- 접근 로그를 별도로 남기기
정기적으로 확인할 목록
| 주기 | 확인 |
|---|---|
| 매주 | 비정상 로그인 시도, 에러 급증 |
| 매월 | 보안 업데이트 적용, 불필요한 계정·포트 |
| 분기 | 키·비밀번호 교체, 권한 점검 |
| 연간 | 전체 구성 재검토 |
자주 묻는 질문
IP 차단을 걸어야 하나요?
스캔은 IP를 계속 바꾸므로 차단만으로는 한계가 있습니다. 열려 있으면 안 되는 것을 닫는 것이 우선입니다.
WAF를 써야 하나요?
있으면 좋지만, 기본 위생이 먼저입니다. 열려 있으면 안 되는 것을 닫는 것이 우선입니다.
공격을 당했는지 어떻게 아나요?
비정상적인 트래픽, 알 수 없는 프로세스, 예상 밖의 파일 변경이 신호입니다. 파일 변경 감지를 걸어두면 도움이 됩니다.
같이 보면 좋은 글
인프라 담당 없이 배포하는 현실적인 방법서버 한 대로 시작해 안정적으로 운영하는 최소 구성. 처음부터 복잡한 인프라를 구성할 필요가 없습니다. 서버 한 대와 프로세스…혼자 운영할 때 최소한으로 봐야 할 것모니터링을 거창하게 하면 안 봅니다. 정말 필요한 네 가지. 대시보드를 아무리 예쁘게 만들어도 안 보면 소용없습니다. 혼자라면…혼자 만들 때 기술을 고르는 기준최신 기술보다 중요한 것. 혼자 유지보수할 수 있는지가 핵심입니다. 혼자 만들 때 가장 중요한 기준은 성능도 유행도 아닙니다.…AI API 비용이 매출을 넘지 않게 하는 설계쓸수록 적자가 나는 구조를 피하는 방법. 모델 분리와 캐시. AI를 쓰는 서비스는 사용량에 비례해 원가가 늘어납니다. 정액제로…메일과 문자를 보낼 때 지켜야 하는 것기술적으로는 쉽습니다. 문제는 도달률과 법적 요건입니다. 발송 코드는 몇 줄입니다. 그런데 스팸함으로 가거나 법에 걸리면 안 …혼자 만들 때 봐야 할 지표 다섯 개대시보드를 크게 만들면 안 봅니다. 실제로 행동으로 이어지는 숫자만. 숫자를 많이 보는 것과 행동이 바뀌는 것은 다릅니다. 다…