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


Starts

Ends


Dates are subject to availability and take place between 10:00 and 17:00.
Open Training Courses require 5+ participants.

회원 평가 (9)

Related Courses

Standard Java Security

  14 Hours

Java and Web Application Security

  21 Hours

Advanced Java Security

  21 Hours

Advanced Java, JEE and Web Application Security

  28 Hours

.NET, C# and ASP.NET Security Development

  14 Hours

Comprehensive C# and .NET Application Security

  21 Hours

Advanced C#, ASP.NET and Web Application Security

  21 Hours

Web Application Security

  14 Hours

Security Testing

  14 Hours

Secure Web Application Development and Testing

  21 Hours

Secure coding in PHP

  21 Hours

Combined C/C++, JAVA and Web Application Security

  28 Hours

Combined JAVA, PHP and Web Application Security

  28 Hours

Android Security

  14 Hours

Related Categories