2015년 4월 30일 목요일

LSOF를 이용한 파일·프로세스·소켓 모니터링

LSOF는 List Open File의 약자로 프로세스에서 사용하고 있는 파일에 대한 정보를 보여준다. 여기에서 파일은 정규파일, 디렉토리, 라이브러리, 소켓 파일 등을 포함한다.

LSOF는 피해시스템 분석에 있어 필수적인 도구로 특정 프로세스가 사용하는 모든 열린 파일을 찾을 수 있다. 또한 특정 열려진 포트를 어떤 프로세스가 사용하는지도 알 수 있다. 레드햇 리눅스 계열의 경우 기본적으로 설치되어 있으며 다른 시스템에서는 소스를 받아 설치하면 된다. LSOF의 옵션은 다음과 같다.

-a
각각의 옵션을 and 연산하여 처리하는 경우 사용한다. '-a' 옵션이 없으면 or 연산이 된다.

-b
블록된 수 있는 커널 함수를 실행하는 것을 방지한다.

-c
옵션에 지정한 프로그램의 프로세스가 사용하고 있는 파일을 나타낸다.

-g
지정한 프로세스 그룹 아이디를 가진 모든 프로세스들이 사용하고 있는 파일을 나타낸다.

-l
해당 인터넷 주소에서 사용하고 있는 파일을 나타낸다.

-I
로그인 아이디 대신 사용자 아이디로 출력한다.

-n
ip는 도메인 네임으로 변환하지 않으며 속도는 빨라진다.

-N
네트워크 파일시스템을 나타낸다.

-p
프로세스 아이디에 해당하는 파일을 나타낸다.

-s
항상 파일 크기를 출력한다.

-u
로그인 아이디나 사용자 ID번호(UID)에 해당하는 파일을 나타낸다.

-U
UNIX 도메인 소켓 파일을 나타낸다.

lsof 사용시 'lsof -h'나 'lsof -?'를 입력하면 간단한 도움말이 나온다. lsof는 네트워크 모니터링 프로그램이라기보다는 시스템 관리프로그램으로 볼 수 있지만 네트워크 모니터링 프로그램과 함께 자주 사용된다.

Reentrancy Attack: 블록체인 스마트 컨트랙트의 치명적인 취약점

블록체인 기술이 전 세계적으로 주목받으면서 스마트 컨트랙트(Smart Contract)의 사용이 급격히 증가하고 있습니다. 하지만 그만큼 보안 취약점도 함께 늘어나고 있는데, 그 중에서도 Reentrancy Attack(재진입 공격)은 매우 치명적이고...