less 명령어의 보안 취약점에 대한 경고가 있네요.

[url:310r2xiz]http://www.pcworld.com/article/2851692/less-means-more-to-malware-authors-targeting-linux-users.html[/url:310r2xiz]

위 글은 PC World 등에 발표된 UNIX less command의 보안 취약점에 대해서 쓴 글입니다. 저는 less program이 단순히 more command를 개선한 것이라고만 알고 있었고, text file을 보는데만 사용해 왔는데요. less는 그 이상의 기능이 있다고 하네요. 즉, text file 뿐만 아니라 수 많은 다른 file 들을 lesspipe라는 front-end를 통하여 전처리해서 볼 수 있는 기능이 있다고 합니다. lesspipe man page에 보면, tar 등 archive file, zip 등 대부분의 compression된 file, tar.gz 및 이와 유사한 파일들, pdf, deb, rpm, iso, bin, 그리고, 그림 file 등을 볼 수 있다고 하네요.

보안 취약점은 less 자체에 있는 것이 아니고, lesspipe에 있다고 합니다. 즉, text file을 less를 이용하여 보는 것은 아무런 문제가 없다는 것이죠. 그러나, Web에서 download 받은 file을 less를 통하여 보면, lesspipe를 통하여 동작하게 되고 "remote code execution"이 이루어질 수 있다고 합니다. 정확한 메커니즘은 lesspipe에 대하여 아는 것이 없어서 잘 모르겠네요. 문제는 download 받은 file이 text file인지 아닌지 보기 전에는 모르므로, text file인 줄 알고 less로 보았다가 "remote code execution"에 의하여 malware에 감염될 가능성도 있다는 것이죠.

아무튼, 결론은 Web에서 download 받은 file을 less를 통하여 보는 것은 위험할 수 있다는 것입니다. 현재 less는 lesspipe가 자동으로 동작하도록 설정되어 있기 때문에 문제가 있을 수 있어 보입니다. 보안 위협을 심각하게 생각하시는 분들은 less가 자동으로 lesspipe를 사용하는 것을 막을 필요가 있어 보입니다. 즉, less를 text file을 보는데만 사용하는 것이죠. 이는 환경 변수 LESSOPEN과 LESSCLOSE를 unset하면 된다고 합니다. 이 2개의 환경 변수는 현재 다음과 같이 되어 있습니다. terminal을 열고 한번 해 보세요.

[code:310r2xiz]
happyman@ubuntu:~$ echo $LESSOPEN
| /usr/bin/lesspipe %s
happyman@ubuntu:~$ echo $LESSCLOSE
/usr/bin/lesspipe %s %s
[/code:310r2xiz]
위에서 보시다시피, lesspipe가 작동하도록 되어 있는 것이죠. 이를 unset하려면 다음의 2 줄을 ~/.bashrc의 마지막에 넣어주고 terminal을 다시 시작하면 됩니다. 그러면, 이제, less는 lesspipe 없이 text file을 편리하게 보는 본연의 기능만 하게 된다고 합니다.

[code:310r2xiz]
unset LESSOPEN
unset LESSCLOSE
[/code:310r2xiz]