John the Ripper

언젠가 부터 SSH를 통해 무작위로 아이디와 패스워드를 대입하는 공격이 유행하고 있다.

로그를 살펴보면 하루라도 그런 로그가 없는 적이 거의 없으니…

아니나 다를까.. 깐지 채 일주일도 되지 않은 서버에 그런 로그가 보이기 시작하고 있다.

일단은, 이런 놈들을 조금이라도 막기 위해서 iptables 사용법을 좀 배워두고…

오늘은 생각난 김에 이게 사람이 직접하는 건지 웜 같은 건지 알아보려고

구글신께 물어보았다.

대충 몇가지 읽어 본바로는 웜 같은건 아닌거 같고… 주로 중국애들이 brute force로

공격하는 거란다..

암튼 그런 글들을 읽다가 우연히 발견한 것이

“Jonh the Ripper”

라는 패스워드 크래킹 툴이다.

첨에는 ‘오호~ 이런 것도 있군’ 이라는 생각에 설치하고 돌려봤는데…

이거 생각외로 강력한거 같다.

아직 옵션 같은 건 잘 모르겠는데…. 간단한 패스워드는 -single 옵션을 붙이고

돌려 보면 간단하게 찾아내 버린다. 아이디 뒤에 00 같은거 붙이는 패스워드는 직빵이다.

그래.. 저런건 간단한 규칙이니까 싶은 생각도 들지만…

아무런 옵션도 주지 않고 돌려 버리면… comeng 이런 패스워드도 찾아버린다!!

저건 컴퓨터 공학을 뜻하는 computer engineering에서 각각 첫 3자씩을 딴것으로

사전에 존재하는 단어도 아니다!

헉… 이런걸 어떻게….

생각할 수 있는건 글자를 하나하나 바꿔가면서 일일이 대입하는 건데…

이건 완전 무식한 방법이지만… 물론 확실히 찾을 수 있는 방법이기도 하다.

(물론 시간이 엄청나게 많이 걸릴 가능성이 높지만…)

설마 단순히 그런 알고리즘을 사용하는건 아닐꺼라는 생각도 들지만..

실제 시간이 많이 걸리기는 한다.(한 1시간쯤 돌린거 같은데 끝이 안난다-_-)

음.. 암튼 꽤 쓸만한 툴인거 같네… 사용법을 좀 익혀놔야 겠다.

http://www.openwall.com/john/

버그가 적은 프로그램을 빠른 시일내에 만드는 방법은 없을까?

버그가 없는 프로그램이란건 현실적으로 불가능한 거고…

최대한 버그가 적은 프로그램을 최대한 빠른 시일내에 만드는것.

그거야 말로 최대 지상 과제 중 하나가 아닐까 한다.

요즘 만들어 놓은 프로그램을 테스트 하면서 수정하고 있자니…

한숨이 푹푹 나온다.

우리나라 SI 특성상(잦은 사용자 요구사항의 변경, 촉박한 일정 등) 고품질의 프로그램을

만드는 것 자체가 힘들다고 생각은 하고 있지만…

이건 좀 너무 아니다는 생각이 든다. 내가 실무를 하게 된게 어느덧 5년이 다 되어 가는데,

이게 과연 5년차 개발자가 만든 프로그램인가 싶을 정도.

수년간 SI하면서 가지게된 개발 방식은 ‘일단 돌아가게 만들자’이다.

버그가 좀 있어도 요구한 기능을 다 만드는게, 거의 버그가 없어도 일부 기능이

구현 안된거 보다는 낫기 때문이다.

구현만 되어 있다면야, 테스트야 적당히 통과할 수도 있는 문제지만

기능이 안되있는건 정말 대책이 없으니까.

그러다 보니, 프로젝트 후반부 및 검수 후에는 버그 수정으로 정신이 없을 정도다.

항상 그랬던거 같은데… 이번 프로젝트에서는 그 정도가 더 심하다.

정말이지 다른 방법을 찾아야 할때가 아닌가 하는 생각이 든다.

TDD가 제대로 사용만 된다면, 이런 문제를 해결 할 수 있지 않을까 하는 생각이

문득 들지만… 글쎄..;;; 웬지 활용을 시도하기가 쉽지가 않다.

—-

두서도 없고 결론도 없는 글은 여기까지=_=