개발 방법론의 의해
위협모델링
- 해킹, 재난, 재해등등
 - 화면설계서보고 발생 가능한 위협들을 뽑아낸다.
 - 설계단계 보안 가이드가 필요함
 - 설계단계부터 위협모델링을 하고 보안 통제 기준을 설정하자
 
구현
- 단위테스트를 통한 보안 약점을 제거할거에염
 
유지보수
- 개발 할때 사용했던 구성 요소들을 빠짐없이 기입하고 버전정보들을 기입해서 모니터링 한다.
 
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