- 경쟁조건(Race Condition) : 임계영역에 2개 이상 프로세스가 동시에 어떤 코드 연산을 수행하는 경쟁 상황
* 임계영역(Critical Section) : 1개의 프로세스만 실행되야 하는 특정 코드 영역(동시접근 문제를 일으킬 수 있음)
- 경쟁조건(Race Condition) 공격 : 관리자 권한으로 실행되는 프로그램 중간에 끼어들어 자신이 원하는 작업을 하는 일종의 바꿔치기
- 심볼릭 링크 : 데이터가 있는 파일은 처음부터 하나뿐이고, 심볼릭 링크는 단지 원본 파일 데이터를 가리키는 링크 정보만 가짐 (윈도우 바로가기와 유사)
원본 파일을 삭제해도 심볼릭 링크는 같은 경로를 가르키면서 남아있음 / 해당 경로에 같은 이름으로 새로운 파일 생성하면 그대로 심볼릭 링크와 연결됨 (이 점을 이용하여 레이스 컨디션 공격)
심볼릭 링크 만드는 방법 : ln -s [대상 파일] [링크 이름]
- 하드 링크 : 똑같이 복사된 파일을 만드는 것 / 하드링크된 파일 수정하면 원래 파일도 수정 / 하나 파일 삭제하면 내용은 유지되며 링크 숫자만 -1
- 레이스 컨디션 공격 예시
다중 프로세스 환경에서 백도어를 만들고 백도어에 setuid를 설정한 후에 심볼릭 링크를 생성한다. 공격자는 심볼릭 링크를 사용해서 공격하는 것이다.
1. 소유자가 root이고 SetUID가 설정된 프로그램이 생성하는 임시 파일 이름 파악
2. 생성될 임시 파일의 이름과 같은 파일을 생성하고 이를 가르키는 심볼릭 링크 파일 생성
3. 원본 임시 파일을 삭제하고 프로그램이 링크 대상 파일과 같은 파일을 생성
4. 생성되면 심볼릭 링크를 이용해 내용을 변조 -> 시스템은 정상 임시 파일로 인식하여 프로세스 진행
5. root 권한 악용 가능
<오답 피하기>
SQL 인젝션 : SQL쿼리를 사용자 입력값에 삽입하여 데이터를 삽입, 유출 하는 웹 취약점
Trapdoor : 보안기능을 우회해 데이터에 접근하는 공격 (사실상 백도어와 유사)
Watering hole : 표적에 대한 정보를 수집하여 주로 방문하는 웹사이트에 미리 악성코드를 심어 감염시키는 공격 (물 웅덩이)
- 추가 지식 (정보보안기사 필기에서는 꼭 알지 않아도 될 것 같습니다.)
* 경쟁조건 발생원인
1. SMP(Symmetric Multiprocessing) 병행처리 : 하나 시스템에 다수 CPU가 1개 메모리를 사용하는 컴퓨터 시스템 아키텍처 구조
2. 선점 스케쥴링 : 실행중인 프로세스보다 우선순위가 높은 프로세스가 자원을 뺏을 수 있음
3. 인터럽트 : 인터럽트 핸들러가 인터럽트를 실행
4. 스레드 핸들링 : User App에서 thread를 생성해 한 개 파일에 다수의 thread가 접근
* 경쟁조건 해결방안
동기화, 상호배체(임계영역 진입제한 기법)
[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 15번 SetUid, SetGid, StickyBit특수권한 (0) | 2020.08.16 |
---|---|
[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 14번 로그인 관련 로그파일 (btmp 등) (0) | 2020.08.16 |
[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 7번 리눅스 디렉터리 구조 (0) | 2020.08.16 |
[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 4번 Zombie 프로세스 (0) | 2020.08.15 |
[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 17번 PAM (0) | 2020.08.15 |
댓글 영역