카테고리 없음

[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 8. 실무에서 꼭 필요한 보안 지식

noahkim_ 2025. 8. 26. 22:27

최범균 님의 "주니어 백엔드 개발자가 반드시 알아야 할 실무 지식" 책을 정리한 포스팅 입니다.

 

1. 중요한 보안

2. 인증과 인가

3. 데이터 암호화

4. HMAC을 이용한 데이터 검증

5. 방화벽으로 필요한 트래픽만 허용하기

  • 서버가 외부에 노출되기 시작하면 다양한 공격이 들어옴
  • 이를 방지하려면 필요한 만큼만 네트워크 접근을 허용하고 나머지는 차단해야 함

 

웹 방화벽

  • 웹 기반 위협을 감지하고 차단함
  • SQL Injection, XSS 공격 등

 

OS 방화벽

 

 

6. 감사 로그(audit log) 남기기

  • 컴플라이언스나 정책을 지키기 위해 기록함
  • ✅ 활동을 입증하는 증거로 사용됨
  •  보안 사고 발생 시, 문제 해결에 큰 도움이 됨

 

 

예시

더보기
  • 사용자 로그인/로그아웃 내역
  • 설정 변경 내역 (암호 초기화 등)
  • 민감 데이터 조회/수정 내역

 

7. 데이터 노출 줄이기

  • 서비스 운영자는 백오피스에서 다양한 고객 정보를 조회할 수 있음
  • 민감 데이터를 쉽게 획득하게 할수록 보안에 취약함
  • ✅ 서버측에서 응답 시, 민감 데이터만 마스킹하기 
  •  소수 인원에게만 민감 데이터 접근 권한 부여
  • ✅ 비정상적인 경로로 민감 데이터 수집하는 이상 접근을 감지하기
  •  로그 메시지도 민감데이터 마스킹하기

 

8. 비정상 접근 처리

  • 사용자에게 경고하는 것을 넘어 계정 중지 같은 정책을 적용할 수 있음

 

예) 비정상 접근

더보기
  • 평소와 다른 장소/다른 기기로 로그인
  • 여러 차례 로그인 실패
  • 동일한 URL이나 API를 반복해서 접근
  • 권한이 없는 URL이나 API를 반복해서 접근

 

9. 시큐어 코딩

  • Prepared Statement (input 값에 포함된 특수 문자를 SQL 문이 인식하지 못하게 변환함)
  • 입력값 검증 (길이 제한, 필수 여부 등)
  • 민감 정보 암호화 (주민 번호, 운전 면허 번호 등)
  • CORS 허용

 

10. 개인 보안

  • 개발자의 PC는 다양한 서버에 접속할 수 있음
  • ✅ 권한이 부여된 만큼 보안 위험에 민감해야 함
  • ❌ 불분명한 파일을 다운받거나 이메일의 첨부 파일을 실행하기