개발 방법론의 의해
위협모델링
- 해킹, 재난, 재해등등
- 화면설계서보고 발생 가능한 위협들을 뽑아낸다.
- 설계단계 보안 가이드가 필요함
- 설계단계부터 위협모델링을 하고 보안 통제 기준을 설정하자
구현
- 단위테스트를 통한 보안 약점을 제거할거에염
유지보수
- 개발 할때 사용했던 구성 요소들을 빠짐없이 기입하고 버전정보들을 기입해서 모니터링 한다.
SW개발 생명주기 단계별 보안
테스트
- 위협 도출하고 위협마다 보안 통제 기준들이 있는데 맵핑을 한다
- 소프트웨어 진단 도구
- NIST Source Code Security
- 국내는 IT보안인증 사무국에서 참고 가능하다.
- 한국인터넷진흥원 -> 지식플랫폼 -> 가이드라인 -> 보안취약점 및 침해사고대응 -> 소프트웨어 보안약점 진단가이드
- ZAP
- 도메인 입력하면 자동으로 진단해준다.
- Fiddler
유지보수
사례
- 새로운 기능 추가, 기능 삭제시 발생
- 이벤트 페이지 만듦
- 보안 활동 추가되지 않은 경우가 많음
- 기능삭제요청
- 삭제가 아니고 주석처리
- 이벤트 페이지 만듦
- 보안패치
- 소프트웨어 개발시 사용한 구성요소들
- SW 구성요소 (프레임워크 종류 버전, 라이브러리 종류 버전)
- 자재명세서를 통한 모니터링
- 해당 버전의 취약점이 발견 또는 발표되는 경우
공개SW 진단도구
- PMD
- 문법상 오류
- SpotBugs
- SQL삽입 등의 취약점
- 자바 바이트 코드를 분석하여 버그 패턴을 발견하는 정적분석 공개SW
- 기존에 존재하던 정적분석 공개SW FindBugs를 계승한 프로젝트
- Java 프로그램에서 발생 가능한 100여개의 잠재적인 에러탐지 및 XML로 결과 저장
- Linux, Windows, MacOSX 운영체제를 지원하며 GUI 기반의 단독 실행
- burp
- 프록시 설정하여 url intercept가능
실습
- burp로 로깅하여 다운로드 받고자하는 파일 이름을 변경해서 소스코드 다운로드 가능
- 루트디렉토리에 있는 web.cfg 파일을 다운로드 할 수도 있음
- 디비 접속정보 암호화 필요
- 암호화 해도 key source가 포함돼있으면 소용없음
구현단계 보안 강화를 위한 기준
입력데이터 검증 및 표현
- DB쪽
- 검증되지 않은
- 정상적인 숫자 외에 개인정보를 질의하는 SQL구문 삽입 실행이 가능
- SQL 삽입 취약여부 판단 점검 방법
- SQL특수 문자 또는 임의의 Query 삽입 후 DB에러페이지 발생
- ’
- ”
- –
- ;
- 참쿼리, 거짓쿼리를 차례로 입력 후 반응이 다른지 확인
- ‘or 1=1 – / ‘or ‘a’=’a’
- SQL특수 문자 또는 임의의 Query 삽입 후 DB에러페이지 발생
- 경로 조작 및 자원 삽입
- 크로스사이트 스크립트
- 위험한 형식 파일 업로드
- 서버사이드 요청 위조
- 가장 많은 항목을 차지하고 있음
보안기능
- 인증이 정상적으로 이루어지지 않음
- 적절한 인증 없는 중요기능 허용
- 정형화 돼있지 않고 응용된 취약점
- 로직상의 문제는 수동으로 찾아야한다.
시간 및 상태
에러처리
공격들
크로스사이트 공격
iframe, script 태그 삽입공격
- 게시글의 내용에있는 꺽쇠태그를 >로 바꿔준다
- 라이브러리 사용
- 게시판태그의 p, string,img 태그 사용하면 예쁘지 않다
- 허용하는 태그들은 다시 역치환을 해준다.
- C#은 antixss library 사용
서버 측 요청 위조
- url받아와서 open connection함수 사용할때 발생한다
- 내부 시스템에 연계돼있는 중요시스템 정보 유출 가능성이 있다.
서버 측 요청 위조(SSRF)
해결법
- 내부 URL을 블랙리스트로 지정
- key에 맵핑되는 url만 사용하게 만든다
- 통신구간 암호화 사용
- Secure Socket Layer
- Transport Layer Security
- Nmap
- 이거로 진단한다.
무결성 검사 없는 코드 다운로드
- A시스템에서 B라는 시스템에 jar 파일 전송할 때
- 패치파일 전송할 때
- 기타 실행파일 전송할 때
- 주는쪽에서 전달해주기전에 코드가 변조되지 않았는지 무결성 검사를 해야한다.
- 알약등의 업데이트서버를 해킹하여 이용자들에게 악성코드 심음
해결법 - 무결성 검사
- 파일의 hash값이 달라졌는지 체크
- Anti Virus를 가지고 체크
- 파일 건내주기전에 백신으로 검사
- 전자 서명 코드
이 문서는
jhy156456에 의해 작성되었습니다.
마지막 수정 날짜:2023-06-10 01:00:00