ETC/Security

    [정보보호개론] Dos와 DDos (서비스 거부 공격)

    서비스 거부 공격은 네트워크 보안에서 단순한 공격 기법 중 하나입니다. 서비스 거부 공격의 목적은 정보 탈취가 아니라 서비스 방해에 있습니다. 악의적인 요청으로 시스템의 리소스를 소비하게 하여 서비스를 마비시키는 것이죠. 예를 들어 여러분들이 수업시간에 발표를 하고 있는데 발표 중 큰 소리로 계속 떠듬으로서 여러분들의 발표를 다른 사람들이 듣지 못하도록 하는 방식이나 장사를 하는 곳에서 손님이 들어오지 못하게 난동을 부리는 것도 해당할 것 같습니다. 서비스 거부 공격으로 Dos와 DDos에 대해 정리해보겠습니다. 1. Dos (Denial of Service) 1) 취약점 공격형보잉크, 봉크, 티어드롭 공격 (Boink, Bonk, TearDrop Attack) 프로토콜의 오류 제어를 이용한 공격기법입니..

    [정보보호개론] 정보보안의 3가지 속성

    Confidentiality (기밀성) 비인가된 사용자의 정보 접근은 막고 인증된 사용자만이 정보에 접근할 수 있음을 뜻합니다. Confidentiality와 가까운 예로서 암호, 방화벽, 인증 등이 있습니다. Integrity (무결성) 권한을 가진 사용자만이 정보를 변경할 수 있음을 뜻합니다. 예를 들어 각 나라에서 발행하는 지폐는 해당 국가의 기관이 주관하게 될텐데요, 그와 별개로 다른 기관이나 개인이 지폐의 형태나 위조를 하는건 불법입니다. 또는 나의 인스타그램의 사진을 내가 아닌 누군가가 바꿀 수 있다는건 무결성을 잃게된 경우입니다. Availability (가용성) 필요한 시점에 정보에 대한 접근이 가능하도록 하는 것입니다. 요즘 많이 사용하는 삼성페이의 경우에 나의 카드를 등록해서 내가 결제..

    Level 12

    Level 12

    힌트를 확인해 보자 ! gets() 함수의 취약점을 이용하는 문제다. gets() 함수는 입력받는 길이의 제한없이 입력가능하다. 이 때문에 str[256] 크기를 넘어서 데이터를 덮어 씌울 수 있게 된다. 기본적인 버퍼 오버플로우를 이용한 공격을 하라는 문제이다. gdb를 이용하여 attackme를 확인해보자 ! 위의 힌트에서 256byte만큼 char형 배열을 할당하는데, 확인해보니, 264byte만큼 스택에 공간을 할당한다. gcc 버전에 맞춰 dummy 데이터까지 포함된 공간을 할당하게 된다. 스택공간의 주소를 확인해 보자!! 프로그램을 수행하여 AAAA를 입력하였다. 그리고 esp의 위치부터 확인을 해보니 A(아스키코드로 41)이 할당된 위치가 0xbffffa20 이었다. 거기서 264Byte 만..

    Level 11

    Level 11

    11번 문제부터는 BOF 문제들이 많다. 하나하나 해결해 나가보자. 소스를 실행하면 3092 권한을 가지고 문자열을 str에 복사한 후 출력하는 내용이다. 여기서 자세히 봐야 하는 부분은 !! strcpy(str, argv[1]); 이 부분이다. strncpy() 함수와는 다르게 ! strcpy는 어느정도 크기를 복사해야 할지 명시되어 있지 않다. 복사해야 될 문자열의 크기만큼 복사하게 된다. 그렇게 되면 str변수보다 argv[1]의 크기가 더 크더라도, str 배열의 크기를 넘어서 복사된다. 다른 메모리를 침범하게 되는 것이다. 이 부분을 이용하여 문제를 푼다. 정말 단순한 BOF 문제이다. 3092를 확인해 보면 level12의 id임을 확인할 수 있다. 그럼 실행파일를 gdb를 이용하여 분석을 시..

    Level 10 - Share Memory(공유 메모리)

    Level 10 - Share Memory(공유 메모리)

    레벨 10 ! 레벨 10의 문제는 공유메모리에 관한 취약점을 묻는 문제이다.! 위의 문제에서 주의에서 읽어야 할 부분은 "공유 메모리를 이용" , "key_t의 값은 7530", "소스를 지우고 나가주세요" 3가지 부분이다. 이 부분을 생각해 보면, 두 사람이 대화를 하는데 그 대화내용이 공유 메모리를 이용하고 있으며, key_t 7530의 값으로 접근 가능하다. 그리고 그 메모리에 접근할 수 있는 소스를 구성하는 것 이다. 자 ! 여기서 공유 메모리에 대해서 알지 못한다면 ! 공부 좀 하고 가자. 기본적으로 어떤 프로세스가 개별적으로 실행되고 있는 상황에서의 메모리 공간의 할당 및 사용은 아래와 같다. 하지만, 두 프로세스가 메모리를 공유하는 상황이 필요하다면, 이때 공유 메모리 공간을 사용한다. 각 ..

    Level 9

    Level 9

    Level 9 에서는 FTZ 에서 처음으로 Buffer OverFlow 문제가 나왔다! BOF 문제에 대해서는 많은 블로그 들에서 내용을 잘 정리해 놓았고, 설명 또한 잘 해놓은 블로그들과 책들이 굉장히 많다. 그 내용들을 참고하면 쉽게 이해할 수 있으리라 본다. BOF는 버퍼 오버플로우 라는 공격기법이다. Hint 의 내용을 보자 ! 10 Byte 씩 buf2 와 buf란 이름의 char형 배열을 선언한다. 표준입력을 40 Byte의 크기로 buf 에 할당받는다. 그런데, if 문의 조건이 아무런 입력도 받지 않는 buf2 의 내용과 "go"를 비교하는 것이다. 하지만, buf2에는 어떤한 값도 입력 받지 않는다. 어떻게 해야 할까? BOF의 개념을 공부하였다면 쉽게 이해 됫을 것 이다. buf에 40..