보안상 안전한 SW 개발 위해 SDLC (SW개발생명주기) 에 보안 강화를 위한 프로세스를 포함한 것
- 방법론 - CLASP (초기) / SDL (MS사) / Seven Touchpoints (모범사례)
- 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수
구현 단계에서 발생 가능한 취약점을 최소화하기 위해, 보안 요소들을 고려하며 코딩하는 것
- 사전 대응 > 안정성 & 신뢰성 확보
인가 O 사용자에게만 자원 접근 가능 / 인가 X 개인 or 시스템 접근에 따른 정보 공개 및 노출 차단
인가 O 사용자만 수정 가능 / 전송 중인 정보는 수정되지 않아야 함
인가 O 사용자는 시스템 내 정보 및 자원을 언제든 사용 가능
권한 가진 사용자,앱이 원하는 서비스를 지속 사용 보장
웹페이지에 악의적인 스크립트를 삽입하여, 방문자들의 정보 탈취 혹은 비정상적인 기능 수행 유발
사용자가 자신의 의지와 무관하게, 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격
웹 응용 프로그램에 SQL 삽입하여, 내부 DB 데이터 탈취 혹은 조작 행위
SW 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화 등 올바르게 구현 위한 점검 항목
- ex) 적절한 인증 없이 중요기능 허용 / 부적절한 인가 / 중요한 자원에 대한 잘못된 권한 설정 /
취약한 암호화 알고리즘 사용 / 중요정보 평문 저장 및 전송 / 하드코드된 암호화 키
SW 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 Type 변환, 자원 반환 등 오류 예방 위한 점검 항목
- ex) 널 포인터 역참조 / 부적절한 자원 해제 / 해제된 자원 사용 / 초기화되지 않은 변수 사용
정보 은닉이 필요한 중요 데이터/기능을 불완전 캡슐화 or 잘못 사용으로 발생하는 문제 예방 위한 점검 항목
- ex) 잘못된 세션에 의한 정보 노출 / 제거되지 않고 남은 디버그 코드 / 시스템 데이터 정보 노출 /
Public 메소드로부터 반환된 Private 배열 / Private 배열에 Public 데이터 할당
개인정보를 암호화하여 송수신할 수 있는 기능 갖춘 서버
로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
네트워크로 컴퓨터에 접속하는 사용자의 등록 여부 확인 & 전송된 메시지의 위변조 여부 확인
- 고정된 패스워드 : 사용자가 알고 있는 비밀번호를 접속할 때마다 반복해서 입력함
- 패스 프레이즈 : 일반 패스워드보다 길고 기억하기 쉬운 문장을 활용하여 비밀번호 구성
- 아이핀 (i-PIN) : 인터넷에서 주민등록번호 대신 쓸 수 있도록 하는 사이버 주민번호
- 신분증 : 사용자의 사진이 포함된 민증, 면허증, 여권 등을 사용하여 사용자의 신분 확인
- 메모리 카드 (토큰) : 마그네틱 선에 보안 코드 저장하여 사용, 카드 리더기로만 읽기 가능
- 스마트 카드 : 사용자의 정보뿐만 아니라 특정 업무를 처리할 수 있는 기능 내장
- OTP (One Time Password) : 사용자가 패스워드를 요청할 때마다 암호 알고리즘을 통해 새롭게 생성된 패스워드 사용, 한 번 사용된 패스워드는 폐기됨
행위 기반 인증 (Sth You Do) : 사용자의 행동 정보 이용해 인증 수행 ex) 서명, 동작
위치 기반 인증 (Sth You Are) : 인증 시도하는 위치의 적절성 확인 ex) GPS, IP