데이터의 기밀성, 무결성, 가용성을 유지하는것을 목표
보안 취약점 발생하는 경우 : 보안 요구사항 정의 X, 논리적 오류 포함, 취약점 있는 코딩규칙 적용, SW배치 적절X, 취약점 발견시 대응 적절X
안전한 개발 위한 작업 : 보안교육 실시, 생명주기 각 단계마다 보안 수행, 재사용 가능한 보안 모듈 만들어 사용
보안 관련 기관
행정안전부 - 보안 정책 총괄, 제도 정비, 약점 진간하는 사람의 양성 업무수행
한국인터넷진흥원(KISA) - 보안정책 및 가이드 개발, 보안에 대한 기술지원, 교육과정 및 자격제도 운영
발주기관 - 보안계획 ㅅ립, 감리법인, 보안 준수여부 점검
사업자 - 교육 실시, 가이드 참조해 개발
감리법인 - 감리 계획을 수립하고 협의, 약점의 제거 여부 및 조치 결과확인
SW 개발 보안 활동 관련 법령( 읽고 이해하고 써보기)
SW 개발 보안 활동 관련 기타 규정 ( 읽고 이해하고 써보기)
보안상 안전한 SW개발위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
요구사항 - 요구사항 식별 / 보안요소 : 기밀성 무결성 가용성 인증 부인방지
설계 - 보안 요구사항들을 SW설계서에 반영하고 보안 설계서를 작성
구현 - 코딩정의서 및 보안가이드 준수, 요구사항들 구현, 시큐어코딩
테스트 - 테스트
유지보수 - 사고 발생시 이를 해결하고 보안패치 실시
세션은 서버와 클라이언트의 연결을 의미, 세션통제는 세션의 연괄과 연결로 인해 발생하는 정보를 관리하는 것
불충분한 세션관리
일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃이 너무 길게 설정되어 있는 경우 발생할 수 있는 보안 약점, 하이재킹과 같은 공격으로 접근가능
잘못된 세션에 의한 정보 노출
다중 스레드 환경에서 멤버 변수레 정보를 저장할 때 발생
싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류 발생하거나 정보 노출 가능성이 있음
세션 설계시 고려사항
시스템의 모든 페이지에서 로그아웃 가능하게 UI구성
로그아웃 요청시 할당된 세션 완전히 제거
이전 세션 종료안되면 새 세션 생성불가
중복 로그인을 허용하지 않은 경우 클라이언트의 중복 접근에 대한 세션관이 정책을 수립
세션 ID 관리 방법
안전한 서버에서 최소 128비트 길이로 생성
난수 알고리즘 적용
주기적으로 재할당, 로그인시 전 세션삭제 하고 재할당
SQL삽입 / 경로 조작 및 자원 삽입 / XSS / 운영체제 명령어 삽입 / 위험한 형신 파일 업로드 / 신뢰되지 않는 URL 주소로 자동접속 연결
적절한 인증 없이 중요기능 허용 / 부적절한 인가 / 중요한 자원에 대한 잘못된 권한 설정 / 취약한 알고리즘 사용 / 중요정보 평문 저장 및 전송 / 하드코드 된 비밀번호
오류 메시지 통한 정보 노출 / 오류 상황 대응 부재 / 부적절한 예외처리
널 포인터 역참조 / 부적절한 자원 해제 / 해제된 자원 사용 / 초기화되지 않은 변수 사용
장점) 속도가 빠르며 알고리즘이 단순하고 파일의 크기가 작음
단점) 사용자 증가에 따라 관리하는 키의 수가 많아짐
장점) 키의 분배 용이, 관리 키의 수 적음
단점) 속도가 느리고 알고리즘이 복잡, 파일의 크기가 큼