Course Outline

1일차

  • IT 보안 및 시큐어 코딩
    • 보안의 성격
    • IT 보안 관련 용어
    • 위험의 정의
    • IT 보안의 다양한 측면
    • 다양한 응용 분야의 요구 사항
    • IT 보안과 보안 코딩
    • 취약점부터 봇넷, 사이버 범죄까지
      • 보안 결함의 성격
      • 어려움의 이유
      • 감염된 컴퓨터부터 표적 공격까지
    • 보안 결함 분류
      • Landwehr의 분류학
      • 일곱 유해한 왕국
      • OWASP 2013년 상위 10개
      • OWASP 2003~2013년 상위 10개 비교
  • Microsoft® 보안 개발 수명 주기(SDL) 소개
    • 의제
    • 공격받고 있는 애플리케이션...
      • 사이버 범죄의 진화
      • 공격은 애플리케이션에 집중되고 있습니다
      • 대부분의 취약점은 소규모 ISV 앱에 있습니다.
    • Microsoft SDL의 기원
      • 보안 타임라인 Microsoft...
      • SDL을 따르려면 어떤 앱이 필요합니까?
    • Microsoft 보안 개발 수명주기(SDL)
      • Microsoft 보안 개발 수명주기(SDL)
      • SDL 사전 요구 사항: 보안 교육
      • 1단계: 요구 사항
      • 2단계: 디자인
      • 3단계: 구현
      • 4단계: 검증
      • 5단계: 출시 – 대응 계획
      • 5단계: 출시 – 최종 보안 검토
      • 5단계: 출시 – 아카이브
      • SDL 이후 요구 사항: 응답
      • LOB 앱을 위한 SDL 프로세스 지침
      • Agile 방법론에 대한 SDL 지침
      • 안전한 소프트웨어 개발에는 프로세스 개선이 필요합니다
  • 보안 설계 원칙
    • 공격 표면
      • 공격 표면 감소
      • 공격 표면 - 예
      • 공격 표면 분석
      • 공격 표면 감소 - 예
    • 은둔
      • 은둔
      • 애플리케이션 동작 및 문제 이해
    • 심층 방어
      • SDL 핵심 원칙: 심층 방어
      • 심층 방어 – 예시
    • 최소 권한 원칙
      • 최소 권한 - 예
    • 안전한 기본값
      • 보안 기본값 - 예
  • 보안 구현 원칙
    • 의제
    • Microsoft 보안 개발 수명주기(SDL)
    • 버퍼 오버플로 기본 사항
      • Intel 80x86 프로세서 – 메인 레지스터
      • 메모리 주소 레이아웃
      • x86에서 C/C++의 함수 호출 메커니즘
      • 지역 변수와 스택 프레임
      • 스택 오버플로
        • 스택의 버퍼 오버플로
        • 연습 - 소개
        • 운동 BOF소개
        • BOFIntro 연습 – 스택 레이아웃 결정
        • BOFIntro 연습 – 간단한 익스플로잇
    • 입력 검증
      • 입력 유효성 검사 개념
      • 정수 문제
        • 음의 정수 표현
        • 정수 오버플로
        • 산술 오버플로 – 출력을 맞춰보세요!
        • IntOverflow 연습
        • Math.Abs(int.MinValue)의 값은 무엇입니까?
      • 정수 문제 완화
        • 정수 문제 완화
        • 산술 오버플로 방지 – 덧셈
        • 산술 오버플로 방지 – 곱셈
        • C#의 확인된 키워드로 오버플로 감지
        • 연습 – C#의 selected 키워드 사용
        • C#의 오버플로로 인해 발생한 예외
      • 사례 연구 – .NET의 정수 오버플로
        • 실제 정수 오버플로 취약점
        • 정수 오버플로 취약점 악용
      • 경로 순회 취약점
        • 경로 순회 완화

2일차

  • 보안 구현 원칙
    • 주입
      • 대표적인 SQL 주입 공격 방법
      • 블라인드 및 시간 기반 SQL 주입
      • SQL 주입 방지 방법
      • 명령 주입
    • 깨진 인증 - 비밀번호 관리
      • 연습 – 해시된 비밀번호의 약점
      • 비밀번호 관리 및 저장
      • 비밀번호 저장을 위한 특수 목적 해시 알고리즘
    • XSS(교차 사이트 스크립팅)
      • XSS(교차 사이트 스크립팅)
      • CSS 주입
      • 악용: 다른 HTML 태그를 통한 주입
      • XSS 예방
    • 기능 수준 액세스 제어 누락
      • 파일 업로드 필터링
    • 실용적인 암호화
      • 대칭 암호화로 기밀성 제공
      • 대칭 암호화 알고리즘
      • 블록 암호 – 작동 모드
      • 해시 또는 메시지 다이제스트
      • 해시 알고리즘
      • 메시지 인증 코드(MAC)
      • 대칭키로 무결성과 신뢰성 제공
      • 공개키 암호화로 기밀성 제공
      • 경험 법칙 - 개인 키 소유
      • 비밀번호 관리의 일반적인 실수
      • 연습 – 하드 코딩된 비밀번호
      • 결론
  • 보안 검증 원칙
    • 기능 테스트와 보안 테스트
    • 보안 취약점
    • 우선순위
    • SDLC의 보안 테스트
    • 테스트 계획 단계(위험 분석)
    • 범위 지정 및 정보 수집
      • 이해관계자
      • 자산
      • 공격 표면
      • 테스트를 위한 보안 목표
    • 위협 모델링
      • 위협 모델링
      • 공격자 프로필
      • 공격 트리 기반 위협 모델링
      • 오용/남용 사례 기반 위협 모델링
      • 오용/남용 사례 - 간단한 웹 상점 예
      • 위협 모델링에 대한 요소별 STRIDE 접근 방식 – MS SDL
      • 보안 목표 식별
      • 다이어그램 작성 - DFD 요소의 예
      • 데이터 흐름 다이어그램 - 예
      • 위협 열거 – MS SDL의 STRIDE 및 DFD 요소
      • 위험 분석 – 위협 분류
      • DREAD 위협/위험 순위 모델
    • 보안 테스트 기술 및 도구
      • 일반적인 테스트 접근 방식
      • SDLC의 다양한 단계에 대한 기술
    • 코드 검토
      • 소프트웨어 보안을 위한 코드 검토
      • 오염 분석
      • 휴리스틱
    • 정적 코드 분석
      • 정적 코드 분석
      • 정적 코드 분석
      • 연습 - 정적 코드 분석 도구 사용
    • 구현 테스트
      • 수동 런타임 확인
      • 수동 및 자동 보안 테스트
      • 침투 테스트
      • 스트레스 테스트
    • 퍼징
      • 자동화된 보안 테스트 - 퍼징
      • 퍼징의 과제
    • 웹 취약점 스캐너
      • 연습 – 취약점 스캐너 사용
    • 환경 점검 및 강화
      • 공통 취약점 점수 시스템 – CVSS
      • 취약점 스캐너
      • 공개 데이터베이스
    • 사례 연구 - 양식 인증 우회
      • NULL 바이트 종료 취약점
      • 코드의 양식 인증 우회 취약점
      • 양식 인증 우회 악용
  • 지식 소스
    • 보안 코딩 소스 – 스타터 키트
    • 취약점 데이터베이스
    • MSDN의 .NET 보안 코딩 지침
    • .NET 보안 코딩 치트 시트
    • 추천 도서 – .NET 및 ASP.NET
 14 Hours

Number of participants


Price per participant

회원 평가 (5)

Upcoming Courses

Related Categories