2024/04 22

[팔로 알토 네트웍스] 사이버보안 기초 #1, 2

[1주차] 사이버 보안 기초 과정 강의 계획서이 강의에서는 현재 사이버 보안 환경과 관련된 기본 원칙을 배우고, 기업 네트워크와 미션 크리티컬 인프라에 대한 공격을 인식하고 잠재적으로 완화하는 데 필요한 개념을 식별한다. 또한, 차세대 방화벽에서 보안 영역, 인증, 정책을 초기에 설정하고 구성하는 방법을 배울 것이다. 모듈 1: 코스 정보 모듈 2: 사이버 보안 환경 모듈 3: 사이버 보안 위협 모듈 4: 사이버 보안 공격 유형 모듈 5: 사이버 보안 설계 모델 모듈 6: 보안 운영 플랫폼[2주차] 사이버보안 기초 모듈 2 - 사이버 환경학습목표1. 최신 컴퓨팅 동향과 애플리케이션 위협 벡터를 살펴 보기2. 클라우드 컴퓨팅 및 SaaS(Software-as-a-Service) 애플리케이션 문제 식별3. ..

보안/교육 2024.04.30

C++ 포인터(Pointers) 총정리

1. 포인터의 개념포인터는 주소를 상징적으로 표현하는 것이다. 포인터는 프로그램이 참조에 의한 호출을 시뮬레이션하고, 동적 데이터 구조를 만들고 조작할 수 있게 해준다. 배열이나 다른 데이터 구조의 요소 위에서 반복하는 것이 포인터의 주요 사용 중 하나라 할 수 있겠다.작업 중인 변수의 주소는 동일한 데이터 유형(int 또는 string 등)을 가리키는 포인터 변수에 할당된다. 포인터는 잘만 사용한다면, 코드를 줄이고 성능을 향상시킨다. 포인터는 문자열, 트리, 배열, 구조 및 함수를 검색하는 데 사용된다.포인터를 사용하면 함수에서 여러 값을 반환할 수도 있다. 또한, 컴퓨터 메모리의 메모리 위치에 액세스할 수도 있다. 결국 모든 것은 사용하기 나름이다. 구문:datatype *var_name;  int..

C++ 2024.04.29

C++ 포인터와 레퍼런스 정리

1. 포인터와 레퍼런스C++ 포인터와 레퍼런스는 모두 프로그램의 메모리, 메모리 주소 및 데이터를 처리하는 데 사용되는 메커니즘이다. 포인터는 다른 변수의 메모리 주소를 저장하는 데 사용되지만, 레퍼런스는 이미 존재하는 변수의 별칭(alias)을 만드는 데 사용된다. C++의 포인터는 주소를 상징적으로 표현한 것이다. 이들은 프로그램이 레퍼런스에 의한 호출을 시뮬레이션하고, 동적 데이터 구조를 만들고 조작할 수 있도록 한다. 포인터는 변수의 주소나 메모리 위치를 저장한다. 구문: datatype *var_name;  예를 들어 int * ptr; 에서 ptr은 int 데이터를 유지하는 주소를 가리킨다. 예시 프로그램을 통해 포인터를 이해해 보도록 한다:// C++ program to demonstrate..

C++ 2024.04.29

보안 팀이 보안 도구를 구매할 때 저지르는 가장 큰 실수

보안 팀이 보안 도구를 구매할 때 저지르는 가장 큰 실수는 무엇일까? 아마드 사데딘은 '도구 구매를 프로그램 관리로 혼동하는 것'이라고 말한다. 도구는 프로그램 관리를 위한 일부일 뿐이지, 도구가 프로그램을 관리하는 주체가 아니라는 말이다.따라서 도구 자체에 초점을 맞춰서는 안 되고, 보안 프로그램이 조직에게 무엇을 의미하는지, 무엇을 달성하려고 하는지에 초점을 맞춰야 한다.1. 사이버 보안 도구에 대한 오해와 한계사실 보안 도구는 굉장히 매력적이다. UTM, ESM, SIEM에서부터 시작하여 이미 오래 전부터 보안 도구들은 많은 것을 패키징하고 있다. 피부를 관리하기 위해 제품을 덕지덕지 바르는 게 귀찮은 사람들을 위해 올인원 제품을 내세웠더니, 올인원 제품을 사용하기만 하면서 그걸로 피부가 만사 OK..

보안/뉴스 2024.04.26

C++ 람다식(Lambda expression) 총정리

1. 람다식의 개념이름이 필요 없는 짧은 코드 조각에 사용할 수 있는 인라인 함수를 허용하기 위해 Lambda expression이 도입됐다. 가장 간단한 형태로 람다 식을 다음과 같이 정의할 수 있다. [ capture clause ] (parameters) -> return-type   {       definition of method    }  일반적으로 람다 식의 리턴 타입은 컴파일러 자체에서 평가하므로 명시적으로 지정할 필요는 없다. 또한 the -> return-type 부분은 무시할 수 있다. 그러나 조건문과 같이 복잡한 경우에는 컴파일러가 리턴 타입을 결정할 수 없으며, 명시적인 지정이 필요하다.표준 함수를 사용한 람다 식의 다양한 용도는 다음과 같다:// C++ program to d..

C++ 2024.04.25

C++사용자 정의 예외

우리는 클래스에 예외 처리를 사용할 수도 있다. 심지어 사용자 정의 클래스 유형의 예외를 던질 수도 있다. try 블록 내에 demo 클래스 유형의 예외를 던지는 경우 작성할 수 있다. throw demo();단일 클래스로 예외 처리를 구현하는 프로그램 예시:#include  using namespace std; class demo { }; int main() {      try {           throw demo();      }      catch (demo d) {         cout "Caught exception of demo class \n";      } } 출력:Caught exception of demo class 위 프로그램에서는 빈 클래스를 선언했다. try 블록에서 우리는..

C++ 2024.04.25

C++ 스택 풀기(Stack Unwinding)

1. 스택 풀기의 개념Stack Unwinding은 실행 시간에 함수 호출 스택에서 함수 항목을 제거하는 프로세스다. 로컬 개체는 구성된 역순으로 파괴된다.스택 풀기는 일반적으로 예외 처리와 관련이 있다. C++에서 예외가 발생하면, 함수 호출 스택에서 예외 처리기를 선형으로 검색하고, 예외 처리기가 있는 함수 이전의 모든 항목을 함수 호출 스택에서 제거한다. 따라서 예외 처리는 동일한 함수(예외가 던져지는 곳)에서 예외를 처리하지 않으면, 스택 풀기를 포함하는 것이다. 기본적으로 스택 풀기는 런타임에 구성된 모든 자동 개체에 대해 (예외가 던져질 때마다) 파괴자를 호출하는 프로세스다.예시:// CPP Program to demonstrate Stack Unwinding  #include   usin..

C++ 2024.04.24

C++ 클래스를 이용한 예외 처리

이번 글에서 우리는 클래스를 이용한 예외 처리를 알아보도록 한다. Problem Statement① 데이터 멤버 a와 b를 갖는 클래스 Number를 만든다.② 반복 함수를 작성하여 두 숫자의 GCD(Greatest Common Divisor)를 찾는다.③ 주어진 수가 소수인지 아닌지 확인하기 위해 반복 함수를 작성한다. 만약 참이라고 판명나면, 클래스 MyPrimeException에 예외를 부여한다. ④ 자신만의 MyPrimeException 클래스를 정의한다. Solution① 두 개의 데이터 멤버가 있는 Number라는 이름의 클래스를 a와 b로 정의한다. ② 두 개의 멤버 함수를 다음과 같이 정의한다.   ⑴ int gcd(): 두 숫자의 HCF(Highest Common Factor)..

C++ 2024.04.24

C++ 예외 처리(Exception Handling) 총정리

1. 예외 처리(Exception Handling)의 개념 C++에서 '예외'는 프로그램이 실행하는 동안 발생하는 런타임 이상이나 비정상적인 상태다. 이러한 예외를 처리하는 과정을 예외 처리라고 한다. 예외 처리 메커니즘을 사용하면 예외가 발생한 프로그램의 한 부분의 제어를 코드의 다른 부분으로 전달할 수 있다. 2. 예외의 유형 예외에는 2가지 유형이 존재한다. ① 동기: 입력 데이터의 오류로 인해 문제가 발생하거나, 프로그램이 현재 작업 중인 데이터 유형을 처리할 수 있는 장비가 없을 때 발생하는 예외다. ex) 숫자를 0으로 나누는 것 ② 비동기: 디스크 고장, 키보드 인터럽트 등 프로그램이 통제할 수 없는 예외다. 3. 예외 처리를 위한 내장 기능 C++는 예외 처리를 위한 내장 기능을 제공한다...

C++ 2024.04.23

C++에서 가상 함수(Virtual function)은 private이 가능할까?

가상 함수는 C++에 액세스 제어 기능이 있으므로 private 함수일 수는 있지만 가시성 제어 기능은 없다. 앞선 글에서 말한 바와 같이, 가상 함수는 파생 클래스에 의해 재정의될 수 있지만 모든 상황에서는 기본 클래스 내에서만 호출된다. 예시: // C++ program to demonstrate how a // virtual function can be private #include class base { public: // default base constructor base() { std::cout

C++ 2024.04.19
728x90