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..
안드로이드란?(Android) ■ 안드로이드란 Android는 주로 스마트폰 및 태블릿과 같은 터치스크린 모바일 장치용으로 설계된 Linux 커널 및 기타 오픈 소스 소프트웨어의 수정된 버전을 기반으로 하는 모바일 운영체제이며, Open Handset Alliance로 알려진 개발자 컨소시엄에서 개발하고 구글에서 상업적으로 후원중. 안드로이드 기기의 아키텍처, 애플리케이션이 어떻게 컴파일되는지, 가장 중요한 것은 안드로이드 애플리케이션의 구성을 이해하는 것 ■ 안드로이드의 구성 하드웨어 Android의 주요 하드웨어 플랫폼은 이후 릴리스에서도 지원되는 x86 및 x86-64 아키텍처가 있는 ARM Android 5.0 Lollipop부터 32비트 변형 외에도 모든 플랫폼의 64비트 변형이 지원됨 커널 A..
모바일 어플리케이션 디컴파일하기 ■ 디컴파일 개요 Android Manifest 앱에 필수로 들어가야되며, 앱에 대한 필수적인 정보를 담고 있음. 특히, 앱의 패키지 이름과 사용되는 컴포넌트 및 권한 등이 전부 담겨 있음 DEX 안드로이드 환경에서의 실행 파일 Java 코드로 작성된 컴파일된 class 파일을 DX 도구를 사용해 변환시킨 파일 - Java 바이트 코드가 달빅 다이트 코드로 변환 달빅 가상머신에서 구동 - 실행되는 앱마다 가상머신을 생성해 구동시킴 SMALI DEX 바이너리를 사람이 읽을 수 있도록 표현. DEX를 디코딩 작업으로 추출할 수 있음. Smali 파일의 코드를 분석해 프로그램의 실행 원리 파악 가능 Smali 코드를 읽고, 수정 후 재컴파일해서 프로그램 수정 가능 (조작하면 동..
■ 에러처리 에러를 처리하지 않거나, 불충분하게 처리하여 에러 정보에 중요정보(시스템 내부정보 등)가 포함될 때, 발생할 수 있는 취약점으로 에러를 부적절하게 처리하여 발생하는 보안약점이다. 부적절한 예외 처리 ■ 개요 프로그램 수행 중에 함수의 결과 값에 대한 적절한 처리 또는 예외 상황에 대한 조건을 적절하게 검사 하지 않을 경우, 예기치 않은 문제를 야기할 수 있다. ■ 안전한 코딩 기법 값을 반환하는 모든 함수의 결과값을 검사하여, 그 값이 의도했던 값인지 검사하고, 예외 처리를 사용 하는 경우에 광범위한 예외 처리 대신 구체적인 예외 처리를 수행한다. 코드예제 다음 예제는 다양한 예외가 발생할 수 있음에도 불구하고 광범위한 예외 처리로 예외상황에 따른 적절한 조치를 처리 할 수 없다. 안전하지 ..
■ 보안기능 보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리 등)을 부적절하게 구현 시 발생할 수 있는 보안약점으로 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 포함된다. 무결성 검사없는 코드 다운로드 ■ 개요 원격으로부터 소스코드 또는 실행파일을 무결성 검사 없이 다운로드 받고, 이를 실행하는 제품들이 종종 존재한다. 이는 호스트 서버의 변조, DNS 스푸핑(Spoofing) 또는 전송 시의 코드 변조 등의 방법을 이용하여 공격자가 악의적인 코드를 실행할 수 있도록 한다. 파일(및 해당 소프트웨어) 무결성을 확인하는 두 가지 주요 방법으로는 암호화 해시 및 디지털 서명이 있다. 무결성을 보장하기 위해 해시를 사용하고 가능하면 적절한 코드 서명 인증서를 사용하고 확인하는 것이 더 안전하다...
■ 보안기능 보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리 등)을 부적절하게 구현 시 발생할 수 있는 보안약점으로 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 포함된다. 취약한 비밀번호 허용 ■ 개요 사용자에게 강한 패스워드 조합규칙을 요구하지 않으면, 사용자 계정이 취약하게 된다. 안전한 패스워드를 생성하기 위해서는 「패스워드 선택 및 이용 안내서」의 패스워드 설정규칙을 적용해야 한다. ■ 안전한 코딩 기법 패스워드 생성 시 강한 조건 검증을 수행한다. 비밀번호(패스워드)는 숫자와 영문자, 특수문자 등을 혼합하여 사용하고, 주기적으로 변경하여 사용하도록 해야 한다. 코드예제 사용자가 입력한 패스워드에 대한 복잡도 검증 없이 가입 승인 처리를 수행하고 있다. 안전하지 않은 코드의 예 fr..