Showing Posts From

핀테크

핀테크 회사에서 보안 QA가 필수인 이유 - 금융 데이터를 지키는 사람

핀테크 회사에서 보안 QA가 필수인 이유 - 금융 데이터를 지키는 사람

핀테크 회사에서 보안 QA가 필수인 이유 - 금융 데이터를 지키는 사람 아침 9시, 출근하면 제일 먼저 하는 일 출근했다. 커피 먼저. 그리고 뉴스. 일반 QA는 기능 동작 확인한다. 나는? CVE 목록부터 본다. Common Vulnerabilities and Exposures. 어젯밤 새로 발견된 취약점들. "Spring Framework 제로데이 취약점 발견. RCE 가능." 우리 회사 스택이다. 커피 식었다. CTO한테 슬랙 메시지 보냈다. "긴급. 미팅 필요합니다." 답장 3분 만에 왔다. "회의실 10분 후." 핀테크는 이렇다. 다른 회사는 "다음 주 패치하죠" 할 수 있다. 우리는? 당장 오늘. 고객 돈 다룬다. 실시간이다. 한 번 뚫리면 끝이다.핀테크 보안이 다른 이유 일반 서비스는 개인정보 유출이 최악이다. 핀테크는? 돈이 직접 나간다. 작년에 다른 핀테크 회사 사건 있었다. API 인증 우회 취약점. 3시간 만에 2억 인출됐다. 회사 망했다. 서비스 종료. 우리 회사 개발자 120명. 보안팀은 5명. 비율로 보면 적다. 근데 이게 맞다. 소수 정예여야 한다. 내 연봉 7000만원. 같은 연차 일반 QA는 5000 정도다. 2000만원 차이. 왜? 책임의 무게다. 내가 놓친 취약점 하나가 회사를 무너뜨린다. 고객 자산을 날린다. 금융위원회에서 제재 들어온다. 뉴스에 나온다. "○○페이, 보안 취약점으로 100억 피해" 헤드라인 상상만 해도 식은땀 난다. 매일 아침 CVE 체크하는 이유다. 매일 밤 침투 테스트하는 이유다. 주말에도 버그바운티 확인하는 이유다. 돈을 지키는 게 내 일이다. 한 번의 해킹이 회사에 미치는 영향 구체적으로 계산해봤다. 실제로. 우리 회사 일일 거래액 평균 50억. 서비스 1시간 다운되면? 약 2억 손실. 고객 이탈까지 계산하면 10억 넘는다. 보안 사고는 더 심각하다. 직접 피해:해킹으로 인한 금전 손실: 수십억 서비스 복구 비용: 5억~10억 법적 대응 비용: 3억~5억간접 피해:고객 이탈률 30~50% 신규 고객 유입 -70% 기업 가치 평가 -40% 투자 유치 불가능규제 제재:금융위 과징금: 수십억 영업정지 가능성 라이선스 취소 위험작년에 한 간편결제 업체가 당했다. XSS 취약점 통한 세션 하이재킹. 고객 계좌정보 3만 건 유출. 결과? 회사 매각. 창업자 물러남. 직원 절반 정리해고. 내가 그 회사 보안 담당자 알았다. 같이 CTF 대회 나갔던 형이다. 지금은 연락 안 된다. 무겁다. 이 일이.보안 QA의 실제 업무 오전 10시. 신규 기능 보안 테스트 시작했다. 이번 주에 출시되는 '간편 송금' 기능. 개발팀에서 QA 완료했다고 한다. 이제 내 차례. 체크리스트:인증/인가JWT 토큰 검증 우회 가능? 다른 사용자 계좌로 접근 가능? 토큰 만료 시간 적절?입력값 검증SQL Injection 가능? XSS 가능? 금액 음수 입력 막혔나? 금액 오버플로우 처리했나?API 보안Rate limiting 있나? 금액 변조 가능? 응답에 민감정보 노출되나?비즈니스 로직잔액보다 많이 송금 가능? 동시 요청 처리 문제없나? 취소/환불 로직 허점 없나?Burp Suite 켰다. 프록시 설정. 요청 하나씩 캡처한다. 30분 지났다. 찾았다. 송금 API에 금액 파라미터 음수 넣으니까 통과된다. -10000원 송금. 잔액이 늘어난다. "...이거 실화냐." 개발팀 단톡방에 올렸다. "@전체 긴급. 송금 API 음수 처리 안 됨. 악용 가능. 즉시 수정 필요." 답장이 쏟아진다. "헐 진짜요?" "테스트는 다 했는데..." "QA에서 통과 안 했나요?" 일반 QA는 정상 시나리오만 테스트한다. 10000원 넣으면 잘 되는지. 나는? 공격자처럼 생각한다. -10000원 넣으면 어떻게 되는지. 이게 보안 QA다. 침투 테스트의 스릴과 공포 오후 2시. 모의해킹 시간이다. 분기마다 한 번씩 한다. 회사 시스템을 실제로 해킹해보는 거다. 합법적으로. CTO 승인받고. 목표: 고객 계좌정보 접근하기. 공격 시나리오: 1단계: 정찰서브도메인 스캐닝 (Subfinder) 포트 스캐닝 (Nmap) 기술 스택 파악 (Wappalyzer)2단계: 취약점 발견숨겨진 관리자 페이지 찾기 API 엔드포인트 브루트포싱 구버전 라이브러리 취약점 검색3단계: 침투발견한 취약점 익스플로잇 권한 상승 시도 내부 네트워크 접근스캐닝 시작했다. Nmap 돌린다. PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 3000/tcp open ppp3000번 포트? 뭐지. 접속해봤다. 개발용 대시보드가 떴다. 인증도 없다. 실서버에 개발 포트가 열려있다. "아..." 여기서 DB 접속 정보 보인다. Redis 키도 보인다. 세션 토큰도 보인다. 게임 끝났다. 10분 만에 뚫렸다. 스릴 있다. 취약점 찾을 때 아드레날린 솟는다. 근데 동시에 공포스럽다. '만약 진짜 해커가 찾았으면?' 손 떨린다. 리포트 쓴다.개발팀과의 갈등과 협업 리포트 보냈다. 개발팀 반응은 두 가지다. 반응 1: 인정형 "와 이거 큰일 날 뻔했네요. 바로 고치겠습니다." 이런 개발자 최고다. 같이 일하기 좋다. 반응 2: 방어형 "이건 엣지 케이스예요. 실제로는 안 일어나요." "이거 고치려면 시간 많이 걸려요. 우선순위 낮춰주세요." "보안팀이 너무 빡빡하게 보는 거 아닌가요?" 이럴 때 힘들다. 작년에 있었던 일이다. 인증 우회 취약점 발견했다. Critical 등급. 개발팀에 보고했다. "다음 스프린트에 넣을게요." 2주 뒤다. 안 된다. 당장 고쳐야 한다. 다시 말했다. "보안팀이 일정 자꾸 바꾸면 곤란합니다." CTO 불렀다. 시연했다. 실제로 계좌 조회를 다른 사용자 토큰으로 했다. 5분 만에 수정 지시 나왔다. 보안 QA의 딜레마:너무 빡빡하면 → 개발 속도 저하, 관계 악화 너무 느슨하면 → 취약점 방치, 사고 위험균형이 중요하다. 근데 어렵다. 나는 이렇게 한다:위험도 명확히 설명 실제 공격 시나리오 시연 비즈니스 영향 계산 수정 방법까지 제안"이 취약점으로 하루 10억 피해 가능합니다. 코드 3줄 추가하면 막힙니다." 이렇게 말하면 대부분 수긍한다. 밤샘 작업과 긴급 패치 밤 11시. 퇴근하려는데 전화 왔다. CTO다. "지금 상황실 올 수 있어? 긴급이야." 심장 뛴다. 뭔가 터졌다. 상황실 도착했다. 개발자 10명 모여있다. 분위기 심각하다. "외부 보안 연구원이 제보했어. 우리 API에서 IDOR 취약점 발견했대." IDOR. Insecure Direct Object Reference. 다른 사용자 데이터 접근 가능한 취약점. 제보 내용 확인했다. 맞다. /api/user/{userId}/account 엔드포인트. userId만 바꾸면 다른 사람 계좌 조회된다. "몇 명이 접근했나요?" "로그 확인 중인데... 약 50건." 최악은 아니다. 근데 방치하면 확산된다. 긴급 대응 프로세스:즉시 해당 API 차단 (5분) 영향받은 고객 파악 (30분) 패치 개발 및 테스트 (2시간) 배포 및 모니터링 (1시간) 고객 공지 준비 (다음날)새벽 3시까지 일했다. 패치 완료. 배포 성공. 모니터링 정상. 집 가는 택시 안에서 생각했다. '만약 제보자가 악의적이었으면?' '만약 발견이 2주 늦었으면?' 등골이 서늘하다. 이게 핀테크 보안 QA의 현실이다. 24시간 대기조. 언제든 터질 수 있다. 집 도착. 새벽 4시. 씻고 침대 누웠다. 눈 감히지 않는다. '또 놓친 게 있을까?' 이 생각이 떠나지 않는다. 버그바운티와 화이트 해커 문화 주말이다. 카페 왔다. 노트북 켰다. 회사 일 아니다. 개인 프로젝트다. 버그바운티. 버그바운티 프로그램. 기업이 취약점 발견하면 포상금 주는 거다. 합법적으로 해킹하고 돈 받는다. 유명 플랫폼:HackerOne Bugcrowd 국내: 버그바운티 코리아지난 달 성과:XSS 취약점 발견: $500 API 권한 상승 취약점: $1500 정보 노출 취약점: $300총 $2300. 약 300만원. 용돈 치고는 괜찮다. 근데 돈이 전부는 아니다. 버그바운티 하는 이유:실력 향상다양한 서비스 구조 경험 최신 취약점 트렌드 파악 실전 감각 유지네트워킹다른 해커들과 교류 취약점 공유 및 토론 채용 기회 연결윤리적 만족인터넷을 더 안전하게 화이트 해커로서 기여 악용 전에 발견작년에 한 대기업 쇼핑몰에서 Critical 취약점 찾았다. SQL Injection. 전체 고객 DB 접근 가능한 수준. 제보했다. 포상금 $5000. 약 650만원. 그리고 감사 메일 받았다. "덕분에 큰 사고 막았습니다. 감사합니다." 이 한 줄이 좋았다. 돈보다. 화이트 해커 문화가 중요한 이유다. 발견한 취약점을 악용하지 않고 제보한다. 기업은 정당한 보상을 한다. 선순환이다. 블랙 해커와 화이트 해커. 기술은 같다. 선택이 다를 뿐. 나는 지키는 쪽을 선택했다. 보안 공부는 끝이 없다 월요일 아침. 출근 지하철에서 책 읽는다. "Web Application Hacker's Handbook" 3번째 정독이다. 볼 때마다 새롭다. 보안 분야는 변화가 빠르다. 어제의 안전이 오늘의 취약점이다. 최근 공부 목록:GraphQL 보안 이슈 JWT 취약점 패턴 클라우드 보안 (AWS, GCP) 컨테이너 보안 (Docker, K8s) AI/ML 모델 공격 기법매일 2시간은 공부한다. 퇴근 후 1시간, 주말 5시간. 공부 루틴: 월/수/금: 온라인 강의 (Udemy, Pluralsight) 화/목: CTF 문제 풀기 (HackTheBox) 주말: 기술 블로그 읽고 정리 월 1회: 보안 컨퍼런스 참석 작년에 DEFCON 다녀왔다. 라스베가스. 세계 최대 해킹 대회. 회사에서 지원해줬다. 거기서 본 게 충격이었다. 내가 아는 건 빙산의 일각이다. 세상엔 천재들이 많다. IoT 해킹, 차량 해킹, 위성 해킹. 상상도 못 한 것들. 동시에 생각했다. '우리 회사는 안전한가?' 돌아와서 IoT 결제 단말기 보안 점검 제안했다. 승인 받았다. 실제로 취약점 2개 찾았다. 공부가 회사를 지킨다. 책임감과 연봉의 관계 연말 평가 시즌이다. 연봉 인상 협상했다. 현재 7000만원. 요구 금액 8000만원. 1000만원 인상. 근거 제시했다: 올해 성과:Critical 취약점 12건 발견 및 수정 모의해킹 4회 실시, 평균 위험도 50% 감소 보안 사고 0건 (업계 평균 2.3건) 버그바운티 제보로 외부 이미지 개선 신입 보안 QA 교육 및 온보딩시장 가치:동급 경력 타사 연봉: 7500~9000만원 최근 스카웃 제안: 8500만원 보안 인력 수요 증가율: 연 15%CTO 반응: "고민해볼게요." 일주일 뒤 답 왔다. 7800만원. 800만원 인상. 요구보다 200만원 적다. 근데 만족한다. 연봉이 높은 이유:희소성보안 QA 인력 부족 실무 경험자 더 적음 양성 기간 최소 3년책임의 무게한 번의 실수가 회사 존망 24시간 긴장 상태 정신적 스트레스 높음지속적 학습끊임없는 기술 습득 개인 시간 투자 많음 평생 공부 필수대체 불가능성자동화 어려움 인간의 창의성 필요 공격자 마인드셋 필수일반 QA는 테스트 케이스 수행한다. 나는? 존재하지 않는 케이스를 찾는다. "이렇게 하면 뚫릴까?" "공격자라면 어떻게 할까?" "여기가 약점일까?" 이게 내 연봉의 근거다. 보안 사고 대응 매뉴얼 책상 서랍에 빨간 봉투가 있다. "보안사고 대응 매뉴얼". 열어본 적 없다. 근데 매달 업데이트한다. 언젠가 필요할 수 있다. 단계별 대응 절차: Phase 1: 탐지 (Detection)이상 징후 모니터링 알림 로그 분석 및 공격 패턴 확인 영향 범위 1차 파악 경영진 즉시 보고Phase 2: 격리 (Containment)공격 경로 차단 영향받은 서비스 분리 추가 피해 확산 방지 증거 보존Phase 3: 제거 (Eradication)악성 코드/백도어 제거 취약점 패치 시스템 무결성 검증 재침투 가능성 차단Phase 4: 복구 (Recovery)서비스 단계적 재개 데이터 복원 및 검증 모니터링 강화 정상화 확인Phase 5: 사후 분석 (Post-Incident)원인 분석 보고서 재발 방지 대책 프로세스 개선 교육 및 훈련실제로 쓸 일 없기를 바란다. 근데 준비는 해야 한다. 작년에 모의 훈련했다. 가상 랜섬웨어 공격 시나리오. 전 직원 참여. 혼란스러웠다. 누가 뭘 해야 하는지 애매했다. 의사결정 느렸다. 그 경험으로 매뉴얼 3번 수정했다. 더 구체적으로. 연락망 명확히. 역할 세분화. 다음 훈련 때는 30분 단축됐다. 발전이다. 퇴근길 생각들 저녁 7시. 퇴근한다. 오늘도 무사히. 지하철 타고 집 간다. 핸드폰 본다. 보안 뉴스 체크. "미국 대형 은행 해킹, 2000만 고객정보 유출" 한숨 나온다. 또. 얼마 만에. 보안은 끝이 없다. 100번 막아도 한 번 뚫리면 끝이다. 공격자는 한 번만 성공하면 된다. 방어자는 매번 성공해야 한다. 불공평하다. 근데 이게 현실이다. 이 일을 계속하는 이유:누군가는 해야 하는 일 고객 자산 지킨다는 자부심 기술적 도전이 재미있음 화이트 해커로서의 정체성 적절한 보상 (솔직히 중요)가끔 생각한다. '일반 개발자 할까?' 코드 짜고, 기능 만들고, 배포하고. 스트레스 덜할 것 같다. 근데 못 한다. 이미 보안으로 세상을 본다. API 보면 취약점이 보인다. 웹사이트 들어가면 공격 벡터가 보인다. 직업병이다. 고칠 수 없다. 집 도착했다. 문 열고 들어간다. 노트북 가방 내려놓는다. 여자친구한테 문자 왔다. "저녁 먹었어?" "아직. 같이 먹을까?" "응 나갈게." 씻는다. 편한 옷 입는다. 거울 본다. 피곤해 보인다. 근데 괜찮다. 오늘도 회사 지켰다. 고객 돈 지켰다. 그걸로 충분하다. 내일도 출근한다. CVE 체크한다. 취약점 찾는다. 리포트 쓴다. 반복이다. 근데 중요한 반복이다. 핀테크 보안, 선택이 아닌 필수 마지막으로 정리한다. 핀테크 회사에 보안 QA가 필수인 이유. 간단하다. 돈을 다루기 때문이다. 일반 서비스는 다시 시작할 수 있다. 데이터 복구하고, 사과하고, 보상하고. 핀테크는? 한 번 털리면 끝이다. 고객 신뢰 회복 불가능. 금융 라이선스 박탈. 회사 문 닫는다. 그래서 보안 QA가 존재한다. 그래서 높은 연봉 받는다. 그래서 24시간 긴장한다. 우리가 하는 일:공격자보다 먼저 취약점 찾기 개발팀이 놓친 보안 이슈 발견 실제 해킹 시나리오 테스트 최신 공격 기법 연구 및 대응 보안 사고 예방 및 대응무거운 책임이다. 근데 해야 할 일이다. 고객은 모른다. 내가 밤새 취약점 찾는다는 걸. 주말에도 모니터링한다는 걸. 긴급 패치로 사고 막았다는 걸. 몰라도 된다. 그게 내 일이다. 조용히 지킨다. 눈에 보이지 않게. 사고 나지 않게. 보안의 역설: 완벽하게 일하면 아무도 모른다. 실패하면 모두가 안다. 그래도 한다. 이게 프로다.오늘도 아무 일 없었다. 그게 성공이다.