게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
나쁜 인증 시도 방어하기! 1편
게시물ID : programmer_22734짧은주소 복사하기
작성자 : 봄아
추천 : 8
조회수 : 1799회
댓글수 : 2개
등록시간 : 2018/12/12 16:14:07
옵션
  • 창작글
  • 본인삭제금지
평범한 직장인의 하루가 시작 한다.
사람 가득한 전철을 나오니 미세먼지가 뿌옇게 자욱한 출근길을 모두 마스크 쓰고 출근 출근 출근. 자리에 앉아서 공석 기간 동안 왔던 메일을 훑어 본다. 크게 특이 점은 없고 뉴스나 볼까 하고 마우스를 깨작 거려 본다. 띠링 띠링. PC 사내 메신저 알람과 함께 CS팀장으로부터 전화가 울린다. 메신져에는 고객 전화번호와 함께 팀장의 질문.

“팀장님~ 혹시 본인이 시도 하지 않았는데 인증 확인 문자가 올 수 있나요? 출처 소스는 저희 회사 같아요~”
“음~ 아뇨. 그럴 수 없죠. 아시다시피 개인정보 다 알아야 문자 가잖아요~”

서둘러 Toad를 실행 시켜 전달된 전화번호로 인증 DB를 조회해 보니 정상적인 실명 인증 시도 내역이 나온다. 다만 점유인증은 하지 않은 상태다.

“그렇죠? 인증 내역 좀 보세요. 좀 이상해요.”
“인증 내역요?”

조회 조건을 해당 전화번호가 아닌 당일 발생된 인증 전체를 조회해 봤다.

‘응? 헐….’

오늘 인증 내역 테이블엔 죄다 ‘이’씨 성을 가진 사람들이 대다수였다. 게다가 인증 횟수도 평소보다 몇 배 많은 기록. 뭔가 있네… 회사 워크샵 갔다 온 당일 이런 일이 발생한 것이 그나마 다행이라 생각했다. 워크샵 기간 동안 이런 일이 발생하면 도중에 비행기 타고 바로 왔어야 했다. 생각만 해도 끔찍하군.

“팀장님~ 좀 이상하긴 하네요. 죄다 ‘이’씨 성을 가진 사람들이네요. 누군가 개인정보 털어서 조회 하나 본데요?”
“글쵸? 좀 이상하죠?”
“네. 이거 인증 내역 로그 봐야겠어요.”

급히 전화를 끊고 Putty를 이용해 웹서버 로그를 접근 했다. 세상에. 로그 파일엔 그냥 대충 봐도 인증 시도 로그가 가득 했다.

‘햐… 어떤 XXX들이 인증 시도를 겁나 해 대는 구나. 어디서 들어 온 거야?’

로그의 인증 시도 IP 몇 개를 무작위로 골라 KISA의 국가/위치 조회를 시도해 보니 요청 국가가 대만으로 나온다.
혹시 하는 마음에 어제 오늘 인증이 정상적으로 성공 된 사람의 테이블 중 우리 회사 회원 테이블과 거래 테이블을 조인해 조회해 보니 거래는 발생한 건이 없었다. 다행이다. 그나마…
우선 이 문제 해결 방법은 인증 시도 한 해외 IP를 막는 것이 우선이라 생각했다. 현 우리 서비스는 해외 이용자가 거의 없으니 해외 인증 시도는 완전 막아버리자는 결론이 나왔다. 기획팀과 임원분에게 보고 후 차단하기로 최종 결정했다.
IDC센터에 해외 IP 차단 가능 하냐고 물었지만 유동적으로 변하는 IP대역을 방화벽 레벨에선 막는 건 무리라고 답변이 왔다.
음… 그럼 곤란한데…
이번엔 인증 대행 업체 기술 대응 파트에 전화해 봤다. 자기네 업체에선 해외 IP를 따로 막지 않는단다. 막으려면 요청 업체, 즉 우리가 막아야 한다고 한단다.
허허 이를 어쩐다?
어쩌긴 만들어야지.
아까 국가 조회 했던 KISA 홈페이지를 다시 뒤져보니 API 형태로 제공해 준다. 테스트로 진행 해 보니 아주 심플하게 JSON 형태로 리턴을 준다.
‘좋다. 이것이다.‘
재빨리 사용 가능 KEY를 발급 받고 인증 공통 JAR에 해당 국가 조회 기능을 추가 했다.

로컬 PC에선 잘 동작 하는 것 같다. WAR파일 만들어 개발 서버에서 테스트 진행. 결과는 만족스러웠다. 인증 시 시간은 아주 더 지연 됐지만 일반 사용자가 느끼기엔 의미 없는 시간차였다. 운영 서버에 다시 적용 후 다시 최종 테스트 진행 후 해외 차단 되어 에러 발생 되는 로그도 확인 했다.
띠리링… 띠리링…

“여보세요? 전데요. 해외 인증 시도 다 막았어요. 이제 그 쉐들 인증 안 될 꺼에요.”
“정말요? 다행이네요. 오늘 이런 CS건 몇건 더 있었거든요~ 수고하셨어요~. 그런데 해외 계신 분이 본인은 꼭 해야겠다고 강하게 우기시면 어떻게 하죠? 이런 건 생길 것 같은데……”
“헙~ 그… 그런가요? 하하하.“

해외 IP도 통과 시킬 화이트 IP 리스트를 만들어야겠다는 결론이 나왔다. 다시 인증 공통 JAR를 수정. 해외 IP일 때 화이트 리스트를 조회 하도록 기능 추가 했다. 다시 반복되는 로컬, 개발, 운영 서버의 테스트 진행.
“저 개발 팀장인데요. 화이트 IP리스트 추가 했어요. 혹시라도 거래 하겠다는 CS오면 저한테 알려 주세요~. CS건이 많지 않을 것 같아서 따로 관리자 페이지는 만들지 않았어요.”
“네~ 고생하셨어요. 껀 생기면 꼭 전화 드릴께요. ”

전화를 끊고 다시 로그를 살펴 본다. DB도 다시 조회해 본다. 로그는 한 시간 가량 계속 시도 정보가 올라오다가 사라 졌다. DB는 해외 차단 서비스 운영 반영 된 순간부터 실제 국내 사용자 정보만 쌓였다.

‘휴~ 다행이야.’

퇴근 전 다시 로그와 DB를 조회 해 본다.

정상이다.

잘 끝났군. 퇴근하자.


(하지만 이런 생각은 내일 싹 바뀌게 된다.)

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호