BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
소방기관을 사칭한 사기 의심 연락을 실시간으로 검증합니다.
Translation pending
SecurityPython · TypeScriptGitHub @yoonjeongggOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
소방기관 사칭 사기를 금 실시간으로 진위확인하는 풀스택 서비스 (FastAPI + Next.js)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
2026 소방안전 빅데이터 활용 아이디어 경진대회 출품작 https://bigdata-119.kr/bbs/view?bbsctt_id=571 최근 소방서·소방공무원을 사칭해 "법령 개정으로 소화기 교체가 의무화됐다", "정부 보조금이 전액 환급된다"는 명목으로 금전을 요구하는 사기가 전국적으로 발생하고 있습니다 (경북 6.3억 원, 제주 8,070만 원 피해 사례 등). 피해자 대부분은 민박·모텔·단란주점·노래연습장 같은 소규모 다중이용업소 사업주로, 사칭 여부를 확인할 수단이 없어 그대로 송금하는 경우가 많습니다. FireShield는 송금 직전, 그 자리에서 즉시 진위를 확인할 수 있는 웹서비스입니다. 설치나 회원가입 없이 URL 접속만으로 확인할 수 있도록 만들어, 골든타임 안에 판단할 수 있도록 설계했습니다. 1. 소방기관 사칭 진위확인 (/) 사용자가 입력한 발신 기관명, 담당자명, 요구 사유, 법령명, 요구받은 계좌번호를 아래 공공데이터와 실시간으로 대조하여 위험도(안전/의심/위험)를 판정합니다.Read the full README ↗
소방기관 사칭 사기 실시간 진위확인 시스템
2026 소방안전 빅데이터 활용 아이디어 경진대회 출품작 https://bigdata-119.kr/bbs/view?bbsctt_id=571
최근 소방서·소방공무원을 사칭해 "법령 개정으로 소화기 교체가 의무화됐다", "정부 보조금이 전액 환급된다"는 명목으로 금전을 요구하는 사기가 전국적으로 발생하고 있습니다 (경북 6.3억 원, 제주 8,070만 원 피해 사례 등). 피해자 대부분은 민박·모텔·단란주점·노래연습장 같은 소규모 다중이용업소 사업주로, 사칭 여부를 확인할 수단이 없어 그대로 송금하는 경우가 많습니다.
FireShield는 송금 직전, 그 자리에서 즉시 진위를 확인할 수 있는 웹서비스입니다. 설치나 회원가입 없이 URL 접속만으로 확인할 수 있도록 만들어, 골든타임 안에 판단할 수 있도록 설계했습니다.
/)사용자가 입력한 발신 기관명, 담당자명, 요구 사유, 법령명, 요구받은 계좌번호를 아래 공공데이터와 실시간으로 대조하여 위험도(안전/의심/위험)를 판정합니다.
규칙 기반 점수와 별도로, 로컬에서 직접 구동하는 LLM(Ollama)이 신고 내용을 읽고 사칭 사기 확률을 판정합니다. 외부 API에 개인정보를 보내지 않고, GPU 없이 소형 한국어 모델(예: gemma2:2b)로 동작합니다.
로컬 모델은 확률 대신 산문을 뱉거나, 범위를 벗어난 값·NaN·깨진 JSON을 내놓는 일이 잦습니다. 이를 app/services/ai_guardrail.py가 판정 전에 걸러냅니다.
| 모델이 내놓은 값 | 가드레일 처리 |
|---|---|
NaN / Infinity / 파싱 불가능한 산문 | 폐기 — 규칙 점수로 폴백, 이상 징후 로깅 |
250, -0.4 처럼 범위 밖 숫자 | 0~100으로 클램프, 방향은 유지 |
"80%", 0.87, 73/100 등 다양한 표기 | 0~100 스케일로 정규화 |
| 규칙 점수와 45점 이상 상충 (예: 규칙 85 / AI 2) | 폐기 — 보수적으로 규칙 점수 신뢰 |
| 40~60점 중립 구간 | 참고용으로만 표시, 최종 판정에는 미반영 |
| Ollama 미기동 / 타임아웃 | 폐기 — 규칙 점수만으로 정상 응답 |
최종 위험도는 신뢰 가능한 AI 점수가 규칙 점수보다 높을 때만 보수적으로 상향(max)하며, API 응답에는 rule_score와 ai_assessment가 각각 노출됩니다. 가드레일의 모든 분기는 tests/test_ai_guardrail.py(34케이스)로, 엔드포인트 결합은 tests/test_verify_endpoint.py로 검증합니다.
# AI 판정 활성화
ollama pull gemma2:2b
# backend/.env 에서 AI_ENABLED=true (기본값). 끄면 규칙 점수만 사용.
/risk-map)소방청 전국 화재 현황 데이터를 기반으로 시/도별 위험도를 시각화하고, 특정 시/도를 선택하면 시/군/구 단위 상세 통계로 드릴다운할 수 있습니다.
이 프로젝트에서 신경 쓴 부분은 공공데이터를 그대로 붙이는 것이 아니라, 서비스 목적(사칭 판별)에 맞게 필터링하고 재구성한 것입니다.
| 원본 데이터 | 문제 | 처리 방식 |
|---|---|---|
| 전국 화재 현황 (연간 38,409건) | "최근 3개월"이라는 서비스 맥락에 비해 1년치 데이터라 과다 | 데이터 내 최신 접수일 기준으로 최근 90일만 필터링 → 실사용 맥락에 맞는 8,652건으로 축소 |
| 전국 다중이용업소 현황 (24,547건) | 시/도 컬럼이 따로 없이 주소 텍스트에 섞여 있고, 폐업 이력이 필터링되지 않음 | 정규식으로 주소에서 시/도를 추출하고, 사용여부=Y(실제 영업 중)인 건만 필터링 후 시/도별 집계 |
| 소방시설업 현황 (10,465건) | EUC-KR 인코딩, 결측치가 NaN(float)으로 남아 DB 저장 시 타입 오류 발생 | 인코딩 감지 후 안전한 문자열 정규화 함수로 전처리, 업종·상호·대표자 컬럼을 인덱싱해 부분일치 검색 최적화 |
| 화재현황 + 다중이용업소현황 (독립된 두 데이터셋) | 각각 별도로 제공되어 단순 합산만으로는 위험도를 판단하기 어려움 | 시/도 단위로 결합한 뒤, 화재 건수·사망자 수·다중이용업소 밀집도를 가중합산하여 0~100으로 정규화한 위험 점수로 재구성 |
[Next.js 프론트엔드] │ REST API ▼ [FastAPI 백엔드] │ ├─ [PostgreSQL] 조회 로그(AES-256 암호화), 소방시설업 현황 캐시 │ └─ [외부 API / 데이터]
cd backend
conda create -n fireshield python=3.12
conda activate fireshield
pip install -r requirements.txt
docker compose up -d # PostgreSQL 실행
python scripts/load_fire_businesses.py # 소방시설업 현황 데이터 적재
uvicorn app.main:app --reload
.env 파일에 DATABASE_URL, LAW_API_KEY, ENCRYPTION_KEY 등 환경변수 설정이 필요합니다.
cd frontend
npm install
npm run dev
.env.local에 NEXT_PUBLIC_API_BASE_URL, NEXT_PUBLIC_GOOGLE_MAPS_API_KEY 설정이 필요합니다.