블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Software Security 3/5

보안/기술 정보 | 2013. 9. 11. 11:48 | Posted by youGom


오늘은 Heap overruns 부터 시작하는구나.

C에서도 사용되고 C++ ( OOP ) 에서도 적용된다고 한다.



그 다음으로 Integer overflow에 대해서 설명해주는데.

signed, unsigned에 대한 차이와 char, short, int, long, long long에 대해 설명해준다.

숫자의 크기가 커질 때, (un)signed일 때 값이 변하는 것과 type( char, short, ... ) 이 변형될 때, 값이 변하는 내용에 대해 설명해 준다. 여기에서 저장장치에는 물리적으로 비트 값만 저장하고 소프트웨어에서 그 비트 값을 논리적으로 사용한다는 것을 이해하고 들으니 좀 더 나은 것 같다. 이 부분에 대한 이해가 없으면 아마 힘들 듯... 

( 무슨 말이냐면, 0x1110과 0x0001이 있을 때, 이 것을 signed인지 unsigned인지 어떻게 판단되어 지고 기록되는지 아는가? 또는 그것을 어떻게 제어하는가? 우리가 판단하고 사용하는게 아니라 컴퓨터의 입장에서 질문이다. 여기서 접근하면 좋겠다. )


스트링 공격


명령어 인젝션으로 지정되어 있는 명령어 다음으로 다른 부분을 실행할 수 있다. 아래처럼 확인해볼 수도 있고 해당 정보를 볼수도 있다.

./cmd_pr .;touch wowfile;ls -al .

./cmd_pr /etc/passwd;cat /etc/passwd



timing attack 에 관한 내용이다.

와.. 이게 되다니.. 신기하다~ 생각보다 간단한 개념인데 처음이라 .. 개념이해하는데 헛시간 다보냄 ㅠ.ㅠ

개념은.. 패스워드 한자리 씩 어택해서 시간차를 이용해 패스워드를 알아내는 방법이다.

빅인티저 처리하는 거처럼 한자리 씩 올려가면서 하는게 아니였다.

false를 리턴하는건 빠르다. true 찾는데 시간이 오래 걸린다. 거기에서 출발한 어택 방법이다.

즉, 첫자리 찾는데 가장 오래 걸린 걸 찾은 다음, 그 다음 자리에 맞는 걸 찾는다. 만약에 그 다음 자리를 넘어갈 때, 기존에 맞춘 부분이 틀린 값으로 있으면 안된다. 이유는 첫째자리가 틀리는데, 다음자릴 찾을까? 무슨 의미인지는 코드를 보면 알수 있다. 맞았던 부분에 대해 처리해 주지 않으면, 첫자리 이외에는 전부 다른 값이 나오게 된다.







'보안 > 기술 정보' 카테고리의 다른 글

Software Security 5/5  (0) 2013.09.13
Software Security 4/5  (0) 2013.09.12
Software Security 2/5  (0) 2013.09.10
Software Security 1/5  (0) 2013.09.09
[메모] 보안 정보 받는 거나 나한테 필요한거~  (0) 2013.07.22
: