기본적인 내용은 원문참고(B급프로그래머님 블로그)내용을 확인하면 되고, 추가적으로 발견된 내용들도 계속 보고되고 있다.

http://en.wikipedia.org/wiki/Shellshock_(software_bug)

위 위키피디아의 내용에 따르면 보고된 취약점은 다음과 같은 내용이 포함되어 있다.


1. 최초보고 (CVE-2014-6271)

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

뒤에 ehco vulnerable 이 실행되면 문제가 된다.

2. 추가보고(CVE-2014-7169)

X='() { (a)=>\' bash -c "echo date"; cat echo

이는 추가적인 문제다. 위의 CVE-2014-6271이 패치됐다고 해도, 문제가 된다.

정상적인 경우라면 bash -c "echo date"가 정상적으로 실행돼야 하지만, 위 결과로 date가 실행된 echo라는 파일이 만들어진다.

즉, date를 충분히 다른 실행명령으로 대체할 수 있게 되고, 그 결과가 echo 라는 파일로 남는 것이다.

3. 추가보고(CVE-2014-7186)

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"

이 문제는 bash의 redirection stack의 오류를 활용한 것으로 보인다.

<<EOF가 하나일 때에는 문제가 되지 않지만 계속 쌓이면 문제가 된다.

덧붙여서 "||"연산자는 논리 OR연산자이다. 즉, A || B에서 A가 true이면 B와 상관없이(수행없이) true이므로 B가 비교(수행)되지 않아야 한다. 하지만 위 결과로 수행되는 것이다.


4. 추가보고(CVE-2014-7187)

(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187 vulnerable, word_lineno"

위의 문제가 redirection stack의 오류를 활용한 것이라면, 이번 문제는 shell 환경 영역의 stack의 한계를 넘어가도록 임의 수행한 결과를 활용한 것이다. 이는 취약점이라고 보기에는 좀 무리가 있어 보인다. 어차피 shell의 run-time의 stack 메모리는 한계가 있기 마련이고, 그에 대한 명령은 실패할 수 있는 경우가 항상 있기 때문이다.

** 문제점을 다시 보니, 다르게 파악한 부분이 있나 보다. 문제점은 다음과 같다.

Off-by-one error in the read_token_word function in parse.y in GNU Bash through 4.3 bash43-026 allows remote attackers to cause a denial of service (out-of-bounds array access and application crash) or possibly have unspecified other impact via deeply nested for loops, aka the "word_lineno" issue.

정확하게 parser에 문제가 있고, 경계를 넘어가는 오류로 인해 crash된다는 것이다.

github에서는 자주 fork라는 단어를 접하게 된다.

하지만, git에는 fork라는 명령어가 없다. (이에 대해서는 그냥 고민만 있었다.)


문제의 발단은 github 외부의 repository(sourceforge.net)에서 github로 fork가 하고 싶어 졌다.

그래서, 그냥 local에서 clone하고, github에 새로운 repository만들고, push 했다.


이제, 궁금해 졌다.

1. fork와 clone의 차이

2. 외부 repository에서 github로 fork하는 방법


1. fork와 clone의 차이

결론부터 얘기하자면, fork는 clone과 동일한 작업이다.

stackoverflow의 두 개의 문서( Git-ForkingWithoutGithub, GitForkIsGitClone? )에서도, fork는 clone이다라고 설명한다. 또한 github의 내부 문서에서도, fork라는 작업은 clone을 포함한 일련의 작업이라고 설명되어 있다. (정확하게는 fork라는 것은 clone을 해서 기존의 프로젝트에 기여하기 위해 upstream등의 remote를 설정하고 fetch 등의 작업을 하기 위한 일련의 행위들로 설명한다.)

즉, fork라는 버튼만 놓고 보면 clone이라는 것이다.


2. 외부 repository에서 github로 fork하는 방법

github의 내부 문서(ImportingAnExternalGitRepository )에 설명이 나와 있다.

기본 작업내용만 옮겨보면 다음과 같다.

# In this example, we use an external account named extuser and
# a GitHub account named ghuser to transfer repo.git

git clone --bare https://githost.org/extuser/repo.git
# Make a bare clone of the external repository to a local directory

cd repo.git
git push --mirror https://github.com/ghuser/repo.git
# Push mirror to new GitHub repository

cd ..
rm -rf repo.git
# Remove temporary local repository

여기서 clone --bare옵션이나, push --mirror 옵션에 대해서는 좀 더 알아볼 필요가 있다.

또한, 처음에 내가 했던 방법과 어떤 차이가 있는 지도 나중에 확인해 볼 일이다.


* clone --bare

* push --mirror


HTML/CSS parser중에서 쓸만한 것으로 찾던 중에 htmlcxx라는 것을 찾았다.

우선은 가져와서 컴파일 하는 것부터 기록해 둔다.

홈페이지 : http://htmlcxx.sourceforge.net/

가져오기

$ git clone git://git.code.sf.net/p/htmlcxx/code htmlcxx-code   

컴파일하기

aclocal

autoconf

autoheader

libtoolize

automake --add-missing

./configure




출발은 KLDP의 한 스레드 : http://kldp.org/node/122100

전자화폐? 궁금증 증폭...

나름 자세한 설명은 여기 : http://bittalk.org/archive/index.php/t-127038.html

채굴(mine)은 대충 이해(?)했고,
클라이언트를 깔아 봤다.
http://bitcoin.org/

휑하다.
계정이라도 입력하는 곳이 있을 줄 알았는데, 그것마저도 없다.
조금 그대로 두고나니, 화면 아랫쪽에 Synchronizing with network... 이라는 게이지가 올라가기 시작했다. (그림상으로는 56%)
이것도 뭔지 정확하게는 모르겠다.

mining client를 깔아봐야 하나?

좀 더 고민해 보자...
올해(2007년)의 목표 중의 하나가 "로보코드" 로봇을 하나 만드는 겁니다. 가능하면 7월경에 있을 로보코드 코리아에 참가하는 것도 좋습니다. (물론, 작년 7월경에 3회 대회를 했으니, 올해 7월경에 있을 개최될 것 같다는 것은 제 추측입니다. 작년기사에 따르면, 올해대회는 한일전이 될 것 같은데...)

물론 자바에 대한 관심은 처음 나올 때부터 있었지만, 코드를 독창적으로 짜 본 적은 전혀(!) 없습니다. 필요에 따라 기존 소스를 조금 수정하거나 리딩해서 다른 코드로 변환하는 작업은 몇차례 있었습니다만...

자바를 모른다는 이유로 다른 언어로 된 비슷한 프로그램에 관심을 가진 적도 있었습니다. 하지만, 자료의 부족이나, 완성도의 미흡으로 금새 포기했던 기억이 있습니다. 그래서, 자바도 정식으로 배워 볼 겸, 좋아하는 분야도 관심을 가져 볼 겸 해서 시작하게 된 것입니다.

자료도 만들예정입니다.
물론 기존의 자료도 꼼꼼하게 분석해 보고, 국내외 수상자들의 코드도 분석해 볼 생각입니다. 무엇보다 이런 자료들이 많아서 좋더군요.

자료정리는 위키를 통해서 진행합니다.
http://barmi.net/moni/wiki.php/RoboCode

혹시라도 관심있으신 분들은 공동작업도 환영합니다.

+ Recent posts