남덕쿵
덕쿵 ITLOG
남덕쿵
전체 방문자
오늘
어제
  • 분류 전체보기 (38)
    • 🖐 Flutter (2)
    • ⭐ 보안기사 (25)
    • 🔆 업무 (4)
    • 🎵 SQLD (6)
    • 🧡 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 보안기사 14회 실기
  • 프로시저 이론
  • 보인기사 기출문제
  • 정보보안기사 실기
  • 보안기사 실기
  • 엔터티 개념
  • DB함수
  • 엔터티의 이름
  • Flutter 오류
  • SQL
  • MariaDB
  • 플러터
  • DB속성
  • 절차형SQL
  • SQL문
  • 보안기사
  • 정보보안
  • SQLD
  • 정보보안기사
  • SQLP
  • Dart SDK
  • 데이터베이스 이론
  • Flutter 버전 오류
  • 센토스
  • 보안교실
  • DB이론
  • SQL순서
  • 보안기사 기출문제
  • Flutter
  • 쿼리순서

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
남덕쿵

덕쿵 ITLOG

시스템보안 공격 및 대응법
⭐ 보안기사

시스템보안 공격 및 대응법

2020. 5. 25. 09:12
반응형

#1 버퍼오버플로우 

- 주요 해킹기법 중 하나인 버퍼 오버플로우의 예방책 


1) 스택가드 : 복귀주소와 변수 사이에 특정 값(Canary word)을 저장하여, 그 값이 변경되었을 경우 오버플로우로 가정해 프로그램 실행을 중단한다.

2) 스택쉴드 : 리턴 주소를 Global RET이라는 특수 스택에 저장함. 함수 종료 시 저장된 값과 스택의 RET값을 비교하여 다를 경우 프로그램을 종료한다.

3) ASLR : 주소 공간 배치를 난수화하는 기법이다. 메모리공격 방어 기법으로 주소 공간을 난수화하여 버퍼오버플로우를 통한 특정 주소 호출을 방지한다.

4) 프로그램 개발 시 버퍼 오버플로에 취약하지 않은 함수를 사용. 입력값에 대한 적절한 검증이 필요하다.


#2 레이스컨디션
    - 레이스 컨디션은 공유 자원에 대해 여러개의 프로세스가 동시에 접근하기 위해 경쟁하는 상태를 말한다.

  프로세스들이 경쟁할 때 관리자 권한을 얻는 공격을 레이스컨디션 공격이라 한다.


1) 어떤 명령인지 간단히 서술.

# touch hack.txt

# ls -al /tmp/hack.txt

- "touch" 명령으로 크기가 0인 hack.txt 파일을 생성하고 "ls" 명령으로 파일 생성을 확인하고 있다.


2) for(i=0; i<10; i++)

{   

printf ("run : %d \n", i+1);

system("ln -s /tmp/hack.txt /tmp/race.tmp");

}

- 미리 생성해둔 /tmp/hack.txt 를 원본으로 하는 심볼릭 링크파일인 /tmp/race.tmp 를 만드는 과정을 10번 반복하고 있다.


3) 어떤 공격인지 서술하고 해당 공격에 대응방안

- 레이스컨디션 : 임시 파일을 생성하는 프로그램에서 자주 사용한다. 임시 파일을 만들어 쓰고 일이 끝났으면 지우는 과정에서 쓰기 바로 직전 경쟁조건을 이용해 원하는 파일에 원하는 내용을 집어넣는 방식이다.


- 대응방안 : 

1) 가능한 임시파일을 만들지 않는다.

2) 동일한 파일이 이미 존재하는 경우 파일 생성 또는 쓰기 금지.

3) 사용하고자하는 파일에 링크가 걸렸을 시 실행 중단.

4) umask를 최하 022정도로 유지하여 임시로 생성한 파일이 공격자에 의해 악의적으로 삭제되지 않도록 함.



#3 루트킷
   
- 시스템에 전반적으로 접근할 수 있는 루트 권한을 쉽게 얻도록 해주는 킷

- 시스템에 침투하여 루트 권한을 얻어낸 후 백도어 프로세스나 파일 등을 심어 놓고 시스템 상에서 정상적인 관리자가 이러한 흔적을 볼 수 없도록 숨기는 프로그램을 의미


#4 공급망 공격 (Supply Chain Attack)

- 공급망 공격은 소프트웨어 업체가 제작하는 프로그램(ex.빌드서버)에 대한 해킹을 통해 접근 권한을 먼저 확보하고 프로그램 제작단계에 악성코드를 침투시키는 방법이다.


- 대응방안 :

1) 시스템 망 분리 : 개발 시스템은 망 분리가 이루어져야하며, 불필요한 포트를 모두 차단

2) 시스템 접근통제 : 작업을 수행하는 시스템은 지정된 관리자 외 접근 차단

3) 인터넷 접속 차단 : 관리 시스템은 외부 인터넷 접속을 차단하고, 관리에 필요한 포트만 화이트리스트 기반으로 관리

4) 별도의 인증서 관리 : 코드 서명 작업을 수행하는 시스템 및 인증서 관리 시스템은 일반 업무 PC와 혼용 금지

5) 인증서 사용 로그 기록 및 승인 : 코드 서명을 위해 인증서 사용 시 작업 일지를 기록하고, 관리자의 승인 필요

6) 백식 프로그램 최신 업데이트 : 백신 프로그램은 최신 업데이트를 주기적으로 수행하고 최신버전으로 유지





반응형

'⭐ 보안기사' 카테고리의 다른 글

안드로이드 앱 딥링크 취약점 공부하기  (0) 2020.05.29
리눅스 로그 공부 (utmp, wtmp, btmp)  (2) 2020.05.28
[CentOS] Apache(아파치) httpd.conf(설정파일) / 접근제어  (7) 2020.05.27
리눅스 좀비프로세스 대응 방법  (0) 2020.05.27
리눅스 권한 관리 (chmod, chown, SetGID, SetUID, Sticky Bit, umask)  (2) 2020.05.25
    '⭐ 보안기사' 카테고리의 다른 글
    • 리눅스 로그 공부 (utmp, wtmp, btmp)
    • [CentOS] Apache(아파치) httpd.conf(설정파일) / 접근제어
    • 리눅스 좀비프로세스 대응 방법
    • 리눅스 권한 관리 (chmod, chown, SetGID, SetUID, Sticky Bit, umask)
    남덕쿵
    남덕쿵
    열심히 해보쟈 ^____^

    티스토리툴바