취약성, 위협, 위험, 노출

취약성 (vulnerability) 

취약성은 컴퓨터나 네트워크에 침입하려고하며, 한 환경의 리소스에 대한 허가 없는 접근을 시도하려는 공격자에게 열린 문을 제공할 수 있는 소프트웨어, 하드웨어, 혹은 절차 상의 결점을 말한다. 취약성은 부당하게 이용될 수 있는 안전 장치의 부재 혹은 결점으로 간주된다. 이 취약성은 서버에서 실행되는 서비스, 제한 없는 모뎀 전화 접속 접근, 침입차단 시스템의 열린 포트, 아무나 출입할 수 있는 서버 룸의 느슨한 물리적 보안, 혹은 서버와 워크스테이션 상의 규제 없는 패스워드 관리가 될 수 있다. 

위협 (threat) 

위협은 정보 혹은 시스템에 대한 잠재적인 위험을 말한다. 위협의 주체는 침입차단 시스템의 특정 포트를 통해 네트워크에 접근하는 침입자, 보안 정책을 위반하는 방법으로 데이터에 접근하는 프로세스, 시설물들을 파괴하는 토네이도, 혹은 의도하지 않은 실수로 기밀 정보를 누설하거나 파일의 무결성을 해치는 직원이 될 수 있다. 

위험(risk) 

 위험은 위협 주체가 취약성을 활용할 수 있는 가능성을 말한다. 위험은 위협이 취약성을 부당하게 활용할 수 있는 잠재적 손해 혹은 가능성이다. 만약 침입차단 시스템이 다수의 개방된 포트를 가지고 있다면, 침입자가 허가되지 않은 방법으로 네트워크에 접근할 수 있는 보다 높은 위험성이 있다. 만약 사용자들이 과정과 절차에 대한 교육을 받지 않았다면, 직원이 고의적 혹은 의도하지 않은 실수로 데이터를 파괴할 수 있는 위험성이 높다. 만약 침입 탐지 시스템이 네트워크에 설치되지 않았다면, 인식했을 때는 이미 늦은 것이 될 때까지 공격이 계속될 수 있는 위험성이 높다. 취약성 또는 위협을 줄이는 것이 위험을 줄이는 것이다. 

노출(exposure) 

노출은 위협주체에게 손실을 드러내 보이는 경우를 말한다. 취약성은 조직에 있어서 발생 가능한 피해를 노출시킨다. 만약 패스워드 관리가 느슨하고 패스워드 규정이 집행되지 않으면, 기업은 사용자들의 패스워드가 유출되고 허가되지 않은 방법으로 사용될 수 있는 가능성에 노출될 수 있다. 만약 한 기업이 배선에 대한 점검을 하지 않고 사전에 화재예방에 대한 조치를 취하지 않는다면, 그 기업은 잠재적으로 참화를 가져오는 화재에 노출될 수 있다.
Read more

GCC(The GNU Compiler Collection) OPTION


GCC OPTION 

sudo apt-get install g++-multilib libc6-dev-i386 (ubuntu)
 : 64bit 머신에서 32bit 바이너리로 컴파일 가능하게 라이브러리 설치
-m32
 : 32bit 바이너리로 컴파일
-fno-stack-protector(<-> -stack-protector)
 : remove canary(__stack_chk_fail)
-mpreferred-stack-boundary=2
 : remove stack boundary(dummy)
-z execstack
 :executable stack
-fno-builtin
 :builtin함수 사용
-fPIC
 :flexible compile
-fno-pie
  : remove PIE 


gcc -m32 -masm=intel --save-temp -o a a.c
  : intel asem, save .i .s .o (.i .s .o파일 다 남김)
gcc -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack -fno-pie -o


 


Read more

IDA 유용한 단축키


IDA SHORTCUT

ctrl + 1 : Quick view
d : date
Alt + a : ASCII string style
Esc : back 
X : xref to 
Y : set function time (change argv, calling convention, return type)
M : enum member
N : rename 

insert(enum) : add enum 
n(enum) : add enum member 
u(enum) : del enum member 

d(structure) : add structure member 
u(structure) : del structure member 

ctrl + p : jump to function
g : jump to address

local win32 debugger 

F2 : soft breakpoint 
F7 : step into 
F8 : step over 

map file 생성 -> GODUP.Dll으로 olly 와 연동 

u : code undefine 
c : code define
Read more