반응형

정보보안 4

해시(Hash)란?

Hash? 해시라는 것은 임의의 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 것을 말한다. 이 과정에서 원본 데이터를 키(Key), 매핑하는 과정을 해싱(Hashing), 결과물로 나온 데이터를 해쉬값(Hash value)라고 한다. 또한 이렇게 데이터를 해싱하는 함수를 해시 함수(Hash function)이라고 한다. 해시의 특징은 아래와 같은 것들을 말할수 있다. 임의 길이의 데이터로부터 고정된 길이의 해시값을 계산한다. 해시값을 고속으로 계산할 수 있다. 일방향성을 갖기 때문에(단방향 암호화) 해시값으로부터 Key를 역산할 수 없다. Key가 다르면 해시값도 달라져야 한다. (서로 다른 Key가 같은 해시값을 가지는 것을 '충돌'이라고 한다.) Hash function 위에서 말했듯이 ..

정보보안 2022.01.29

Stack Buffer OverFlow 공격

스택 버퍼 오버플로우 공격에 대해서 알려면 먼저 스택(Stack)의 구조에 대해서 숙지해야 한다. 일단 스택은 LIFO(Last in First Out)의 자료구조인데, 말 그대로 마지막에 들어간 데이터가 가장 먼저 나오는 구조이다. 그림으로 표현하면 다음과 같다. 위의 스택 구조는 Intel계열의 스택 구조로 스택의 아래가 뚫려있는 모양이다. 반대로 스택의 위가 뚫려있는 모양도 있는데 이는 모토로라 계열의 스택 구조이다. 스택의 구조는 총 4개로 나뉘며 일단 위에서 말한 Intel계열과 모토로라 계열의 스택으로 나뉜다. 그리고 스택의 가장 끝 데이터(Top)을 가리키고 있는 방식에 따라 두 가지로 나뉘는데, 첫 번째 방법의 경우 실제 데이터가 담겨있는 메모리를 가리키고 있는 방법이다. 이 방법은 데이터..

정보보안 2020.11.14

레이스 컨디션(Race Condition) 공격

기본 개념 레이스 컨디션 - 한정된 자원을 동시에 이용하려는 여러 프로세스가 자원의 이용을 위해 경쟁을 벌이는 현상을 말한다. 이 레이스 컨디션을 이용해 root권한을 얻어내는 공격을 레이스 컨디션 공격이라고 한다. 공격 방법 사용자가 프로그램을 실행했을 때 SetUID를 통한 권한 상승으로 관리자 권한의 임시 파일이 생성된다. 공격자는 이 임시 파일의 이름을 파악해놓고, 임시 파일이 생성되면 이 파일의 심볼링 링크를 생성한다. 다음 프로그램 실행 시 기존의 임시 파일이 삭제되고 재생성되면 공격자는 심볼릭 링크를 이용해 파일의 내용을 변경한다. 그러면 시스템은 변경된 파일을 자신이 생성한 임시 파일이라 인식해 프로세스를 진행시키고, 공격자는 관리자 권한으로 실행되는 프로그램에서 자신이 원하는 동작을 실행..

정보보안 2020.11.07

Buffer OverFlow 대응방안

Buffer OverFlow로 인한 프로그램의 비정상적인 실행을 막기 위한 대응 방안. 1. 스택 쉴드(Stack Shild) 함수 호출시 스택에 저장되는 return address를 Global RET이라는 특수 스택에 저장한다. 그리고 함수 종료시에 이 Global RET에 저장되어 있는 값과 스택의 return address를 비교해서 두 값이 다르면, 프로그램을 종료시키는 방법이다. 2. ASLR(Address Space Layout Randomization) 메모리공격을 어렵게 하기 위해서 스택, 힙, 라이브러리 등 데이터영역 주소들을 랜덤으로 프로세스 주소 공간에 배치하여 실행시마다 데이터 주소가 바뀌도록 하는 방법이다. 3. 스택 가드(Stack Guard) 스택내에서 return addre..

정보보안 2020.10.04
반응형