회사에서 업무를 보고 있는데, 갑자기 아웃룩 2007로 메일이 500통이나 왔다.

황당해서 내용을 살펴보니 /etc/passwd의 내용을 긁어가기 위한 코드들이 메일 제목이나 메일 아이디 등에 적혀 있었다.

html 코드들도 보이는 것을 보니 /etc/passwd의 내용을 html로 만들어 공격자에게 보내주는 것 같았다.

메일 서버를 관리를 하고 있어서 계정들의 쉘을 모두 false로 설정해 놓은 상태였고, 관리를 위한 내 계정과 root 계정만이 쉘을 사용할 수 있었다.

아마도 쉘을 사용할 수 있는 내 계정을 통해 공격을 하였다.

어떤 툴을 이용하는 것 같았는데, 웹서비스를 하고 있는 아파치의 80 포트로 접속하여 대량의 메일을 보내는 공격이었다.

1시간내에 2000통의 메일을 받으니 사양이 좋지 않은 메일 서버도 버벅이기 시작하였다.

결국에 설치되어 있는 보안 제품으로 해당 IP를 막는 설정을 하니 더이상의 메일은 오지 않았다.

공격에 사용된 IP를 whois로 검색을 해보니 서울 소재의 서버인듯 했는데, 관리를 잘안하는 서버인가보다.

공격의 경유지로 사용이나 당하고 말이다.

결국 3시간 뒤에 스팸메일이 한 통 왔는데, 메일의 폼으로 보아 공격할 때의 메일 폼과 같았다.

정말 스팸에 이용하려는 의도였는지, 아니면 또다른 악성코드를 심어 놓아 광고 속 홈페이지 접속 시 설치가 되게 하려는 의도인지는 잘 모르겠다.

나름 공격을 당했으니 신고하려고, 신고 사이트에 접속하여 해킹 사유를 적고 스팸 메일을 캡쳐하여 첨부를 한 후 전달버튼을 눌렀으나

bmp로 캡쳐하여 파일 용량이 크다는 이유로 응답없음 화면을 보여주는 황당함에 뒤로가기 버튼을 누르니 내용은 다 날아가고 없었다.

다시 쓰기 귀찮아서 취소해버리고, 더이상의 공격기미가 보이지 않아 스팸메일을 지우고 일단락 지었다.

이번 공격을 통해 정상적이지 않은 공격을 막는 방법은 많이 있으나, 이번 경우와 같이 웹서비스를 하는 80번 포트로 접속하여 어떤 취약성을 이용한

정상적인 루트로 공격을 하는 방법은 막을 수 있는 방법이 많지 않은 듯 하다.

서버는 애정어린(?) 지속적인 모니터링과 패치를 통해 관리를 해주어야 할 듯 하다.

이번 기회에 서버 업그레이드와 MTA로 sendmail 말고 qmail을 사용해봐야겠다.
Posted by dcmru
,
시큐어 OS에 대한 개념으로 회사에서 어떤분이 보내주셨는데 어느 기사에서 발췌를 한것이랍니다.

Posted by dcmru
,
LDAP 자료를 찾아 다니다가 찾은 싸이트입니다.

LDAP에 관한 자료들이 많네요.

링크된 곳들 중에 아직 업데이트 되고 있는 것도 있습니다.

참고할만한 자료가 많아 추천합니다.


Posted by dcmru
,
- RSA 암호화/복호화.

1). 두 개의 큰 소수 p와 q를 선정한 다음에 법n 과 φn 을 계산한다.
법n = p*q
φn = (p-1)*(q-1)
2). 공개키 e는 φn과 서로 소(素)의 관계가 되게 임의로 선정한다.
3). e*d Mod φn = 1 의 관계에 있는 개인키 d를 유클리드 알고리즘을 통해 구한다.
유클리드 알고리즘 : 두 정수의 최대공약수를 구하는 것은 가장 고전적인 정수론 문제중의 하나이다. 유클리드알고리즘은 최대공약수를 구하는데에 사용되는 가장 효율적인 방법이다.

s = a
t = b
Do While (t > 1)
r = s Mod t
s = t
t = r
Loop
Return(s)

4). {e, n}을 공개키로 공개하고, {d} 는 개인키로 자신이 안전하게 보관한다.
m = 평문, e,n = 공개키, d = 개인키, c = 암호문
Mod 연산 아시죠? 나머지 공식. (2 Mod 3 = 2, 5 Mod 3 = 2, 6 Mod 3 = 0)

RSA 암호화공식 : Eke(m) = m^e Mod n = c
RSA 복호화공식 : Dke(c) = ((m^e)^d) Mod n = c^d Mod n = m



예제) n = p * q = 7 * 11 = 77. (큰소수 p와 q를 넣어야되지만
너무크면 시간이 너무 마니걸려서
일단은 작은숫자로 해봅시다.)
φn = (p-1) * (q-1) = 6*10 = 60.
공개키e 는 φn과 서로소의 관계에 있는 임의의 정수 7로 선정한다.
e = 7
따라서, 개인키는 유클리드 알고리즘을 이용하면
개인키d = 43 이 된다.
평문m 을 8로 하고 RSA암호화공식을 통해 암호문을 구해보면

c = 8^7 Mod 77
= 2097152 Mod 77
= 57

이제 평문m(=8)이 암호문c(=57)로 암호화되었다.

그렇다면 이제 개인키d(=43)을 사용하여 다시 암호문 c(=57)를
복호화해보면 RSA복호화공식에 따라

m = 57^43 Mod 77
=
3181403788572786716059998378326698266679069780899509454959934125355133265193
Mod 77
= 8

m = 8로 다시 복호화 된다.

공개키 암호화란
Alice라는 사람이 위의 e, n, d 를 구해놓고
e와 n을 공개적으로 공개해서
Bob이 공개키e와 n을 이용해 평문m을 암호화해서 Alice에게 보내면
Alice는 개인키 d를 이용해서 암호문c를 복호화해서
평문m을 알아낼수가 있습니다.
만약 누군가 암호문c를 몰래 입수했다고 합시다.
개인키d를 모르는 상태에서 평문m을 구하려고 하면
개인키d를 알아야 복호화를 할수 있는데 개인키를 구하는공식은
(e * d) Mod φn = 1
e는 이미 공개한 상태이므로 알수 있다. 그렇지만 φn의 값은 알수가 없다.
이제 φn의 값을 구해보자.
일단 n의 값을 알고있다. n과 e를 공개했으므로
그렇다면 위의 예제를 보면 n은 77이다. 7 * 11 = 77은 쉽게 구할수 있지만
예제에서는 숫자가 적었지만 숫자가 크다면??? 반대로 구하기는 어렵다.
책에나온 예를 보면
n = 1,807,082,088,687,404,805,951,656,164,405,905,566,278,102,516,
769,401,349,170,127,021,450,056,662,540,244,048,387,341,127,590,
812,303,371,781,887,966,563,182,013,214,880
을 p와 q로 만들수 있겠는가?
1 mips-year는 1초당 1백만개의 명령어를 처리하는 컴퓨터가 1년동안 수행해야하는
계산량을 의미한다. 1983년도에 71자리의 10진수를 소인수분해하는데에는
0.1 mips-year가 소요됐다. 이것은 한대의 CRAY X-MP 슈퍼컴퓨터로 9.5 CPU시간이
소요되는 계산량이다. 5000 mips-year가 소요된 RSA-129의 소인수분해 작업은
인터넷을 통해 전 세계적으로 1600여대의 워크스테이션, 대형컴퓨터, 슈퍼컴퓨터들이
연결되어 소인수분해작업을 분담하여 계산하였다. 전반적인 집계와 분석이 이루어진
가운데 최종작업까지 약 8달이 걸렸다고한다. RSA-130의 소인수분해에는 RSA-129에
소요된 계산량의 10분의 1정도인 약 500 mips-year가 소요됐다.
위의 n값이 RSA-130이다.
그렇다면 위의 n값을 소인수 분해한 p와 q는
p = 39,685,999,456,597,454,290,161,126,161,883,786,067,
576,449,112,810,064,832,555,157,243
q = 귀챦어용...
이정도...그래서 반대로 계산하는것을 언제하겠는가~
늙어 죽어도 자손이 계산을 해야하고 그 자손에 자손이...
이래서 암호화를 하기는 쉽지만 복호화하기 어렵다고 한다...
하지만 RSA암호화/복호화방법은 계산하는데 시간이 많이걸려서 피곤하다.
공개키를 설명하다 다른데로 흘렀군요..
아무튼 이렇게 자신만의 공개키를 공개하고 누군가가 암호화해서 보내면
자신은 개인키로 간단히 열어서 볼수 있게 하는 암호화 방법을
공개키암호화라고 합니다.

출처 : http://blog.naver.com/shu777/120005550944

'형상관리 > 정보보호' 카테고리의 다른 글

2000통의 폭탄 메일을 받다.  (0) 2009.11.12
보안운영체제(Secure OS)  (0) 2007.03.28
LDAP Howto, Links, and Whitepapers  (0) 2006.07.08
SQL Injection 공격 대응 및 복구  (0) 2006.01.16
Posted by dcmru
,
이번에 알바를 하는 곳에서 윈도우2000과 ms sql을 사용한 서버가 해킹을 당했다.

해킹의 양상은 시스템 내의 모든 asp, htm, html 파일에 iframe을 삽입해 놨고,

접속아이피는 중국 베이징 소재 통신망 회사내 아이피였다.

첫 번째 당했을 때 족히 몇 천개의 파일을 일일이 메모장으로 열어서 iframe을 삭제했다.

손으로 거의 복구를 했지만 경험부족으로 복구 못한 파일도 있었고, 로그 분석도 잘 못했었다.

계속 로그를 분석하다 시스템에 해킹 도구로 쓰인 파일들이 업로드 된 것을 발견하였고,

system32 내에 업로드 된 해킹에 사용된 파일도 찾아 지웠다.

xp_cmdshell 등을 이용하여 비주얼베이직 스크립트 파일로 한번에

시스템 내의 asp, htm, html 파일에 iframe구문을 삽입을 했던 것이었다.

복구할 때는 폴더 내에서 아이콘 보기 항목을 자세히로 바꾸어,

해킹을 당했던 파일은 마지막 수정한 날짜가 일정한 것을 착안, 그것을 복구 했다.

첫 번째 해킹을 당했을 때 서버에는 웹사이트가 5개 정도 돌아 가고 있었는데,

한 개의 목표 사이트로 해킹한 후 2개의 사이트를 더공격한 형태였다.

해킹을 방지하기 위해 관련 문서들을 찾아 봤으나 원천적으로 막을려면

소스를 수정해야한다는 것을 알고, 대략 포기했었다.

공격목표가 된 사이트는 패키지 형태로 대략 2000년도 초에 나온 인트라쿨이라는 것이었다.

소스를 일일이 수정한다는 것은 귀찮고, 모르는 것이 태반이기 때문에 포기를 했다.

해킹된 사이트만 복구를 하고 백업을 하고 일단락 지었다.

이에 대한 보복인지 두 번째 공격은 처참했다. 5개의 사이트 모두가 해킹을 당한 것이었다.

해킹을 당하고 나서 매일 로그 검사를 하였고, 해킹을 당한 그날 바로 알아차리고,

어이없음을 뒤로 한 채 바로 복구를 시도 했다.

앞의 경험(?)이 있어서인지 침착하게 대응을 했다.

일단 로그분석결과 앞에 해킹을 했었던 바로 그 놈들이었다.

같은 수법으로 해킹을 했고, 피해 파일이 너무 많았다.

일단 백업을 해놨던 사이트는 바로 복구를 하고, 나머지 사이트는 일일이 수정을 하다가, 한계가 있어

http://dcmru.tistory.com/129

위에 올려놓은 방법으로 간편하고, 재빠르게 해당 파일을 복구했다.

정말 예방을 해야겠다는 굳은 결심으로 찾아다닌 결과 밑의 항목들을 참고하였다.



특히 WebKnight를 이용하였다.

어제 접속한 로그를 보니 해킹을 또 다시 시도하다가 실패 한 것으로 보였다.

그다지 실력이 없는 해커인지, 이로써 일단락지었다.
Posted by dcmru
,