Entries Tagged as 'Securities'



Adobe ColdFusion, BlazeDS(Railo), LCDS(FDS) 보안업데이트(Security Updates)
Category : Securities , ColdFusion , Flex/RIA , Railo Comments : 댓글쓰기 Posted by 장창학 at 1:54 AM

Adobe에서 보안패치가 배포되었습니다. Flex와 관련있는 BlazeDS, LCDS, FDS, LiveCycle을 비롯해서 Flex엔진이 내장된 ColdFusion 7,8,9버전 모두 해당됩니다. 매우 심각한 보안패치이니 관련 제품 사용자는 업데이트 하시길 바랍니다. 다행이 저는 ColdFusion엔진이 Railo라서 상관은 없지만 BlazeDS는 영향을 받겠네요. Railo에 내장된 BlazeDS에도 적용이 될련지 확인해 보고 관련이 있다면 Posting하겠습니다. 현재 적용해 본 결과 일부 Railo서버에서는 문제가 있네요.(For some, Railo server error occured.)  최근에 Railo를 설치한 경우라면 문제는 없는 것 같은데.. 만약 최근에 설치하였거나 일단 적용해 보고자 한다면 다음의 경로에 BlazeDS의 보안데이트가 적용된 flex-messaging-core.jar 파일을 덮어 씌우세요.(미리 flex-messaging-core.jar를 백업하시길 바랍니다. 문제 발생시 원본으로 대체하면 정상적으로 작동합니다.)

Windows환경에서는 C:\Program Files\{Railo설치디렉토리}\lib\ 이며, Linux환경에서는 일반적으로 /opt/railo/lib 가 되겠습니다. 동일한 파일이 기존에 있으므로 덮어 씌우면 되는데, 문제가 발생하는 환경이 있으므로 Railo자체의 보안업데이트를 기다리는 것이 나을 듯 합니다. Railo Team에서도 관련내용을 확인했다고 합니다. (http://groups.google.com/group/railo/browse_thread/thread/a2883c03b99526d4) 만약 강제로 적용하여 Railo를 재시작해도 문제가 발생한다면 원래 설치된 버전의 Railo설치파일을 다운로드 받아 압축을 푼 후 flex-messaging-core.jar만 다시 복원해 주면 됩니다.


ColdFusion 소스 보호하기 - Protect your ColdFusion codes.
Category : Securities , ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 11:18 PM

Windows에서 설치하였던, Linux에서 설치하였던 Adobe ColdFusion의 설치디렉토리안의 bin 디렉토리는 CF서버를 끄고 켤수 있는 중요한 시작파일이 있는데 이 안에는 또 다른 재미있는 물건이 하나 있습니다. cfencode.exe (Linux에서는 cfencode.linux 또는 Solaris에서는 cfencode.solaris 파일)이라는 작은 유틸리티인데요. 이 파일은 ColdFusion소스코드를 암호화하여 다른 개발자가 소스를 보지 못하도록 해줍니다. 예를 들어 PHP의 Zend Encoder와 같은 것인데요. PHP의 Zend Encoder로 암호화된 PHP소스코드를 실행하려면 반드시 PHP설치시 Zend Encoder가 설치되어 있어야 하는 것처럼 Adobe ColdFusion은 cfencode.exe로 암호화된 파일을 읽고 해석할 수 있습니다.참고로 cfencode 유틸리티는 GUI유틸리티가 아니므로 반드시 Command Line에서 명령해야 합니다.

cfencode enrypted source

ColdFusion은 사용자가 전혀 새로운 태그를 정의하거나, 함수를 정의할 수 있습니다. Custom tags와 UDF(User Defined Functions)이라는 것인데요.  이것을 고생스레 만들어 놨는데 누군가가 소스코드내의 이러한 정의 태그나 함수를 맘대로 가져다 쓰거나 또는 보안상 회사의 중요한 기술적 가치가 있는 소스를 배포, 판매하는 경우 누군가가 소스를 훔쳐보거나 도용하는 것을 막을 수 있는 방법은 소스코드 자체를 암호화해 버리는 것이 안전합니다. 물론, 복호화가 불가능해야 겠죠? 하지만 모든 보안기술이 그렇듯 누군가가 보호하려고하면 누군가는 풀어 헤치려고 합니다. Adobe(엄밀히 말하면 Macromedia 이전의 Allaire까지 올라갑니다만..)는 Encode 유틸리티만 제공하지, 한번 암호화된 소스를 다시 복호화하는 유틸리티는 제공하지 않습니다. 복호화 유틸리티가 있다면 사실상 암호화 유틸리티 자체가 무의미한 것이 되니까요. 수년전에 cfDecrypt Utility를 만들어 파는 사람도 있었습니다.(http://www.password-crackers.com/crack/cfdecrypt.html)

한가지 중요한 것은 이 cfencode 유틸리는 Adobe ColdFusion만을 위한 암호화 유틸리티이므로 이 유틸리티를 이용해서 암호화한 cfm문서는 BlueDragon(Open BD포함)이나 Railo와 같은 다른 ColdFusion엔진에서는 해석 및 실행이 불가능합니다. 아울러 암호화시 암호화 버전을 1로 선택했다면 ColdFusion 3이전의 버전에서만 해석이 가능합니다. 따라서 반드시 암호화 할때는 버전2로 암호화해야 ColdFusion 4이상의 모든 버전에서 해석이 가능합니다.간단한 예를 가지고 테스트 해 봅시다.

우선 간단한 cfm문서를 하나 만듭니다. 다음과 같은 소스가 있다고 생각합니다. 이 cfm문서를 누군가가 습득하였어도 소스를 볼 때  알아볼 수 없는 소스로 나타내려고 합니다. 물론 ColdFusion서버에서의 실행은 가능하지만요.

sample.cfm

<cfprocessingdirective pageencoding="utf-8">
<cfcontent type="text/html; charset=utf-8">
<cfset setEncoding("URL", "utf-8")>
<cfset setEncoding("Form", "utf-8")>
<cfset myEncryption = "안녕, 콜드퓨전">
<cfoutput>#myEncryption#</cfoutput>

자, 이 소스문서를 암호화 해 봅시다. Windows환경 또는 Linux 환경에서 ColdFusion의 설치경로의 bin디렉토리로 이동합니다. Windows의 경우 기본경로는 C:\ColdFusion9\bin 입니다. Linux나 Solaris의 경우 /opt/ColdFusion9/bin 입니다. Windows라면 시작-실행에서 cmd를 입력하여 도스 커맨드창에서 해당 경로로 이동하는 것 입니다. 우선, 간단하게 cfencode사용법을 알아봅니다. 도스명령어 창에 다음과 같이 입력합니다.

cfencode.exe ?

그러면 아래 <그림1>과 같은 간단한 명령구문과 옵션, 설명창이 나타납니다. Allaire란 이름이 반갑네요.

cfencode utility

해당 설명대로 명령어를 입력합니다. 다음과 같이 sample.cfm의 경로가 D드라이브안의 sample폴더안에 들어 있다면 같은 경로안에 암호화된 파일을 다음과 같이 만들 수 있습니다.

cfencode.exe d:\sample\sample.cfm d:\sample\samle_encrypted.cfm /r /q /h myEncrytion /v 2

이때 /h 다음의 myEncrytion은 헤더옵션로서 임의로 지정한 문자열입니다. /h 옵션자체가 없어도 됩니다. /v는 버전을 나타내며 숫자2는 버전2로 암호화 하겠다는 이야기입니다. 버전2로해야 ColdFusion 4이상의 서버에서 모두 실행할수 있습니다. 자, 암호화가 끝나면 새로운 sample_encrypted.cfm파일이 생깁니다.이 파일을 드림위버 등에서 열어보면 알 수 없는 말들로 소스를 전혀 알아 볼 수 없습니다. 첨부된 두개의 cfm문서를 비교해 보시길 바랍니다.  

Sample Download

cfencode utility


Installing fail2ban on Centos 5
Category : Ubuntu & Linux/Unix , Securities Comments : 댓글쓰기 Posted by 장창학 at 4:53 AM

제가 쓰고 있는 Cafe24의 VPS호스팅은 CentOS 기반입니다. 이 서버에 Fail2ban을 설치하고자 할때 보통은 yum install fail2ban 하시면 설치되지만 연결되는 저장소에 Fail2Ban이 없는 경우가 많습니다. 특히 국내 미러들은 말이죠.. 아마 거의 없다고 봐도.. 그래서 그냥 정신건강에 좋게 다음과 같이 소스를 받아다가 직접 업로드하고 설치해 봅니다.

먼저 http://sourceforge.net/projects/fail2ban/ 에서 최신 버전을 받습니다. 가장 최근 버전은 2009년 12월 24일 현재 fail2ban-0.8.4.tar.bz2 입니다. 이 파일을 자신의 서버에 업로드 합니다. root권한이 있어야 합니다. 업로드는 그냥 /root나 /home 아무대나 업로드 합니다. 예를 들어 /home에 업로드 했다고 합니다.

/home에서
tar -xjvf fail2ban-0.8.4.tar.bz2
cd fail2ban-0.8.4
python setup.py install

위 순서대로 압축을 풀고, 해당 디렉토리로 가서 파이선스크립트로 설치합니다. 그런다음, vi /etc/fail2ban/jail.conf 하여 설정을 해 줍니다.

그런다음 실행을 해줘야 하는데,  아무 경로에서 그냥 fail2ban-client start 해주시면 됩니다. fail2ban-client -h 하시면 다양한 실행옵션을 볼 수 있습니다. 이때 /var/log/아래에 sshd.log와 vsftpd.log가 없다고 에러나면, 그냥 touch 명령어로 해당 디렉토리에 두개의 파일을 만들어 줍니다. 

touch /var/log/sshd.log
touch /var/log/vsftpd.log

필요한경우 chmod 등 권한설정을 해주면 되겠죠? 이상하게 Fail2ban의 rpm 버전들은 Fail2Ban의 공식홈페이지에서 다운로드하려도 하면 해당 웹사이트들이 거의 문을 닫았거나, 오류가 나더군요. 이럴때는 apt-get으로 설치하는 우분투가 그립습니다. 이상한게 경험상 보면, CentOS의 미러 저장소들은 없는 패키지가 너무 많습니다. :(

 


Worst IT Security Country 한국은 보안취약 선진국
Category : Securities Comments : 댓글쓰기 Posted by 장창학 at 12:57 PM

제 블로그에 내장되어 있는 Spam 차단 솔루션은 CFFormProtect라는 ColdFusion으로 작성된 오픈소스 차단툴인데요. 이 툴에서 참조하는 스팸차단정보는 AkismetHoneyPot입니다. 둘다 유명한 솔루션이여서 여러 Wordpress 등의 서비스에서 이용하고 있지요. (국내에서 배포하는 Textcube에서는 지원하는지 모르겠네요.)

best_worst_it_securities암튼 오늘 허니팟에서 보내온 메일을 보고 실소를 금할 수 없었습니다. 서비스를 시작한 이래 GMT기준 2009년 12월 9일 6시 20분경 10억번째 스팸이메일을 받았다는 내용이였습니다. 이 프로젝트의 서비스는 이메일, 블로그 등의 스팸댓글을 차단해 주는데 10억개의 스팸이라면 정말 어마어마한 숫자임에는 분명합니다.

문제는 스팸발송, 스팸에 대한 대처에 대한 결과에서 한국은 "IT보안 취약국가에 전체 국가중 당당히 3위"를 차지했다는 겁니다. 그렇게 IT강국이라고 국민을 기만하더니만.. 여러 다른 통계에서도 우리 국민의 보안의식 및 대처능력은 상당히 낮은 것으로 나타나고 있습니다. 게임과 인터넷이 발달해서 사용인구는 많지만 개개인의 보안인식 및 대처 Computing 능력은 현저히 떨어진다는 것이 맞나 봅니다. 기관, 회사등의 보안투자 역시 정말 최악이지요.

저만 하더라도 제가 아는 대부분의 기업에서 보안투자는 정말로 회사에서 여윳돈 있을때 조금 투자하는 것이거나 예산삭감의 주범이자 쓸데없는 자금낭비일 뿐 입니다. 최고경영자의 이런 사고도 문제지만 일반 직원의 PC보안관리도 엉망이죠. 그저 백신한두개 깔면 다인듯.. 그나마 제대로 된 백신이나 깔거나 하면 다행인데 P2P 등의 네트웍보안도 엉망진창입니다. 이런 능력을 인사고과에 반영해야만 열의가 생길듯 합니다.

자신의 PC나 네트웍, 서버가 스팸숙주서버가 되는 일은 쉬운일입니다. 인터넷, P2P에서 특정 코드가 들어간 파일을 열람하면 바로 감염될 수 있으며, 이러한 것들은 백신으로도 잡히지 않습니다.(정상적인 MTA:Mail Transper Agent로 인식되기 때문에)

제 블로그를 담고 있는 VPS도 고정아이피를 쓰고 있는지라 주된 공격대상이여서 늘 스팸에 시달리고 있습니다만, 다행히 아직까지는 CAPTCHA(이미지 스팸방지코드)와 CFFormProtect로 그럭저럭 막아내고는 있습니다. 스팸발송을 막거나 회피하는 정책보다는 스팸숙주서버를 차단하거나 보안이 취약한 PC의 인터넷 접속을 막거나 또는 스팸메일의 발송업체 및 발주업체에게 과태료 뿐만 아니라 가능하다면 역공격하여 시스템을 망쳐도 법적으로 문제가 없는 보다 적극적인 대책마련이 시급해 보입니다.


Hack my CF - 간단하게 보안위협요소를 검사
Category : Securities , ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 11:02 PM

몇몇 유용한 ColdFusion component를 개발해서 다소 비싼가격에 팔고 있는(?) Foundeo에서 웹상에서 자신의 ColdFusion의 위협요소를 간단하게 살펴볼 수 있는 Hackmycf하는 사이트를 오픈했씁니다. 자신의 ColdFusion이 설치된 웹사이트 주소를 입력하고 검사하면 검사결과를 이메일로 전송해 줍니다.

그런데, 아마 대부분의 ColdFusion웹사이트에서 Critical 요소가 나올 겁니다. 바로 ColdFusion엔진 자체의 디버깅 오류메시지 페이지 때문인데요, Adobe ColdFusion이나 Railo의 웹관리자 페이지에서 error페이지에 대한 템플릿을 간단한 페이지로 제작하여 지정하거나, 해당 템플릿을 수정하여 서버정보 및 소스정보가 최소한의 노출되도록 조절해야 할 것 같습니다. 이외 Adobe ColdFusion 8 이상의 버전에서는 FCKeditor(현재의 CKEditor)의 패치를 반드시 하시길 바랍니다.

http://www.adobe.com/support/security/bulletins/apsb09-09.html


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments