본문 바로가기
정보보안기사&CISSP관련/Application Security

[Day 46] 웹 애플리케이션 개발 보안 요구사항

by minimalist_2022 2020. 9. 25.

1. 사용자에게 전달된 값(Hidden Form 필드, 파라미터)을 재사용할 경우 신뢰해서는 안된다.

  • 클라이언트에 인증받았다는 정보를 저장했다가 다시 사용하는 것은 쉽게 조작이 가능하므로, 세션 기반으로 서버에서 처리하도록 변경해야 함
  • Hidden Form Field : 여러 단계 인증일 때, 이전 인증결과 저장

2. 최종 통제 메커니즘은 반드시 서버에서 수행되어야 한다.

  • 클라이언트에서의 입력값 검증은 쉽게 우회가능함. 1차 검증은 클라이언트에서 하고 2차 검증은 서버에서 수행되어야 함

3. 클라이언트에게 중요 정보를 전달하지 않는다. 

  • 중요 정보를 하드코딩하거나 주석에 중요정보를 기재해선 안됨
  • 쿠키로 중요정보를 전달해선 안되고, 부득이한 경우 암호화를 해야 함

4. 중요 정보 전송 POST Method 및 SSL(TLS)를 적용한다.

  • GET Method를 사용하면 URL에 정보가 노출되고 서버 엑세스 로그에도 남게 되므로 POST 메소드를 사용해야 하고, SSL(HTTPS)을 사용한 암호화 통신 적용 필요

5. 중요한 트랜잭션(사용자 정보 변경 등) 발생 시 사용자 비밀번호를 재인증한다.

  • CSRF 방지 목적

6. 중요 정보를 보여주는 페이지는 캐쉬를 사용하지 않는다

  • no cache 설정이 되어 있지 않으면 로그아웃 화면에서 뒤로가기해서 중요 정보 확인 가능
  • 해당 페이지 요청 시마다 캐시된 페이지가 아닌 매번 서버로부터 새롭게 전송받아 사용하게끔 no-cache 설정 필요

7. 적절한 방법으로 암호화한다

  • 자체 개발한 알고리즘이 아닌 공인된 암호 알고리즘 사용
  • 암호화키가 없는 알고리즘은 암호화가 아닌 단순 인코딩(ex. base64)으로, 디코딩을 통해 바로 복원되므로 기밀성 보장 불가
  • 암호화키는 소스코드에 하드 코딩 금지

 


※ 참고

알기사 정보보안기사 실기 교재

'정보보안기사&CISSP관련 > Application Security' 카테고리의 다른 글

[Day 57] SNMP, NMS  (0) 2020.10.06
[Day 47] Web Log Format  (0) 2020.09.26
[Day 45] 파일 업로드 취약점  (0) 2020.09.24
[Day 44] XSS, CSRF  (0) 2020.09.23
[Day 43] HTTP 특징  (0) 2020.09.22