개발자를 위한 보안 점검항목

 ・ 3 min

photo by szm 4(https://unsplash.com/@suzm4film?utm_source=templater_proxy&utm_medium=referral) on Unsplash

앱 개발자와 스타트업을 위한 보안 체크포인트#

앱이나 웹 서비스를 만들다 보면 기능 개발에 몰두하다가 보안을 소홀히 하기 쉬워요. 하지만 막 만든 서비스라고 해도 봇넷을 통해 곧바로 공격 시도가 들어올 수 있기 때문에, 초창기부터 보안을 고려하는 습관이 필요해요.
이번 글에서는 제가 찾아본 자료를 바탕으로 서비스 개발 시 신경 써야 할 보안 포인트들을 정리해보았어요.

robots.txt와 불필요한 정보 노출#

많은 개발자들이 robots.txt 파일에 접속을 막기 위한 Disallow 항목을 작성하고 있어요.
문제는 해커 입장에서는 이 정보가 ‘여기 중요한 경로가 있다’라는 힌트가 될 수도 있다는 점이죠.
따라서 민감한 정보나 관리 페이지 URL 등을 파일에 그대로 노출하는 방식은 피하는 것이 좋아요.

라이브러리와 프레임워크의 취약점#

서비스에 사용하는 오픈소스 라이브러리는 항상 최신 버전으로 관리해야 해요.
해커들은 특정 라이브러리의 보안 취약점을 빠르게 파고들기 때문에, 어떤 라이브러리를 썼는지만 확인해도 공격 루트를 찾을 수 있어요.
기본 계정이나 초기 비밀번호가 설정된 라이브러리 또는 제품은 반드시 초기 설정을 바꾸고, 필요하지 않은 기능은 꺼 두는 것을 권장해요.

웹 보안 점검과 가이드라인#

개인정보 보호와 암호화#

과거에는 구글 해킹 기법(Google Dorking)으로 주민등록번호 같은 민감한 데이터가 검색에도 걸린 적이 있어요.
지금은 크게 개선되었지만, 여전히 안전하지 않은 서버에서는 개인정보가 유출될 수 있어요.
신용카드, 사용자 식별 정보, 인증 관련 데이터는 반드시 저장 시 암호화를 적용하고, 전송 구간에서는 HTTPS를 기본으로 적용해야 해요.

모의 해킹과 실습 환경#

현재는 교육이나 연습을 위해 의도적으로 취약한 가상 서버(Vulnerable VM)가 제공되기도 해요.
개발자나 보안 담당자가 직접 이러한 환경에서 공격 기법을 실습해보면, 실제 서비스 보완에 큰 도움이 돼요.

계정 보안과 비밀번호 관리#

무차별 대입 공격(Brute-force attack)을 방어하기 위해서는 비밀번호를 자주 갱신하고, 서버 측에서는 로그인 실패 시 일정 시간 대기 후에 결과를 반환하는 것이 좋아요.
이는 서버 속도가 느린 것이 아닌 공격 시도를 줄이는 방어 기법이에요.

ISMS-P 인증 필요성#

한국에서 서비스를 운영하는 유망 기업들은 궁극적으로 ISMS-P 인증 심사를 받아야 해요.
일정 규모 이상이 되면 필수가 되기 때문에, 초기 단계부터 준비하고 보안 관리 체계를 만들어두는 것이 중요해요.

코드 난독화와 리버스 엔지니어링 방지#

앱을 배포할 때는 코드를 난독화해 리버스 엔지니어링을 어렵게 만들어야 해요.

  • Flutter에서는 --obfuscate 빌드 옵션을 사용할 수 있어요
  • 안드로이드 네이티브 앱에서는 ProGuard나 R8을 활용해요
    또한 탈옥(Jailbreak)된 기기에서 실행 여부를 감지해 민감 기능을 막는 방법도 고려할 수 있어요.

앱과 서버 보안은 ‘한 번 점검하고 끝’이 아니라, 서비스 운영 전반에 걸쳐 계속 신경 써야 하는 문제예요.
개발 초기부터 보안을 습관처럼 챙기면 추후 큰 비용과 위기를 막을 수 있어요.

개발 보안 체크리스트

  • 외부 입력값 유효성 검사(모든 입력 데이터에 대한 검증)
  • 에러 메시지와 시스템 정보 노출 방지
  • 개인정보 및 인증정보 암호화(로그/DB 저장 시 암호화)
  • 비밀번호, API 키, 토큰 등 하드코딩 금지
  • 관리자/중요 페이지 경로 숨기기(robots.txt에 노출 방지)
  • 기본 계정 및 비밀번호, 설정값 모두 변경
  • 소스코드 난독화(Flutter: --obfuscate, Android: ProGuard 등)
  • 앱 무결성 검증 및 변조 감지
  • 루팅/탈옥 탐지 및 차단 기능 적용
  • 입력 정보(비밀번호, 주민번호 등) 암호화 입력/가상 키패드 적용
  • 인증 및 권한 관리(2차 인증, 최소 권한 원칙)
  • 세션 관리 및 세션 만료 처리(세션 토큰 보호 및 주기적 갱신)
  • 전송 구간 암호화(HTTPS/TLS 기반 데이터 전송)
  • 정적/동적 분석 도구를 이용한 취약점 진단
  • 모의 해킹 및 수동 코드 리뷰 실시
  • 앱 서명 키 안전 보관 및 관리(공용 저장소 업로드 금지)
  • 취약점 발견 시 즉각적인 대응 및 수정
  • 정기적인 보안 교육 및 트렌드 공유
  • ISMS-P 등 법적·인증 요건 사전 검토 및 준비
  • 실시간 보안 모니터링 및 로그 분석

We are the leaves of one branch, the drops of one sea, the flowers of one garden.

— Jean Lacordaire


Other posts
cover_image
 ・ 1 min

블로그에 적용할 것들!

cover_image
 ・ 3 min

NEXT.js에서 public 폴더 외에서 이미지 사용하기

cover_image
 ・ 2 min

42서울을 준비하는 사람들을 위한 책 추천