분류 전체보기 (23) 썸네일형 리스트형 [클라우드] AWS 네트워킹 서비스 AWS 네트워킹 소개AWS 글로벌 인프라에서 생성된 다양한 자원의 워크로드를 수행하는 네트워킹 서비스AWS 리전 네트워킹 디자인리전 : 전 세계 주요 도시의 데이터 센터를 군집화하는 물리적인 위치를 의미리전 내부에는 트랜짓 센터(transit center)와 가용 영역이 서로 연결되어 네트워크 환경을 이루고 있음 Intra-AZ 연결리전 내부에 논리적인 데이터 센터의 집합인 가용 영역이 여럿 존재함가용영역에 존재하는 데이터 센터들은 고밀도 광섬유 케이블을 사용하여 연결됨 -> 네트워킹 환경 구성이런 데이터 연결을 Intra-AZ연결이라 함 Inter-AZ 연결리전 내부에 위치하는 가용 영역은 실제 100km 이내로 떨어져 있음 -> 가용성 유지클라우드 자원을 다수의 가용영역에서 실행하도록 설계 -> 내결.. [클라우드] 네트워킹 기초 네트워킹이란서로 연결한다 는 뜻서로간에 의사소통을 하는 환경IT 자원 간 연결하여 통신하는 환경네트워킹 요소OSI 7계층 모델1계층 - 물리 계층 : 네트워크 하드웨어 전송 기술을 이루는 계층. 물리적으로 연결된 매체가 서로 데이터를 송수신할 수 있게 연결하고 유지하는 역할2계층 - 데이터링크 계층 : 물리계층에서 송수신 되는 정보의 오류와 흐름을 제어3계층 - 네트워크 계층 : 데이터를 목적지까지 전달하는 계층. 최적의 통신 경로를 찾음4계층 - 전송 계층 : 종단의 대상간에 데이터 전송을 다루는 계층. 데이터 전송의 유효성과 효율성 보장5계층 - 세션 계층 : 종단의 대상 간 응용 프로세스 통신을 관리하는 방법. 데이터 통신을 위한 논리적인 연결 담당6계층 - 표현 계층 : 데이터 형식에 차이가 있을.. [클라우드] AWS 컴퓨팅 서비스(EC2) AWS 컴퓨팅 서비스: 퍼블릭 클라우드에서 컴퓨팅 자원을 활용하여 다양한 워크로드를 수행할 수 있는 서비스EC2(Elastic Compute Cloud) : 클라우드 환경에서 서버 자원을 인스턴스라는 가상 머신 형태로 제공하는 가장 기본적인 AWS 컴퓨팅 서비스ECS(Elastic Container Service) : EC2 기반 관리형 클러스터에서 실행되는 컨테이너 형태의 자원에 대해 배포, 스케줄링, 스케일링 등을 관리하는 서비스Lambda : 서버리스 컴퓨팅 서비스로 서버리스라는 말 그래도 별도의 서버 설정이 없는 환경을 제공하여Lightsail : 독립적인 환경을 제공하며 최소한의 설정만으로도 손쉽게 사용 가능한 컴퓨팅 서비스 Amazon EC2: AWS의 퍼블릭 클라우드 환경에서 확장 가능한 컴.. [클라우드] 클라우드 기초 클라우드 개념광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경을 의미클라우드를 이용하면 필요한 컴퓨팅 자원을 인터넷으로 쉽게 이용할 수 있음인터넷 기반의 컴퓨팅클라우드 환경의 장단점장점민첩성클라우드를 통해 많은 기술에 빠르게 접근하여 이 전보다 빠르게 구현하고자 하는 것들을 구현할 수 있게 됨탄력성자원을 사전에 필요한만큼만 프로비저닝을 하여 더 큰 자원을 프로비저닝할 필요가 없게됨또한 요구사항에 맞게 자원의 크기를 조절할 수 있어 탄력적으로 자원을 운영할 수 있게됨비용절감클라우드를 통해 자본을 필요에 따라 사용하여 사용한 만큼만 비용을 지불하면 되기 때문에 자원들은 항시 유지해야할 때보다 더 적은 비용으로 운영할 수 있게확장성 및 유연.. [리버싱] Exercise: rev-basic-1 드림핵 워게임 rev-basic-1 풀이를 진행해보겠습니다. 이 문제도 앞선 rev-basic-0과 마찬가지로 사용자에게 문자열을 입력받고 검증한 후 Correct나 Wrong을 출력하는 프로그램입니다. IDA로 파일을 main함수를 찾아 바로 F5를 이용해 디컴파일을 해줍니다. main함수를 디컴파일하면 이런 화면을 보실 수 있습니다. 전에 했던 실습과 동일하게 sub_1400013E0 함수는 printf, sub_140001440 함수는 scanf 함수입니다. 위에 두 함수에 대해 알게 되었으니 바로 if 문에서 입력값 검사를 하고 있는 함수인 sub_140001000 함수로 들어가 줍니다. 함수를 살펴보면 ai인자는 우리가 입력한 값을 뜻합니다. 이 함수는 여러개의 if 문으로 이루어져 있는데 이 .. [리버싱] Exercise: rev-basic-0 드림핵 워게임 중 하나인 rev-basic-0문제에 대한 풀이를 진행해 보도록 하겠습니다. 우선 파일을 다운 받고 windows PowerShell로 실행을 해보았습니다. AAA라는 문자열을 넣었을때 Wrong이 출력됩니다. 사용자에게 문자열을 입력받고 프로그램 내부의 어떤 검증과정을 거쳐 입력한 문자열이 검증을 통과했다면 Correct, 통과하지 못했다면 Wrong을 출력하는 방식으로 동작한다는 것을 알 수 있습니다. 그다음 IDA로 파일을 열어줍니다. 파일 실행과정을 통해 입력한 문자열을 검증한 후 Wrong이나 Correct문자열을 출력하는 것을 알 수 있었습니다. 따라서 검증하는 위치를 찾기 위해서 파일이 실행될 때 출력되던 문자열을 먼저 검색해 보겠습니다. Shirt+F12 를 이용하여 Stri.. [리버싱] IDA 사용해보기 IDA란? Hex-Rays사에서 제작한 디스어셈블러 IDA의 메인 기능은 디스어셈블이지만 이 외에도 여러환경에서의 디버깅과 다양한 아키텍처 디컴파일과 같이 여러가지 기능을 제공 Helloworle.exe 파일 정적 분석해보기 우선 메인함수를 찾아보도록 하겠습니다. 메인 함수를 찾는데에는 크게 두가지 방법이 있는데요 첫번째는 프로그램의 시작 지점인 진입점(Entry Point, EP)부터 분석을 시작하여 원하는 함수를 찾을 때까지 탐색하는 것이고, 다른 하나는 대상 함수의 특성이나 프로그램의 여러 외적인 정보를 이용하여 탐색하는 방법입니다. 오늘은 후자의 방법을 이용하여 분석해보도록 하겠습니다. Shift+F12를 눌러 String창을 불러옵니다. Helloworld 문자열을 찾아줍니다. 저는 Ctrl+F.. [리버싱] PEViewer로 메모장 분석하기 DOS Header 주요 멤머 변수로는 e_magic 멤버면수와 e_Ifanew 멤버변수가 있습니다. e_magic 멤버변수는 DOS Signature로 PE파일을 나타내는 첫 바이트입니다. e_Ifanew 멤버변수는 NT Header가 시작되는 위치의 옵셋을 뜻합니다. e_Ifanew 값이 가리키는 위치에 NT Header 구조체가 존재해야합니다. 앞에 2바이트(e_magic변수)를 봤을 때 4D 5A가 먼저 적힘을 보아 little Endian을 통해, 시작점이 5A4D임을 확인할 수 있습니다. e_Ifanew를 봤을때 NT_Header의 시작점이 0X000000F0임을 알 수 있습니다. DOS Stub DOS 환경에서 실행되는 코드를 가진 영역, 일종의 옵션으로 없어도 파일 실행에 문제는 없습니다... [리버싱]X86 Assembly X64 어셈블리 언어 기본구조는 명령어와 피연산자로 구성됩니다 ex) move eax, 3 여기서 move가 명령어, eax와 3가 각각 피연산자1, 2 입니다. move는 피연산자1에 피연산자2의 값을 대입하라는 명령어입니다. 피연산자에는 상수(Immediate Value), 레지스터(Register), 메모리(Memory) 총 3종류가 올 수 있습니다. 메모리 피연산자는 []로 둘러싸인 것으로 표현되며 앞에 크기 지정자(Size Directive) TYPE PTR이 추가될 수 있습니다. 타입의 종류 BYTE 1바이트 WORD 2바이트 DWORD 4바이트 QWORD 8바이트 X86-64 어셈블리 명령어 데이터 이동 move dst, src src의 값을 dst에 옮김 lea dst, src src의 유.. [리버싱] Hello World! 어셈블리어 .LC0: .string "Hello World!" main: push rbp // 스택 최상단에 rbp의 값을 쌓음 mov rbp, rsp //rsp의 값을 rbp에 대입 mov edi, OFFSET FLAT:.LC0 // 문자열의 주소를 edi에 저장 mov eax, 0 // eax에 0을 대입 call printf // printf 함수를 호출 mov eax, 0 // eax에 0을 대입 pop rbp // 스택 최상단의 값을 꺼내서 rbp에 대입 ret // 함수 종료 이전 1 2 3 다음