🎃 SW개발보안 설계
- SW개발보안
- 생명주기 : 요구사항명세 - 설계 - 구현 - 테스트 - 유지보수
- 3대요소 : 기무가 (기밀성, 무결성, 가용성)
- Secure SDLC : 보안개발 방법론
- 계획 - 분석 - 설계 - 구현 - 테스트
- 모든단계에서 보안요소를 고려
- 입력데이터 검증 및 표현 취약점 : 개발구현단계에서 유효성검증체계, 검증되지않은 데이터 입력처리 가능하게 구현
- XSS - 웹페이지에 포함된 부적절한 스크립트가 실행, 게시판에 악성코드삽입→쿠키정보 전송
- 사이트간 위조요청(CSRF) - 사용자의지무관, 공격자의 의도~
- SQL삽입
- 보안
- 에러처리
- 세션통제
개발보안 구현
- 암호알고리즘
- 양방향
- 대칭키 (암호화키 = 복호화키)
- 블록암호 - DES, AES, SEED(국내 한국인터넷진흥원)
- 스트림암호(난수열) - RC4
- 비대칭키 (=공개키 암호방식)
- 디피-헬만, RSA(소인수분해), ECC(타원곡선)
- 공개키(암호키), 비밀키(해독키)
- 암호화키 사전공유 불필요,
- 일방향 해시함수 (임의길이의 정보 → 고정길이의 암호문), 복호화 불가능
- MDC - 키 사용x, 변경감지코드, 메시지무결성 보장
- MAC - 키 사용, 메시지 인증코드, 메시지무결성 송신자 인증보장
- 종류 : MD5, SHA, HAS
- 해싱함수 종류 - 제곱법, 숫자분석법, 제산법
- 코드오류
- 널포인터역참조, 정수문자변환, 부적절한 자원해제, 변수초기화
- 캡슐화
- API오용
- DNS Lookup의한 보안결정, 위험한 함수사용, 널 매개변수 검사
🎃 시스템 보안설계
- 공격유형
- Dos : 과도한 데이터전송으로 시스템의 자원을 부족하게함
- SYN플러딩 : 공격자가 ack를 발송하지않고 syn패킷만 계속 보내 다른 사용자의 서버사용 불가능
- UDP플러딩 : 대량의 UDP패킷을 통해 자원고갈
- 스머프/스머핑 : 출발지 주소를 공격대상의 IP로 설정해서 패킷을 직접 브로드캐스팅
- 죽음의 핑(PoD) : 패킷을 크게해서 전송, 수신측에서 재조합하는 과정에서 많은 부하
- 랜드 어택 : 출발지, 목적지 IP같게, 수신자가 자기자신에게 응답을 보내게함
- 티어 드롭 : IP패킷의 재조합과정에서 잘못된 헤더정보
- 봉크/보잉크 : 같은 시퀀스번호를 계속 보냄 / 일정한 간격으로 시퀀스 번호에 빈 공간 생성
- DDoS : 여러대의 공격자를 분산배치 → 공격하도록 지시
- 구성요소 : 핸들러, 에이전트, 마스터, 공격자, 데몬프로그램
- 공격도구
- Trinoo
- Tribe Flood Network
- Stacheldraht
- 대응방안 : 차단정책업뎃, 좀비PC IP확보, 보안솔루션, 홈페이지보안관리, 시스템패치
- 공격종류
- DRDoS : DDoS에 비해 공격근원지 파악이 어렵고 공격 트래픽 생성효율이 훨씬 큼
- 공격대상IP를 출발지로하여 다수의 반사서버로 요청을 전송 → 피해서버에 응답이 과부하됨
- 애플리케이션 공격
- HTTP GET 플러딩 : 특정 url로 다량의 get전송
- slowloris : 최종끝을 알리는 개행문자열 전송X → 연결 장시간지속하여 연결자원 소진
- RUDY : 요청헤더를 엄청크게, 연결상태를 계속 유지
- slow http read dos
- Hulk Dos : 공격대상 url을 바꾸면서 다량의 get
- Hash Dos : 조작된 파라미터를 post로 웹서버에 전달, 다수의 해시충돌로 자원소모
- 네트워크 서비스공격
- 스푸핑 : 패킷헤더 수정을 통해 인증된 호스트의 IP 어드레스를 위조
- 트로이목마 : 악성코드가 숨어있는 겉으로는 정상프로그램
- 시스템 보안위협
- 버퍼 오버플로우
- 백도어 : 허가받지않은 권리를 얻는것,
- 탐지방법 : 무결성검사, 로그분석, SetUID, 열린포트확인
- 주요시스템 보안 공격기법:
- 포맷 스트링 공격 : 포맷 스트링을 인자로하는 함수의 취약점공격
- 레이스 컨디션 공격 : 둘이상의 프로세스,스레드의 공유자원 동시접근시 순서에따라 원하지않는 결과발생의 조건에서 발생
- 키로거공격 : 사용자의 키보드움직임을 탐지, 저장
- 루트킷 : 시스템 침입후 침입사실 숨기고 차후침입을 위한 여러가지 설치
- 보안관련 용어
- 스피어피싱 : 사회공학기법
- 스미싱 : 문자를 이용해서
- 큐싱 : 큐알코드로 악성앱
- 봇넷 : 감염된 다수 컴퓨터들이 네트워크로 연결된 형태
- APT공격 : 하나의 표적에 대해 지속적으로 공격
- 공급망공격 : 소프트웨어 개발사 네트워크에 침투
- 제로데이공격 : 대응책이 공표되기전에 공격, 신속성
- 웜 : 스스로 복제, 네트워크를통해 전파 / 바이러스와달리 독자적으로 실행
- 서버인증 : 접속자의 로그인 정보확인
- 서버인증의 기능
- 스니핑방지 : SSL인증서 설치 → 정보유출되더라도 모든정보가 암호화되어잇음, 전자상거래
- 피싱방지 :
- 데이터변조방지
- 기업신뢰도향상
- 인증기술 유형
- 지식기반(아이디,비번) , 소지기반(공인인증서, OTP), 생체기반(홍채, 지문) , 특징기반(서명, 발걸음)
- 서버접근통제 : 기무가를 보장, 식별, 인증, 권한부여 기법의 적용으로 접근을 통제함
- DAC(임의적 접근통제) - 신분기반으로 , ACL이 수정됨으로써 권한부여, 데이터소유자가 권한할당
- MAC(강제적 접근통제) - 권한, 규칙을 기준으로, 관리자만 권한할당가능, 시스템이 권한할당
- RBAC(역할기반 접근통제) - 역할을 기준으로, 중앙관리자가 통제하고 역할도 할당
- 접근통제 보호모델 : 벨-라파둘라(기밀성강조), 비바(무결성보장)
- 보안 아키텍쳐
- 보안 프레임워크
- 정보보호 요소 : 컴위요기 (컴플라이언스, 위협, 요구사항, 기회)