4 : 해당 그룹에 속한 계정 목록. 완전하지 않아서 passwd 파일과 비교해 보는 것이 정확
그 외
데이터 베이스 : MS-SQL 관리자 계정은 sa, 오라클 관리자 계정은 sys(DB생성가능), system(DB 생성 불가)
응용 프로그램 : 취약한 응용 프로그램 통해서 공격자는 운영체제에 접근, 민감 정보 습득 후 운영체제 공격에 사용 가능
네트워크 장비(라우터, 스위치) : 보통 pw만 알면 접근 가능. 사용자 모드에서 별도의 pw 입력 후 관리자 모드로 로그인 가능 사용자 모드는 장비 상태만 확인 가능, 관리자 모드에서 네트워크에 대한 설정 변경 가능 네트워크 장비에서 계정 생성하여 각 계정으로 사용할 수 있는 명령어 집합 제한 가능 (TACACS+)
AAA 체계 Authentication 인증. 신분 확인 (허가/불허) Authorization 인증 통과한 사람이 할 수 있는 작업 제한 (어디까지 할 수 있는지. 어느 정도의 권한을 부여할 것인가) Accounting 누가. 언제. 어디서. 몇시에 (객체나 파일 접근 기록. 로그인했을 때 시스템이 이에 대한 기록 남기는 활동)한쪽에 몰아서 관리. 인증 수행도 여기서
세션 관리
사용자와 시스템 사이 또는 두 시스템 사이의 활성화된 접속
지속적인 인증은 세션을 유지하기 위한 보안 사항 중 하나.
인증 성공 후 인증된 사용자가 처음의 사용자인지 지속적으로 재인증 작업을 거치는 것
매번 PW를 입력할 수 없기에 시스템은 이를 세션에 대한 타임아웃 설정(세션 자동 닫힘)으로 보완 → 윈도우 화면보호기
inetd 데몬 : 클라이언트로부터 SSH, FTP 등에 대한 연결 요청 받음. 데몬과 클라이언트의 요청 연결텔넷 패킷이 맞는지 확인하고 텔넷 서버 연결시켜줌
TCPWrapper가 설치되면 inetd 데몬은 TCPWapper의 tcpd 데몬에 연결 넘겨줌 tcpd 데몬은 접속 요구한 클라이언트에 적절한 접근 권한이 있는지 확인한 후 해당 데몬에 연결 넘겨줌
네트워크 접근 제어
iptables : 리눅스 커널에서 지원하는 네이티브 방화벽 (탐지 + 차단)
TCPWrapper : IP 및 서비스에 대한 요청을 허용/차단하는 호스트 기반 접근 제어(ACL) 기술 주로 TCP 연결에 대한 접근을 제어. Unix, Linux 기본 도구로 SW 설치 불필요
/etc/hosts.allow (우선 적용됨. 룰과 일치하면 접근 허용) httpd : ALL 모두 열어줘라 ftpd : 192.168.1.9 192.168.1.9에서 들어오는 연결만 허용
/etc/hosts.deny (방화벽의 default 규칙. 룰과 일치하면 접근 거부) ALL : ALL 나머지는 다 차단해 버리겠다
로그 관리
시스템 관리자가 발생한 이벤트 재빨리 식별하고 치료 및 회복. 누가 언제 접속시도를 했는지 모두 적어둠
klogd(커널). syslogd(버클리 syslog 데몬). syslog-NG
접근제어(Access Control) 기술
접근제어 : 주체가 객체에 접근 요구했을 때 이 요구를 수락할지, 거절할지 결정하는 행위
강제적 접근제어 (MAC : Mandatory Access Control) = 다단계 보안(Multi Level Security) 모델 벨-라파둘라(BLP) 모델에 기초 주체와 객체에 적절한 보안 등급(레이블) 부여. 보안 레이블 비교해 자원에 대한 접근 제어. 계층적 등급 접근제어 시 등급 비교함으로써 접근 허용 여부 판단 군사환경과 같이 엄격한 보안이 요구되는 분야에 적합
벨-라파둘라 모델 규칙
No read up : 단순 보안 속성 하위 보안 레벨의 주체가 상위 보안 레벨에 있는 객체로부터 정보 읽을 수 없음(자신보다 상위 등급 obj 읽기 불가)
No write down : *(스타) 보안 속성 높은 레벨의 주체가 낮은 레벨의 보안 등급에 객체에 정보를 쓰는 것 허용X 기밀 유출 안되는게 가장 중요. 높은 등급이 실수로 기밀 유출하는 것을 막겠다.
no read up no write down
규칙 기반 접근제어 (RBAC : Rule-Based Access Control) 네트워크 관리자에 의해 설정된 접근 제어 목록에 의해 결정되는 접근 제어 방식
임의적 접근제어 (DAC : Discretionary Access Control) = 자율적 접근 제어 ★ 가장 대표적 주인이 마음대로 결정해서 자율적 접근 제어 객체에 대한 소유권에 기초, 소유권 가진 주체가 객체에 대한 권한의 전부 또는 일부를 다른 주체에게 부여 내가 제3자로부터 부여받은 권한을 다른 사용자에게 부여 가능. 내 권한 회수되면 내가 준 사람들의 권한도 자동으로 회수 다른 사람에게 권한 넘겨줄 수 있는 경우는 <권한>* 의 형태로 나타남
역할 기반 접근 제어 (RBAC : Role-Based Access Control) Access Matrix 사용. User축 → Role이 됨 (Mertix Demension↓ + 연산속도↑)
ABAC
권한 관리
윈도우는 디렉토리 생성 후 속성에서 권한 관리 가능. 디렉토리보다 파일 우선. 허용보다 거부 우선
유닉스 (DAC의 연장 선상)
ls -al 로 디렉토리 내용 확인
로그 관리 AAA
윈도우는 이벤트 뷰어 사용
유닉스 로그
/var/log 디렉토리에 로그 존재 (리눅스)
utmp 바이너리 형태로 로그 저장. 로그 확인 명령어 : w, who, users, whodo, finger 현재 로그인한(접속한) 사용자 ID, 사용자 프로세스, 실행 레벨, 로그인 종류 등 기록.
wtmp 사용자 로그인-로그아웃 시간, IP와 세션 지속 시간, 시스템 종류, 시작시간, 시스템 재부팅 기록. last
secure(sulog) 원격지 접속 로그 su(switch user), 사용자 생성 등 보안에 직접적으로 연관된 로그 저장. cat secure
history 커맨드창에서 실행한 명령 기록. history
syslog 시스템 운영과 관련한 전반적 로그. /var/log/messages에 하드웨어 구동, 서비스 동작, 에러 등 기록
HTTP
HTTP request를 날리기 전에 TCP 연결 설정이 일어난다.
HTTP connections
non-persistent HTTP : 연결 설정 → req → res → TCP 연결 끊음
persistent HTTP : 연결 설정 → req → res → TCP 연결 유지
persistent가 무조건 좋은건X 여러 obj가 있는데 persistent는 close하지 않고 obj 쭉 받음 (첫번째 obj부터 순차적으로 가져옴)
non-persistent는 10개의 obj를 가져오기 위해서 TCP 연결을 병렬적parallel으로 열 수 있다 (동시에 받을 수 있음)
non-persistent
RTT : 한번 갔다가 오는거 (Round Trip Time)
HTTP request HTTP response
Log4j
Apache 재단의 JAVA 기반 로깅 라이브러리
애플리케이션 실행 정보(에러/디버그/이벤트) 를 파일/콘솔/DB 등으로 기록
JNDI(인터페이스)와 LDAP(실제 동작) 취약점 이용
로그를 남기는 용도... 뭐가 위험하겠냐 → 명령어가 들어있어도 진짜 권한 있는 사람이 요청한 건지 확인할 생각을 못함