문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
1일차
IT 보안 및 안전한 코딩
- 보안의 특성
- IT 보안 관련 용어
- 위험의 정의
- IT 보안의 다양한 측면
- 다른 애플리케이션 영역의 요구사항
- IT 보안과 안전한 코딩 비교
-
취약점에서 봇넷 및 사이버 범죄로
- 보안 결함의 특성
- 난이도의 이유
- 감염된 컴퓨터에서 표적 공격으로
-
보안 결함 분류
- Landwehr의 분류법
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- OWASP Top Ten 비교 2003 - 2013
Microsoft® Secure Development Lifecycle (SDL) 소개
- 학습 목표
-
공격을 받는 애플리케이션...
- 사이버 범죄의 진화
- 공격이 애플리케이션에 집중됨
- 대부분의 취약점은 작은 ISV 앱에서 발생함
-
Microsoft SDL의 유래...
- Microsoft의 보안 타임라인...
- SDL을 따르는 애플리케이션은?
-
Microsoft Secure Development Lifecycle (SDL)
- Microsoft Secure Development Lifecycle (SDL)
- 사전 SDL 요구사항: 보안 교육
- 1단계: 요구사항
- 2단계: 설계
- 3단계: 구현
- 4단계: 검증
- 5단계: 출시 - 대응 계획
- 5단계: 출시 - 최종 보안 검토
- 5단계: 출시 - 아카이브
- 사후 SDL 요구사항: 대응
- LOB 앱을 위한 SDL 프로세스 가이드라인
- 민첩 개발 방법론을 위한 SDL 가이드라인
- 안전한 소프트웨어 개발은 프로세스 개선을 요구함
안전한 설계 원칙
-
공격 표면
- 공격 표면 감소
- 공격 표면 - 예시
- 공격 표면 분석
- 공격 표면 감소 - 예시
-
프라이버시
- 프라이버시
- 애플리케이션 동작 및 우려 사항 이해
-
다층 방어
- SDL 핵심 원칙: 다층 방어
- 다층 방어 - 예시
-
최소 권한 원칙
- 최소 권한 - 예시
-
안전한 기본 설정
- 안전한 기본 설정 - 예시
안전한 구현 원칙
- 학습 목표
- Microsoft Secure Development Lifecycle (SDL)
-
버퍼 오버플로우 기초
- Intel 80x86 프로세서 - 주요 레지스터
- 메모리 주소 배치
- C/C++에서 x86 상의 함수 호출 메커니즘
- 지역 변수와 스택 프레임
-
스택 오버플로우
- 스택의 버퍼 오버플로우
- 연습 - 소개
- 연습 BOFIntro
- 연습 BOFIntro - 스택 배치 결정
- 연습 BOFIntro - 간단한 공격
-
입력 검증
- 입력 검증 개념
-
정수 문제
- 음수의 표현
- 정수 오버플로우
- 산술 오버플로우 - 출력 예측!
- 연습 IntOverflow
- Math.Abs(int.MinValue)의 값은?
-
정수 문제 완화
- 정수 문제 완화
- 산술 오버플로우 방지 - 덧셈
- 산술 오버플로우 방지 - 곱셈
- C#에서 checked 키워드를 사용한 오버플로우 감지
- 연습 - C#에서 checked 키워드 사용
- C#에서 오버플로우로 트리거되는 예외
-
사례 연구 - .NET의 정수 오버플로우
- 실제 세계의 정수 오버플로우 취약점
- 정수 오버플로우 취약점을 이용한 공격
-
경로 탐색 취약점
- 경로 탐색 완화
2일차
안전한 구현 원칙
-
주입 공격
- 일반적인 SQL Injection 공격 방법
- Blind 및 Time-based SQL injection
- SQL Injection 보호 방법
- 명령어 주입
-
취약한 인증 - 비밀번호 관리
- 연습 - 해시된 비밀번호의 약점
- 비밀번호 관리 및 저장
- 비밀번호 저장을 위한 특수 목적 해시 알고리즘
-
크로스 사이트 스크립팅 (XSS)
- 크로스 사이트 스크립팅 (XSS)
- CSS 주입
- 다른 HTML 태그를 통한 주입 활용
- XSS 예방
-
함수 수준 접근 제어 누락
- 파일 업로드 필터링
-
실용적인 암호화
- 대칭 암호화를 통한 기밀성 보장
- 대칭 암호화 알고리즘
- 블록 암호 - 작동 모드
- 해시 또는 메시지 다이제스트
- 해시 알고리즘
- 메시지 인증 코드 (MAC)
- 대칭 키를 사용한 무결성 및 진위성 보장
- 공개 키 암호화를 통한 기밀성 보장
- 경험칙 - 개인 키 소유
- 비밀번호 관리에서의 일반적인 실수
- 연습 - 하드 코딩된 비밀번호
- 결론
안전한 검증 원칙
- 기능 테스트와 보안 테스트 비교
- 보안 취약점
- 우선 순위 설정
- SDLC에서의 보안 테스트
- 테스트 계획 단계 (리스크 분석)
-
범위 설정 및 정보 수집
- 이해 관계자들
- 자산
- 공격 표면
- 테스트를 위한 보안 목표
-
위협 모델링
- 위협 모델링
- 공격자 프로필
- 공격 트리를 기반한 위협 모델링
- 오용/남용 사례를 기반한 위협 모델링
- 오용/남용 사례 - 간단한 웹 쇼핑몰 예시
- MS SDL의 STRIDE 요소별 접근 방식
- 보안 목표 식별
- 다이어그램 - DFD 요소 예시
- 데이터 흐름도 - 예시
- 위협 열거 - MS SDL의 STRIDE 및 DFD 요소
- 리스크 분석 - 위협 분류
- DREAD 위협/리스크 순위 모델
-
보안 테스트 기술 및 도구
- 일반적인 테스트 접근 방식
- SDLC의 다양한 단계에 대한 기법
-
코드 검토
- 소프트웨어 보안을 위한 코드 검토
- 오염 분석
- 휴리스틱
-
정적 코드 분석
- 정적 코드 분석
- 연습 - 정적 코드 분석 도구 사용
-
구현 테스트
- 수동 런타임 검증
- 수동 보안 테스트와 자동화된 보안 테스트 비교
- 침투 테스트
- 스트레스 테스트
-
퍼징
- 자동화된 보안 테스트 - 퍼징
- 퍼징의 난점
-
웹 취약점 스캐너
- 연습 - 취약점 스캐너 사용
-
환경 점검 및 강화
- 일반적인 취약성 점수 시스템 - CVSS
- 취약점 스캐너
- 공개 데이터베이스
-
사례 연구 - 폼 인증 우회
- NULL 바이트 종료 취약점
- 코드의 폼 인증 우회 취약점
- 폼 인증 우회를 이용한 공격
지식 출처
- 안전한 코딩 출처 - 시작 키트
- 취약점 데이터베이스
- .NET 보안 코딩 가이드라인 (MSDN)
- .NET 보안 코딩 체크리스트
- 권장 도서 - .NET 및 ASP.NET
14 시간
회원 평가 (5)
각 모듈별로 다수의 예제와 트레이너의 훌륭한 지식을 제공합니다.
Sebastian - BRD
코스 - Secure Developer Java (Inc OWASP)
기계 번역됨
Module3 애플리케이션 공격 및 악용, 크로스사이트 스크립팅(XSS), SQL 인젝션 Module4 서버 공격 및 악용, 서비스 거부(DOS), 버퍼 오버플로우(BOF)
Tshifhiwa - Vodacom
코스 - How to Write Secure Code
기계 번역됨
일반 과정 정보
Paulo Gouveia - EID
코스 - C/C++ Secure Coding
기계 번역됨
트레이너의 주제 지식이 뛰어나고, 세션을 청중이 시연을 따라할 수 있도록 구성한 것이 단순히 앉아서 듣는 것보다 그 지식을 확실하게 다질 수 있게 도움이 되었습니다.
Jack Allan - RSM UK Management Ltd.
코스 - Secure Developer .NET (Inc OWASP)
기계 번역됨
아무 문제도 없었어요.
Zola Madolo - Vodacom
코스 - Android Security
기계 번역됨