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
회원 평가 (9)
Very good knowledge and character.
Constantinos Michael
Course - Java and Web Application Security
지속적으로 변경 사항을 푸시했는데, 3일째가 되던 날 이전보다 헷갈리기 시작하고 오류를 빨리 발견하기가 어려워졌을 때 최신 변경 사항을 빠르게 확인하고 자료를 최신 상태로 유지할 수 있었습니다.
Paulina
Course - Advanced Java Security
Machine Translated
해커가 사이트에서 사용할 수 있는 약점과 도구를 분석하는 방법을 이해하는 데 매우 좋습니다.
Roger - OTT Mobile
Course - .NET, C# and ASP.NET Security Development
Machine Translated
Beginning by how to hack to better understand how to secure was very interesting and appreciated.
Raphaël Capocasale - Mikron SA Boudry
Course - Advanced C#, ASP.NET and Web Application Security
Web 的同源策略和跨域的内容,以及XSS 的危害,這個很貼切我們的工作。
Princess Ou - 广东溢达纺织有限公司
Course - Web Application Security
Trainer willing to answer questions and give bunch of examples for us to learn.
Eldrick Ricamara - Human Edge Software Philippines, Inc. (part of Tribal Group)
Course - Security Testing
새로운 도구를 사용하는 방법을 배웁니다. 주로 보안 테스트를 수행하는 방법을 살펴봅니다.
Jason - Kropman
Course - Secure Web Application Development and Testing
Machine Translated
The real life examples.
Marios Prokopiou
Course - Secure coding in PHP
The Burpe suite i need more training in this