목록전체 글 (84)
IgnatiusHeo
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(425~428p) 구분 - 에러처리 설계단계 개요 오류가 발생할 수 있는 부분을 확인하였으나, 이러한 오류에 대하여 예외 처리를 하지 않을 경우, 공 격자는 오류 상황을 악용하여 개발자가 의도하지 않은 방향으로 프로그램이 동작하도록 할 수 있다. 진단 세부사항 (설계단계) 보안대책 (구현단계) 오류가 발생할 수 있는 부분에 대하여 제어문을 사용하여 적절하게 예외 처리(C/C++에서 if와 switch, Java에서 try-catch 등)를 한다. 진단방법 (구현단계) 오류가 발생할 수 있는 부분에 대하..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(419~424p) 구분 - 에러처리 설계단계 - 예외처리 https://cryptocurrencyclub.tistory.com/108 개요 응용프로그램이 실행환경, 사용자 등 관련 데이터에 대한 민감한 정보를 포함하는 오류 메시지를 생성하여 외부에 제공하는 경우, 공격자의 악성 행위를 도울 수 있다. 예외발생시 예외이름이나 스택 트레이스를 출력하는 경우, 프로그램 내부구조를 쉽게 파악할 수 있기 때문이다. 진단 세부사항 (설계단계) ① 명시적인 예외의 경우 예외처리 블럭을 이용하여 예외 발생 시 수행해..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(415~418p) 구분 - 시간 및 상태 설계단계 개요 재귀의 순환횟수를 제어하지 못하여 할당된 메모리나 프로그램 스택 등의 자원을 과다하게 사용하면 위험하다. 대부분의 경우, 귀납 조건(Base Case)이 없는 재귀함수는 무한 루프에 빠져 들게 되고 자원고갈을 유발함으로써 시스템의 정상적인 서비스를 제공할 수 없게 한다. 진단 세부사항 (설계단계) 보안대책 (구현단계) 모든 재귀 호출시, 재귀 호출 횟수를 제한하거나, 초기값을 설정(상수)하여 재귀 호출을 제한해야 한다. 진단방법 (구현단계) 자신을..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(406~414p) 구분 - 시간 및 상태 설계단계 개요 병렬시스템(멀티프로세스로 구현한 응용프로그램)에서는 자원(파일, 소켓 등)을 사용하기에 앞서 자원의 상태를 검사한다. 하지만, 자원을 사용하는 시점과 검사하는 시점이 다르기 때문에, 검사하는 시점(Time Of Check)에 존재하던 자원이 사용하던 시점(Time Of Use)에 사라지는 등 자원의 상태가 변하는 경우가 발생한다. 예를 들어, 프로세스 A와 B가 존재하는 병렬시스템 환경에서 프로세스 A는 자원사용(파일 읽기)에 앞서 해당 자원(파일..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(400~405p) 구분 - 보안기능 설계단계 - 인증 수행 제한 https://cryptocurrencyclub.tistory.com/101 개요 일정 시간 내에 여러 번의 인증을 시도하여도 계정잠금 또는 추가 인증 방법 등의 충분한 조치가 수행되지 않는 경우, 공격자는 예상 ID와 비밀번호들을 사전(Dictionary)으로 만들고 무차별 대입(brute force)하여 로그인 성공 및 권한획득이 가능하다. 진단 세부사항 (설계단계) ① 로그인 기능 구현 시, 인증시도 횟수를 제한하고, 초과된 인증시도..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(394~399p) 구분 - 입력데이터 검증 및 표현 설계단계 - 업로드·다운로드 파일 검증 https://cryptocurrencyclub.tistory.com/98 개요 원격으로부터 소스코드 또는 실행파일을 무결성 검사 없이 다운로드 받고, 이를 실행하는 제품들이 종종 존재한다. 이는 호스트 서버의 변조, DNS 스푸핑 (Spoofing) 또는 전송시의 코드 변조 등의 방법을 이용하여 공격자가 악의적인 코드를 실행할 수 있도록 한다. 진단 세부사항 (설계단계) ① 업로드되어 저장되는 파일의 타입, 크..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(390~393p) 구분 - 보안기능 설계단계 - 암호연산 https://cryptocurrencyclub.tistory.com/105 개요 비밀번호를 저장시 일방향 해시함수의 성질을 이용하여 비밀번호의 해시값을 저장한다. 만약 비밀번호를 솔트(Salt)없이 해시하여 저장한다면, 공격자는 레인보우 테이블과 같이 해시값을 미리 계산 하여 비밀번호를 찾을 수 있게 된다. 진단 세부사항 (설계단계) ① 대칭키 또는 비대칭키를 이용해서 암복호화를 수행해야 하는 경우 KISA의 암호이용안내서에서 정의하고 있는 암..
작성일: 230706 ※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다. 정리 내용: 소프트웨어 보안약점 진단 가이드(386~389p) 구분 - 보안기능 설계단계 - 암호키 관리 https://cryptocurrencyclub.tistory.com/104 개요 비밀번호를 주석문에 넣어두면 시스템 보안이 훼손될 수 있다. 소프트웨어 개발자가 편의를 위해서 주석문에 비밀번호를 적어둔 경우, 소프트웨어가 완성된 후에는 제거하는 것이 어렵게 된다. 또한, 공격자가 소스코드에 접근할 수 있다면,아주 쉽게 시스템에 침입할 수 있다. 진단 세부사항 (설계단계) ① DB데이터 암호화에 사용되는 암호키는 KISA의 암호이용안내서에 정..