본문 바로가기

Hacking & Security/System

(9)
FireWall/IDS & Network Monitoring FIREWALL/IDS & NETWORK MONITORING 침입차단시스템(F/W , Firewall) 방화벽(Firewall)은 외부의 악의적 공격자의 내부망 침입을 방어하기 위한 보안 장비 정보 보안의 가장 기본이 되는 시스템으로 접근통제(AC)를 통해 내부망에 일정 수준의 보안을 제공한다. 접근을 허용한 포트나 패킷에 대한 보안에 취약하다. 시스템 운영체제나 애플리케이션 레벨 취약점 문제에 대한 대응이 어렵다. 해당 취약점을 방어하기 위한 WAF 존재. 방화벽은 passive 장비로써, 사용자가 rule을 작성하여 이를 기반으로 사용한다. 방화벽은 트래픽의 헤더만 가지고 결정하기 때문에 트래픽 내용에 공격 관련 내용을 확인하지는 않는다. 해당 포트가 열려있는지 안열려있는지만 필터링한다. 침입차단시스..
Cloud Computing Cloud Computing 클라우드 컴퓨팅 필수 구성 요소 광대역 네트워크 대역폭(Broad Network Access) 네트워크를 통하여 다수 단말들에게 서비스를 제공하는 능력을 갖춰야 한다. 최근에는 PC외에도 테블릿, 모바일 등 다양한 단말이 존재하기 때문이다. 서비스 탄력성(Rapid Elasticity) 클라우드 컴퓨팅은 사용자의 서비스 요구사항에 맞춰 자원의 확장, 축소 기능을 제공해야 한다. 측정 가능한 서비스(Measured Service) 클라우드 시스템은 자동적으로 자원의 사용을 제어하고 최적화해야 한다. 모든 자원은 감시되고 제어 되어야 하며 사용자와 서비스 제공자 모두에게 정확한 내역이 제공되어야 한다. 사용자 요청 서비스(On-demand Self-service) 사용자는 서버시..
CyberPlatform Security #1 CyberPlatForm Security 1. CyberPlatform_Basic_1 Platform Security 란 : 컴퓨터 보안 + 인터넷 보안 컴퓨터 보안 : 데이터를 보호하고 공격자를 방해하기 위해 설계된 도구들의 집합 인터넷 보안 : 정보 전송에 관여하는 보안 위반을 탐지, 차단 그리고 방어하는 기능들의 구성 Computer Security의 목표 Confidentiality(기밀성) : 인가된 사용자만이 데이터에 접근할 수 있다. Integrity(무결성) : 인가된 사용자만이 데이터를 수정할 수 있다. Availability(가용성) : 인가된 사용자만이 서비스를 사용할 수 있다. 추가 개념 Authenticity(인증) : 서비스에 대한 유효성이 신뢰성 있는 Source로부터 온 것인..
PLT & GOT PLT ( procedure Linkage Table ) - 외부 프로시저를 연결해주는 테이블- PLT를 통해 다른 라이브러리에 있는 프로시저를 호출하여 사용할 수 있다. GOT ( Global Offset Table )- PLT가 참조하는 테이블- 프로시저들의 주소가 들어있다. 전반적인 PLT와 GOT의 흐름은 다음과 같이 정리된다. 함수 호출 ( PLT 호출 ) -> 함수의 실제 주소가 쓰여져있는 GOT로 점프 -> GOT 참조 -> 해당 함수로 점프 만일 , 첫 호출이라면 GOT는 함수의 주소를 가지고 있지 않고 일련의 과정을 통하여 주소를 알아낸다. 호출이 두번이상 반복되면 첫 호출때 알아낸 주소로 바로 점프한다. 이렇게 참조하는 과정에서 주소를 변조하여 우리는 프로그램의 흐름을 변경시킬수 있다...
Linux 환경에서의 메모리 보호기법 이번 글에서는 리눅스 환경에서 사용되는 메모리 보호기법들에 대하여 요약해보도록 하자! 기법들에 대하여 알아보기 전 , 메모리 보호 의 정의에 대하여 알아둘 필요가 있다. 메모리 보호란 ? 말 그대로 , 컴퓨터에서 사용하는 메모리의 사용을 제어하는 방법을 칭한다. 컴퓨터의 운영체제에서 실행 되어지는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 막는 것이 메모리의 주된 목적이며 , 이를 통하여 프로세스 내의 버그가 다른 프로세스의 동작에 영향을 미치는 것을 예방하고 멀웨어가 시스템에서 허가되지 않은 접근권한을 갖고 시스템에 영향을 끼치는것을 막는다. 이제 실제 리눅스 환경에서 사용되어지는 메모리 보호기법들에 대하여 알아보자. 1) ASLR : Address Space Layout Rand..
환경변수란 ? /* ( 참조 블로그 : https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220793570727&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F ) */ 환경변수 : 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행하는 동안 프로그램에 필요한 변수를 나타냄. (1) 동작 범위에 따른 환경변수크게 세 가지 카테고리로 분류가능 1. 로컬 환경 변수 - 현재 진행중인 세션에서만 동작하는 환경 변수2. 사용자 환경 변수 - 특정 사용자에 대해서만 정의된 환경 변수로 로컬 터미널 세션 , 원격 로그인 세션을 사용하여 로그인할때마다 로드됨.3. 시스템 전체 환경 변수 - 해당..
Buffer Overflow Basic 3 Buffer Overflow의 이해 버퍼란 , 시스템이 연산을 하는데 있어 필요한 데이터를 일시적으로 저장하는 저장공간을 말한다. 문자열을 처리하게 되면 문자열 버퍼가 되고 , 수열이라면 수열 버퍼가 되겠다.대부분의 프로그램에서는 이러한 버퍼를 스택에다 생성한다. 스택은 함수 내에서 선언한 지역 변수가 저장되고 함수가 끝나고나면 반환한다. BOF는 미리준비된 버퍼의 크기보다 큰 데이터를 쓸 때 발생하게 된다.만약 40byte 크기의 버퍼가 준비되어있는데 41~44byte를 사용하면 이전 함수의 bp를 수정하게 될 것이다. 더 나아가 45~48byte를 쓴다면 return address가 저장되어 있는 공간을 침범하게 될 것이다.따라서 BOF공격은 공격자가 메모리상의 임의의 위치에다 원하는 코드를 저장시켜..
Buffer Overflow Basic 2 이번엔 프로그램이 실행되면 프로세스가 메모리에 적재되고 메모리와 레지스터의 동작을 간단한 프로그램을 통해 확인해보자. 위와같은 간단한 소스를 짜고 컴파일 ( gcc -s )까지 하자.그 후 simple.c 프로그램이 컴파일 되어 실제 메모리상 어느위치에 존재하는지 확인해보기 위해 gdb를 이용하여 어셈블리 코드와 메모리에 적재될 logical address를 살펴보자. ( 각자 실행 ) 살펴보면 function()함수가 아래에 자리잡고 main()함수는 위에 자리잡음을 확인할 수 있다.따라서 메모리 주소를 바탕으로 생성될 이 프로그램의 segment 모양은 다음과 같다.이 소스에는 전역변수를 지정하지 않았기 때문에 data segment에는 링크된 라이브러리의 전역변수값만 들어있을 것이다. 이제 프로그램..