본문 바로가기

자격증/정보처리기사 - 필기

정보시스템 구축 관리 - 소프트웨어 개발 보안 구축

728x90

Secure SDLC : 비용 최소화, SW 개발 생명주기 방법론에 보안 프로세스 포함

Secure Coding : 구현 단계에서 위협 요소들 고려하며 코딩

 

세션 : 서버와 클라이언트 연결, 요구사항 분석/설계 단계에서 실행

 

● 입력 데이터 검증 및 보안 약점

-> SQL 삽입 : 필터링

-> 경로 조작 및 자원 삽입 : 필터 사용

-> XSS : HTML 태그 사용 제한, 특수 문자를 다른 문자로 치환

-> OS 명령어 삽입 : 외부 입력 값을 검증 없이 내부 명령어로 사용 X

-> 위험한 형식 파일 업로드 : 사이트와 서버 경로 분리, 실행 속성 제거

-> 비신뢰 URL 자동 접속 : 화이트 리스트로 관리

 

● 교착상태 예방 불가능

● TOCTOU 경쟁 조건 : 검사 시점과 사용 시점을 고려하지 않고 코딩 시 발생

● Race Condition : 두 개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하는 상황

 

에러 처리 : 오류 메시지를 통한 정보노출, 오류 상황 대응 부재, 부적절한 예외처리

 

코드 오류

널 포인트 역참조 – 널 값 검사

부적절한 자원 해제 – 예외처리에 관계없이 자원 반환되도록 코딩

해제된 자원 사용 – 포인터 초기화

초기화되지 않은 변수 사용 – 메모리 초기화

 

캡슐화 :

잘못된 세션에 의한 정보 노출 – 레이스컨디션으로 동기화 오류 발생

방지법 : 멤버 변수 보다 지역 변수 활용

제거되지 않고 남은 디버그 코드 - 공격자가 악용 가능

방지법 : 남아있는 디버그 코드 삭제

시스템 데이터 정보 노출 – 시스템 메시지를 외부로 출력하도록 코딩 시 발생

방지법 : 노출되는 메시지는 최소한의 정보만 제공

 

● Public 메소드로부터 반환된 Private 배열 : 배열의 주소가 외부로 공개되어 외부에서 접근 가능

-> Private 배열을 별도 메소드를 통해 조작

● Private 배열에 Public 데이터 할당 : Private 배열을 외부에서 접근할 수 있게 된다.

-> 래퍼런스가 아닌 값을 직접 저장

 

API 오용

보안 취약한 API 사용 시 발생 ex. strcat(), strcpy()

방지법 : 안전한 함수로 대체, 보안 보장되는 인터페이스 사용

API를 잘못된 방식으로 사용 시 발생

도메인 명을 통해 보안 결정 내릴 때 발생 : DNS Lookup

방지법 : 도메인 이름을 비교하지 않고 IP 주소를 직접 입력해 방지

 

● DES 알고리즘 : 평문 -> 64bit / 실제 키 -> 56bit

● RSA 기법 : 암호화/복호화에 서로 다른 별도의 키 사용

● 해시 : 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환

● SEED : KISA에서 개발