Category Archives: 보안

검열과 개인정보 유출에 대처하는 방법 Ways to deal with censors and leak of personal information

검열과 개인정보 유출에 대처하는 방법
Ways to deal with censors and leak of personal information

검열 –
얼마전 까지만 해도 웹검색을 하다보면 여러 문장을 짜깁기 한것처럼
문법상으론 문제가 없지만 읽다보면 무슨말인지 하는 낚시 블로그를 많이 접할 수 있었다.
"얼마전 법상으로 해도 없지만 하다보면 문제가 한것처럼 웹검색을 하는.. "
검열 역시 이러한 형태로 계속 쓰레기 트래픽을 만든다면 어느것이 실제로 검열이 필요한것인지 알수 없게된다.
참고 – http://pdos.csail.mit.edu/scigen/
http://www.htmlgoodies.com/JSBook/sentence.html

개인정보 유출-
이미 내 개인정보는 공공재다. 너의 개인정보도 공공재다.
하지만 "김온리 주민번호 900614-1234567" 이라는 허위 정보를 흘려 누군가가 이것을 사용하는것을
허니팟 처럼 캐치(는 국가가 해야겠지) 한다면 어디서 주민번호를 유출하고 사용하는지 트래킹이 가능할것이다.
또는 "김온리 900614-1111111, 김온리 900614-2222222, 김온리 900614-3333333 …." 이런식으로 허위정보를 만들어서
온라인에 대거 유통한다면 중간에 실제 정확한 정보가 있다 할지라도 이것은 개인을 식별할수 있는 정보라고 하기 힘들어진다.

JE – Jump if Condition Is Met

Code Mnemonic Description
77 cb JA rel8 Jump short if above (CF=0 and ZF=0)
73 cb JAE rel8 Jump short if above or equal (CF=0)
72 cb JB rel8 Jump short if below (CF=1)
76 cb JBE rel8 Jump short if below or equal (CF=1 or ZF=1)
72 cb JC rel8 Jump short if carry (CF=1)
E3 cb JCXZ rel8 Jump short if CX register is 0
E3 cb JECXZ rel8 Jump short if ECX register is 0
74 cb JE rel8 Jump short if equal (ZF=1)
7F cb JG rel8 Jump short if greater (ZF=0 and SF=OF)
7D cb JGE rel8 Jump short if greater or equal (SF=OF)
7C cb JL rel8 Jump short if less (SF<>OF)
7E cb JLE rel8 Jump short if less or equal (ZF=1 or SF<>OF)
76 cb JNA rel8 Jump short if not above (CF=1 or ZF=1)
72 cb JNAE rel8 Jump short if not above or equal (CF=1)
73 cb JNB rel8 Jump short if not below (CF=0)
77 cb JNBE rel8 Jump short if not below or equal (CF=0 and ZF=0)
73 cb JNC rel8 Jump short if not carry (CF=0)
75 cb JNE rel8 Jump short if not equal (ZF=0)
7E cb JNG rel8 Jump short if not greater (ZF=1 or SF<>OF)
7C cb JNGE rel8 Jump short if not greater or equal (SF<>OF)
7D cb JNL rel8 Jump short if not less (SF=OF)
7F cb JNLE rel8 Jump short if not less or equal (ZF=0 and SF=OF)
71 cb JNO rel8 Jump short if not overflow (OF=0)
7B cb JNP rel8 Jump short if not parity (PF=0)
79 cb JNS rel8 Jump short if not sign (SF=0)
75 cb JNZ rel8 Jump short if not zero (ZF=0)
70 cb JO rel8 Jump short if overflow (OF=1)
7A cb JP rel8 Jump short if parity (PF=1)
7A cb JPE rel8 Jump short if parity even (PF=1)
7B cb JPO rel8 Jump short if parity odd (PF=0)
78 cb JS rel8 Jump short if sign (SF=1)
74 cb JZ rel8 Jump short if zero (ZF = 1)
0F 87 cw/cd JA rel16/32 Jump near if above (CF=0 and ZF=0)
0F 83 cw/cd JAE rel16/32 Jump near if above or equal (CF=0)
0F 82 cw/cd JB rel16/32 Jump near if below (CF=1)
0F 86 cw/cd JBE rel16/32 Jump near if below or equal (CF=1 or ZF=1)
0F 82 cw/cd JC rel16/32 Jump near if carry (CF=1)
0F 84 cw/cd JE rel16/32 Jump near if equal (ZF=1)
0F 84 cw/cd JZ rel16/32 Jump near if 0 (ZF=1)
0F 8F cw/cd JG rel16/32 Jump near if greater (ZF=0 and SF=OF)
0F 8D cw/cd JGE rel16/32 Jump near if greater or equal (SF=OF)
0F 8C cw/cd JL rel16/32 Jump near if less (SF<>OF)
0F 8E cw/cd JLE rel16/32 Jump near if less or equal (ZF=1 or SF<>OF)
0F 86 cw/cd JNA rel16/32 Jump near if not above (CF=1 or ZF=1)
0F 82 cw/cd JNAE rel16/32 Jump near if not above or equal (CF=1)
0F 83 cw/cd JNB rel16/32 Jump near if not below (CF=0)
0F 87 cw/cd JNBE rel16/32 Jump near if not below or equal (CF=0 and ZF=0)
0F 83 cw/cd JNC rel16/32 Jump near if not carry (CF=0)
0F 85 cw/cd JNE rel16/32 Jump near if not equal (ZF=0)
0F 8E cw/cd JNG rel16/32 Jump near if not greater (ZF=1 or SF<>OF)
0F 8C cw/cd JNGE rel16/32 Jump near if not greater or equal (SF<>OF)
0F 8D cw/cd JNL rel16/32 Jump near if not less (SF=OF)
0F 8F cw/cd JNLE rel16/32 Jump near if not less or equal (ZF=0 and SF=OF)
0F 81 cw/cd JNO rel16/32 Jump near if not overflow (OF=0)
0F 8B cw/cd JNP rel16/32 Jump near if not parity (PF=0)
0F 89 cw/cd JNS rel16/32 Jump near if not sign (SF=0)
0F 85 cw/cd JNZ rel16/32 Jump near if not zero (ZF=0)
0F 80 cw/cd JO rel16/32 Jump near if overflow (OF=1)
0F 8A cw/cd JP rel16/32 Jump near if parity (PF=1)
0F 8A cw/cd JPE rel16/32 Jump near if parity even (PF=1)
0F 8B cw/cd JPO rel16/32 Jump near if parity odd (PF=0)
0F 88 cw/cd JS rel16/32 Jump near if sign (SF=1)
0F 84 cw/cd JZ rel16/32 Jump near if 0 (ZF=1)

Description
Checks the state of one or more of the status flags in the EFLAGS register (CF, OF, PF, SF, and ZF) and, if the flags are in the specified state (condition), performs a jump to the target instruction specified by the destination operand. A condition code (cc) is associated with each instruction to indicate the condition being tested for. If the condition is not satisfied, the jump is not performed and execution continues with the instruction following the Jcc instruction.

The target instruction is specified with a relative offset (a signed offset relative to the current value of the instruction pointer in the EIP register). A relative offset (rel8, rel16, or rel32) is generally specified as a label in assembly code, but at the machine code level, it is encoded as a signed, 8-bit or 32-bit immediate value, which is added to the instruction pointer. Instruction coding is most efficient for offsets of –128 to +127. If the operand-size attribute is 16, the upper two bytes of the EIP register are cleared to 0s, resulting in a maximum instruction pointer size of 16 bits.

The conditions for each Jcc mnemonic are given in the "Description" column of the table on the preceding page. The terms "less" and "greater" are used for comparisons of signed integers and the terms "above" and "below" are used for unsigned integers.

Because a particular state of the status flags can sometimes be interpreted in two ways, two mnemonics are defined for some opcodes. For example, the JA (jump if above) instruction and the JNBE (jump if not below or equal) instruction are alternate mnemonics for the opcode 77H.

The Jcc instruction does not support far jumps (jumps to other code segments). When the target for the conditional jump is in a different segment, use the opposite condition from the condition being tested for the Jcc instruction, and then access the target with an unconditional far jump (JMP instruction) to the other segment. For example, the following conditional far jump is illegal:
JZ FARLABEL;

To accomplish this far jump, use the following two instructions:
JNZ BEYOND;
JMP FARLABEL;
BEYOND:

The JECXZ and JCXZ instructions differs from the other Jcc instructions because they do not check the status flags. Instead they check the contents of the ECX and CX registers, respectively, for 0. Either the CX or ECX register is chosen according to the address-size attribute. These instructions are useful at the beginning of a conditional loop that terminates with a conditional loop instruction (such as LOOPNE). They prevent entering the loop when the ECX or CX register is equal to 0, which would cause the loop to execute 2 32 or 64K times, respectively, instead of zero times.

All conditional jumps are converted to code fetches of one or two cache lines, regardless of jump address or cacheability.

Operands Bytes Clocks
near8 2 1 PV
near16 3 1 PV

cycles apply to jump and no jump




와우 여기 쩌는듯
자주 헷갈려서 -_- 특히 cmp나 test 없이 점프하는거는 어떻게 해석해야할지 난감해 ..

DDOS 공격유형

최근의 해커는 특정 한가지 공격만을 가지고 들어오는 경우가 드물며, 여러가지의 복합적인 형태로 공격을 시도합니다. 이는 DDOS공격에 대한 방어를 더욱 어렵게 만들고 있으며, 스마일서브에서는 복합적인 공격에도 원활한 서비스를 제공하고 있습니다.

1. IP FLOODING
 TCP 프로토콜에 비해서 패킷싸이즈를 줄이기가 용이하며 IP 프로토콜만을 무한정으로 보내 네트워크 장비에 성
  능을 저하시키는 공격
2. TCP 공격
 SYN Flood 서비스포트로 허용치보다 초과된 수의 SYN 연결요청을 전송하여 서비스에 문제를 발생
 FIN Flood 정상적인 접속과 종료를 만드는 연결을 지속적으로 발생 TCP 의 정상적인 연결을 생성,
바로 종료
 Fragment Flood 허용된 수치보다 초과된 수의 fragment IP 패킷을 요청
 GET FLOODING 주로 웹서비스를 타겟으로 하며 싸이즈가 큰 이미지나 특정페이지를 계속해서 접속을 시도하여 DB혹은 서비스에 문제를 발생시키는 공격
 문자열 공격 서비스 데몬포트에 일련된 특정 문자를 패킷헤더에 포함시켜서 서비스를 마비시키는 공격
 비정상적인
  User-Agent
정상적인 웹브라우저가 아닌 일반적인 클라이언트가 사용할만한것이 아닌 Agent 값을 패킷에 포함시켜서 공격
 CC ATTACK 대개 웹페이지는 열어본 페이지에 대한 정보를 클라이언트 PC 캐쉬에 저장하는데 그런취약점을 노린공격으로 계속해서 서버에 정보를 요청
 TimeOut
  Connection
정상적인 연결을 요청이후 ESTABLISHED로 만든후 서비스의 요청을 하지 않은상태로 만듬
3. UDP 공격
 네트워크단에 GATEWAY가 될만한 부분을 추측해서 네트워크를 마비시키는 공격형태로 인증되지 않은 아이피 이
  외에는 외부에서 게이트웨이로의 접근을 차단
 UDP 프로토콜을 대량으로 보내서 네트워크를 마비시키는 공격
4. ICMP 공격
 ICMP 프로토콜을 대량으로 보내서 네트워크를 마비시키는 공격

http://www.1000dedi.net/docs/renew/ddos/ddos02.htm

Olly Debugger Hot Key

Ctrl+F2 프로그램 재실행
Alt+F2 프로그램 닫기
F3 새 프로그램 열기
F5 활성화 되어 있는 윈도우 최대화, 혹은 원복
Alt+F5 olly 디버거 윈도우를 항상 위로
F7 Step into (함수 진입)
Ctrl+F7 Animate into (entering functions)
F8 Step over (executing function calls at once)
Ctrl+F8 Animate over (executing function calls at once)
F9 실행
Shift+F9 Pass exception to standard handler and run
Ctrl+F9 Execute till return
Alt+F9 Execute till user code
Ctrl+F11 Trace into
F12 Pause
Ctrl+F12 Trace over
Alt+B Open Breakpoints window
Alt+C Open CPU window
Alt+E Open Modules window
Alt+L Open Log window
Alt+M Open Memory window
Alt+O Open Options dialog
Ctrl+T Set condition to pause Run trace
Alt+X CloseOllyDbg
F2 Toggle breakpoint
Shift+F2 Set conditional breakpoint
F4 Run to selection
Alt+F7 Go to previous reference
Alt+F8 Go to next reference
Ctrl+A Analyse code
Ctrl+B Start binary search
Ctrl+C Copy selection to clipboard
Ctrl+E Edit selection in binary format
Ctrl+F Search for a command
Ctrl+G Follow expression
Ctrl+J Show list of jumps to selected line
Ctrl+K View call tree
Ctrl+L Repeat last search
Ctrl+N Open list of labels (names)
Ctrl+O Scan object files
Ctrl+R Find references to selected command
Ctrl+S Search for a sequence of commands
Asterisk (*) Origin
Enter Follow jump or call
Plus (+) Go to next location/next run trace item
Minus (-) Go to previous location/previous run trace item
Space ( ) Assemble
Colon (:) Add label
Semicolon (;) Add comment
ctrl+위, 아래 화살표키 디스어셈블 위치 지정