U-09 /etc/hosts 파일 소유자 및 권한 설정 ■ 항목 중요도 : 상 ■ 점검내용 /etc/hosts 파일의 권한 적절성 점검 ■ 점검목적 /etc/hosts 파일을 관리자만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함 ■ 보안위협 hosts 파일에 비인가자 쓰기 권한이 부여된 경우, 공격자는 hosts파일에 악의적인 시스템을 등록하여, 이를 통해 정상적인 DNS를 우회하여 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있음 hosts파일에 소유자외 쓰기 권한이 부여된 경우, 일반사용자 권한으로 hosts 파일에 변조된 IP주소를 등록하여 정상적인 DNS를 방해하고 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있..
U-08 /etc/shadow 파일 소유자 및 권한 설정 ■ 항목 중요도 : 상 ■ 점검내용 /etc/shadow 파일 권한 적절성 점검 ■ 점검목적 /etc/shadow 파일을 관리자만 제어할 수 있게 하여 비인가자들의 접근을 차단하도록 shadow 파일 소유자 및 권한을 관리해야함 ■ 보안위협 shadow파일은 패스워드를 암호화하여 저장하는 파일이며 해당 파일의 암호화된 해쉬값을 복호화하여(크래킹) 비밀번호를 탈취할 수 있음 ■ 참고 ※ /etc/shadow: 시스템에 등록된 모든 계정의 패스워드를 암호화된 형태로 저장 및 관리하고 있는 파일 점검대상 및 판단기준 ■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등 양호 /etc/shadow 파일의 소유자가 root이고, 권한이 400 이..
U-07 /etc/passwd 파일 소유자 및 권한 설정 ■ 항목 중요도 : 상 ■ 점검내용 /etc/passwd 파일 권한 적절성 점검 ■ 점검목적 /etc/passwd 파일의 임의적인 변경을 차단하기 위함을 통해 비인가자가 권한 상승하는 것을 막기 위함 ■ 보안위협 관리자(root) 외 사용자가 "/etc/passwd” 파일의 사용자 정보를 변조하여 shell 변경, 사용자 추가/삭제 등 root를 포함한 사용자 권한 획득 가능 ■ 참고 ※ /etc/passwd: 사용자의 ID, 패스워드, UID, GID, 홈 디렉터리, 쉘 정보를 담고 있는 파일 점검대상 및 판단기준 ■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등 양호 /etc/passwd 파일의 소유자가 root이고, 권한이 64..
U-06 파일 및 디렉터이 소유자 설정 ■ 항목 중요도 : 상 ■ 점검내용 소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검 ■ 점검목적 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리하여 임의의 사용자가 해당파일을 열람, 수정하는 행위를 사전에 차단하기 위함 ■ 보안위협 소유자가 존재하지 않는 파일의 UID와 동일한 값으로 특정계정의 UID값을 변경하면 해당 파일의 소유자가 되어 모든 작업이 가능함 ■ 참고 소유자가 존재하지 않는 파일 및 디렉터리는 퇴직자의 자료이거나 관리 소홀로 인해 생긴 파일인 경우 또는 해킹으로 인한 공격자가 만들어 놓은 악의적인 파일인 경우가 있음 점검대상 및 판단기준 ■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등 양호 소유자가 존재하지 않는..
U-05 root홈, 패스 디렉터리 권한 및 패스 설정 ■ 항목 중요도 : 상 ■ 점검내용 root 계정의 PATH 환경변수에 “.”이(마침표) 포함되어 있는지 점검 ■ 점검목적 비인가자가 불법적으로 생성한 디렉터리 및 명령어를 우선으로 실행되지 않도록 설정하기 위해 환경변수 점검이 필요함 ■ 보안위협 root 계정의 PATH(환경변수)에 정상적인 관리자 명령어(예: ls, mv, cp등)의 디렉터리 경로 보다 현재 디렉터리를 지칭하는 “.” 표시가 우선하면 현재 디렉터리에 변조된 명령어를 삽입하여 관리자 명령어 입력 시 악의적인 기능이 행 될 수 있음 ■ 참고 ※ 환경변수 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 집합으로 Path 환경변수는 실행파일을 찾는 경로에 대한 변수임 ..
U-04 패스워드 파일 보호 ■ 항목 중요도 : 상 ■ 점검내용 시스템의 사용자 계정(root, 일반계정) 정보가 저장된 파일(예 /etc/passwd, /etc/shadow)에 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검 ■ 점검목적 일부 오래된 시스템의 경우 /etc/passwd 파일에 패스워드가 평문으로 저장되므로 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검하여 비인가자의 패스워드 파일 접근 시에도 사용자 계정 패스워드가 안전하게 관리되고 있는 지 확인하기 위함 ■ 보안위협 사용자 계정 패스워드가 저장된 파일이 유출 또는 탈취 시 평문으로 저장된 패스워드 정보가 노출될 수 있음 ■ 참고 ※ 관련 점검 항목 U-07(상) /etc/passwd 파일 소유자 및 권한 설정 U-08(..
U-03 계정 잠금 임계값 설정 ■ 항목 중요도 : 상 ■ 점검내용 사용자 계정 로그인 실패 시 계정잠금 임계값이 설정되어 있는지 점검 ■ 점검목적 계정탈취 목적의 무작위 대입 공격 시 해당 계정을 잠금하여 인증 요청에 응답하는 리소스 낭비를 차단하고 대입 공격으로 인한 비밀번호 노출 공격 을 무력화하기 위함 ■ 보안위협 패스워드 탈취 공격(무작위 대입 공격, 사전 대입 공격, 추측 공격 등)의 인 증 요청에 대해 설정된 패스워드와 일치 할 때까지 지속적으로 응답하여 해 당 계정의 패스워드가 유출 될 수 있음 ■ 참고 ※ 사용자 로그인 실패 임계 값 : 시스템에 로그인 시 몇 번의 로그인 실패에 로그인을 차 단할 것인지 결정하는 값 점검대상 및 판단기준 ■ 대상 : SOLARIS, LINUX, AIX, ..
U-02 패스워드 복잡성 설정 ■ 항목 중요도 : 상 ■ 점검내용 시스템 정책에 사용자 계정(root 및 일반계정 모두 해당) 패스워드 복잡성 관련 설정이 되어 있는지 점검 ■ 점검목적 패스워드 복잡성 관련 정책이 설정되어 있는지 점검하여 비인가자의 공격(무작위 대입 공격, 사전 대입 공격 등)에 대비가 되어 있는지 확인하기 위함 ■ 보안위협 복잡성 설정이 되어있지 않은 패스워드는 사회공학적인 유추가 가능 할 수 있으며 암호화된 패스워드 해시값을 무작위 대입공격, 사전대입 공격 등으로 단시간에 패스워드 크렉이 가능함 ■ 참고 ※ 패스워드 복잡성 사용자 패스워드 설정 시 영문(대문자, 소문자), 숫자, 특수문자가 혼합된 일정 길이 이상으로 패스워드를 설정하는 방법 점검대상 및 판단기준 ■ 대상 : SOLA..
U-01 root 계정 원격접속 제한 ■ 항목 중요도 : 상 ■ 점검내용 시스템 정책에 root 계정의 원격터미널 접속차단 설정이 적용되어 있는지 점검 ■ 점검목적 관리자계정 탈취로 인한 시스템 장악을 방지하기 위해 외부 비인가자의 root 계정 접근 시도를 원천적으로 차단하기 위함 ■ 보안위협 root 계정은 운영체제의 모든기능을 설정 및 변경이 가능하여(프로세스, 커널변경 등) root 계정을 탈취하여 외부에서 원격을 이용한 시스템 장악 및 각종 공격으로(무작위 대입 공격) 인한 root 계정 사용 불가 위협 ■ 참고 ※ root 계정 여러 사용자가 사용하는 컴퓨터에서 모든 기능을 관리할 수 있는 총괄권한을 가진 유일한 특별 계정. 유닉스 시스템의 루트(root)는 시스템 관리자인 운용 관리자(Sup..
네트워크 기초 용어 설명 ■ 토큰링(TokenRing)이란? IBM에 의해 개발된 프로토콜 네트워크 상에서 토큰을 가진 PC만이 네트워크에 데이터를 실어 보낼 수 있음 당연히 이러한 방식으로 통신이 이루어지면 네트워크 충돌이 발생하지 않음 다만, 토큰을 보유하고 있어야 데이터를 보낼 수 있다는 점에서, 보낼 데이터가 있다 하더라도 토큰을 가지고 있어야 통신이 가능하다는 점에서 이더넷 통신보다 적게는 25배에서 많게는 100배 가량 속도차이가 나므로, 현재는 거의 사용하지 않는 방식의 통신 프로토콜 ※토큰을 가진 순서에 따라 통신이 일어난다는 점에서 순서가 없이 아무나 통신이 가능한 이더넷과는 방식이 다름 ■ 유니캐스트란?(Unicast) 네트워크 상에서 가장 많이 사용되는 트래픽. 유니캐스트 통신 방식에..
안드로이드란?(Android) ■ 안드로이드란 Android는 주로 스마트폰 및 태블릿과 같은 터치스크린 모바일 장치용으로 설계된 Linux 커널 및 기타 오픈 소스 소프트웨어의 수정된 버전을 기반으로 하는 모바일 운영체제이며, Open Handset Alliance로 알려진 개발자 컨소시엄에서 개발하고 구글에서 상업적으로 후원중. 안드로이드 기기의 아키텍처, 애플리케이션이 어떻게 컴파일되는지, 가장 중요한 것은 안드로이드 애플리케이션의 구성을 이해하는 것 ■ 안드로이드의 구성 하드웨어 Android의 주요 하드웨어 플랫폼은 이후 릴리스에서도 지원되는 x86 및 x86-64 아키텍처가 있는 ARM Android 5.0 Lollipop부터 32비트 변형 외에도 모든 플랫폼의 64비트 변형이 지원됨 커널 A..
ADB 알아보기 ■ ADB란? ADB(android debug bridge)는 안드로이드 에뮬레이터나 PC에 실제 연결된 장치를 제어하기 위한 안드로이드 디버깅 도구이며, 기기와 통신할 수 있는 커맨드라인을 제공하며, 세 가지 구성요소(클라이언트, 데몬, 서버)를 포함. ADB는 안드로이드 SDK 플랫폼 도구 패키지에 포함되어 있으므로, SDK 설치만으로 간편하게 사용 가능. 경로는 안드로이드 하위 폴더인 Android\sdk\platform-tools에 위치함. 특히, 자주 사용하게 될 기능으로 ADB는 쉘 기능을 제공하여 연결된 안드로이드 에뮬레이터나 장치에서 원격 쉘을 사용할 수 있도록 하는 기능을 제공. "adb shell"이라는 명령을 사용. 만약 ADB 서버가 구동되어 있지 않다면, 위와 같은..
■ 코드오류 타입 변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안약점이다. 신뢰할 수 없는 데이터의 역직렬화 ■ 개요 직렬화(Serialization)는 프로그램에서 특정 클래스의 현재 인스턴스 상태를 다른 서버로 전달하기 위해 클래스의 인스턴스 정보를 바이트 스트림으로 복사하는 작업으로, 메모리상에서 실행되고 있는 객체의 상태를 그대로 복제하여 파일로 저장하거나 수신 측에 전달하게 된다. 역직렬화(Deserialization)는 반대 연산으로 바이너리 파일(Binary File) 이나 바이트 스트림(Byte Stream)으로부터 객체 구조로 복원하게 된다. 이 때, 송신자가 네트워크를 이용하여 직렬화된 정보를 수신자에게 전달하는 과정에서 ..
■ API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점이다. DNS lookup에 의존한 보안결정 ■ 개요 공격자가 DNS 엔트리를 속일 수 있으므로 도메인명에 의존에서 보안결정(인증 및 접근 통제 등)을 하지 않아야 한다. 만약, 로컬 DNS 서버의 캐시가 공격자에 의해 오염된 상황이라면, 사용자와 특정 서버 간의 네트워크 트래픽이 공격자를 경유하도록 할 수도 있다. 또한, 공격자가 마치 동일 도메인에 속한 서버인 것처럼 위장할 수도 있다. ■ 안전한 코딩 기법 보안결정에서 도메인명을 이용한 DNS lookup을 하지 않도록 한다. 코드예제 다음의 예제는 도메인명을 통해 해당 요청을 신뢰할 수 있는지를 검사한다. 그러나 공격자는 DN..